AutoCAD二次开发培训_讲义
- 格式:ppt
- 大小:4.33 MB
- 文档页数:183
第 1章 Hello World: 工程的创建在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。
我们将使用Visual Studio .NET来创建一个新的类库工程。
通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。
这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。
当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
1) 启动Visual ,选择”文件>新建>工程”(File> New> Project)。
在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。
点击确定按钮来创建工程。
2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。
接下来向这个类加入命令。
要加入命令,你必须使用AutoCAD .NET托管封装类。
这些托管封装类包含在两个托管模块中。
要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。
在弹出的”添加引用”对话框中选择”浏览”。
在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。
再一次选择”浏览”,在AutoCAD 2006的安装目录下找到“acmgd.dll”并打开它。
当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。
正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX 托管类,而acmgd.dll包含AutoCAD托管类。
3) 使用对象浏览器(Visual 的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。
AutoCAD高级培训第五讲——AutoCAD二次开发基础(AutoLISP 语言编程概述)二次开发:采用编程的方法扩充AutoCAD的功能,如增加新的绘图命令、新的修改命令等。
例如,AutoCAD中本来没有绘制正弦曲线(函数形式为Y=Asin(X+ω))命令,通过编程开发一个AutoCAD的新命令,使用户可以使用该命令实现绘制正弦曲线,在命令的交互过程中,系统提示用户依次输入所需要的参数:坐标原点、振幅、周期数、初相角等。
常用二次开发工具:AutoLISP语言(运行于VisualLISP集成开发环境)、ActiveX、VBA、JAVA、C、ObjectARX等需要掌握:AutoLISP语言(高级证书所必需)一、AutoLISP 语言简介1.LISP——List Processing Language2.AutoLISP:嵌套于AutoCAD内部,将LISP与AutoCAD有机结合,是AutoCAD开发的重要工具。
3.AutoLISP的功能:♦可直接调用AutoCAD的几乎全部命令♦具备一般高级语言的结构和功能:顺序、条件分支、循环等结构;I/O、数值计算、逻辑判断、数据类型转换等功能♦具备一般高级语言所没有的强大的图形处理功能4.AutoLISP的特点♦仅能以解释方式运行于AutoCAD内部(解释性程序设计语言)♦程序的全部内容均以函数形式给出,没有语句的概念,也没有其他语法结构,执行程序就是执行一系列的函数调用,也称“函数语言”♦把数据和程序统一表达为表结构,程序即数据,数据即程序,故也称为“表语言”♦运行程序就是对函数求值的过程,在此过程中实现函数的功能例如,下面的内容就是一个完整的AutoLISP程序:(defun math()(setq x 10)(setq y 20)(+ x y)(* x y))该程序运行的结果是:200二、AutoLISP的数据类型♦整型数♦实型数♦符号(SYM)♦字符串(STR)♦表(LIST)♦文件描述符(FILE)♦AutoLISP的内部函数(SUBR)♦AutoCAD的选择集(PICKSET)♦AutoCAD的实体名(ENAME)♦函数分页表(PAGETB)基本应用:涉及用蓝色显示的6种,前4种称为“原子”。
AUTOCAD二次开发培训大纲一、熟悉Visual C++编程。
(该项不进行培训)。
二、简单学习AutoCAD环境、绘图。
如熟悉AutoCAD可跳过此环节。
三、学习AutoLispAutoLisp 表达式AutoLisp 数据类型AutoLisp 词法结构及函数规则AutoLisp 程序文件AutoLisp 变量AutoLisp 字符串处理AutoLisp 表处理AutoLisp 函数处理AutoLisp 出错处理AutoLisp 选择集处理AutoLisp 实体处理四、学习ObjectArxObjectArx基础知识1. ObjectArx定义的数据类型2. 结果缓冲区和结果类型码3. ObjectArx公共函数(全局函数)的返回值4. ObjectArx定义的其它代码(一些宏定义)5. 定义外部函数,acedDefun、addCommand6. 调用AutoCAD命令7. 如何调用外部函数(命令) acedInvoke acedCommond()8. 向外部函数传递参数9. 链表的使用与管理10. 在程序中加载其它应用程序11. 程序运行出错时的处理使用AutoCAD资源1. 全局函数2. 使用AutoCAD系统变量3. 查询或改变AutoLisp变量的值4. 查找文件5. 使用对象捕捉6. 使用图形几何信息7. 确定文本外框尺寸8. 数据类型转换与单位转换9. 使用字符管理函数10. 坐标系变换11. 使用通配符对实体、选择集和符号表的操作。
(用全局函数)1. 实体名称与实体表示2. 获取实体的定义数据3. 修改实体4. 创建实体5. 扩展数据的处理6. 构造选择集的方法7. 使用过滤器构造选择集8. 操作选择集如何创建一个ARX应用程序1. AutoCAD接口函数介绍2. 注册AutoCAD新命令数据库和数据库对象1. 数据库初始化2. 创建和组织数据库3. 保存数据库4. 插入一个数据库5. 设置当前数据库值6. 打开和关闭数据库对象实体对象1. 实体简介2. 实体的共同属性3. 实体的共同函数4. 简单复杂实体容器对象1. 符号表2. 字典3. 扩展记录从AcDbObject 派生新类《高级》从AcDbEntity 派生新类《高级》反应器《高级》使用AcGi 库《高级》使用AcGe库1. AcGe层简介2. 基本几何类。
AutoCAD高级培训第六讲——AutoCAD二次开发示例(Visual LISP集成开发环境简介)一、Visual LISP概述Visual LISP简称VLISP,是为加速AutoLISP程序开发而设计的软件工具,它提供了一个完整的集成开发环境,包括编译器、调试器和其他工具,它可以显著地提高自定义AutoCAD的效率。
VLISP提供的主要工具有:文本编辑器、格式编排器、语法检查器、源代码调试器、检验和监视工具、文件编译器、工程管理系统、上下文相关帮助与自动匹配功能和智能化控制台等。
二、启动和退出Visual LISP集成开发环境1.启动步骤:(菜单方式)(1)启动AutoCAD(2)工具——AutoLisp——Visual LISP编辑器若使用键盘命令,则:命令:vlisp或vlide2.退出:文件——退出三、Visual LISP 集成开发环境介绍包含以下几个部分:1.菜单栏2.工具栏:标准、调试、工具、搜索、视图(共5个)3.控制台窗口可输入AutoLisp命令,代替菜单和工具栏命令4.状态栏——屏幕底部显示Visual LISP的状态信息5.跟踪窗口启动时包含:关于Visual LISP当前版本的信息、启动Visual LISP遇到错误时的一些信息。
6.文本编辑器打开或新建一个Visual LISP源程序,就可以看到文本编辑器的全貌。
7.其他Visual LISP窗口(必要时才打开)(一)Visual LISP菜单介绍菜单的内容:随着激活窗口的不同菜单内容将会不同。
1.文件:打开、新建、保存2.编辑:复制、粘贴、括号匹配3.搜索:查找、替换文本、设置书签4.视图:查找、替换变量及符号值等5.工程:应用程序的工程功能——管理项目、编译程序等6.调试:提供程序调试功能——设置和删除断点、单步执行、检查变量状态、检查表达式结果等7.工具:设置Visual LISP选项文本格式、环境选项变量,如窗口和工具栏的位置8.窗口:提供窗口管理功能9.帮助:提供帮助功能,包括显示在线帮助(二)工具栏介绍工具栏——包括一系列功能的Vlisp命令组1.标准:新建、打开、保存、打印输出、剪切、复制、粘贴、取消、恢复、完成词语功能2.工具:加载整个活动窗口代码、加载指定部分代码、语法检查(全部、指定部分)、对窗口代码格式化(整个活动窗口、指定代码)、设置注释代码、取消整块注释块、在线帮助3.搜索:查找、替换、查找并替换、设置或取消书签、下一个书签、上一个书签4.视图:切换到AutoCAD窗口、选择窗口、Visual LISP控制台、打开检验窗口、堆栈跟踪、符号服务、自动匹配、显示监视窗口5.调试:下一层嵌套表达式、下一个表达式、跳出表达式、继续执行、退出、重置、设置或取消断点切换、添加监视、显示上一个断点(三)控制台操作1. 控制台的功能这里是用命令操作的地方(Visual LISP命令、AutoLISP命令),并能看到结果,类似于AutoCAD的命令行窗口如:(setq a “hello,The world!”)查看a的值时在控制台窗口用:a↵(↵表示回车)AutoCAD命令:!a↵2.Visual LISP控制台窗口中的独特特性♦可以在新的一行上输入上一行没有完成的AutoLISP表达式♦可在↵前输入多个表达式,并在Visual LISP给控制台返回一个值之前将为每一个表达式求值♦光标在任意位置均可用↵移至提示符所在行上,如果选中的有文本,则同时移至提示符所在行(此功能可以复制)♦使用Tab键可获得以前输入的文本,每按一次即可将上一次的文本显示,循环执行。