明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4076|回复: 15

[Scmold]Lisp中运用ARX封装函数

  [复制链接]
发表于 2011-9-18 22:22:25 | 显示全部楼层 |阅读模式
本帖最后由 chpmould 于 2012-9-9 23:16 编辑

Lisp调用ARX封装函数:    编写此函数的起因是工作需求,经常绘制大量的实体图形,从而想借用ARX的效率,LISP编写的简便而写此函数,如果需求的人多我将继续扩展...

下面是直接在LISP中应用的例子:

  1. ;;使用前先加载ARX封装函数
  2. ;;
  3. ;;调用绘线例子
  4. (defun c:tal ()
  5.   (setq pt1 (getpoint "\n指定第一点:"))
  6.   (setq pt2 (getpoint pt1 "\n指定下一点:"))
  7.   (AddLine pt1 pt2);两点绘制线
  8.   (princ)
  9. );defun

  10. ;;
  11. ;;调用绘圆例子
  12. (defun c:tac ()
  13. (setq pt1 (getpoint "\n指定中心点:"))
  14. (AddCircle pt1 10.0);中心点+直径
  15. (princ)
  16. );defun


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-9-18 22:24:32 | 显示全部楼层
学以致用,才是真理... ...
发表于 2011-9-19 10:22:53 | 显示全部楼层
附件中ARX封装的函数有哪些,可否列出
发表于 2011-9-19 10:43:44 | 显示全部楼层
请教封装函数的名称及调用示例。
 楼主| 发表于 2011-9-19 20:51:38 | 显示全部楼层
xiaxiang 发表于 2011-9-19 10:22
附件中ARX封装的函数有哪些,可否列出

        目前就直线和圆两函数,因为之前我在编写大量绘图程序时用的频率最高的就是这两个,所以暂时没有写太多,如果需要的人多,我后续再扩展...
 楼主| 发表于 2011-9-19 20:54:42 | 显示全部楼层
本帖最后由 chpmould 于 2011-9-19 20:58 编辑

一楼代码中这两句就是函数应用例子啊...

(AddLine pt1 pt2);两点绘制线

(AddCircle pt1 10.0);中心点+直径绘制圆
发表于 2011-9-19 22:06:33 | 显示全部楼层
也可以建lisp库函数
  1. (defun AddLine(StartPoint EndPoint /)
  2.   (entmake (list '(0 . "LINE")(cons 10 StartPoint)(cons 11 EndPoint)))
  3. )
  4. (defun AddCircle(CenterPoint Diameter /)
  5.   (entmake (list '(0 . "Circle")(cons 10 CenterPoint)(cons 40 (/ diameter 2.0))))
  6. )

可将库函数编译为vlx文件,启动AutoCAD时就加载进去。
调用库函数如下:
  1. (defun c:tal ()
  2.   (setq pt1 (getpoint "\n指定第一点:"))
  3.   (setq pt2 (getpoint pt1 "\n指定下一点:"))
  4.   (AddLine pt1 pt2);两点绘制线
  5.   (princ)
  6. )

  7. (defun c:tac ()
  8.   (setq pt1 (getpoint "\n指定中心点:"))
  9.   (AddCircle pt1 10.0);中心点+直径
  10.   (princ)
  11. )

发表于 2011-9-20 00:51:26 | 显示全部楼层
这类没啥意义的贴,说明啥?
 楼主| 发表于 2011-9-20 00:58:10 | 显示全部楼层
cabinsummer 发表于 2011-9-19 22:06
也可以建lisp库函数

可将库函数编译为vlx文件,启动AutoCAD时就加载进去。

谢谢cabinsummer
我知道Lisp可以这么做, 正因为LISP编写小程序方便,所以我才想借用ARX的效率而写些函数,另外也方便用此方法写相关软件与LISP之间的接口扩展...
发表于 2011-9-20 09:50:22 | 显示全部楼层

CAD的几个命令,可以在执行命令的时候,动态显示.
可以实时看到显示效果,实在是众编程者所要的那种效果.
这种效果,用OBJECTARX来实现是比较简单的.
不过用AUTOLISP实现起来就有点吃力了.
因为要不断的entmod实体,实在是比较慢,而且会卡.一闪一闪的.
。。。

以上摘自无所不及主页 http://wujimmy.com/article.asp?id=249
楼主看来是OBJECTARX的高手了
如果楼主能做出这个copy函数来供大家调用,就太好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 13:30 , Processed in 0.194827 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表