谁能给个lisp程序,功能是块属性显示的开或关的
<p>我想在CAD命令行中输入cc ,如果块中有个属性名称是:文件名称,此时如果属性值原来不显示在屏幕上,就把它显示出来,如果原来是显示出来的,就把它关掉,怎么写的?</p> <p>可能我说的不够清楚,我是想这样,我有个图形文件,里面有个1000个块,块的名字叫AA,块中有个属性标记为“类型”,值就有很多了,如“阀门”“三通”等等。一般情况下,这个值是不在图上显示出来,如果我要把它显示出来,输入“battman", 可以用鼠标操作把显示那个开关打勾。</p><p>我是不想要鼠标操作这么麻烦,我想在命令行中输入CC,就把值显示出来,输入DD,就不把值显出来</p> 试试看关闭属性显示 明经 ZZXXQQ 于2009情人节
(DEFUN C:CC ()
(IF (SETQ SS (SSGET "X" '((0 . "INSERT") (66 . 1)))) (PROGN
(SETQ I -1)
(REPEAT (SSLENGTH SS)
(SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I))))
ENT1 ENT)
(WHILE (= (CDR (ASSOC 0 (SETQ ENT1 (ENTGET (ENTNEXT (CDR (ASSOC -1 ENT1))))))) "ATTRIB")
(IF (= (CDR (ASSOC 2 ENT1)) "类型") (PROGN
(SETQ ENT1 (SUBST '(70 . 5) (ASSOC 70 ENT1) ENT1))
(ENTMOD ENT1)
(ENTMOD ENT)
))
)
)
))
(PRINC)
)
;显示属性 明经 ZZXXQQ 于2009情人节
(DEFUN C:DD ()
(IF (SETQ SS (SSGET "X" '((0 . "INSERT") (66 . 1)))) (PROGN
(SETQ I -1)
(REPEAT (SSLENGTH SS)
(SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I))))
ENT1 ENT)
(WHILE (= (CDR (ASSOC 0 (SETQ ENT1 (ENTGET (ENTNEXT (CDR (ASSOC -1 ENT1))))))) "ATTRIB")
(IF (= (CDR (ASSOC 2 ENT1)) "类型") (PROGN
(SETQ ENT1 (SUBST '(70 . 0) (ASSOC 70 ENT1) ENT1))
(ENTMOD ENT1)
(ENTMOD ENT)
))
)
)
))
(PRINC)
)
<p>我加载了,好象没有效果.</p><p>其实我就是想把 知道一下 输入 BAttman 后,出来的对话框我们所做的对某个属性显示模式的选择,用代码怎么表达,</p><p>就是在lisp中写上(defun c:cc()<br/> (command "_battman" "<font color="#f70909">这里要写什么参数,才能把某个属性的显式模式打开或关闭"</font>))</p> attdisp 不知道有没有用 是控制全部属性的显示的 <p>;;;*************************************<br/>;;; No.7 修改图块属性值显示/关闭 函数 <br/>;;; --- By Ayunger Studio 2009 <br/>;;;*************************************<br/>(defun C:ayBlkAttDisp (/ SS1 xMode xCode entData0 entData1 i)<br/> (initget "C O")<br/> (setq xMode (getkword "\n类型 图块属性(ATTRIB) 显示关闭(C)/打开<O>: "))<br/> (if (or (= xMode nil) (= xMode "O"))<br/> (setq xCode 0);then<br/> (setq xCode 5);else<br/> );end_if</p><p> (prompt "\n【提示】选择图块(BLOCK)对象...")<br/> (IF (setq SS1 (ssget '((0 . "INSERT") (66 . 1))))<br/> (progn<br/> (setq i -1)<br/> (repeat (sslength SS1)<br/> (setq entData0 (entget (ssname SS1 (setq i (1+ i)))))<br/> (setq entData1 entData0)<br/> (while (= (cdr (assoc 0 (setq entData1 (entget (entnext (cdr (assoc -1 entData1))))))) "ATTRIB")<br/> (setq entData1 (subst (cons 70 xCode) (assoc 70 entData1) entData1))<br/> (entmod entData1)<br/> (entmod entData0)<br/> );end_while<br/> );end_repeat<br/> );end_progn<br/> );end_if<br/> (princ)<br/>);end_defun<br/></p>
页:
[1]