二楼这个可以使用啊。 - (defun c:ll( / rlastent ss n lent ps pe ang dist midp textdist bsang)
- (setq rlastent(entlast))
- (command "._line")
- (while (/= 0 (getvar "CMDACTIVE"))
- (command pause)
- )
- (if rlastent
- (progn
- (setq ss (ssadd))
- (while (setq rlastent(entnext rlastent))
- (ssadd rlastent ss)
- ))
- (setq ss(ssget "x"))
- )
- (setq textdist(* 0.5 (getvar "textsize"));文字距离线取默认字体高度的0.5,这个高度可自己调整--
- bsang(angle '(0 0 0) (getvar "ucsxdir"));考虑UCS--------------------------------------
- bsang(* 180.0 (/ bsang pi))
- )
- (repeat (setq n(sslength ss))
- (setq n(1- n)
- rlastent(ssname ss n)
- lent(entget rlastent)
- ps(cdr(assoc 10 lent))
- pe(cdr(assoc 11 lent))
- ang(angle ps pe)
- dist(distance ps pe)
- midp(mapcar '+ pe ps)
- midp(mapcar '* midp '(0.5 0.5 0.5))
- textinp(trans (polar midp (+ ang (* pi 0.5)) textdist) 0 1)
- ang(* 180.0 (/ ang pi))
- )
- (if (>= 270 ang 90)(setq textinp(trans (polar midp (+ ang (* pi -0.5)) textdist) 0 1) ang(- ang 180)));保证文字向上----------------
- (command ".-text" "j" "bc" "non" textinp "" (- ang bsang) (rtos dist));文字高度就是这一行的"",这个可以自己调整,或者干脆和线长度相关--
- (princ (rtos ang))
- )
- (princ)
- )
|