rod_smithsr Posted January 10, 2012 Posted January 10, 2012 Help! I need a lisp that allows a multileader to automatically insert a block attribute after I associate that multileader with the dynamic block. For instance, i have a few dynamic blocks with attributes in model space and I am tagging them in paper space. After i choose a multileader (that I created with a block) I would like that multileader to automatically insert the number of the device that Im tagging. Help!! Quote
rod_smithsr Posted January 10, 2012 Author Posted January 10, 2012 No I have not. Can it be done in that method? Quote
SLW210 Posted January 10, 2012 Posted January 10, 2012 Most likely. Can you post a .dwg with related blocks, multileader etc.? Quote
fixo Posted January 10, 2012 Posted January 10, 2012 No I have not. Can it be done in that method? Not sure about your current release, but it can be done on A2009: (defun C:attm (/ acsp adoc blk fld id mlead p1 p2 ptarr sset ) (vl-load-com) (or adoc (setq adoc (vla-get-activedocument (vlax-get-acad-object) ) ) ) (if (and (= (getvar "tilemode") 0) (= (getvar "cvport") 1) ) (setq acsp (vla-get-paperspace adoc)) (setq acsp (vla-get-modelspace adoc)) ) (while (setq sset (ssget "+.:S:E:L" (list (cons 0 "insert")(cons 66 1)))) (setq blk (vlax-ename->vla-object (ssname sset 0))) (foreach att (vlax-invoke blk 'getattributes) (if (eq "MYTAG" (vla-get-tagstring att));<--- Change attribute tag here (setq id (vla-get-objectid att)))) (setq fld (strcat "%<[url="file://\\AcObjProp"]\\AcObjProp[/url] Object(%<[url="file://\\_ObjId"]\\_ObjId[/url] " (rtos id 2 0) " >%).TextString [url="file://\\f"]\\f[/url] \"%tc1\">%")) (setq p1 (getpoint "\nLeader Arrow >> \n") p2 (getpoint p1 "\nText location >> \n") ) (setq ptarr (vlax-make-variant (vlax-safearray-fill (safearray vlax-vbdouble '(0 . 5)) (apply 'append (list p1 p2)))) ) (setq mlead (vla-addmleader acsp ptarr 0)) (vla-put-contenttype mlead acMTextContent) ;; change to your standards here: (vla-put-textheight mlead(getvar "dimtxt")) (vla-put-landinggap mlead 0.09) (vla-put-doglegged mlead :vlax-true) (vla-put-dogleglength mlead 0.05) (vla-put-textstring mlead fld) ;;borrowed from Lee Mac: (vla-setdoglegdirection mlead 0 (vlax-3D-point (list (if (<= (car p1) (car p2)) 1 -1) 0 0 ) ) ) (if (>= (car p2) (car p1)) (vla-put-TextJustify mlead acAttachmentPointMiddleLeft) (vla-put-TextJustify mlead acAttachmentPointMiddleRight) ) (vla-put-TextLeftAttachmentType mlead acAttachmentBottomOfTopLine) (vla-put-TextRightAttachmentType mlead acAttachmentBottomOfTopLine) (vla-put-leaderlineweight mlead acLnWt025) (vla-put-leadertype mlead 1) ) (vla-regen adoc acactiveviewport) (princ) ) (prompt "\n") (prompt "\t\t<<< Start command with ATTM ...\t>>> ") (princ) ~'J'~ Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.