aniketpatade 发表于 2022-7-5 17:38:39

将2个文本合并为1个文本

当鼠标光标点击设备“AH”及其触点9时,“XX”应替换为“AH9”。多个文本应合并为单个文本。如果您有这种autolisp程序或工具,请提供它将节省大量时间。
例子。图纸

Dadgad 发表于 2022-7-5 17:51:17

欢迎来到CADTutor论坛。
 
试着用大师李·麦克的Lisp程序。
这只是李非常慷慨地在其令人难以置信的网站上向全球CAD社区提供的众多LISP之一。
他在他的网站上有更多关于文字的内容。
 
http://www.lee-mac.com/text2mtext.html
 
谢谢李!

aniketpatade 发表于 2022-7-5 17:58:21

你好,爸爸,
 
 
我试过了,但它没有将2个文本合并成1个,这个工具将2个文本彼此相隔或在下面或上面,如果文本的属性不同,则显示错误。例如,“AA”将显示为“%ª”
 
 
 
 

Dadgad 发表于 2022-7-5 18:11:25

我很肯定李有一个可以做到这一点,对不起,它没有做你需要的。
他还有很多其他的,我刚刚看过,其中一个会匹配文本属性,但我没有看到一个能完全满足你的需要。

tombu 发表于 2022-7-5 18:21:30

尝试:
(setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))
      ssSelections (ssget (list (cons 0 "TEXT,MTEXT")))
      intCount 0 ;Start with first selection.
)
(if(ssmemb entSelection ssSelections)(ssdel entSelection ssSelections))
; Don't delete First selection if selected again.
(repeat (sslength ssSelections)
(vla-startundomark thisdrawing)
(setq entSelection (ssname ssSelections intCOunt)
       objSelection (vlax-ename->vla-object entSelection)
       intCount   (1+ intCount) ;increment to next selection.
)
(if(= btwtxt " ")
(while(vl-string-search "\\P" (vla-get-textstring objSelection))
   (vla-put-textstring objSelection
      (vl-string-subst " " "\\P" (vla-get-textstring objSelection))
   )
)
)
(vla-put-textstring objSelection1
                     (strcat
                      (vla-get-textstring objSelection1)
;                                             btwtxt ; Space for text or new line for mtext
                      (vla-get-textstring objSelection)
                     )
)
;(vla-delete objSelection) ; Delete added text object
(vla-endundomark thisdrawing)
)
(princ)
)

aniketpatade 发表于 2022-7-5 18:27:08

非常感谢tombu,
 
 
上面的程序将我带到了一个新的层次,但它有一些问题,如果这个问题将得到解决,那么最好的事情也不会发生。无论如何,谢谢你的节目。用于品红和绿色问题的PFA。
 
 
谢谢和问候,
阿尼科特
示例2.dwg

tombu 发表于 2022-7-5 18:37:32

 
我在上一篇文章中修改了代码,看看现在是否适用。我是一名土地测量师,主要从事土木工程,对不起,我不知道你在那张图纸上做什么。

aniketpatade 发表于 2022-7-5 18:44:39

谢谢tombu,
 
 
成功了!!!:-以上程序解决了我的问题。再次感谢。
页: [1]
查看完整版本: 将2个文本合并为1个文本