 - (defun c:tt(/ CD E1 E2 E3 LPT1 LPT2 PD PT QDBG SS1 SS2 SS3 ZDBG ZDBGE1)
- (if(and (princ"\n选择起点标高文字:")(setq ss1(ssget ":E:S" '((0 . "*text"))))
- (princ"\n选择坡度文字:")(setq ss2(ssget ":E:S" '((0 . "*text"))))
- (princ"\n选择长度线段:")(setq ss3(ssget ":E:S" '((0 . "line"))))
- )
- (progn
- (setq e1(entget(ssname ss1 0))
- e2(entget(ssname ss2 0))
- e3(entget(ssname ss2 0))
- )
- (setq qdbg(atof(cdr(assoc 1 e1)))
- pd(atof(cdr(assoc 1 e2)))
- lpt1(cdr(assoc 10 e2))
- lpt2(cdr(assoc 11 e2))
- cd(distance lpt1 lpt2))
- (setq zdbg (- qdbg (* (/ pd 100.0 ) cd )))
- (if (and zdbg (setq pt(getpoint "\n指定标高文字位置:")))
- (progn
- (setq zdbge1 e1
- zdbge1(subst(cons 1 (rtos zdbg 2 2))(assoc 1 zdbge1)zdbge1)
- zdbge1(subst(cons 10 pt)(assoc 10 zdbge1)zdbge1)
- )
- (entmake zdbge1)
- )
- (princ "\n!!未指定标高位置点!!")
- )
- )
- (princ "\n!!未正确选择对象!!")
- )
- (princ)
- )
-
|