I can to test this just in A2008
Hope it will works for you
~'J'~Code:; +-------+---------+---------+-----flb.lsp----+---------+--------+--------+ ; (vl-load-com) (defun C:FLB (/ acsp adoc ang der ent midp mtx oid pline pref txp txt) (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)) ) (if (setq ent (entsel "\nSelect polyline >>")) (progn (setq oid (vla-get-objectid (setq pline (vlax-ename->vla-object (car ent)))) ) (setq midp (vlax-curve-getclosestpointto pline (vlax-curve-getpointatdist pline (/ (vla-get-length pline) 2))) ) (vlax-invoke acsp 'AddCircle midp 2.0) (setq der (vlax-curve-getfirstderiv pline (vlax-curve-getparamatpoint pline midp))) (if (zerop (cadr der)) (setq ang (/ pi 2)) (setq ang (- pi (atan (/ (car der) (cadr der))))) ) (initget 6) (setq hgt (getdist "\nEnter text height <5.0>: ")) (if (not hgt)(setq hgt 5.)) (setq txp (polar midp ang hgt)) (setq pref (getstring T "\nEnter label prefix <920>: ")) (if (eq "" pref)(setq pref "920")) (setq pref (strcat pref " (")) (setq txt (strcat pref "%<\\AcObjProp Object(%<\\_ObjId " (itoa oid) ">%).Length \\f \"%lu2%pr3\">% m)") ) (setq mtx (vlax-invoke acsp 'AddMText txp 0.0 txt) ) (setq ang (- ang (/ pi 2))) (setq ang (cond ((> pi ang (/ pi 2))(- pi ang)) ((> (* pi 1.5) ang pi)(- ang pi)) ((> (* pi 2) ang (* pi 1.5))(- (* pi 2) ang)) (T ang)) ) (vlax-put mtx 'AttachmentPoint 5 ) (vlax-put mtx 'InsertionPoint txp) (vlax-put mtx 'Rotation ang) (vla-update mtx) ) ) (princ) ) (princ "\n Start command with FLB ...") (princ) ; +---------+---------+---------+---------+---------+---------+---------+ ;




Reply With Quote


Bookmarks