rod_smithsr Posted January 10, 2012 Share 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 Link to comment Share on other sites More sharing options...
SLW210 Posted January 10, 2012 Share Posted January 10, 2012 Have you tried FIELDS? Quote Link to comment Share on other sites More sharing options...
rod_smithsr Posted January 10, 2012 Author Share Posted January 10, 2012 No I have not. Can it be done in that method? Quote Link to comment Share on other sites More sharing options...
SLW210 Posted January 10, 2012 Share Posted January 10, 2012 Most likely. Can you post a .dwg with related blocks, multileader etc.? Quote Link to comment Share on other sites More sharing options...
fixo Posted January 10, 2012 Share 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 Link to comment Share on other sites More sharing options...
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.