 - (defun c:tt ()
- (while (and (setq s1 (car (entsel "\n选择较低的高程块<退出>: ")))
- (setq s2 (car (entsel "\n选择较高的高程块<退出>: ")))
- )
- (setq pt1 (cdr (assoc 10 (entget s1)))
- pt2 (cdr (assoc 10 (entget s2)))
- z1 (atof (cdr (assoc 1 (entget (entnext s1)))))
- z2 (atof (cdr (assoc 1 (entget (entnext s2)))))
- pt (mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
- dd (distance pt1 pt2)
- po (strcat "i="
- (rtos (* (/ (abs (- z1 z2)) dd) 100) 2 2)
- "%"
- )
- r0 (angle pt1 pt2)
- dr (* (/ r0 pi) 180)
- p1 (polar pt r0 (* (/ dd 4) -1))
- p2 (polar pt r0 (* (- (/ dd 4) 3) -1))
- p3 (polar pt r0 (/ dd 4))
- ll (strcat "L=" (rtos dd 2 2) "m")
- )
- (if (and (> dr 90) (< dr 270))
- (setq dr (+ dr 180))
- )
- (command "pline" p1 "w" "0" "0.5" p2 "w" "0" "0" p3 "")
- (command "text" "j" "tc" pt 1. dr ll)
- (command "text" "j" "bc" pt 1. dr po)
- )
- (princ)
- )
|