1、用户交互
AutoCAD中的用户交互是指提示用户输入指定类型的数据或者从当前图形环境中选择所需要的点或者实体对象,在.net API中要实现用户交互操作需要用到Autodesk.AutoCAD.EditorInput命名空间中的Editor类。
1)输入数据方法:先获取Editor对象,然后获取特定类型的数据(Prompt***Options),这时需要对应类型的对象来接收(Prompt***Result),开发者可以通过判断PromptResult类的Status属性来指示输入是否成功;
2)选择方法:对应“输入数据”流程相应有PromptSelectionOptions和PromptSelectionResult两个类,另外在创建选择集的时候也可以使用过滤器(SelectionFilter)来进行选择。
2、AutoCAD数据库
AutoCAD数据库是DWG文件在内存中的表示,用来存储组成AutoCAD的数据库对象的容器,数据库对象是指可以保存到文件当中的对象,主要包括实体、符号表和对象字典等。
1)实体就是具有图形表示的数据库对象,如直线、圆、圆弧、文本、三维实体、样条曲线和椭圆等,用Entity类表示,AutoCAD中所有实体都保存在块表记录中,而块表记录保存在块表中(BlockTable)。
2)每个新建的图形文件,AutoCAD数据库中都会自动创建9中类型的符号表,每种符号表只能存储指定类型的记录,例如,层表只能保存层表记录LayerTableRecords,开发者既不能创建也不能删除符号表,可以操作的只能是符号表中的记录,如Add,Delete,Item(通过字符关键字获取指定的记录),Has(判断记录是否存在);
3)命名对象词典是所有扩充词典的根对象,其中包含了其它词典,作为非实体对象保存的容器,当AutoCAD创建新图形时,AutoCAD数据库自动创建一个命名对象词典,可以保存除实体对象之外的其它数据库对象,缺省情况下,命名对象词典主要包含组词典、线型词典、布局词典;
4)对数据库的所有操作都要通过事务来完成,事务用Transaction类表示,在事务的范围内,程序能够从对象ID值获取数据库对象,在事务结束之前这些数据库对象都能够有效使用,直到事务成功结束,才能提交在对象上的操作,相关操作包括StartTransaction,Commit,Abort,Dispose等等;
5)数据库对象在数据库中按照层次保存,每个数据库对象,无论是实体还是层表记录都必须存储在特定的容器中,其层次关系如下图所示:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删