CAD二次开发在C#中以命名空间的类实线具体的功能操作。其主要用到的命名空间有以下几个:
Autodesk.AutoCAD.ApplicationServices;文档类命名空间(文档打开、关闭)
Autodesk.AutoCAD.DatabaseServices;数据库类命名空间
Autodesk.AutoCAD.EditorInput;编辑器输入类(对象选择、命令输入等)
Autodesk.AutoCAD.Geometry;几何图形类命名空间
具体类库介绍在后面实际使用中遇到时再详细讲述。
以下概念性资料为引用:【CAD二次开发 对象_cad 二次开发 xrecord-CSDN博客】
AutoCAD数据库是DWG文件在内存中的表示,用来存储组成AutoCAD的数据库对象的容器,数据库对象是指可以保存到文件当中的对象,主要包括实体、符号表和对象字典等。
(1)每个新建的图形文件,AutoCAD数据库中都会自动创建9种类型的符号表,每种符号表只能存储指定类型的记录,例如,层表只能保存层表记录LayerTableRecords,开发者既不能创建也不能删除符号表,可以操作的只能是符号表中的记录,如Add,Delete,Item(通过字符关键字获取指定的记录),Has(判断记录是否存在);
符号表包含了一系列的表(共9个),这些表数量是固定的,用户不能增加新的表,也不能删除现有的表。
符号表名称 | 符号表功能 | |
Block Table | 块表 | 存储图形数据库中定义的块。此表中含有两个非常重要的记录:模型空间和图纸空间。 |
Dimension Style Table | 尺寸标注样式表 | 存储尺寸标注样式 |
Layer Table | 层表 | 存储图层 |
Linetype Table | 线型表 | 存储线型 |
RegApp Table | 应用程序名注册表 | 存储为图形数据库中对象的扩展实体数据而注册的应用程序名 |
Text Style Table | 文字样式表 | 存储文字样式 |
UCS Table | 用户坐标系表 | 存储用户保存的用户坐标系 |
View Table | 视图表 | 存储与命令view相关的视图 |
Viewport Table | 视口表 | 存储当系统变量Tilemode值为1时的视口配置,该配置由命令vports创建。 |
(2)实体就是具有图形表示的数据库对象,如直线、圆、圆弧、文本、三维实体、样条曲线和椭圆等,用Entity类表示,AutoCAD中所有实体都保存在块表记录中,而块表记录保存在块表中(BlockTable)。
实体属于Entity,保存在块表记录里,块表记录保存在块表中。
(3)命名对象词典是所有扩充词典的根对象,其中包含了其它词典,作为非实体对象保存的容器,当AutoCAD创建新图形时,AutoCAD数据库自动创建一个命名对象词典,可以保存除实体对象之外的其它数据库对象,缺省情况下,命名对象词典主要包含组词典、线型词典、布局词典;
(4)对数据库的所有操作都要通过事务来完成,事务用Transaction类表示,在事务的范围内,程序能够从对象ID值获取数据库对象,在事务结束之前这些数据库对象都能够有效使用,直到事务成功结束,才能提交在对象上的操作,相关操作包括StartTransaction,Commit,Abort,Dispose等等;
(5)数据库对象在数据库中按照层次保存,每个数据库对象,无论是实体还是层表记录都必须存储在特定的容器中。