明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1446|回复: 5

关于2002和2005??

[复制链接]
发表于 2005-1-20 09:40:00 | 显示全部楼层 |阅读模式
我不太清楚在2002和2005以及2004中使用LISP程序,存在哪些不兼容的成分! 如以下的程序我在2005中能运行,可到了2002中就不可以,找不到vlax-ename->vla-object 这个程序命令 (defun C:PRINT()
(defun GetBox(ent / pt1 pt2)
(vla-getboundingbox (vlax-ename->vla-object ent) 'pt1 'pt2)
(mapcar 'vlax-safearray->list (list pt1 pt2))
)
(setq point1 (getpoint "\n请确定要打印的区域: "))
(setq point2 (getcorner point1 "\n请确定区域的对角点 : "))
(setq name (getstring"\n请输入要打印图框的图块名:"))
(setq ss (ssget "w" point1 point2(list '(0 . "INSERT") (cons 2 name))))
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq pts (list (GetBox ent)))
(setq pt(car pts))
(setq point(car pt))
(setq zuob (append zuob (list point)))
(setq i (1+ i))
)
(setq zuob (vl-sort zuob '(lambda(e1 e2) (<(fix(car e1)) (fix(car e2))) )))
(setq zuob (vl-sort zuob '(lambda(e1 e2) (>(fix(cadr e1)) (fix(cadr e2))))))
(mapcar '(lambda(e) (command "-plot" "y" "" "" "" "M" "L" "N"
"W" e (list (+ (car e) 420) (+ (cadr e)297))
"" "C" "Y" "" "Y" "N" "N" "N" "Y"))zuob)
(print zuob)(setq zuob nil)
)
发表于 2005-1-20 09:43:00 | 显示全部楼层
在lisp 使用到vl的功能要先运行 (vl-load-com)         这句行可以用
 楼主| 发表于 2005-1-20 10:24:00 | 显示全部楼层
请详细点,你知道我是很菜的!
发表于 2005-1-20 10:38:00 | 显示全部楼层
把(vl-load-com)这句加到(defun GetBox(ent / pt1 pt2)
后面就可以了
 楼主| 发表于 2005-1-20 10:43:00 | 显示全部楼层
谢谢各位高人!不过,这些到底是怎么回事,但是在2005里为什么就可以不通过(VL-LOAD-COM)就可以运行呢?
发表于 2005-1-20 11:28:00 | 显示全部楼层
应该学会查看帮助文件。。。VL-LOAD-COM是做什么的帮助文件中就有。。。至于为什么2005不用加载,想想就明白了,都用到2005了,开发肯定要用VLISP了,所以就默认自动加载了VLISP扩展功能(我是这么想的)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 21:37 , Processed in 0.189775 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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