第7章 AutoCAD二次开发技术
7.1 向AutoCAD增加新命令
任何CAD系统,都不可能满足所有用户的要求,特别是一
些专业设计用户的要求。而AutoCAD 的特长就是可以用简单的
程序设计,给系统增加一些专业设计所需要的新命令。利用
AutoLISP语言编程就可以很容易地向AutoCAD增加新命令,
用户只要用自定义函数Defun产生一个名为“C :XXX”的函数
即可。
图7.1 标注粗糙度
下面的AutoLISP 函数就是向AutoCAD增加一条标注粗糙度的新命
令,命令名为CCD 。
(defun C:ccd()
(setq bp (getpoint "\nEnter basepoint:")
ang (getangle "\nEnter rotate angle:")
txt (getstring "\nEnter value:")
)
(command "line" bp (polar bp (+ ang (/ pi 3)) 12) "")
(setq pt (polar bp (+ ang (/ pi 1.5)) 7))
(command "line" bp pt (polar pt ang 7) "")
(cond ((< ang pi)
(command "text" (polar pt (+ ang 70) 1.2) "2.5" (* ang (/
180 pi)) (eval txt)))
(T (command "text" "j" "r" (polar pt (+ ang 70) 3.7) "2.5"
(* (- ang pi) (/ 180 pi)) (eval txt)))
)
)
7.2 用户界面的开发设计
菜单是普遍采用的界面形式,它将命令和选择项均列在相对应
的交互设备上,通过鼠标器控制光标等办法来点“菜” (即选择拾取
)。菜单功能是通过菜单文件来实现的,AutoCAD菜单文件是一个
标准的ASCII文件,允许用户根据需要对它进行改造或创建,形成
用户界面。
7.2.1 菜单文件的类型
菜单文件实际上是指一组协同定义和控制菜单区域的显示及操
作的文件。AutoCAD 的菜单文件类型主要有以下5种。
(1) MNU :样板(Template )菜单文件,是ASCII码文本文件。
(2) MNC :将MNU菜单源文件编译之后得到的菜单目标文件。
(3) MNR :菜单资源文件。
(4) MNS :AutoCAD系统所生成的菜单源文件。
(5) MNL :菜单LISP文件。
使用MENU命令可引导AutoCAD从磁盘文件中装载一个新菜单。
1.菜单文件的结构:
每个菜单文件由若干段组成,每段包含若干子菜单和菜
单项。AutoCAD2002标准菜单包含以下10个菜单段。
(1) 下拉菜单段:POP1~POP11
(2) 光标菜单段:POP0
(3) 定点设备按钮菜单段:BUTTONS1 ,BUTTON2
(4) 辅助菜单段:AUX1~AUX4
(5) 工具栏段:TOOLBARS
(6) 图像块菜单段:IMAGE
(7) 屏幕菜单段:SCREEN
(8) 数字化仪菜单段:TABLET1~TABLET4
(9) 快捷键段:ACCELERATORS
(10) 状态栏帮助段:HELPSTRINGS
2.菜单文件的格式:
菜单文件由多个菜单段组成,每段有一个段标题,单独占一行,
格式如下:
***
段名标识该菜单从属于何种设备。AutoCAD有如下段标号:
***MENUGROUP 菜单组名
***BUTTONSn 按钮菜单段
***AUXn 辅助菜单段
***POP0 光标菜单段
***POPn