[Scmold]Lisp中运用ARX封装函数
本帖最后由 chpmould 于 2012-9-9 23:16 编辑Lisp调用ARX封装函数: 编写此函数的起因是工作需求,经常绘制大量的实体图形,从而想借用ARX的效率,LISP编写的简便而写此函数,如果需求的人多我将继续扩展...
下面是直接在LISP中应用的例子:
;;使用前先加载ARX封装函数
;;
;;调用绘线例子
(defun c:tal ()
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n指定下一点:"))
(AddLine pt1 pt2);两点绘制线
(princ)
);defun
;;
;;调用绘圆例子
(defun c:tac ()
(setq pt1 (getpoint "\n指定中心点:"))
(AddCircle pt1 10.0);中心点+直径
(princ)
);defun
学以致用,才是真理... ... 附件中ARX封装的函数有哪些,可否列出 请教封装函数的名称及调用示例。 xiaxiang 发表于 2011-9-19 10:22 static/image/common/back.gif
附件中ARX封装的函数有哪些,可否列出
目前就直线和圆两函数,因为之前我在编写大量绘图程序时用的频率最高的就是这两个,所以暂时没有写太多,如果需要的人多,我后续再扩展... 本帖最后由 chpmould 于 2011-9-19 20:58 编辑
一楼代码中这两句就是函数应用例子啊...
(AddLine pt1 pt2);两点绘制线
(AddCircle pt1 10.0);中心点+直径绘制圆
也可以建lisp库函数
(defun AddLine(StartPoint EndPoint /)
(entmake (list '(0 . "LINE")(cons 10 StartPoint)(cons 11 EndPoint)))
)
(defun AddCircle(CenterPoint Diameter /)
(entmake (list '(0 . "Circle")(cons 10 CenterPoint)(cons 40 (/ diameter 2.0))))
)
可将库函数编译为vlx文件,启动AutoCAD时就加载进去。
调用库函数如下:
(defun c:tal ()
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n指定下一点:"))
(AddLine pt1 pt2);两点绘制线
(princ)
)
(defun c:tac ()
(setq pt1 (getpoint "\n指定中心点:"))
(AddCircle pt1 10.0);中心点+直径
(princ)
)
这类没啥意义的贴,说明啥? cabinsummer 发表于 2011-9-19 22:06 static/image/common/back.gif
也可以建lisp库函数
可将库函数编译为vlx文件,启动AutoCAD时就加载进去。
谢谢cabinsummer
我知道Lisp可以这么做, 正因为LISP编写小程序方便,所以我才想借用ARX的效率而写些函数,另外也方便用此方法写相关软件与LISP之间的接口扩展... “
CAD的几个命令,可以在执行命令的时候,动态显示.
可以实时看到显示效果,实在是众编程者所要的那种效果.
这种效果,用OBJECTARX来实现是比较简单的.
不过用AUTOLISP实现起来就有点吃力了.
因为要不断的entmod实体,实在是比较慢,而且会卡.一闪一闪的.
。。。
”
以上摘自无所不及主页 http://wujimmy.com/article.asp?id=249
楼主看来是OBJECTARX的高手了
如果楼主能做出这个copy函数来供大家调用,就太好了
页:
[1]
2