;; | ---------------------------------------------------------------------------- ;; | GE_TnArc2Arc ;; | ---------------------------------------------------------------------------- ;; | Function : Checks for tangency between an arc and an arc ;; | Arguments: ;; | 'CenPt1' - Center point of first arc ;; | 'p1' - Start point of first arc ;; | 'p2' - End point of first arc ;; | 'Rad1' - Radius of first arc ;; | 'CenPt2' - Center point of second arc ;; | 'p3' - Start point of second arc ;; | 'p4' - End point of second arc ;; | 'Rad2' - Radius of second arc ;; | FUZZ - Tolerance within which to check for tangency ;; | Returns : 'T' or 'nil' - Depending on whether the line and arc are tangents ;; | Updated : December 2, 1999 ;; | e-mail : rakesh.rao@4d-technologies.com ;; | Web : www.4d-technologies.com ;; | ---------------------------------------------------------------------------- (defun GE_TnArc2Arc(CenPt1 p1 p2 Rad1 CenPt2 p3 p4 Rad2 FUZZ / c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 ) (setq c1 (equal CenPt1 CenPt2 FUZZ) c2 (equal Rad1 Rad2 FUZZ) c3 (equal p1 p3 FUZZ) c4 (equal p1 p4 FUZZ) c5 (equal p2 p3 FUZZ) c6 (equal p2 p4 FUZZ) c7 (GE_Collinear? CenPt1 CenPt2 p1 nil FUZZ) c8 (GE_Collinear? CenPt1 CenPt2 p2 nil FUZZ) c9 (GE_Collinear? CenPt1 CenPt2 p3 nil FUZZ) c10 (GE_Collinear? CenPt1 CenPt2 p4 nil FUZZ) ) (if (or (and c1 c2 (or c3 c4 c5 c6 ) ) (or c7 c8 c9 c10 ) ) T nil ) )