; <<<>>> ; ;USAGE: (load "ARCTLN") COMMAND:ATL ; ; Copyright (c) 1990 -- Fred Bertagnolli -- Engramme Engr. ; for PC-AUG BBS. Donation of $15.00 would be appreciated. ; NOT FOR COMMERCIAL OR BUSINESS USE, OF ANY KIND. ; For info contact Fred Bertagnolli at 801-621-3634 ; ;FUNCTION: ARCTLN draws an arc TANGENT to a line. ; ;INPUTS: PICK AN EXISTING LINE, NEAR ITS END POINT ; Enter Delta (CENTRAL ANGLE) of new ARC ; or curvature from end of line ; RADIUS OF NEW ARC ; ; ATL does the rest! ; ;COMMENTS: This is a difficult construct with standard methods. ; Use to construct SURVEYOR STYLE ARCS to lines. ; (DEFUN C:ATL (/ AU E E1 BP PH EP CA LR RD LA ANG CTR SA) (SETVAR "OSMODE" 0) (SETVAR "FLATLAND" 1) (SETQ AU (GETVAR "AUNITS") E (ENTSEL "PICK LINE NEAR ARC START: ") E1 (ENTGET (CAR E)) BP (OSNAP (CADR E) "END") PH (/ PI 2.0) EP (CDR (ASSOC '10 E1)) ) (SETQ EP (IF (EQUAL BP EP) (CDR (ASSOC '11 E1)) EP)) (SETVAR "AUNITS" 1) ;DMS INPUT (SETQ CA (GETANGLE "\nDelta :")) (INITGET 1 "L R") (SETQ LR (GETKWORD "\nCURVE eft or ight: ")) (INITGET (+ 1 2 4)) (SETQ RD (GETDIST "\nRADIUS: ")) (IF (= LR "R") (SETQ PH (- PH))) (SETQ LA (ANGLE EP BP)) (SETQ ANG (+ PH LA)) (SETQ CTR (POLAR BP ANG RD)) (SETQ SA (ANGTOS CA 1 15)) (IF (= LR "R")(SETQ SA (STRCAT "-" SA))) (COMMAND "ARC" BP "C" CTR "A" SA) (SETVAR "AUNITS" AU) (SETVAR "FLATLAND" 1) (PRINC) )