|  (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)
  )
      
 |