|
比较粗糙的: (defun c:test ( / poi1 poi2 select1 first_point last_point) (setq poi1 (getpoint "\nFirst point:")) (setq poi2 (getpoint poi1 "\nFirst point:")) (setq select1 (ssget "c" (list (- (car poi1) 0.1) (- (cadr poi1) 0.1)) (list (+ (car poi1) 0.1) (+ (cadr poi1) 0.1)))) (setq ent (entget (ssname select1 0))) (setq first_point (cdr (assoc 10 ent))) (setq last_point (cdr (assoc 11 ent))) (if (and (= (car poi1) (car first_point)) (= (cadr poi1) (cadr first_point))) (command "line" last_point poi2 "") (command "line" first_point poi2 "") ) (command "erase" select1 "") ) |