将2个文本合并为1个文本
当鼠标光标点击设备“AH”及其触点9时,“XX”应替换为“AH9”。多个文本应合并为单个文本。如果您有这种autolisp程序或工具,请提供它将节省大量时间。例子。图纸 欢迎来到CADTutor论坛。
试着用大师李·麦克的Lisp程序。
这只是李非常慷慨地在其令人难以置信的网站上向全球CAD社区提供的众多LISP之一。
他在他的网站上有更多关于文字的内容。
http://www.lee-mac.com/text2mtext.html
谢谢李! 你好,爸爸,
我试过了,但它没有将2个文本合并成1个,这个工具将2个文本彼此相隔或在下面或上面,如果文本的属性不同,则显示错误。例如,“AA”将显示为“%ª”
我很肯定李有一个可以做到这一点,对不起,它没有做你需要的。
他还有很多其他的,我刚刚看过,其中一个会匹配文本属性,但我没有看到一个能完全满足你的需要。 尝试:
(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)
) 非常感谢tombu,
上面的程序将我带到了一个新的层次,但它有一些问题,如果这个问题将得到解决,那么最好的事情也不会发生。无论如何,谢谢你的节目。用于品红和绿色问题的PFA。
谢谢和问候,
阿尼科特
示例2.dwg
我在上一篇文章中修改了代码,看看现在是否适用。我是一名土地测量师,主要从事土木工程,对不起,我不知道你在那张图纸上做什么。 谢谢tombu,
成功了!!!:-以上程序解决了我的问题。再次感谢。
页:
[1]