Well, I've got this program written but I want to remove the section that ask about rotating the text. I've tried to think of a way to where it will always read correctly from the bottom of the shete and from the titleblock to the right. Basically calculate the correction. Any ideas? Look for ;;;;; I'd like to remove this section below
(defun c:line_id (/ cmd mecTxtSize
mecGetLayer mecSelLine mecLineLength
mecLineLayer mecLineAngle mecGetPoint
)
(setq cmd (getvar 'cmdecho))
(setq osm (getvar 'osmode))
(setq mecTxtSize (getvar 'textsize))
(setq mecGetLayer (getvar 'clayer))
(setvar 'cmdecho 0)
(setvar 'osmode 0)
(setq mecSelLine
(vlax-ename->vla-object
(car (entsel "\nSelect conduit line to label: "))
)
)
(while (/= mecSelLine nil)
(setq mecLineLength
(strcat
(rtos
(+ (fix
(/ (vlax-get-property mecSelLine 'Length) 12)
)
1
)
2
0
)
"' APPROX."
)
)
(setq mecLineLayer (vlax-get-property mecSelLine 'Layer))
(setq mecLineAngle
(/ (* 180.0 (vlax-get-property mecSelLine 'Angle)) PI)
)
(setq mecGetPoint
(getpoint "\nSelect location for distance label: ")
)
(command "-layer" "s" mecLineLayer "")
(command "text" mecGetPoint mecTxtSize mecLineAngle mecLineLength)
;;;;; I'd like to remove this section
(initget 1 "Y N")
(setq mecYN (getkword "\nRotate text <Y>es or <N>o: "))
(setq mecAnswer
(cond
((= mecYN "Y") 2)
((= mecYN "N") 4)
)
;;end cond
)
(if (= mecAnswer 2)
(progn
(command "rotate" "l" "" mecGetPoint "180")
(setvar 'cmdecho cmd)
(setvar 'osmode osm)
(setvar 'clayer mecGetLayer)
)
;;end progn
)
;;end if
(if (= mecAnswer 4)
(progn
(setvar 'cmdecho cmd)
(setvar 'osmode osm)
(setvar 'clayer mecGetLayer)
)
;;end progn
)
;;end if
;;;;; I'd like to remove section above
(setq mecSelLine
(vlax-ename->vla-object
(car (entsel "\nSelect conduit line to label: "))
)
)
)
;;end while
(princ)
)
the thing is, if a line is drawn from left to right it's shown as one angle. If it's drawn for right to left it shows another angle