前面记录了一堆东西,涉及到AutoCAD .NET中的各种对象,感觉如果不整理一些还是挺乱的,善于总结是好习惯!
在CAD中其实里面的所有的内容都可以看成是对象,不然C#这种面向对象的语言也不会在这里如鱼得水。
其实每一个CAD文件(DWG或者是DXF)都对应了一个数据库(Database),之前也了解了,如果需要对CAD文件进行操作,先得声明一个数据库对象,也就是是数据库本身也就是一个对象
Database db = HostApplicationServices.WorkingDatabase;
这样才能拿到这个数据库中的的各种组成部分,包括点、多段线、文字、图层、颜色、线型,这些都是对象,总结下来一句话:“一切皆对象”,即使是CAD图形本身和AutoCAD引用程序本身都是一个对象。
对象真多!能不能给自己也new一个~~
这个东东其实前面已经提过好几遍了,就是没有单独整理一下,这些底层的东西最好是搞清楚,不然后面脑袋里会乱成浆糊
Application对象下面的属性就是上图所示,图稍微有点长,看不懂没关系,了解大致框架
DocumentManger属性用于返回DocumentCollection对象,以便提供访问当前打开AutoCAD图形的功能,并允许你打开、保存、创建图形文件。MainWindow属性则允许访问引用程序的名称、主窗口大小、位置以及可见性等。其它的属性提供了访问应用程序特有的数据功能,如信息中心InfoCenter、主窗口、状态栏等。
Document对象是DocumentCollection对象的一部分,本质上就是一个CAD图形,提供了访问与Document对象想相关联的Database对象的功能。
Doucument对象和Database对象一同提供了对编辑器(Editor)、事务管理器(TransactionManger)对象、图形窗口以及图形状态栏的访问。
Editor对象也就是之前我们用来和CAD窗口交互的那个东东,它提供了获取拥护输入的功能,你的输入形式可以是一个点或者说键入的一个字串和数值。
而事务管理器对象(TransactionManger)则用来管理多个数据库对象,事务可以嵌套。这就是我们之前要在数据库操作的时候,每次都要打开事务处理,最后提交事务处理的缘故。
Database对象包含AutoCAD所有的图形对象和大部分的非图形对象,其中就包含实体对象、符号表、命名字典等
这里的实体对象就是之前我们涉及的那些:直线、圆、文字、填充、多段线等
符号表和字典对象则提供对非图形对象的访问,例如:块、图层、线型、布局等。
在CAD中每一个图形都包含九个固定的符号表,不能往数据库中添加新的符号表。
每种符号表智能存储特定类型的对象,如块表存储块表记录。
而字典则是一种通用的容器,可存储任何类型的对象。
这个我们之前文章一直涉及,这里也在此提及,毕竟CAD里面图形就是很基本也很重要的一个东东。
图形对象也就是图元,之前列举的那一堆,多段线、文字、各种图形。
非图形对象则是属于图形中的一部分不可见的对象,如图层(Layers)、线型(Linetypes)、标注样式(DimStyles)、表样式(TableStyle)。
就总结到这,有时候其实我们其实不是很关注这些基本内容,一上来就是代码,就是实现目的,怎么来的可能不是很清楚,未免有点本末倒置。
代码的最终目的是效率提升没错,但也别忽略基本的东西。