选择只有两个坐标的单线或多段线,并告诉我。
- (defun c:test (/ s ld sn 1p 2p 3p 4p gr l)
- ;; Tharwat 12. Mar. 2014 ;;
- (princ
- "\n Select Single line or Polyline to two coordinates only "
- )
- (if (setq s (ssget "_+.:S:E:L"
- '((-4 . "<OR")
- (0 . "LINE")
- (-4 . "<AND")
- (0 . "LWPOLYLINE")
- (90 . 2)
- (70 . 0)
- (-4 . "AND>")
- (-4 . "OR>")
- )
- )
- )
- (progn
- (defun ld (a b)
- (entmakex (list '(0 . "LEADER")
- '(100 . "AcDbEntity")
- '(100 . "AcDbLeader")
- (cons 10 a)
- (cons 10 b)
- )
- )
- )
- (while (eq (car (setq gr (grread t 13 0))) 5)
- (redraw)
- (if
- (< (distance
- (setq
- 1p (vlax-curve-getstartpoint (setq sn (ssname s 0)))
- )
- (cadr gr)
- )
- (distance (setq 2p (vlax-curve-getendpoint sn)) (cadr gr))
- )
- (progn
- (grdraw 1p (cadr gr) 1 1)
- (if l
- (entdel l)
- )
- (setq l (ld 1p 2p))
- )
- (progn
- (grdraw 2p (cadr gr) 1 1)
- (if l
- (entdel l)
- )
- (setq l (ld 2p 1p))
- )
- )
- )
- (if (eq (car gr) 3)
- (entdel sn)
- )
- )
- )
- (redraw)
- (princ)
- )
|