在xyp1964基础上完善一下: (defun c:tt ( / ss ea pa1 pa2 aga eb pb1 pb2 agb i e pt p1 p2) (prompt "\选取投影圆: ") (if (and (setq ss (ssget '((0 . "CIRCLE")))) (setq ea (car (entsel "\n选择投影中心线第1条边线: "))) (= "LINE" (cdr (assoc 0 (setq ea (entget ea))))) (setq pa1 (cdr (assoc 10 ea)) pa2 (cdr (assoc 11 ea)) aga (angle pa1 pa2) ) (setq eb (car (entsel "\n选择投影中心线第2条边线: "))) (= "LINE" (cdr (assoc 0 (setq eb (entget eb))))) (setq pb1 (cdr (assoc 10 eb)) pb2 (cdr (assoc 11 eb)) agb (angle pb1 pb2) ) ) (progn (setq i -1) (while (setq e (ssname ss (setq i (1+ i)))) (setq pt (cdr (assoc 10 (entget e))) p1 (inters pa1 pa2 pt (polar pt (+ aga (/ pi 2.)) 1.) nil) p2 (inters pb1 pb2 pt (polar pt (+ agb (/ pi 2.)) 1.) nil) ) (command "line" "non" (polar p1 (angle p2 p1) 3.) "non" (polar p2 (angle p1 p2) 3.) "") ) ) ) (princ) ) |