[求助]相同的字符各自移到前缀内容的文字下
<font face="Verdana">CAD图中有wx15,wx15 2*,wx15 1*,wx15 4*等字符,以及wx16,wx16 2*,wx16 1*,wx16 4*等字符(*号可为任意字符),<br/>求lsp程序将含前缀(空格号以前的字符为前缀,如上面的wx15,wx16)相同的字符各自移到前缀内容的文字下,左对齐,行距300。</font> ZZXXQQ 发表于 2020-7-30 00:07只对标准文字串"TEXT"有效。对多行文字"MTEXT"无效。
能不能修改一下啊大侠 664571221 发表于 2020-7-29 17:36
Z大怎么用不起来呀
只对标准文字串"TEXT"有效。对多行文字"MTEXT"无效。 ZZXXQQ 发表于 2010-6-2 20:26
试试看,程序先选择标志字串,再选择要排序的字串。
Z大怎么用不起来呀 <p>测试文件</p> <p>可以用CAD自带的查找功能,把前缀替换,再用文字对齐命令即可以达到你想要的效果.</p>
<p> </p> CAD中的有多个不同前缀的字符,我的意思按前缀分组对齐。 <p>qq534206572</p> 试试看,程序先选择标志字串,再选择要排序的字串。
;文字归类 明经 ZZXXQQ 2010.6.2
(defun c:tt ()
(while (and (setq s1 (entsel "\n选择标志文字 :"))
(setq ent (entget (car s1)))
(= (cdr(assoc 0 ent)) "TEXT")
)
(setq pt (cdr(assoc 10 ent))
ttx (cdr(assoc 1 ent))
txh (/ (* (cdr(assoc 40 ent)) 6) 5))
(princ "\n选择同类字串 :")
(if (> (sslength (setq ss (ssget (list '(0 . "TEXT") (cons 1 (strcat ttx "*")))))) 1) (progn
(setq n 0)
(repeat (sslength ss)
(setq ent1 (entget(ssname ss n))
n (1+ n)
pt (polar pt (/ pi -2) txh)
ent1 (subst (cons 10 pt) (assoc 10 ent1) ent1))
(entmod ent1)
)
))
)
(princ)
)
本帖最后由 作者 于 2010-6-5 10:08:33 编辑 <br /><br /> <font face="Verdana">谢谢版主的程序</font> 应该不是很难,主要要用到wcmatch
页:
[1]
2