Dimstyle是一种创建样式的方法,它关闭了所有端点,并设置了尺寸线,因此只以文本结束,然后处理偏移并将文本置于中间等
另一种方法是计算出与lisp相似的文本位置。
- ; simple line labeller
- ; by Alan H June 2018
- (defun c:linelab ( / pt1 pt2 pt3 oldsnap rads oldang ang dist )
- (setq oldsnap (getvar 'osmode))
- (setq oldang (getvar 'angdir))
- (setq rads (getvar 'aunits))
- (setvar 'osmode 1)
- (setq dimsc (* 3 (getvar "dimscale")))
- (alert "Text will follow Pt1 -> pt2") ; delete line later
- (setq pt1 (getpoint "pick end pt"))
- (setq pt2 (getpoint "Pick other end"))
- (setq ang (angle pt1 pt2))
- (setq dist (distance pt1 pt2))
- (setq pt3 (polar pt1 ang (/ dist 2.0)))
- (setq pt3 (polar pt3 (+ ang (/ pi 2.0)) 3.5)) ; hard coded 3.5
- (if (= (tblsearch "layer" "DISTANCE") nil)
- (command "-layer" "m" "DISTANCE" "c" "3" "" "")
- )
- (setvar 'osmode 0) ; end
- (setvar 'angdir 0) ; east
- (setvar 'aunits 3) ; radians
- (command "text" pt3 dimsc (- ang (/ pi 2.0)) (rtos dist 2 2))
- ; flip option here inside/outside press enter
- (setvar 'osmode oldsnap)
- (setvar 'angdir oldang)
- (setvar 'aunits rads)
- )
- (c:linelab)
|