pocoo 发表于 2010-5-17 01:09:00

请教:怎样把块参照属性中某一标记的某一个特定值全部修改为另一值

<p>请教各位前辈:</p><p></p><p>建筑筑索引符号为一个块参照_index,有两个属性标记 "1 "和 "- ", 其中标记"1 "表示索引的节点号 ,标记"-"表示索引节点所在的图纸号,原值有25,26,27,28 等等,怎样把选择范围内所有图纸号为27的选出,修改为我想要的图号,比如说修改为50</p><p>谢谢</p><p>&nbsp;</p>

839928885 发表于 2020-5-29 16:07:33

收藏,还看不懂,慢慢消化

ZZXXQQ 发表于 2010-5-17 12:34:00

<br/>;属性替换 明经 ZZXXQQ 2008.12.27<br/>(DEFUN TT (oldtxt newtxt)<br/>&nbsp;(IF (AND (PRINC "\nSelect a Block have old attribute 选择带属性图块 :")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))<br/>&nbsp;&nbsp;&nbsp;&nbsp; ) (PROGN<br/>&nbsp; (SETQ I 0)<br/>&nbsp; (REPEAT (SSLENGTH SS)<br/>&nbsp;&nbsp; (SETQ EN (SSNAME SS I) ENT (ENTGET EN))<br/>&nbsp;&nbsp; (SETQ I (1+ I) ENT1 ENT)<br/>&nbsp;&nbsp; (WHILE (/= (CDR(ASSOC 0 (SETQ ENT1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT1))))))) "SEQEND")<br/>&nbsp;&nbsp;&nbsp; (IF (= (CDR(ASSOC 0 ENT1)) "ATTRIB")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (IF (= (CDR (ASSOC 1 ENT1)) oldtxt) (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ ENT1 (SUBST (CONS 1 newtxt) (ASSOC 1 ENT1) ENT1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT)<br/>&nbsp;&nbsp;&nbsp;&nbsp; ))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;))<br/>&nbsp;(PRINC)<br/>)<br/>

pocoo 发表于 2010-5-17 15:25:00

<p>谢谢版主,但我把文件存为lisp文件加载后命令好像没办法用&nbsp;,请问命令行怎样输入,您的程序第一行为 (DEFUN TT (oldtxt newtxt),我在命令行中输入<br/>&nbsp; TT (28&nbsp; 50)&nbsp; ,TT ("28"&nbsp; "50"), DEFUN TT (28 50),DEFUN TT ("28" "50")都没办法使用。附上cad文件</p>

mac 发表于 2010-5-17 17:09:00

<p>所给的是子函数,自己写个主函数就行</p>

ZZXXQQ 发表于 2010-5-17 19:39:00

使用方法:<br/>(tt "28" "50")

pocoo 发表于 2010-5-17 22:26:00

<p>已能够使用,谢谢ZZXXQQ前辈。</p>

pocoo 发表于 2010-5-18 22:34:00

<p>请教ZZXXQQ 前辈:<br/>tt "28" "50")&nbsp; 会把所有节点号(属性标记为"1")和图纸号(属性标记"-")为28的都修改为50了,能不能只将图纸号修改,而节点号不修改,即仅将属性标记为"-"的修改,属性标记为“1”的不修改。</p><p>谢谢</p>

ZZXXQQ 发表于 2010-5-19 21:19:00

那就再个参数和判断。<br/><br/>;属性替换 明经 ZZXXQQ 2008.12.27-2010.5.19<br/>(DEFUN TT (oldlab oldtxt newtxt)<br/>&nbsp;(IF (AND (PRINC "\nSelect a Block have old attribute 选择带属性图块 :")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))<br/>&nbsp;&nbsp;&nbsp;&nbsp; ) (PROGN<br/>&nbsp; (SETQ I 0)<br/>&nbsp; (REPEAT (SSLENGTH SS)<br/>&nbsp;&nbsp; (SETQ EN (SSNAME SS I) ENT (ENTGET EN))<br/>&nbsp;&nbsp; (SETQ I (1+ I) ENT1 ENT)<br/>&nbsp;&nbsp; (WHILE (/= (CDR(ASSOC 0 (SETQ ENT1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT1))))))) "SEQEND")<br/>&nbsp;&nbsp;&nbsp; (IF (= (CDR(ASSOC 0 ENT1)) "ATTRIB")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (IF (and (= (CDR (ASSOC 1 ENT1)) oldtxt) (= (CDR(ASSOC 2 ENT3)) oldlab)) (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ ENT1 (SUBST (CONS 1 newtxt) (ASSOC 1 ENT1) ENT1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ENTMOD ENT)<br/>&nbsp;&nbsp;&nbsp;&nbsp; ))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;))<br/>&nbsp;(PRINC)<br/>)<br/>

pocoo 发表于 2010-5-19 22:32:00

<p>用(tt "-" "28" "50")选择块后没反应</p>

ZZXXQQ 发表于 2010-5-20 19:18:00

要给出完整的属性标记
页: [1] 2
查看完整版本: 请教:怎样把块参照属性中某一标记的某一个特定值全部修改为另一值