Quick and dirty, no warranty.
Code:; CAB 10.18.08 version 1.0 (defun c:LabelPipe (/ index ss obj lyr ept spt mpt mpt1 mpt2 txtht len) (defun maketext (pt ang str ht just lay / dxf72 dxf73) ;;(setq dxf72 (cdr (assoc just '(("TC" . 1 )("BC" . 1 ))))) (setq dxf73 (cdr (assoc just '(("TC" . 3) ("BC" . 1))))) (entmakex (list (cons 0 "TEXT") ;*** (cons 1 str) ; (the string itself) (cons 6 "BYLAYER") ; Linetype name (cons 7 "STANDARD") ;* Text style name, defaults to STANDARD, not current (cons 8 lay) ; layer (cons 10 pt) ;* First alignment point (in OCS) (cons 11 pt) ;* Second alignment point (in OCS) ;;(cons 39 0.0) ; Thickness (optional; default = 0) (cons 40 ht) ;* Text height ;;(cons 41 1.0) ; Relative X scale factor, Width Factor, defaults to 1.0 (cons 50 ang) ; Text rotation ange ;;(cons 51 0.0) ; Oblique angle (cons 71 0) ; Text generation flags (cons 72 1) ; Horizontal text justification type (cons 73 dxf73) ; Vertical text justification type ) ) ) (setq index -1) (if (zerop (setq txtht (getvar 'textsize))) (setq txtht 5) ) (prompt "\nSelect pipe to label.") (if (setq ss (ssget '((0 . "LINE") (8 . "M-N-FP-DIS,M-N-FP-MAIN")))) (progn (while (< (setq index (1+ index)) (sslength ss)) (setq obj (vlax-ename->vla-object (ssname ss index)) lyr (vla-get-layer obj) ept (vlax-get obj 'endpoint) spt (vlax-get obj 'startpoint) ang (angle spt ept) mpt (polar ept (angle ept spt) (/ (distance ept spt) 2.0)) len (vlax-get obj 'length) ) (if (and (> ang (* 0.5 pi)) (<= ang (* 1.5 pi))) (setq ang (+ ang pi)) ) (setq mpt1 (polar mpt (+ ang (/ pi 2.0)) (* (getvar 'dimscale) (getvar 'dimgap))) mpt2 (polar mpt (+ ang (* pi 1.5)) (* (getvar 'dimscale) (getvar 'dimgap))) ) (cond ((= lyr "M-N-FP-MAIN") (maketext mpt1 ang "2\"" txtht "BC" "M-N-FP-MAIN-DIA") (maketext mpt2 ang (rtos len) txtht "TC" "M-N-FP-MAIN-LIN") ) ((= lyr "M-N-FP-DIS") (maketext mpt1 ang "1\"" txtht "BC" "M-N-FP-DIS-DIA") (maketext mpt2 ang (rtos len) txtht "TC" "M-N-FP-DIS-LIN") ) ) ) ) ) (princ) ) (prompt "\nLabel pipe lisp loaded, Enter labelPipe to run.") (princ)




.
Reply With Quote




Bookmarks