这里是一个开始,需要一点细化,以做文字风格等和文字的大小。
- ; Text at mid point of a line not will not work correctly
- ; with plines of multi segments
- ; By BIGAL June 2015
- (defun C:TextAtMidPoint (/ entItem lstPoint sngDistance ans)
- (setq oldsnap (getvar 'osmode))
- (setq oldang (getvar 'aunits))
- (setq angd (getvar 'angdir))
- (setq ans (getstring "Please enter text "))
- (setq sngDistance (* (strlen ans) 0.5))
- (setvar 'osmode 2)
- (setq pt (getpoint "pick line"))
- (setq ss (ssget pt))
- (setq obj (entget (ssname ss 0)))
- (setq startpt (cdr (assoc 10 obj)))
- (setq ang (angle pt startpt))
- (vl-cmdf "circle" pt (/ sngDistance 2.0))
- (setq entItem (entlast))
- (setq lstPoint (getvar "lastpoint"))
- (vl-cmdf "trim" entItem "" "Nea" lstPoint "")
- (vl-cmdf "erase" entItem "")
- (setvar 'aunits 3)
- (setvar 'angdir 0)
- (vl-cmdf "text" pt ang ans)
- (setvar 'osmode oldsnap)
- (setvar 'aunits oldang)
- (setvar 'angdir angd)
- )
- (vl-load-com)
|