xj_ccad
发表于 2009-8-19 16:09:00
不错,学习学习
石井鱼
发表于 2009-8-19 16:19:00
<p>很好的工具,谢谢楼主大人</p>
liao1968
发表于 2009-8-19 16:24:00
学习,下载来试式!
liu_kunlun
发表于 2009-8-19 16:31:00
很有实用价值的程序。
狂刀无痕
发表于 2009-8-19 22:43:00
<p><font size="4">不知道CAD那个格式刷MATCHPROP命令的多选又无需确定是怎么实现的。</font></p><p><font size="4">(ssget ":s")</font></p>
liminnet
发表于 2009-8-20 08:57:00
caoyin
发表于 2009-8-20 09:02:00
;;无痕问这个问题我有点吃惊,下面的程序可以实现——是受了你的程序的启发,就是 ERRNO 的应用
;; (lt:ssget-for msg flt fun)
;; 参考无痕的程序
;; [功能] 获取选择集并实时进行指定函数的操作---没加入出错处理
;; [参数] msg---提示信息(STR),如果nil时则显示缺省为"\n选择对象: "
;; flt---等同于 ssget 函数图元过滤表
;; fun---要对所选对象执行的函数
;; [返回] 成功->选择集,反之->nil
;; [测试]
;|
(lt:ssget-for "\n删除对象:" nil 'entdel)
(defun c:tt ()
(lt:ssget-for "选择要改变颜色的直线:"
'((0 . "line"))
'(lambda (x)
(if (or (>= col 256) (not col)) (setq col 0))
(vla-put-color (vlax-ename->vla-object x) (setq col (1+ col)))
)
)
)
|;
(defun LT:SSGET-FOR (MSG FLT FUN / FLAG NOM N SS SS2 E)
(setq NOM (getvar "NOMUTT") FLAG T)
(if MSG (setq MSG (strcat "\r" MSG))
(setq MSG "\r选择对象: ")
)
(setvar "NOMUTT" 1)
(while FLAG
(princ MSG)
(if (setq SS (ssget ":S" FLT))
(progn
(or SS2 (setq SS2 (ssadd)))
(repeat (setq N (sslength SS))
(setq E (ssname SS (setq N (1- N))))
(if FUN (apply FUN (list E)))
(ssadd E SS2)
)
)
)
(if (= (getvar "ERRNO") 52)
(setq FLAG nil)
)
)
(setvar "NOMUTT" NOM)
SS2
)
liminnet
发表于 2009-8-20 10:02:00
dbx511
发表于 2009-8-20 11:50:00
好象不能用啊,只能选择源目标字,之后就没反应了.我的cad版本是2004
淮上
发表于 2009-8-20 19:49:00
liminnet发表于2009-8-20 10:02:00static/image/common/back.gif对于无痕前辈提供的 ERRNO 变量的用法,其实有一个BUG在里面,他没发现,我测试出来啦
<p></p>比无痕厉害,佩服!!说说 bug 是什么?让我也学学。