将多个属性链接到
再次需要你的帮助!!!需要一个lisp,它可以将多个属性链接到文本。。。在我附上的图纸中,你会明白我的意思!!!
很容易,一个接一个地选择属性,然后单击文本,并在它们之间用逗号粘贴链接的属性。
提前感谢!!!!!
这是一个看起来完全相同的互联网链接,但只是复制了属性的文本:
http://forums.augi.com/showthread.php?146818-LISP需要复制属性并粘贴为单行文本
帮助图纸 我发现了另一个Lisp程序,看起来大致相同,但需要稍作修改
我在这个lisp中看到了这个论坛的名字(pBe)。。。
ConstructField2(1)-副本。LSP 你好
我在您的附图中找不到属性块名称。
您想从程序中收集不可见的属性到最终的文本字符串中吗?
程序步骤:
[列表]
[*]选择属性块。
[*]然后选择文本对象,将其字符串替换为以前选择的属性化文本字符串(用逗号分隔)。
[/列表]
这适合你的需要吗? 嗨Tharwat!
块名为“vcBlockPos_TIGP”
属性名称为“pozitia”
你提到的步骤正是我需要的!!!但也应该联系起来 好的,试一试,让我知道。
注意:无论块名是什么,这个程序都会根据标记名收集字符串。
(defun c:Test(/ u app l ss i lst s)
;;====================================;;
;; Tharwat - 12.Apr.2016 ;;
;; Gathering attributes' text strings ;;
;; into a text as a filed object ;;
;; separated by a comma. ;;
;; ;;
;;====================================;;
(if (setq u (vla-get-Utility
(vla-get-ActiveDocument (vlax-get-acad-object))
)
app (vlax-method-applicable-p u 'GetObjectIdString)
l ""
ss(ssget '((0 . "INSERT") (66 . 1))))
(repeat (setq i (sslength ss))
(mapcar '(lambda (x)
(if (eq (vla-get-tagstring x) "Pozitia")
(setq lst (cons x lst))
)
)
(vlax-invoke
(vlax-ename->vla-object (ssname ss (setq i (1- i))))
'getattributes))
)
)
(if lst
(if (< 1 (length lst))
(foreach x(reverse lst)
(setq
l (strcat "%<\\AcObjProp Object(%<\\_ObjId "
(if app
(vla-GetObjectIdString u x :vlax-false)
(itoa (vla-get-ObjectId x)))
">%).TextString>%"
","
l))
)
(setq l
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(if app
(vla-GetObjectIdString u (car lst) :vlax-false)
(itoa (vla-get-ObjectId (car lst))))
">%).TextString>%"))
)
)
(if (and l
(/= l "")
(setq s (car (entsel "\nSelect text to add fields :")))
(wcmatch (cdr (assoc 0 (entget s))) "*TEXT")
)
(vla-put-textstring
(vlax-ename->vla-object s)
(vl-string-trim "," l))
)
(princ)
)(vl-load-com)
不要工作!
选择块后无法选择文本
allready尝试了几次 重新复制代码,然后重试。 现在工作正常。。。
再次感谢THARWAT!!!! 不客气。
页:
[1]