正在读取数据,请稍侯
时 间 记 忆
正在读取数据,请稍侯
最 新 评 论
正在读取数据,请稍侯
专 题 分 类
正在读取数据,请稍侯
最 新 日 志
正在读取数据,请稍侯
最 新 留 言
正在读取数据,请稍侯
搜 索
用 户 登 录
正在读取数据,请稍侯
友 情 连 接
博 客 信 息
正在读取数据,请稍侯


 
AutoCAD ARX 学习笔记(二)
[ 2007-7-24 22:59:00 | By: Blue.Leo ]
 

     这几天都是学习一些AutoCAD和ObjectARX的理论知识,主要目的是和它们混个脸熟,了解它们的过去和现在,学习它们的组织结构,为以后做需求打好基础。

     AutoCAD数据库用来存储组成AutoCAD图的对象和实体。基本的数据库对象是实体、符号表和词典。实体是在AutoCAD图内部表示图的一种特殊数据库对象,线、圆、弧、文本、实心体、区域、复合线和椭圆都是实体,用户可以在屏幕上看见实体并能对其进行操作。符号表和词典是用于存储数据库对象的容器。层表(AcDbLayerTable)是符号表之一,它包含层表记录,块表(AcDbBlockTable)也是一个符号表,包含块表记录。所有AutoCAD实体都属于块表记录。词典为存储对象提供了比符号表更加普通的容器。

     在AutoCAD中创建的对象被添加到数据库对应的容器对象中,实体被添加到块表的记录中,符号表记录被添加相应的符号表中,所有其他对象被添加到命名对象词典中,或添加到其他对象拥有的对象(拥有其他对象的对象最终属于命名对象词典)中,或添加到扩充词典中。

     数据库中包含一套(九个)符号表和一个命名对象词典,表包括块表、层表和线型表。块表最初包含三个记录,一个记录叫做*MODEL_SPACE, 两个图纸空间记录叫作*PAPER_SPACE和*PAPER_SPACE0。这些块表记录表示模型空间和两个预先确定的图纸空间布局。层表最初包含一个0层记录。线型表最初包含CONTINUOUS线型。命名对象词典是当数据库被创建后,命名对象词典就已经包含四个数据库词典:GROUP(组)词典、MLINE类型词典、布局词典和绘图式样名词典,在MLINE类型词典内,总有STANDARD类型。

 

根据上面的图,在AutoCAD中创建线,并将其添加到模型空间块表记录中需要以下几步:

1、  建立线对象(new AcDbLine)。

2、  通过acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBT)返回当前图中块表对象指针。

3、  然后通过得到的块表以写模式打开模型空间块表记录,同时把块表对象关闭(不用就马上关闭)。

4、  通过块表记录的appendAcDbEntity把新建立的线实体追加到记录中去,同时返回新添加线的实体ID

5、  关闭块记录和线对象。

 

同理,Circle也是这样操作的。

 

今天主要了解AutoCAD中怎么创建实体对象,以及AutoCAD是怎样存放的。由于时间原因,创建层和添加组就不说了,都比较类似的。

 

 
 
  • 标签:ObjectARX 2007 
  •  
    Re:AutoCAD ARX 学习笔记(二)
    [ 2008-5-3 11:49:00 | By: xuhaiyan8825 ]
     
    xuhaiyan8825你好,我最近也在学CAD二次开发,用VC#.NET和SQL SERVER
    对这方面没有啥经验,希望博主讲点基础的东西,最好是从大局上概念上把握那种,不甚感激!
     
     
    发表评论:
    正在读取数据,请稍侯