AutoCAD二次开发教程复习总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAD复习题及答案1、AutoLISP
2、VisualLISP
3、VBA
4、ADS
5、ObjectARX
6、.NET 托管API
7、ActiveX Automation
8、Visual Java
1、 AutoCAD二次开发方式有哪些?各自优缺点?
2、 AutoCAD 中实现ObjectARX .NET API 的有哪些优点?
3、 AutoCAD .NET API 的三个主要的DLL文件是?
4、简述ObjectARX .NET API所对应的版本。
5、简述AutoCAD数据库的组成。
AutoCAD数据库是用来管理当前图形中的图元实体和其他非几何信息的容器对象,一个AutoCAD数据库包含一套固定的符号表和命名的对象词典,每一个符号表包含一个特定符号
表记录类的实例,例如层表(AcDbLayerTable)中包含层表的记录,块表(AcDbBlockTable)中包含块表记录,所有的AutoCAD实体均包含于块表记录中。词典提供了一种通用容器来存储对象,它可以保存AcDbObject对象以及其它对象,也可以创建新的对象词典,将新的数据库元素加入其中。
AutoCAD数据库的组成如图所示,从图中我们可以看出数据库主要由一下内容组成:1)层表AcDbLayerTable和层表记录AcDbLayerTableRecord,。
2)块表AcDbBlockTable和块表记录AcDbBlockTableRecord。AutoCAD中所有可见实体均存储在块表记录。块表中包含有两条特殊的记录*MODEL_SPACE(模型空间)和*PAPER_SPACE (图纸空间)。
3)其他符号表和符号表记录。
4)命名对象词典。缺省情况下当AutoCAD数据库被建立以后,词典中就包括了组词典以及MILINE样式词典。
5)符号表和命名对象词典都是存储数据库对象的容器,用于组织和管理数据库对象。AutoCAD数据库通常有9个固定类型的符号表,开发者不能向数据库中新增或者删除任何一种类型符号表,能实现的是向符号表中添加对应的符号表记录。
6、 Application 对象是AutoCAD .NET API 对象模型的根对象,它包括哪些部分?
Application 对象是层次结构的根,而且它提供对AutoCAD 的主窗口的访问。
7、列出所有图形与非图形对象,他们有什么区别?
图形对象,也称为图元,是组成图形的可见对象(例如直线、圆、光栅图像等):1)添加图形对象到图形中是通过正确的块表记录引用,然后使用AppendEntity 方法将一个新对象添加到图形中来完成的
2)要修改或查询这些对象,请从正确的块表记录获得对象引用,然后使用对象本身的方法或特性。每一个图形对象都拥有允许应用程序执行大部分AutoCAD 编辑命令的方法,例如复制、删除、移动、镜像等
这些对象还提供了一些方法,用来设置和检索对象的扩展数据(xdata),亮显和更新对象,以及从另外的图元设置属性。大多数图形对象具有诸如LayerId、LinetypeId、Color 和Handle 之类的典型特性。每个对象也具有一些特有的特性,例如Center、StartPoint、Radius 和FitTolerance
非图形对象是指属于图形的一部分但不可见的(提示性的)对象,例如Layers、Linetypes、DimStyles、TableStyle 等
1)若要创建新的符号表记录,请使用表所有者的Add 方法或使用SetAt 方法添加一个字典到命令对象字典中
2)要修改或查询这些对象,请使用对象本身的方法或特性。每一个非图形对象都有用于特定目的的方法和特性,都有设置和检索扩展数据以及删除自己的方法
8、如何实现对AutoCAD数据库图形对象的访问?给出实例代码。
大部分的集合和容器对象都是通过Document 或Database 对象访问的。Document 和Database 对象都包含一些相应的特性用来访问大多数可用集合的对象或对象ID。
例如,以下代码定义一个变量,并将其设置为当前图形的LayersTable 对象:
9、AutoCAD中集合对象是指?列举出部分实例。
10、如何定义一个用户命令?CommandMethod 所接受的属性包括哪些?
命令和AutoLISP 函数可以通过使用两个属性:CommandMethod 和LispFunction 就可以在AutoCAD .NET API 中被定义
使用CommandMethod 属性定义一个命令,CommandMethod 属性期待一个字符串值,它将当作被定义命令的全局名称。和全局命令名称一起,CommandMethod 属性还能接受如下值:
【Command Flags】-定义命令的行为
【Group Name 】- 命令组名称
【Local Name 】- 本地化命令名称,通常用于特定语言
【Help Topic Name】- 当按F1 键时应该显示的帮助主题名称
【Context Menu Type Flags】- 定义当命令被激活时相应的快捷菜单的状态
【Help File Name】-包含当命令激活并按F1 键时将要显示其中帮助主题的帮助文件
11、如何通过代码调用AutoCAD内部命令?
A、使用SendStringToExecute 方法可以直接将命令发送到AutoCAD 命令行。SendStringToExecute 方法将单个字符串发送到命令行。该字符串必须包含提供给所执行命令的参数,并依照该命令的提示顺序所要求的次序排列这些参数
B、使用SendStringToExecute 执行命令是异步的,直到.NET 命令结束,否则不会被调