本帖最后由 Gu_xl 于 2011-1-4 21:36 编辑
- (defun c:tt(/ ss i k scale en dist dist1 dist2 pt pt0 pt1 ang)
- (initget 1)
- (setq scale (getreal "\n比例尺 1:"))
- (initget 1)
- (setq h (getreal "\n字高:"))
-
- (setq ss (ssget '((0 . "*polyline"))))
- (if ss
- (progn
- (setq i 0)
- (repeat (sslength ss)
- (setq en (ssname ss i)
- k 1
- dist0 0
- PT0 (vlax-curve-getStartPoint EN ))
- (repeat (fix (vlax-curve-getEndParam en))
- (setq dist1 (vlax-curve-getDistAtParam en k)
- PT1 (vlax-curve-getPointAtParam EN k)
- ANG (ANGLE PT0 PT1)
- dist (- dist1 dist0)
- dist (/ dist scale)
- dist0 dist1
- PT0 PT1
- PT (POLAR (vlax-curve-getPointAtParam EN (- k 0.5)) (+ ANG (/ PI 2)) (* 2 H))
- )
- (entmake (list '(0 . "text") (cons 1 (rtos dist 2 0)) (cons 10 pt) (cons 40 h)))
- (setq k (1+ k))
- )
- (setq i (1+ i))
- )
-
- )
- )
- )
|