Visual LISP是AutoCAD第三代开发语言,它与AutoLISP完全兼容,相比之下功能增强许多,主要有ActiveX、反应器等。ActiveX接口使得VB可以操纵ACAD,这也就是AutoCAD VBA。如今扩展的LISP也有了一系列相应函数,如VL-开头的Visual LISP扩展函数、VLAX-开头的ActiveX函数、VLR-开头的反应器函数、最多而常用的是以VLA-开头的,它们多数在AutoLISP中能找到原型。(前面三类函数在开发人员帮助手册里可以找到,第四类多为"VLA-对应的AutoLISP函数的组合")
对ActiveX 需要知道几个重要概念:
1.对象,他是个广泛的概念,AutoCAD本身、图纸空间、图层、文本样式、一个图元等等都是对象,学习过程中可以理解到。
2.属性,对象具有属性,属性用于描述对象。比如一个圆具有半径、面积、线型等属性。
3.方法,方法为对特定对象的操作,镜像(图元)、缩放(视图)、加载(应用程序)等等都叫方法。
4.集合,是对象的分组。
5.事件,用于反应器。
下面从创建和修改基本对象练习开始:
;;;c:aline函数用Active方法绘制一条直线和一个圆
(defun c:aline(/ doc mspace uti p1 p2 line);定义命令aline
(vl-load-com);加载扩展函数
;获取AutoCAD应用程序的当前活动文档对象
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq mspace (vla-get-modelspace doc));获取模型空