 - (defun c:tt ()
- (setq gl 3.0
- gw 0.0
- )
- (while (setq pt (getpoint "\n选择要做垂线的线<退出>: "))
- (if (setq ss (ssget "c" pt pt '((0 . "*Line,Arc,Circle,Ellipse"))))
- (progn
- (setq e (ssname ss 0)
- pt (vlax-curve-getclosestpointto e pt)
- pam (vlax-curve-getparamatpoint e pt)
- vec (vlax-curve-getfirstderiv e pam)
- an (angle '(0 0 0) vec)
- p1 (polar pt (+ an (/ pi 2)) (/ gl 2.))
- p2 (polar pt (- an (/ pi 2)) (/ gl 2.))
- )
- (entmake (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- '(90 . 3)
- (list 10 (car p1) (cadr p1))
- (list 10 (car p2) (cadr p2))
- (cons 43 gw)
- )
- )
- )
- )
- )
- (princ)
- )
|