@paulmcclafferty4 @imadHabash
Attribute Block Multiple Select and mText 🙂
Serkan ÇAVUŞLAR
CplCAD İstanbul / Türkiye
(defun c:attmt(/ aDoc aSp oSiz bSet aLst cLst tStr nTxt bCtr Tags TextInsert)
(setq Tags nil)
(setq TextInsert T)
(defun GetBoundingCenter (vlaObj / blPt trPt cnPt)
(vla-GetBoundingBox vlaObj 'minPt 'maxPt)
(setq blPt (vlax-safearray->list minPt)
trPt (vlax-safearray->list maxPt)
cnPt (vlax-3D-point (list (+ (car blPt) (/ (- (car trPt)(car blPt)) 2.0)) (+ (cadr blPt) (/ (- (cadr trPt)(cadr blPt))2.0)) 0.0))
)
)
(if (not Size) (setq Size(getvar "TEXTSIZE")))
(setq oSiz Size
Size (getreal (strcat "\nText size <"(rtos Size)">: "))
)
(if (null Size)(setq Size oSiz))
(setq aDoc (vla-get-ActiveDocument(vlax-get-acad-object)))
(if (= 1 (vla-get-ActiveSpace aDoc))
(setq aSp (vla-get-ModelSpace aDoc))
(setq aSp (vla-get-PaperSpace aDoc))
)
(if (setq bSet (ssget '((0 . "INSERT"))))
(progn
(foreach b (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex bSet))))
(setq aLst '()
tStr ""
)
(if TextInsert
(setq bCtr(GetBoundingCenter b))
(setq bCtr(vla-get-InsertionPoint b))
)
(if ;(and
(= :vlax-true (vla-get-HasAttributes b))
; (safearray-value
; (setq atts (vlax-variant-value (vla-getattributes b)))
; )
; (foreach tag (vlax-safearray->list atts)
; (= (vla-get-tagstring tag) "roadnamela")
; )
;)
(progn
(setq aLst (mapcar '(lambda (a)
(if (= (vla-get-TagString a) "roadnamela")
(list (vla-get-TagString a) (vla-get-TextString a))
(list "" "")
)
) (vlax-safearray->list (vlax-variant-value (vla-GetAttributes b)))))
(foreach i (reverse aLst)
(setq tStr (strcat tStr (if Tags (strcat (car i) ": ") "") (last i) "\\P"))
)
(if (/= "" tStr)
(progn
(setq nTxt (vla-AddMText aSp bCtr (* Size 30.0) tStr))
(vla-put-Height nTxt Size)
)
)
)
)
)
(vla-EndUndoMark aDoc)
)
)
(princ)
)
Serkan ÇAVUŞLAR
CplCAD / Türkiye