Try this code
Code:
(DEFUN C:CALMTEXT (/ myline mymtext mylinedata mydist mytextdata newtext)
(setq myline nil
mymtext nil)
(setq myline (selectObject "LINE" nil))
(if (= nil myline)
(progn ;no Line Selected
(alert "No Line Selected")
)
(progn ;a Line was seected
(setq myLineData (entget myline)) ;get the data for the line
(setq myMtext (selectobject "MTEXT" nil))
(if (= nil myMtext)
(progn ;No Mytext Selected
(alert "No Mytext Selected")
)
(progn ;Mytext was Selected
(if (= nil myslope);if slope not set get slope
(setq myslope (getreal "\nEnter Slope"))
)
(setq mydist (distance (cdr (assoc 10 myLineData))
(cdr (assoc 11 myLineData))))
(setq mydist (* mydist myslope))
(setq mypfix (getstring "\nPrefix String"));get a Prefis string put
(setq mysFix (getstring "\nSuffix String"));Get a suffix string
(setq newText (strcat mypfix (rtos mydist 2 2) mysfix));can change mode or precision
(setq myTextdata (entget mymtext))
(setq mytextdata
(subst (cons 1 newtext)
(assoc 1 mytextdata)
mytextdata))
(entmod mytextdata)
)
)
)
)
)
;;Function Selectobject
;;ObjectType uper case name of Object to Select
;;Exp "LINE" "MTEXT"
;;Alertflag not nil to show alerts
;; nil to show alerts
;;retrun the entityname of the selected entity
;; or nil if no enity Selected
(DEFUN SelectObject (ObjectType AlertFlag / myline myLineData)
(setq myline nil)
(setq myline (car (entsel (strcat "\nSelect a " ObjectType))))
(if (= nil myline)
(progn ;no Object Selected
(if AlertFlag
(alert "No Objec Select"))
)
(progn ;a Object was seected
(setq myLineData (cdr (assoc 0 (entget myline))))
;get the data for the line
(if (/= myLineData ObjectType)
(progn ;Object not a line
(if AlertFlag
(progn
(alert (strcat "You Did Not Select a " ObjectType))
(setq myline nil))
)
)
(progn ;Object was type Objectype
)
)
)
)
(setq myline myline)
)