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 是什么?让我也学学。
页: 1 2 [3] 4 5 6
查看完整版本: [源码]一个超级文字刷程序 - 寻求高手共同完善