不知道这样行不行。 (defun c:atop () (setq oldos (getvar "OSMODE")) (setvar "OSMODE" 1) (if (setq p1 (getpoint "\nSelect Line Point over the plane 选择面外线端点:")) (progn (setvar "OSMODE" 128) (setq p2 (getpoint "\nThe Perpendicular Point 垂线点:")) (setvar "OSMODE" 32) (setq p3 (getpoint "\nTne Intersection Point 线面交点:")) (setvar "OSMODE" oldos) (setq a (distance p1 p2) c (distance p1 p3) b (distance p2 p3)) (setq cosa (/ (+ (* b b) (* c c) (* a a -1)) (* 2 b c))) (setq ang (atan (sqrt (- 1 (* cosa cosa))) cosa)) )) ang )
|