8350 发表于 2009-7-28 09:50:00

[求助]一个能够将cad文件中的所有字体重新定义为HZTXT字体的lisp

<p>[求助]一个能够将cad文件中的所有字体重新定义为HZTXT字体的lisp</p><p>因为hztxt相对在cad中占用小,放大缩小以及其他操作都会快很多,但是手工在一个一个的定义就相当麻烦, 请求高手帮助。</p>

hzh2000 发表于 2009-7-28 11:05:00

<p>1、新建一个HZTXT字体样式:(command "STYLE" "HZTXT" "isocp,hztxt" "" "0.75" "" "" "" ) ;HZTXT样式 </p><p>2、然后把选择所有字: (setq ss_text (ssget "X" (list (cons -4&nbsp; "&lt;or")&nbsp; (cons 0 "TEXT") (cons 0 "MTEXT") (cons 0 "ATTDEF") (cons -4&nbsp; "or&gt;")&nbsp; )))</p><p>3、更改为这个样式。&nbsp; (if ss_text&nbsp; (ss_entmod ss_text (list (cons 7 "HZTXT") (cons 41&nbsp; 0.75)&nbsp; ) )&nbsp; );if</p><p>;函数ss_entmod</p><p>(defun ss_entmod(ss_ssget tylst /&nbsp; en ed new old ) <br/>&nbsp; (while (&gt; (sslength ss_ssget) 0)<br/>&nbsp;&nbsp;&nbsp; (setq en (ssname ss_ssget 0))<br/>&nbsp;&nbsp;&nbsp; (setq ed (entget en))&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (foreach new tylst<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (setq old (assoc (car new) ed))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ed (subst new old ed))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ed (append ed (list new)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;if<br/>&nbsp;&nbsp;&nbsp; ) ;foreach<br/>&nbsp;&nbsp;&nbsp; (entmod ed)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (ssdel en ss_ssget)&nbsp; <br/>&nbsp; )&nbsp; ;while<br/>) ;defun</p>

8350 发表于 2009-7-28 20:28:00

不行,请写一个简便完整的lisp吧!

hzh2000 发表于 2009-7-28 20:47:00

<p>都写成这样了,你都不会,无可救药</p>
页: [1]
查看完整版本: [求助]一个能够将cad文件中的所有字体重新定义为HZTXT字体的lisp