试试这个,字头朝高处,自己加一个判断 - (defun c:tt()
- (setq d (getreal "\n请输入等高距:") n 0)
- (setq pt1 (getpoint "\n请输入第一点:"))
- (setq pt2 (getpoint pt1 "\n请输入第二点:"))
- (command "_.line" pt1 pt2 "")
- (setq line (entlast))
- (setq ss (ssget "f" (list pt1 pt2) '((8 . "dgx"))))
- (if ss
- (repeat (sslength ss)
- (setq en (ssname ss n))
- (setq h (vla-get-elevation (vlax-ename->vla-object en)))
- (if (= (rem h (* d 5.0)) 0)
- (progn
- (setq dxf_line (entget line))
- (setq st (cdr (assoc 10 dxf_line)) et (cdr (assoc 11 dxf_line)))
- (setq st (list (car st) (cadr st) h) et (list (car et) (cadr et) h))
- (setq dxf_line (subst (cons 10 st) (assoc 10 dxf_line) dxf_line))
- (setq dxf_line (subst (cons 11 et) (assoc 11 dxf_line) dxf_line))
- (entmod dxf_line)
- (entupd line)
- (setq pt (vlax-safearray->list (vlax-variant-value (vla-IntersectWith (vlax-ename->vla-object line) (vlax-ename->vla-object en) acExtendNone))))
- (setq pt (list (car pt) (cadr pt)))
- (setq ang (/ (* 180 (vla-get-angle (vlax-ename->vla-object line))) pi))
- (command "_.text" pt 1 (+ ang 90) (rtos h 2 2))
- )
- )
- (setq n (1+ n))
- )
- )
- (command "_.erase" line "")
- (princ)
- )
|