・ 2点が同一点かどうか判定
2点が同一の点であれば、その距離は 0 となります。
図面上では、ある程度の誤差を許容しなくてはならないので、(equal)
の fuzz オプションを適当に設定しましょう。
(defun Jo_same_pt () ;サブルーチン 2点が同一点かどうか判定 同一なら T ; (defun Jof_same_pt ( pt1;調査点1; pt2;調査点2; / fuz dist ) (setq fuz 1e-6) (setq dist (distance pt1 pt2)) (equal dist 0 fuz) ) ;********************************************************** ;メインルーチン ; (setq pt1 (getpoint "\n1点目")) (setq pt2 (getpoint "\n2点目")) (if (Jof_same_pt pt1 pt2) (princ "\n同一点です") (princ "\n同一ではありません") ) (princ) )
まあ、距離を取得しなくても直接点どうしの比較でもいいですけど
(defun Jo_same_pt2 () ;サブルーチン 2点が同一点かどうか判定 同一なら T ; (defun Jof_same_pt2 ( pt1;調査点1; pt2;調査点2; / ) (setq fuz 1e-6) (equal pt1 pt2 fuz) ) ;********************************************************** (setq pt1 (getpoint "\n1点目")) (setq pt2 (getpoint "\n2点目")) (if (Jof_same_pt2 pt1 pt2) (princ "\n同一点です") (princ "\n同一ではありません") ) (princ) )