请教:怎样把块参照属性中某一标记的某一个特定值全部修改为另一值
<p>请教各位前辈:</p><p></p><p>建筑筑索引符号为一个块参照_index,有两个属性标记 "1 "和 "- ", 其中标记"1 "表示索引的节点号 ,标记"-"表示索引节点所在的图纸号,原值有25,26,27,28 等等,怎样把选择范围内所有图纸号为27的选出,修改为我想要的图号,比如说修改为50</p><p>谢谢</p><p> </p> 收藏,还看不懂,慢慢消化 <br/>;属性替换 明经 ZZXXQQ 2008.12.27<br/>(DEFUN TT (oldtxt newtxt)<br/> (IF (AND (PRINC "\nSelect a Block have old attribute 选择带属性图块 :")<br/> (SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))<br/> ) (PROGN<br/> (SETQ I 0)<br/> (REPEAT (SSLENGTH SS)<br/> (SETQ EN (SSNAME SS I) ENT (ENTGET EN))<br/> (SETQ I (1+ I) ENT1 ENT)<br/> (WHILE (/= (CDR(ASSOC 0 (SETQ ENT1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT1))))))) "SEQEND")<br/> (IF (= (CDR(ASSOC 0 ENT1)) "ATTRIB")<br/> (IF (= (CDR (ASSOC 1 ENT1)) oldtxt) (PROGN<br/> (SETQ ENT1 (SUBST (CONS 1 newtxt) (ASSOC 1 ENT1) ENT1))<br/> (ENTMOD ENT1)<br/> (ENTMOD ENT)<br/> ))<br/> )<br/> )<br/> )<br/> ))<br/> (PRINC)<br/>)<br/> <p>谢谢版主,但我把文件存为lisp文件加载后命令好像没办法用 ,请问命令行怎样输入,您的程序第一行为 (DEFUN TT (oldtxt newtxt),我在命令行中输入<br/> TT (28 50) ,TT ("28" "50"), DEFUN TT (28 50),DEFUN TT ("28" "50")都没办法使用。附上cad文件</p> <p>所给的是子函数,自己写个主函数就行</p> 使用方法:<br/>(tt "28" "50") <p>已能够使用,谢谢ZZXXQQ前辈。</p> <p>请教ZZXXQQ 前辈:<br/>tt "28" "50") 会把所有节点号(属性标记为"1")和图纸号(属性标记"-")为28的都修改为50了,能不能只将图纸号修改,而节点号不修改,即仅将属性标记为"-"的修改,属性标记为“1”的不修改。</p><p>谢谢</p> 那就再个参数和判断。<br/><br/>;属性替换 明经 ZZXXQQ 2008.12.27-2010.5.19<br/>(DEFUN TT (oldlab oldtxt newtxt)<br/> (IF (AND (PRINC "\nSelect a Block have old attribute 选择带属性图块 :")<br/> (SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))<br/> ) (PROGN<br/> (SETQ I 0)<br/> (REPEAT (SSLENGTH SS)<br/> (SETQ EN (SSNAME SS I) ENT (ENTGET EN))<br/> (SETQ I (1+ I) ENT1 ENT)<br/> (WHILE (/= (CDR(ASSOC 0 (SETQ ENT1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT1))))))) "SEQEND")<br/> (IF (= (CDR(ASSOC 0 ENT1)) "ATTRIB")<br/> (IF (and (= (CDR (ASSOC 1 ENT1)) oldtxt) (= (CDR(ASSOC 2 ENT3)) oldlab)) (PROGN<br/> (SETQ ENT1 (SUBST (CONS 1 newtxt) (ASSOC 1 ENT1) ENT1))<br/> (ENTMOD ENT1)<br/> (ENTMOD ENT)<br/> ))<br/> )<br/> )<br/> )<br/> ))<br/> (PRINC)<br/>)<br/> <p>用(tt "-" "28" "50")选择块后没反应</p> 要给出完整的属性标记
页:
[1]
2