lengliqun 发表于 2010-6-2 02:39:00

[求助]相同的字符各自移到前缀内容的文字下

<font face="Verdana">CAD图中有wx15,wx15 2*,wx15 1*,wx15 4*等字符,以及wx16,wx16 2*,wx16 1*,wx16 4*等字符(*号可为任意字符),<br/>求lsp程序将含前缀(空格号以前的字符为前缀,如上面的wx15,wx16)相同的字符各自移到前缀内容的文字下,左对齐,行距300。</font>

664571221 发表于 2020-7-30 08:33:03

ZZXXQQ 发表于 2020-7-30 00:07
只对标准文字串"TEXT"有效。对多行文字"MTEXT"无效。

能不能修改一下啊大侠

ZZXXQQ 发表于 2020-7-30 00:07:35

664571221 发表于 2020-7-29 17:36
Z大怎么用不起来呀

只对标准文字串"TEXT"有效。对多行文字"MTEXT"无效。

664571221 发表于 2020-7-29 17:36:26

ZZXXQQ 发表于 2010-6-2 20:26
试试看,程序先选择标志字串,再选择要排序的字串。



Z大怎么用不起来呀

lengliqun 发表于 2010-6-2 02:40:00

<p>测试文件</p>

cxs259 发表于 2010-6-2 11:05:00

<p>可以用CAD自带的查找功能,把前缀替换,再用文字对齐命令即可以达到你想要的效果.</p>
<p>&nbsp;</p>

lengliqun 发表于 2010-6-2 11:14:00

CAD中的有多个不同前缀的字符,我的意思按前缀分组对齐。

qihuiqiang 发表于 2010-6-2 15:33:00

<p>qq534206572</p>

ZZXXQQ 发表于 2010-6-2 20:26:00

试试看,程序先选择标志字串,再选择要排序的字串。


;文字归类 明经 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)
)

lengliqun 发表于 2010-6-2 22:37:00

本帖最后由 作者 于 2010-6-5 10:08:33 编辑 <br /><br /> <font face="Verdana">谢谢版主的程序</font>

yan19851204 发表于 2011-5-28 18:59:21

etoxp 发表于 2011-9-29 20:19:43

应该不是很难,主要要用到wcmatch
页: [1] 2
查看完整版本: [求助]相同的字符各自移到前缀内容的文字下