 - (defun c:tt (/ E P1 P2 SS PL FLAG)
- (princ "\n选择指定图层物体:")
- (if (and
- (setq e (ssget ":s"))
- (setq p1 (getpoint "\n画线第一点:"))
- (setq p2 (getpoint p1 "\n画线第二点:"))
- )
- (progn
- (setq ss
- (ssget "_F"
- (list p1 p2)
- (list (cons 0 "*line") (assoc 8 (entget (ssname e 0))))
- )
- )
- (if ss
- (progn
- (setq
- pl (mapcar '(lambda (x) (cadr (cadddr x))) (ssnamex ss))
- )
- (setq p1 (car pl) pl (cdr pl) flag t)
- (while pl
- (setq p2 (car pl) pl (cdr pl))
- (if flag
- (entmake
- (list '(0 . "line")
- (cons 10 (polar p1 (angle p2 p1) 150))
- (cons 11 (polar p2 (angle p1 p2) 150))
- )
- )
- (entmake
- (list '(0 . "line")
- (cons 10 (polar (polar p1 (* 0.5 pi) 100) (angle p2 p1) 150))
- (cons 11 (polar (polar p2 (* 0.5 pi) 100) (angle p1 p2) 150))
- )
- )
- )
- (setq p1 p2 flag (not flag))
- )
- )
- )
- )
- )
- (princ)
- )
|