




已阅读5页,还剩67页未读, 继续免费阅读
(机械工程专业论文)基于vba的autocad图形数据库管理技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 当前,协同设计是国内外研究的热点。在协同设计过程中不可避免的 会产生冲突,结果冲突是协同设计中的主要冲突之一。解决结果冲突的主 要方法是在设计过程中对相关尺寸随时进行检验。实现这一目的的方法之 一是使协同设计系统能方便、有效地对c a d 图形数据库进行操作,从数 据库中提取需要的参数进行检验。本文就是在这样的背景下研究基于v b a 的a u t o c a d 图形数据库管理技术。 本文研究的主要目的是通过对图形数据库的研究,实现利用后台来直 接操作图形数据库( 读取、修改、添加数据等) ,为在协同设计平台上建 立独立于c a d 系统的图形参数的管理功能提供基础。 本文首先对基于v b a 的a u t o c a d 图形数据库管理技术进行了深入的 研究,从理论上阐述了a u t o c a d 图形数据库的基本结构、输出图形对象 的属性信息到外部数据库技术、图形数据库的连接与操作技术。其次研究 了基于v b a 的a u t o c a d 开发技术以及a d o 对象模型和c a o 对象模型。 利用c a o ( c o n n e c t i o na u t o m a t i o n0 b j e c t s ) 对象库根据图形对象的旬柄 标识把a u t o c a d 图形对象链接到外部数据库,构建a u t o c a d 图形数据库, 用以在整个项目生命周期中向用户提供信息。通过a d o ( a c t i v e xd a t a 0 b j e c t s ) 数据访问技术实现对a u t o c a d 图形数据库进行操作。最后在以 上分析与研究的基础上设计了一个基于v b a 的a u t o c a d 图形数据库管理 应用系统,以支持在协同设计平台上对c a d 系统的图形参数的管理功能, 为解决协同设计中的结果冲突提供基础。 关键词:a u t o c a d 二次开发;协同设计;图形数据库;a c t i v e x 技术;v b a 西南交通大学硕士研究生学位论文第1 | 页 a b s t r a c t c o l l a b o r a t i v ed e s i g ni st h er e s e a r c h i n gf o c u sa l lo v e rt h ew o r l dn o w a d a y s m a n yc o l l i s i o n s a r e a p p e a r e dd u r i n g t h e p r o c e s s o fc o l l a b o r a t i v e d e s i g n r e s u l tc o l l i s i o ni so n eo ft h ep r i m a r yc o l l i s i o n s t h ec h i e fm e t h o do f s o l v i n g t h er e s u l tc o l l i s i o ni st oc h e c k eo u tt h ec o r r e l a t i v ed i m e n s i o nd u r i n gt h e d e s i g np r o c e s s o n eo ft h em e t h o d st or e a l i z et h i s p u r p o s e i st h a tc a d d r a w i n gd a t a b a s ei so p e r a t e dc o n v e n i e n t l ya n de f f e c t i v e l yf r o mc o l l a b o r a t i v e d e s i g ns y s t e m ,a n dn e c e s s a r yp a r a m e t e r sa r ee x t r a c t e df r o md a t a b a s e t h i s t h e s i si sd e f i n e dt oa i ma t d e v e l o p i n g a u t o c a d d r a w i n g d a t a b a s e m a n a g e m e n tt e c h n o l o g yb a s e d 0 1 3 v b a t h em a i nr e s e a r c h i n gp u r p o s eo ft h i st h e s i si st or e a l i z et h a t d r a w i n g d a t a b a s ei s o p e r a t e d ( r e a d i n g 、m o d i f y i n g 、a d d i n gd a t aa n ds oo n ) d i r e c t l y f r o mb a c ke n d t h ea u t o c a dd r a w i n gd a t a b a s em a n a g e m e n tt e c h n o l o g yb a s e do nv b a i ss t u d i e di nt h et h e s i s f i r s t i ti s a n a l y z e d - t h a tt h es t r u c t u r e o fa u t o c a d d r a w i n gd a t a b a s e 、t e c h n o l o g y o f e x p o r t i n gt h ea t t r i b u t e so fd r a w i n go b j e c t s u c ha sd i m e n s i o nt ot h eo u t e rd a t a b a s e 、c o n n e c t i n ga n do p e r a t i n gt e c h n o l o g y o fd r a w i n gd a t a b a s e t h e n ,b a s e do nv b a 、a d oo b j e c tm o d e la n dc a o o b j e c tm o d e li sr e s e a r c h e d a u t o c a dd r a w i n go b j e c t sa r el i n k e dt ot h eo u t e r d a t a b a s ea n dt h ea u t o c a dd r a w i n gd a t a b a s ei sb u i l t ,a c c o r d i n gt h ed r a w i n g o b j e c t h a n d l es y m b o lb yu s i n gt h ec a o ( c o n n e c t i o na u t o m a t i o no b j e c t s ) o b j e c t d a t a b a s e t h i sa u t o c a dd r a w i n gd a t a b a s e p r o v i d e s i n f o r m a t i o nt o u s e r si na l lt h ep r o j e c tl i f e c y e l e t h ea u t o c a dd r a w i n gd a t a b a s ei sh a n d l e d u s i n ga d o ( a c t i v e xd a t a0 b j c o t s ) d a t a a c c e s s t e c h n o l o g y f i n e l y ,a n a u t o c a dd r a w i n gd a t a b a s em a n a g e m e n ta p p l i c a t i o ns y s t e mi sd e v e l o p e dt o a i ma t i m p l e m e n t i n gm a n a g i n gt h ed r a w i n gp a r a m e t e r so fc a ds y s t e mo n c o l l a b o r a t i v ed e s i g nf l a ta n dh e l pt os o l v et h er e s u l tc o l l i s i o n so fc o l l a b o r a t i v e d e s i g n k e yw o r d s :s e c o n dd e v e l o p m e n to f a u t o c a d ;c o l l a b o r a t i v ed e s i g n ;d r a w i n g d a t a b a s e ;a c t i v e xt e c h n o l o g y ;v b a 西南交通大学硕士研究生学位论文第1 页 1 1 引言 第1 章绪论 计算机辅助设计( c a d ) 的出现给传统的工业设计带来了翻天覆地的变化, 传统的手工绘图被方便、精确的c a d 制图取代,极大地提高了设计人员的效率。 但a u t o c a d 的使用者们可能很快又发现有许多工作是重复、无聊的工作。例如, 机械设计人员往往会发现,在绘制完设备的零件装配图后,还要将各种零件分类 统计,并填入零件材料表中,而这种工作通常是这样完成的:将图纸上的各种设 备数一数,统计出某种型号的螺栓有多少个、另一种型号的螺栓有多少个、某种 键有多少个、另一种键有多少个,等等。设计人员将图纸送到概预算人员手中后, 概预算人员又要将这些数据重新输入计算机( 使用某种概预算软件) ,然后根据每 种零件的单价统计出设备的总价。这样当设计图纸有变动时就要重新统计设备材 料表和概预算,其实这种枯燥而又容易出错的工作完全可以由计算机通过外部数 据库自动统计。使用了外部数据库后,一方面设计人员在图纸中绘制零件图形符 号时,这种零件图形符号就可以与外部数据库中的某个数据库记录相连接、图形 数据库连接表可以对图中的零件自动进行分类统计,概预算人员也可以使用同一 个外部数据库,他们只要确定每种零件的单价就可以得到设备的总价。如果设计 图纸有变动,只要执行相应的刷新操作就可以了。另一方面,所有的数据只需要 输入一次,这是用户得到的最大的好处,这样做不仅大大减少了工作量,而且减 少了发生错误的可能陛。另一种情况是在工程设计过程中,经常要绘制一些相同 的图块,如:阀门、粗糙度标注、螺栓等,常用的方法是预先绘制并定义块,而后采 用块插入的方法,需要反复块操作和线条的修改,效率很低,有必要用新的方法代 替块操作。而现在利用v b a 开发工具、以a u t o c a d 2 0 0 0 为开发平台,可以方便、 快捷地自动绘制阀门、粗糙度标注、标高以及在装配图中自动标注零件序号、创 建明细表及其修改、填写等。随着计算机硬件价格的下降以及日益增多的数据, 用数据库来管理图形参数已是一个必然的趋势 3 2 ,3 6 。 v b a ( m i c r o s o f tv i s u a lb a s i cf o ra p p l i c a t i o n s ,是指在a u t o c a d 中嵌入了 m i c r o s o f tv i s u a l eb s a i c 开发环境) 是一个面向对象的编程环境,由于v i s u a lb a s i c 编程环境易学易用、v b a 在a u t o c a d 进程中运行程序运行速度相对较快以及 西南交通大学硕士研究生学位论文第2 页 v b a 也支持a c t i v e x 技术等特点,使得v b af o ra u t o c a d 成为二次开发 a u t o c a d 最简单、最实用的方法,同时v b a 在a u t o c a d 图形数据库管理中发挥 着越来越重要的作用。 1 2 课题的提出( 选题背景) 本文的研究内容是李柏林教授主持的国家8 6 3 计划项目“基于知识的异 地协同设计技术研究”( 课题编号:2 0 0 2 a a 4 1 1 2 1 0 ) 的内容之一。协同设计 是当前国内外研究的热点 1 ,2 ,1 2 ,1 4 。协同设计是指在计算机的支持下, 地域分散的一个群体的各成员围绕个设计项目,承担相应的部分设计任务,并 行交互地进行设计工作,最终得到符合要求的设计结果的设计方法。在协同设计 中一般采取跨地域的多学科的设计开发小组一起协同工作,把产品设计过程下游 阶段的需求提前考虑,以免大的返工。由于设计主体的分布性、层次性以及设计 任务本身的分工分解等因素,在设计过程中存在着大量相互制约、相互依赖的约 束关系 3 ,4 。由于这些关系的广泛存在,参与协同设计的小组之间和小组内部 在设计过程中不可避免的会产生冲突。结果冲突是协同设计中的主要冲突之一。 结果冲突是指设计结果的不一致,如设计出的零部件不满足装配要求等。解决结 果冲突的主要方法是在设计过程中对相关尺寸随时进行检验。实现这一目的的方 法之一是,协同设计系统能方便、有效地对c a d 图形数据库进行操作,从数据库 中提取需要的参数进行检验 1 3 ,1 4 ,1 5 ,1 6 ,1 7 。本文就是在这样的背景下研 究基于v b a 的a u t o c a d 图形数据库管理技术。 1 3 本文的主要研究内容 本文对基于v b a 的a u t o c a d 图形数据库管理技术进行了深入的研究。包 括以下内容: 1 ) a u t o c a d 图形数据库 详细介绍a u t o c a d 数据库的构成、a u t o c a d 图形数据库种类及实体的层级 结构以及图形数据库的访问技术,简要介绍图形数据库的数据类型。介绍图形数 据的内部结构和图形数据之间的引用方式、对象之涮是如何被识别和链接的。 2 ) a u t o c a d 数据库连接技术 在a u t o c a d 访问一个外部数据库之前必须建立a u t o c a d 图形对象到外部数 据库的连接。数据库连接特性的主要功能是将外部数据与a u t o c a d 图形对象关 西南交通大学硕士研究生学位论文第3 页 联起来。创建一个连接时,就在数据库记录和对象之间建立了一个动态的关系, 依靠这种关系可以管理图形数据库。主要介绍数据源的配置、数据库与图形对象 的连接、标签的创建、s q i 查询以及数据库记录与图形对象之间连接关系的查看 等。 3 ) v b a 开发技术 到目前为止,a u t o c a d 的开发工具有面:向对象的c + + 开发工具o b j e c t a r x ; 面向对象的解释型开发接口a c t i v e ) ( a u t o m a t i o n 及其开发工具v b a ;结构化的面 向过程的开发工具a d s a d s r x ;解释型的过程语言a u t o l i s p v i s u a ll i s p 。 o b j e c t a r x 的过程较复杂,且对不太熟悉c + + 的人来说是比较困难的,而 a u t o c a d 2 0 0 0 内置的v b a 开发工具由于与a u t o c a d 共享内存空问,它的运行速 度与o b j e c t a r x 很接近,易学易用。主要介绍a u t o c a dv b a 的特点、v b a 与 a c t i v e x 技术、v b a 的通讯以及v b a 数据库技术。 4 ) a u t o o a da c t i v e x 开发技术 很多面向对象的应用程序都支持a c t i v e x 技术,a u t o c a da c t i v e x 技术允许 其他应用程序通过其暴露的对象对其自动操作,也允许a u t o c a d 与其他也支持 a c t i v e x 技术的外部应用程序交换数据。详细介绍a u t o c a da c t i v e x 技术以及 a u t o c a d 的对象模型与访问技术。 5 ) a d o 对象模型和o a o 对象模型 a u t o c a da c t i v e x 技术允许a u t o c a d 与其他也支持a c t i v e x 技术的外部应 用程序交换数据,是通过使用a d or a c t i v e xd a t ao b j e c t s ) 数据库访问技术对实 现对a u t o c a d 图形数据的操作。通过a d o 对象模型对象、方法和属性可以把 图a u t o c a d 图形对象的属性信息输出到外部数据库,但二者之间并没有建立动 态关系,可以使用c a o ( c o n n e c t i o na u t o m a t i o no b j e c t s ) 对象模型建立连接模板 和图形对象的物理连接,为取得连接模板和连接模板数据以及取得连接和连接数 掘提供基础。 6 ) 基于v b a 的a u t o o a d 图形数据库管理系统 在以上分析与研究的基础上用v b a 编程设计了一个应用a d o 对象模型和 c a o 对象模型来对a u t o c a d 图形数据库的数据进行存取和操作的系统。该系统 具有以下功能:输出图形信息到外部数据库、从图形更新数据库与从数据库更新 图形、取打开的d w g 、取连接模板与取连接模板数据、取连接与显示连接、重加 载模板与更新连接连、接数据源、显示表、建立连接与建立所有连接等。 西南交通大学硕士研究生学位论文第4 页 第2 章a u t o c a d 图形数据库 2 1 图形及图形数据库概述 在早于c a d 时代,图形就是用油墨在纸上绘制出线条,从而形成真实物体 或想象物体的可视化显示。在c a d 出现之后虽然计算机创造的“图形”仍然描 述真实的或假想的物体,但它是通过对象的数学模型实现的。减速器的c a d 模 型包括多个c a d 模型,有轴、齿轮等。一根轴有一个几何描述同时也具有制造 特性,如材料和技术要求等信息。c a d 模型与c a d 图形之间没有太大的区别, 两者都是真实或抽象物体的抽象模型。c a d 模型是真实物体的一个抽象模型, 属于3 d 实体模型,而c a d 图形通常是真实物体边界的抽象模型,属于3 d 表面 模型,显然3 d 实体模型比3 d 表面模型包含的信息要多。 a u t o c a d 图形是任意抽象模型或物体的容器、是一组存储于数据库的a c d b 对象的集合,如图2 1 所示 2 8 1 ,这种对象的集合被称为图形数据库。数据库中 每一个对象都有唯一的句柄标识。实体就是特殊的有图形表示的数据库对象,如: 直线、圆、圆弧、区域、样条曲线等。其他重要的数据库对象是符号表和字典。 符号表如a c d b l a y e r t a b l e 包含了层表记录,a c d b b l o c k t a b l e 包含了块表记录。 符号表和字典都是用来存储对象的容器,字典提供了更为统一的格式,并且可以 包容任意的a c d b o b j e c t 或者子类。用户可以创建瓶的数据库元素并加入到新的 字典中,但是不能给数据库加入新的符号表。可以通过全局函数a c d b c u r d w g ( ) 来获取当前绘图文件对应的数据库。 在a u t o c a d 的某一阶段中,可以载入多个数据库。此时每一个对象都有一 个唯一的i d 标识,而对象的句柄不能保证唯一。通过对象i d ,用户可以获取实 际的数据库对象的指针来进行对象的操作。方法有: ( 1 ) 创建对象并加入到数据库中,数据库自动给出对象的i d 。 ( 2 ) 使用数据库的协议来获取对象id ,这些协议在数据库创建时就自动生 成,如符号表或对象名字典。 ( 3 ) 使用特定类的协议来获取对象i d 。例如对于符号表或字典,可以定义对 象包含其他对象,这些类提供了获取被包含对象i d 的协议。 西南交通大学硕士研究生学位论文第5 页 图2 1a u t o c a d 数据库的构成 ( 4 ) 使用a c d b 类库提供的浏览器( a c d b d ic t i o n a r y i t e r a t o r 、 a c d b o b j e c t i t e r a t o r ) 来对对象集合进行搜索,获取对象l d 。 ( 5 ) 查询选择集来获取对象i d 。 2 2 a u t o c a d 数据库 2 2 1 使用对象和容器 a u t o c a d 图形是任意抽象模型或物体的容器,这种对象的集合被称为图形数 据库 2 0 1 。图形数据库在许多方面类似于其他类型的数据库,如用于组织职工工 资的数据库,图形数据库中包含由行( 记录) 和列( 字段) 组成的表。图形数据库中 的记录或对象可以是普通的直线或弧线,也可能是实体。a u t o c a d 的图形数据 库几乎可以容纳任何对象。当某对象遵循一定的准则时,它就可以显示出来,例 如,个a u t o c a d 对象必须具有颜色属性。a u t o c a d 图形数据库的创建者可以 自由地往库中添加任意对象,但把对象添加在何处却不是随意的,每一个对象必 须放在形成图形数据库的大量容器中的唯一的一个容器内。 西南交通大学硕士研究生学位论文第6 页 2 2 1 1 符号表 图形数据库初始化时必须有一组九个的符号表,属于某种预定对象类型( 类) 的对象必须收录进符号表容器中,符号表容器由9 个数据库表组成。 尺寸样式( d i m e n s i o n ) 表( a c d b d i m s t y l e t a b l e ,d i m s t y l e 表) 定义了一系 列用于标注尺寸的属性,如箭头类型或文本对齐。 层( l a y e r ) 表( a c d b l a y e r t a b l e ,l a y e r ) 是为层对象而设计的,用于组织 图形实体。 线型( l i n e t y p e ) 表( a c d b l i n e t a b l e ,l t y p e ) 包含线条的种类,用于规 定图形实体显示或绘制的方式。 注册的应用程序( r e g i s t e r e da p p l i c a t i o n ) 表( a c d b r e g a p p t a b l e ,a p p i d ) 包含储存扩展对象数据的第三方应用程序的名称。 文本样式( t e x ts t y l e ) 表( a c d b l e x t s t y l e t a b l e ,s t y l e ) 定义了用于文本对象 的一系列属性,例如字体和字符取向。 用户座标系( u s e r c o o r d i n a t es y s t e m ) 表( a c d b u c s t a b l e ,u c s ) 列出了用户 可能激活并使用的笛卡尔坐标系。 视窗( v i e w p o r t ) 表( a c d b v i e w p o r t t a b l e ,v p o r t ) 规定了平铺视窗的命名集。 视图( v i e w ) 表( a c d b v i e w t a b l e ,v i e w ) 包含图形视图的说明。用户可以调 用视图显示或打印图形。 除了上述符号表外,还有特殊的块( b l o c k ) 表( a c d b b l o c k t a b l e , b l o c kr e c o r d ) 。块表由块容器和所有图形实体组成。 一些符号表已经有特定的记录,如块表有记录:* m o d e ls p a c e 和 * p a p e rs p a c e ,层表有记录l a y e r 0 。还应该有对象字典,创建数据库时自动 生成了组字典和m l i n e 格式字典以及一组头变量。每个符号表只能包含一 个特殊类型的对象。符号表内的对象被称为符号表记录( s y m b o l t a b l er e c o r d s ) 。 符号表中的符号表记录总是同类的对象,例如,层表中的所有记录是层记录对 象,相反,层记录对象不能在层表以外的地方出现。一个符号表内的所有记录 都具有“n a m e ”字段,作为表记录的标识符或关键字。关键字的值是一个字符 串并且在个符号表内必须唯一,以防止数据重复并可维持数据的完整性。同 一个符号表中的关键字段标识符是唯一的,因此,层表与线型表能够容纳关键 字段是s t a n d a r d 的记录。但是,同一个符号表中的两个记录不能采用相同 的关键字段值。这种单记录单关键字准则有一个例外:a c d b v i e w p o r t t a b l e 西南交通大学硕士研究生学位论文第7 页 允许具有重复关键字。一个符号表关键字内单个字符的大小写无关。除了关键 字段,符号表中的记录还有其他的一些字段,如层表记录包含储存与该层相关 的颜色、线型、锁定状态以及其他属性的字段。 图2 _ _ 2 是在符号表中创建线、圆和层的示意图。 p a p e r s p a c e 图2 2 a ) 在块表中创建线 p a p e r s p a c e 图2 2 b ) 在块表中创建圆 l a y e r t a b l e lj ! = = :l + l i l a y e r0 卜_ t 卜1 m y l a y e r 图2 2 c ) 在块表中创建层 西南交通大学硕士研究生学位论文第8 页 2 2 1 2 词典 符号表或任何其他采用固定记录的数据库表都是不可改变的。符号表中的所 有记录必须是同类的。然而,在图形数据库中我们不得不处理大量不同种类的对 象或记录,我们必须能够把弧线对象和直线对象放入共同的容器中。因此,比起 符号表来说,图形数据库包含了更加灵活的对象容器,这些容器被称为“词典”。 每一个词典都是任意对象的一个容器,词典中的每一个对象被称为一个记录。 与符号表有所不同,一个词典可以包含个同种类的对象,也可以包含其他的词典。 把完备的词典放入另一个词典中,就可以创建词典的树状层级结构。树的底部是 “根”词典,“根”词典不包含于任何其他的词典。在一个a u t o c a d 图形数据库 中,每个词典若不是包含在“根”词典中( 直接地或通过一系列的中间词典) ,就 是被链接到特殊的图形实体上,如圆。 与符号表一样,每个词典中的每个记录都有一个关键字,词典中的关键字是 唯一的。但是与符号表记录有所不同的是,这里的字符是大小写相关的。没有视 觉描述特性以及不是字符表记录的所有对象都必须录入词典。词典或符号表的外 部没有不具有视觉描述特性的对象。 2 2 1 3 将实体组合成块 具有图形描述的对象被称为实体,实体也被录入容器。具有图形描述对象的容 器称为“块”。一个图形数据库可以包含任意数量的块。与词典一样,块也有一个 根容器,但它不是根块,因为块没有图形描述,并且不能属于其他的块。块容器也 不是词典,它是符号表,即块表。 块容器能够包含任意多的实体,即包含具有视觉描述的对象。块可以引用其他 块对象,而非包含其他块对象。通过引用其他的块,块可以显示被引用块的全部内 容的图形描述。由于块中每个对象都具有可视化特性,所以诸如a u t o c a d 的计算 机软件能够将块中的图形绘制在计算机屏幕上或是打印输出,这种过程又称为块的 可视化,任何块都能够可视化再现。a u t o c a d 图形编辑器直接与名为 “* p a p e rs p a c e ”的块互相作用,添加实体,删除实体或更改实体。由于这个原 因,“+ m o d e ls p a c e ”块的内容就是大多数人所说的“图形”。 块都能够容纳具有图形特性的对象,这些对象有直线、弧线和圆,同样也可以 是实体。块容器中没有与对象相关联的关键字段,这与数据库全局对象标识符不同, 因此,块容器只不过是对象列表。 西南交通大学硕士研究生学位论文第9 页 2 2 1 4 图形数据库中的非对象 a u t o c a d 图形文件中包含不属于数据库对象的“事物”。a u t o c a d 为每一 个图形特别保存了大量的设置。这些设置描述了加载图形后a u t o c a d 将进入的状 态。其中的大部分设置规定了a u t o c a d 的特殊命令将如何在每个图形上工作或它 们将提供的缺省值。 图形文件中的某些没置对于图形内容来说具有一定的意义。最重要的设置是 a u t o c a d 数据库版本号,因为它决定了哪一个对象是图形数据库中所需要的。其 他设置解释了a u t o c a d 是否并且如何显示指定类型的对象,如p d m o d e 和 a t t d i s p 。 2 2 2 对象的识别 a u t o c a d 图形数据库中的每一个对象都有一个唯一的标识符( 符号表记录或词 典实体,它们具有附加的关键字符表,这些字符串在表或词典内是唯一的,但在整 个数据库中并不是唯一的) 。上述标识符被称为对象句柄。对象的句柄与它们是否有 图形特性无关,也与对象是否包含在符号表、词典或块中无关,同样也与对象本身 是否属于这种类型的容器无关。在一个图形数据库内,句柄是唯一的。所以一个数 据库中的两个对象不会有相同的句柄。 22 2 1 链接对象 写及加载数据库( i i 储存图形文件和再打开文件) 时幸存的唯一的对象标识是 对象旬柄。因此,句柄常被用于创建数据库对象之间的链接,例如,若要把轴对象 和齿轮对象链接起来,就必须把轴对象的句柄添加到齿轮对象上。链接有四种类型: 软指针链接:对象一旦被链接,这种链接在经过大量操作后依然存在( 也即一 直有效) 。 硬链接:链接对象能够被更改,但是只要链接存在,对象就不会被删除。 软所有( s o f to w n e r ) 链接:当链接对象中的一个对象被删除则其他对象也自动 被删除。与指针关系( p o i n t e r s h i p ) 不同,所有关系( o w n e r s h i p ) 是一个独占特性。 硬所有( h a r do w n e r ) 链接:这种链接把硬指针和软所有结合在一起,只要链接存 在,被拥有对象不能被删除,但当所有者被删去后,被拥有对象就会被自动 删除。 此外,还有一种隐式链接,符号表的链接与容器之间的链接一样不采用旬柄, 但是当符号被引入并且被链接到图形实体上时,就创建了句柄。在大多数情况 下( 并非全部) ,从数据库对象到符号表记录的链接是通过记录的关键字段值( 符 西南交通大学硕士研究生学位论文第10 页 号名) 创建的,而不是通过记录的句柄创建。如图形实体的层属性,它包含相关 的层名,也就是层记录关键字字符串的值。 与前面列出的各种链接方法相对比,通过符号名的链接总是硬指针链接。即 使只有单个实体引用符号表记录,也不能删除该符号表记录。 2 2 2 2 嵌入对象 即使是硬指针一样的紧密链接,引用对象和被引用对象依然是两个单独的对 象,任何链接都有被中断的危险。对于自定义对象来说,保证非中断链接有时是 很重要的。 用户应用程序可能不仅仅链接了两个对象,而且直接将一个对象嵌入另一个 对象,在这种情况下,被嵌入对象成为引用对象的一个部分,换句话说,就是 外部对象变成了其他对象的一个容器。 2 2 3 对象的类和层级结构 a u t o c a d 图形数据库是由系列的容器组成的,其中每一个容器都包含特 定( 通常是无限制的) 数量的对象,这些对象能够成为被嵌入对象的容器。 在面向对象设计与分析中,一个对象是类的一个实例,而类是对象所具有的 属性和方法的抽象定义模板。转换到现实生活中,就意味着一个对象总代表着“某 种事物”。特定数量的类或对象类型能够用于图形数据库。例如,a c d b l i n e 是简 单的直线类,a e d b f c f 是特征控件框架类,它也是人们所知道的几何公差注释类。 图形数据库中的每个对象都是定义了对象结构和特性的相应类的一个实例。 类构成一种层级结构,这种结构中一个类的对象继承所有更高级类的结构和 特性。通常这种层级结构描述类之间一种关系,例如,a c d b l i n e 类继承了 a c d b c u r v e 类的属性( 这意味着每一条线段都是一条曲线,并且具有曲线的属性, 如长度) ,而a c d b c u r v e 类继承了a c d b e n t i t y 类的属性( 即每条曲线是一个实体并 且有实体的属性,如颜色) ,a c d b e n t i t y 类最终继承了a c d b o b j e c t 类的属性( 即每 一个实体是一个对象,具有对象的属性,如句柄) 。 a u t o c a d 图形数据库中的所有对象都基于a c d b o b j e c t 。图2 3 所示为 a u t o c a d 图形数据库中类的层级结构 2 0 1 。 西南交通大学硕士研究生学位论文第1 1 页 d a t a b a s e0 b j e c t 图2 3a )a u t o c a d 数据库的类的层次结构 西南交通大学硕士研究生学位论文第1 2 页 e n t i t i e s 西南交通大学硕士研究生学位论文第13 页 2 2 4 对象的属性 每个对象是它所属类的一个实例,并且因此而具有一个标识。每个对象根据 它所属类的定义有它自己的一套方法和属性。对象的方法定义了对象能够执行的 操作。运用这些方法数据库对象可更改时间,复制、输出或开发对象本身。我们 主要介绍在固定时间内出现的图形数据库,换句话说就是介绍图形数据库的静态 图片。 同类的不同对象总是在一个或多个属性上有差别,即使两条线完全相同,它 们仍具有不同的旬柄,否则它们不会是两条线,而是一条线。 每个类都定义了一组特性,这组特性描述了该类中的特殊实例。特性通常被 称为属性,但在a u t o c a d 图形数据库的结构中,术语“属性”是属性对象专用 的,属性对象指类a c d b a t t r i b u t e 中的对象。“成员变量”也常用于描述类中对象 可能具有的属性。 a u t o c a d 图形数据库包括大量对象,许多对象是众所周知的,如线与圆; 其他的对象较少被人了解,如层表记录对象。以上介绍了图形数据库的一般结构。 图形数据库包括如下四部分: 块,图形对象的容器,如交叉线或影线。 符号表,非图形对象的容器,例如层或尺寸样式。每个符号表只能包含一个特 殊对象类型( 或记录) 。 词典,非图形对象的容器,如绘图设置或嵌入的v b a 宏。词典可包含多种类 型的对象。 图形专用设置,这些设置被视为非对象设置。 2 3 图形数据库的访问 访问a u t o c a d 图形数据库的方法有四种:采用d x f 文件格式访问、从 a u t o l i s p 读取图形数据库、采用a c t i v e xa u t o m a t i o n 程序接l z l 访问以及采用 o b j e c t a r x 访问。本文重点介绍采用a c t i v e x a u t o m a t i o n 程序接口访问a u t o c a d 图形数据库。 a c t i v e ) ( a u t o m a t i o n ( 也称为c o ma u t o m a t i o n ) 与专门的编程语言没有直接 关系,它是套接口,是类型库中所声明的到a u t o c a d 的c o m 对象的调度接 口,由不同语言写成的程序能够运用该接口获得自动服务器的方法和属性。这些 接口在类型库( t l b ) e o 定义,用户可以在许多编程环境中使用这个类库。该接口定 西南交通大学硕士研究生学位论文第14 页 义了具有可变半径属性的圆对象。这个更改如何实现是自动服务器的核心,自动 服务器指的是a u t o c a d 。a c t i v e ) ( a u t o m a t i o n 可以随时访问图形数据,可以利用 它远程控制a u t o c a d 的绝大多数函数。 c o m ( m i c r o s o f t 的组件对象模型) 规定了如何产生通讯,它是a c t i v e x a u t o m a t i o n 的基本结构。在特定环境下如何访问接口取决于编程语言和它的语法 规则。人多数的人采用v b 或v b a 编写使用a c t i v e x a u t o m a t i o n 的客户程序。 2 3 1 访问a u t o c a d 数据库 a c t i v e x a u t o m a t i o n 的客户( 即用户所编写的访问a u t o c a d 对象的软件) 和a c t i v e x a u t o m a t i o n 服务器( 即a u t o c a d ) 是两个互不相关的程序,它们不需要 共享同一个地址空间甚至能够在不同的计算机上运行。它们通过一套标准接口进 行通讯。 要打开a u t o c a d 的a c t i v e x 通讯,需要获得在内存中运行的a u t o c a d 对 象,或创建一个新的a u t o c a d 对象。一旦把应用程序连接到a u t o c a d 上,就 可以访问a u t o c a d 已经打开的图形、或者创建和打开另一个图形。 a u t o c a d 的a c t i v e xa u t o m a t i o n 服务器提供给用户应用程序的一个服务是 d o c u m e n t s 集合。d o c u m e n t s 集合包含了当前所有在a u t o c a d 中打开的并与用户 连接的文档( 它是a c t i v e xa u t o m a t i o n 用于图形数据库的名称) 。若有可用的数据 库,则a u t o c a d 0 b j e c t d o c u m e n t s i t e m ( 0 ) 是第一个可用的数据库, a u t o c a d o b j e c t d o c u m e n t s n e w 从模板图形中创建一个新的图形数据库, a u t o c a d o b j e c t d o c u m e n t s o p e n 打开另一个图形文件。 用户可运用a u t o c a d o b j e c t d o c u m e n t s i t e m ( i n d e x ) 选择用户程序要使用的 图形数据库,而a u t o c a d o b j e c t a c t i v e d o c u m e n t 是a u t o c a d 中当前被激活的图 形数据库。 2 3 2 集合、对象和接口 图形数据库中的对象遵循严格的层级结构,每个对象都明确地包含于一个容 器,而容器只可能是另一个容器的成员。在v b 中,容器的等价物是集合,若要 查询包含所有层的符号表,用文档对象的l a y e r s 属性,该属性从图形数据库内 返回包含所有层的集合。集合有c o u n t 属性,它返回集合中对象的数量。运用i t e m 方法可以访问集合中的任意对象,集合索引从0 开始。 一旦触及符号表记录,就可以利用对象的属性访问所有相关的数据库字段, 西南交通大学硕士研究生学位论文第15 页 例如,a l a y e r o b j e c t h a n d l e 返回层句柄,而a 1 a y e r o b j e c t n a r n e 返回层名。这一 系列的属性和方法( 以及事件) 形成了通往层对象的自动化接口。每个数据库对象 通过a c t i v e k a u t o m a t i o n 都具有它自己的有效的接口。 2 3 3 通过a c t iv e xa u t o m a t i o n 访问实体 在图形数据库内部,实体( 具有图形特性的对象) 属于块容器。运用a c t i v e x a u t o m a t i o n 访问这些容器和容器中的对象十分简单、合理。 图形数据库f 文档对象) 包含一个b l o c k s 集合,该集合包含了所有的块容器。 用集合索引或直接用块名可以访问它们。一旦用户找到实体( 块容器中的对象) , 就可以通过相关属性来获得该实体的数据库信息。例如,若知道实体是 a c d b l i n e ,就可以用s t a r t p o i n t 和e n d p o i n t 属性查询线的起点和终点。 2 3 ,4 通过a c t iv e xa u t o m a t i o n 创建实体 a c t i v e xa u t o m a t i o n 接口对于每一个实体类型有一个独立的创建方法, 用户需提供最少的实体属性去创建有效的对象。因此,要创建圆,必须提供半径 和圆心。运用a c t i v e x a u t o m a o o n 创建对象时不能提供附加属性,如层和颜色属 性,必须在以后设置。因为块容器在a c t i v e x a u t o m a t i o n 中正好是集合,所以用 a d d 方法将对象添加到集合中就创建了一个新对象。添加了对象的集合可能是任 何个块。 2 4 图形数据库的数据类型 图形数据库是一系列收集在不同容器内的各种对象,对象可以是线、弧或者 圆。每个对象有自己的属性集,用于定义对象所属类的特定实例,如圆的定义属 性是圆心和半径。数据库对象采用的基本数据类型有以下几种:有符号的1 6 位 整数、伪整数、用于长度单位、角度单位、r 期和时| - 白j 值的实数、字符串、旬柄、 对象指针以及三维坐标的点。 图形数据库中的所有信息都应该由数值和或字符串组成,但也有例外,图 形数据库中也有可能存储其他种类的信息,像引擎所支持的真彩色动画和声音, 可以将这样的信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目管理与咨询专业技能作业指导书
- 普通行业产品升级与研发计划
- 大专法律系毕业论文
- 财经法规毕业论文
- 工商管理系专科毕业论文
- 工程力学本科生毕业论文
- 系毕业论文选题
- 2025资助出版合同样本
- 机械专业毕业论文外文
- 2025年河北张家口怀来县事业单位公开专项招聘安置未就业随军家属3名笔试备考试题及答案解析
- 承建工程合作意向书2024年标准版
- 临床护理应急演练脚本
- 成人体外膜氧合辅助期间感染防控专家共识2024版
- 2024年河北石家庄市井陉矿区人力资源和社会保障局公益性岗位招聘100人历年(高频重点提升专题训练)共500题附带答案详解
- DL-T-1798-2018换流变压器交接及预防性试验规程
- CJT487-2015 城镇供热管道用焊制套筒补偿器
- 抖音火花合同电子版获取教程
- 优化方案语文必修上册
- 云南省大中型水电站情况表
- 旅游景区规划设计方案
- 建筑太阳能光伏发电应用技术标准 DG-TJ08-2004B-2020
评论
0/150
提交评论