;HowFar Version 1.0 Copyright © 2000 Richard Sandgren ;Comments welcome at: HowFarLisp@hotmail.com -or- Medeziner@comcast.net ;****************************start of error handler***************** (defun HF_err (s) (if (/= s "Function canceled") (setq *error* olderr)) (setq rite-dcl nil) (setvar "luprec" oldprec) (setvar "orthomode" oldortho) (setvar "cmdecho" 1) (setq #setX nil oldortho nil #lines nil #line6 nil #line5 nil set_file nil oldprec nil #line4 nil #line3 nil #line2 nil #line1 nil pnt2- nil dcl_id nil pnt1- nil what_unit nil plc1 nil plc2 nil plc3 nil plc4 nil plc5 nil plc6 nil restarx nil %exit% nil su_togx nil) ) ;****************************end of error handler******************* (defun #setup (/ su_val1 su_val2 su_val3 stog1 stog2 stog3 stog4 stog5 stog6 s_file su_dis plcX acad_exe acad_len ztempz) (setq restarx nil) (if (= #line1 nil)(setq #line1 "1")) (if (= #line2 nil)(setq #line2 "1")) (if (= #line3 nil)(setq #line3 "1")) (if (= #line4 nil)(setq #line4 "1")) (if (= #line5 nil)(setq #line5 "1")) (if (= #line6 nil)(setq #line6 "1")) (if (= plc1 nil)(setq plc1 4)) (if (= plc2 nil)(setq plc2 4)) (if (= plc3 nil)(setq plc3 4)) (if (= plc4 nil)(setq plc4 4)) (if (= plc5 nil)(setq plc5 4)) (if (= plc6 nil)(setq plc6 4)) (setq stog1 #line1) (setq stog2 #line2) (setq stog3 #line3) (setq stog4 #line4) (setq stog5 #line5) (setq stog6 #line6) ;******************* write and load DCL *********************** (ritedcl2) (setq dcl_id (load_dialog (strcat (getvar "tempprefix") "HowFar.dcl"))) (if (not (new_dialog "setup" dcl_id))(exit)) ;******************* write and load DCL *********************** (set_tile "sutitle" "HowFar SETUP ") (set_tile "sutext0" "FORMAT")(set_tile "sutext1" "Decimal")(set_tile "sutext2" "Fractional")(set_tile "sutext3" "Engineering") (set_tile "sutext4" "Architectural")(set_tile "sutext5" "Metric") (set_tile "sutext6" "Angle")(set_tile "subox0" "EXAMPLE") (set_tile "supls0" "#")(set_tile "susld0" "- Places +") (setq su_val1 28.6054687) (setq su_val2 726.57890498) (setq su_val3 45.12345678) (setq su_dis (strcat (rtos su_val1 2 plc1) "\"")) (set_tile "subox1" su_dis) (set_tile "supls1" (itoa plc1)) (set_tile "susld1" (itoa plc1)) (setq su_dis (strcat (rtos su_val1 5 plc2) "\"")) (set_tile "subox2" su_dis) (set_tile "supls2" (itoa plc2)) (set_tile "susld2" (itoa plc2)) (setq su_dis (strcat (rtos su_val1 3 plc3) "\"")) (set_tile "subox3" su_dis) (set_tile "supls3" (itoa plc3)) (set_tile "susld3" (itoa plc3)) (setq su_dis (strcat (rtos su_val1 4 plc4) "\"")) (set_tile "subox4" su_dis) (set_tile "supls4" (itoa plc4)) (set_tile "susld4" (itoa plc4)) (setq su_dis (strcat (rtos su_val2 2 plc5) "mm")) (set_tile "subox5" su_dis) (set_tile "supls5" (itoa plc5)) (set_tile "susld5" (itoa plc5)) (setq su_dis (strcat (rtos su_val3 2 plc6) " DEG")) (set_tile "subox6" su_dis) (set_tile "supls6" (itoa plc6)) (set_tile "susld6" (itoa plc6)) (set_tile "sutog0" "DISPLAY") (set_tile "sutog1" #line1) (set_tile "sutog2" #line2) (set_tile "sutog3" #line3) (set_tile "sutog4" #line4) (set_tile "sutog5" #line5) (set_tile "sutog6" #line6) (action_tile "susld1" "(setq plcX (get_tile \"susld1\"))(su_act0)(su_act1)") (action_tile "susld2" "(setq plcX (get_tile \"susld2\"))(su_act0)(su_act2)") (action_tile "susld3" "(setq plcX (get_tile \"susld3\"))(su_act0)(su_act3)") (action_tile "susld4" "(setq plcX (get_tile \"susld4\"))(su_act0)(su_act4)") (action_tile "susld5" "(setq plcX (get_tile \"susld5\"))(su_act0)(su_act5)") (action_tile "susld6" "(setq plcX (get_tile \"susld6\"))(su_act0)(su_act6)") (action_tile "sutog1" "(setq stog1 (get_tile \"sutog1\"))(su_tog0)(su_tog1)") (action_tile "sutog2" "(setq stog2 (get_tile \"sutog2\"))(su_tog0)(su_tog2)") (action_tile "sutog3" "(setq stog3 (get_tile \"sutog3\"))(su_tog0)(su_tog3)") (action_tile "sutog4" "(setq stog4 (get_tile \"sutog4\"))(su_tog0)(su_tog4)") (action_tile "sutog5" "(setq stog5 (get_tile \"sutog5\"))(su_tog0)(su_tog5)") (action_tile "sutog6" "(setq stog6 (get_tile \"sutog6\"))(su_tog0)(su_tog6)") (action_tile "accept" "(done_dialog)(setq restarx 0))") (action_tile "exitonly" "(done_dialog)(setq restarx -1))") (action_tile "restart1" "(done_dialog)(setq restarx 1))") (action_tile "restart2" "(done_dialog)(setq restarx 2))") (start_dialog)(unload_dialog dcl_id) ; ****** The following collects sets into #lines & #sets and puts them in file ****** (if (> restarx -1) (progn (setq #lines (strcat stog1 stog2 stog3 stog4 stog5 stog6)) (setq #setX (strcat (itoa plc1)(itoa plc2)(itoa plc3)(itoa plc4)(itoa plc5)(itoa plc6))) (setq s_file (findfile "Set_up.hfs")) (if (= s_file nil)(progn (setq s_file (getfiled "Select location for SETUP file" "Set_up" "hfs" 1)) (setq len (- (strlen s_file) 10)) (setq curnt_loc (substr s_file 1 len)) )) (setq set_file (open s_file "w")) (setq #lines (strcat #lines " ;1 indicates TO USE and a 0 indicates NOT TO USE")) (write-line #lines set_file) (setq #setX (strcat #setX " ;Each number indicates the number of places")) (write-line #setX set_file) (close set_file) (setq s_file (findfile "Set_up.hfs")) (if (= s_file nil)(progn (setq curnt_loc (strcat "\nThe SETUP file is in a folder which is not in your path statement.\nThis will prevent it from being used the next time HowFar is run.\n\nTherefore, it is recommended that you either:\n\n a. Move the SETUP file to a folder in your path statement.\n\n b. Add the folder where the SETUP file is located to your\n path statement.\n\n\nSETUP FILENAME :\nSet_up.hfs\n\nCURRENT LOCATION :\n" curnt_loc "\n\n")) (alert curnt_loc) )) )) ; ******* end of collect & putting ******* (if (< restarx 1)(howfarexit)) (if (> restarx 0)(c:HowFar)) ) ;******************************* end of setup ***************************** (defun su_act0 () (if (< plcX "0")(setq plcX "0")) (if (> plcX "8")(setq plcX "8")) ) (defun su_act1 () (setq plc1 (atoi plcX)) (setq dis1- (strcat (rtos su_val1 2 plc1) "\"")) (set_tile "subox1" dis1-) (set_tile "supls1" plcX) (set_tile "susld1" plcX) (mode_tile "supls0" 2)) (defun su_act2 () (setq plc2 (atoi plcX)) (setq dis1- (strcat (rtos su_val1 5 plc2) "\"")) (set_tile "subox2" dis1-) (set_tile "supls2" plcX) (set_tile "susld2" plcX) (mode_tile "supls0" 2)) (defun su_act3 () (setq plc3 (atoi plcX)) (setq dis1- (strcat (rtos su_val1 3 plc3) "\"")) (set_tile "subox3" dis1-) (set_tile "supls3" plcX) (set_tile "susld3" plcX) (mode_tile "supls0" 2)) (defun su_act4 () (setq plc4 (atoi plcX)) (setq dis1- (strcat (rtos su_val1 4 plc4) "\"")) (set_tile "subox4" dis1-) (set_tile "supls4" plcX) (set_tile "susld4" plcX) (mode_tile "supls0" 2)) (defun su_act5 () (setq plc5 (atoi plcX)) (setq dis1- (strcat (rtos su_val2 2 plc5) "mm")) (set_tile "subox5" dis1-) (set_tile "supls5" plcX) (set_tile "susld5" plcX) (mode_tile "supls0" 2)) (defun su_act6 () (setq plc6 (atoi plcX)) (setq dis1- (strcat (rtos su_val3 2 plc6) " DEG")) (set_tile "subox6" dis1-) (set_tile "supls6" plcX) (set_tile "susld6" plcX) (mode_tile "supls0" 2) ) (defun su_tog0 () (setq su_togx (strcat stog1 stog2 stog3 stog4 stog5 stog6)) ) (defun su_tog1 () (if (= su_togx "000000")(progn (setq stog1 "1") (set_tile "sutog1" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun su_tog2 () (if (= su_togx "000000")(progn (setq stog2 "1") (set_tile "sutog2" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun su_tog3 () (if (= su_togx "000000")(progn (setq stog3 "1") (set_tile "sutog3" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun su_tog4 () (if (= su_togx "000000")(progn (setq stog4 "1") (set_tile "sutog4" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun su_tog5 () (if (= su_togx "000000")(progn (setq stog5 "1") (set_tile "sutog5" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun su_tog6 () (if (= su_togx "000000")(progn (setq stog6 "1") (set_tile "sutog6" "1") (alert "\nAt least one format has to remain on!\n\nIf you wish you may turn on another\none and then turn this one off.\n\n\n") )) ) (defun c:HowFar (/ dis1- dis2- dis3- dis4- dis5- dis1x dis2x dis3x dis4x dis5x dis1y dis2y dis3y dis4y dis5y dist1 dist2 dist3 pnt1x pnt1y pnt2x pnt2y pnt3- pnt4- pnt5- pnt6- plcX ang0a ang1a ang2a chkclick suclick s_file comand) (if (= %exit% nil)(progn (setq olderr *error* *error* HF_err) (setq oldprec (getvar "luprec")) (setq oldortho (getvar "orthomode")) )) (setq %exit% 1) (setq s_file (findfile "Set_up.hfs")) (if (/= s_file nil)(progn (setq set_file (open s_file "r")) (setq #lines (read-line set_file)) (setq #setX (read-line set_file)) (close set_file) )) (if (= #lines nil)(setq #lines "111111")) (setq #line1 (substr #lines 1 1)) (setq #line2 (substr #lines 2 1)) (setq #line3 (substr #lines 3 1)) (setq #line4 (substr #lines 4 1)) (setq #line5 (substr #lines 5 1)) (setq #line6 (substr #lines 6 1)) (if (= #setX nil)(setq #setX "444444")) (setq plc1 (atoi (substr #setX 1 1))) (setq plc2 (atoi (substr #setX 2 1))) (setq plc3 (atoi (substr #setX 3 1))) (setq plc4 (atoi (substr #setX 4 1))) (setq plc5 (atoi (substr #setX 5 1))) (setq plc6 (atoi (substr #setX 6 1))) (if (= what_unit nil)(setq what_unit (getvar "measureinit"))) (setvar "luprec" 8) (setvar "orthomode" 0) (if (/= restarx 1)(progn (setq pnt1- (getpoint "\nSelect point Pt1 ")) (setq pnt2- (getpoint pnt1- "*Done* Select point Pt2 ")) )) (setq pnt1x (car pnt1-)) (setq pnt1y (car (cdr pnt1-))) (setq pnt2x (car pnt2-)) (setq pnt2y (car (cdr pnt2-))) (setq pnt3- (list pnt1x)) (setq pnt3- (append pnt3- (list pnt2y))) (setq pnt4- (list pnt2x)) (setq pnt4- (append pnt4- (list pnt2y))) (setq pnt5- (list pnt1x)) (setq pnt5- (append pnt5- (list pnt1y))) (setq pnt6- (list pnt1x)) (setq pnt6- (append pnt6- (list pnt2y))) (ritedcl1) (setq dcl_id (load_dialog (strcat (getvar "tempprefix") "HowFar.dcl"))) (if (not (new_dialog "HowFar" dcl_id))(exit)) (if (= what_unit 0) (progn (setq dist1 (distance pnt1- pnt2-)) (setq dist2 (distance pnt3- pnt4-)) (setq dist3 (distance pnt5- pnt6-)) (set_tile "set0" "1") (set_tile "title" "HowFar Actual units are in \"INCHES\"") )) (if (= what_unit 1) (progn (setq dist1 (/ (distance pnt1- pnt2-) 25.4)) (setq dist2 (/ (distance pnt3- pnt4-) 25.4)) (setq dist3 (/ (distance pnt5- pnt6-) 25.4)) (set_tile "set1" "1") (set_tile "title" "HowFar Actual units are in \"MILLIMETERS\"") )) (setq dis1- (strcat (rtos dist1 2 plc1) "\"")) (setq dis2- (strcat (rtos dist1 5 plc2) "\"")) (setq dis3- (rtos dist1 3 plc3)) (setq dis4- (rtos dist1 4 plc4)) (setq dis5- (strcat (rtos (* dist1 25.4) 2 plc5)"mm")) (setq dis1x (strcat (rtos dist2 2 plc1) "\"")) (setq dis2x (strcat (rtos dist2 5 plc2) "\"")) (setq dis3x (rtos dist2 3 plc3)) (setq dis4x (rtos dist2 4 plc4)) (setq dis5x (strcat (rtos (* dist2 25.4) 2 plc5)"mm")) (setq dis1y (strcat (rtos dist3 2 plc1) "\"")) (setq dis2y (strcat (rtos dist3 5 plc2) "\"")) (setq dis3y (rtos dist3 3 plc3)) (setq dis4y (rtos dist3 4 plc4)) (setq dis5y (strcat (rtos (* dist3 25.4) 2 plc5)"mm")) (setq ang0a (angtos (angle pnt1- pnt2-) 0 0)) (setq ang1a (angtos (angle pnt1- pnt2-) 0 plc6)) (setq ang2a (angtos (angle pnt1- pnt2-) 1 plc6)) (set_tile "_txt6-" ang0a) (set_tile "_txt6x" ang1a) (set_tile "_txt6y" ang2a) (set_tile "_txt1-" dis1-) (set_tile "_txt2-" dis2-) (set_tile "_txt3-" dis3-) (set_tile "_txt4-" dis4-) (set_tile "_txt5-" dis5-) (set_tile "_txt1x" dis1x) (set_tile "_txt2x" dis2x) (set_tile "_txt3x" dis3x) (set_tile "_txt4x" dis4x) (set_tile "_txt5x" dis5x) (set_tile "_txt1y" dis1y) (set_tile "_txt2y" dis2y) (set_tile "_txt3y" dis3y) (set_tile "_txt4y" dis4y) (set_tile "_txt5y" dis5y) (if (= what_unit 0)(progn (set_tile "_mode1" "Decimal ") (set_tile "_mode5" "Metric") )) (if (= what_unit 1)(progn (set_tile "_mode1" "Decimal") (set_tile "_mode5" "Metric ") )) (set_tile "_mode2" "Fractional") (set_tile "_mode3" "Engineering") (set_tile "_mode4" "Architectural") (set_tile "_mode6" "Angle Pt1-Pt2") (set_tile "label1" "Nearest Deg") (set_tile "label2" "Decimal Deg") (set_tile "label3" "Deg/Min/Sec") (set_tile "formatx" "FORMAT") (set_tile "pt1pt2" "Pt1 to Pt2") (set_tile "xvalue" "X value") (set_tile "yvalue" "Y value") (set_tile "places1" "- Places +") (set_tile "places2" "- Places +") (set_tile "_sld1" (itoa plc1)) (set_tile "_pls1" (itoa plc1)) (set_tile "_sld2" (itoa plc2)) (set_tile "_pls2" (itoa plc2)) (set_tile "_sld3" (itoa plc3)) (set_tile "_pls3" (itoa plc3)) (set_tile "_sld4" (itoa plc4)) (set_tile "_pls4" (itoa plc4)) (set_tile "_sld5" (itoa plc5)) (set_tile "_pls5" (itoa plc5)) (set_tile "_sld6" (itoa plc6)) (set_tile "_pls6" (itoa plc6)) (set_tile "credit0" "HowFar Version 1.0 Copyright © 2000 Richard Sandgren") (set_tile "settinx" "Set actual units to->") (set_tile "anglx" "Show angle->") (set_tile "angtile1" "1") (action_tile "_sld1" "(setq plcX (get_tile \"_sld1\"))(sld_act0)(sld_act1)") (action_tile "_sld2" "(setq plcX (get_tile \"_sld2\"))(sld_act0)(sld_act2)") (action_tile "_sld3" "(setq plcX (get_tile \"_sld3\"))(sld_act0)(sld_act3)") (action_tile "_sld4" "(setq plcX (get_tile \"_sld4\"))(sld_act0)(sld_act4)") (action_tile "_sld5" "(setq plcX (get_tile \"_sld5\"))(sld_act0)(sld_act5)") (action_tile "_sld6" "(setq plcX (get_tile \"_sld6\"))(sld_act0)(sld_act6)") (action_tile "set0" "(uSET_0)") (action_tile "set1" "(uSET_1)") (action_tile "angtile1" "(angprog1)") (action_tile "angtile2" "(angprog2)") (defun angprog1 (/ ang0b ang1b ang2b) (setq ang0b (angtos (angle pnt1- pnt2-) 0 0)) (setq ang1b (angtos (angle pnt1- pnt2-) 0 plc6)) (setq ang2b (angtos (angle pnt1- pnt2-) 1 plc6)) (set_tile "_txt6-" ang0b) (set_tile "_txt6x" ang1b) (set_tile "_txt6y" ang2b) (set_tile "_mode6" "Angle Pt1-Pt2") (mode_tile "_mode1" 2) ) (defun angprog2 (/ ang0c ang1c ang2c) (setq ang0c (angtos (angle pnt2- pnt1-) 0 0)) (setq ang1c (angtos (angle pnt2- pnt1-) 0 plc6)) (setq ang2c (angtos (angle pnt2- pnt1-) 1 plc6)) (set_tile "_txt6-" ang0c) (set_tile "_txt6x" ang1c) (set_tile "_txt6y" ang2c) (set_tile "_mode6" "Angle Pt2-Pt1") (mode_tile "_mode1" 2) ) (defun uSET_0 () (setq what_unit 0) (setq dist1 (distance pnt1- pnt2-)) (setq dist2 (distance pnt3- pnt4-)) (setq dist3 (distance pnt5- pnt6-)) (set_tile "title" "HowFar Actual units are in \"INCHES\"") (set_tile "_mode1" "Decimal ") (set_tile "_mode5" "Metric") (uSET_x)) (defun uSET_1 () (setq what_unit 1) (setq dist1 (/ (distance pnt1- pnt2-) 25.4)) (setq dist2 (/ (distance pnt3- pnt4-) 25.4)) (setq dist3 (/ (distance pnt5- pnt6-) 25.4)) (set_tile "title" "HowFar Actual units are in \"MILLIMETERS\"") (set_tile "_mode1" "Decimal") (set_tile "_mode5" "Metric ") (uSET_x)) (defun uSET_x (/ dis1- dis1x dis1y dis2- dis2x dis2y dis3- dis3x dis3y dis4- dis4x dis4y dis5- dis5x dis5y) (setq dis1- (strcat (rtos dist1 2 plc1) "\"")) (setq dis1x (strcat (rtos dist2 2 plc1) "\"")) (setq dis1y (strcat (rtos dist3 2 plc1) "\"")) (setq dis2- (strcat (rtos dist1 5 plc2) "\"")) (setq dis2x (strcat (rtos dist2 5 plc2) "\"")) (setq dis2y (strcat (rtos dist3 5 plc2) "\"")) (setq dis3- (rtos dist1 3 plc3)) (setq dis3x (rtos dist2 3 plc3)) (setq dis3y (rtos dist3 3 plc3)) (setq dis4- (rtos dist1 4 plc4)) (setq dis4x (rtos dist2 4 plc4)) (setq dis4y (rtos dist3 4 plc4)) (setq dis5- (strcat (rtos (* dist1 25.4) 2 plc5)"mm")) (setq dis5x (strcat (rtos (* dist2 25.4) 2 plc5)"mm")) (setq dis5y (strcat (rtos (* dist3 25.4) 2 plc5)"mm")) (set_tile "_txt1-" dis1-) (set_tile "_txt1x" dis1x) (set_tile "_txt1y" dis1y) (set_tile "_txt2-" dis2-) (set_tile "_txt2x" dis2x) (set_tile "_txt2y" dis2y) (set_tile "_txt3-" dis3-) (set_tile "_txt3x" dis3x) (set_tile "_txt3y" dis3y) (set_tile "_txt4-" dis4-) (set_tile "_txt4x" dis4x) (set_tile "_txt4y" dis4y) (set_tile "_txt5-" dis5-) (set_tile "_txt5x" dis5x) (set_tile "_txt5y" dis5y) (mode_tile "_mode1" 2) ) (defun sld_act0 () (if (< plcX "0")(setq plcX "0")) (if (> plcX "8")(setq plcX "8")) ) (defun sld_act1(/ dis1- dis1x dis1y) (setq plc1 (atoi plcX)) (setq dis1- (strcat (rtos dist1 2 plc1) "\"")) (setq dis1x (strcat (rtos dist2 2 plc1) "\"")) (setq dis1y (strcat (rtos dist3 2 plc1) "\"")) (set_tile "_txt1-" dis1-) (set_tile "_txt1x" dis1x) (set_tile "_txt1y" dis1y) (set_tile "_sld1" plcX) (set_tile "_pls1" plcX) (mode_tile "_mode1" 2) ) (defun sld_act2(/ dis2- dis2x dis2y) (setq plc2 (atoi plcX)) (setq dis2- (strcat (rtos dist1 5 plc2) "\"")) (setq dis2x (strcat (rtos dist2 5 plc2) "\"")) (setq dis2y (strcat (rtos dist3 5 plc2) "\"")) (set_tile "_txt2-" dis2-) (set_tile "_txt2x" dis2x) (set_tile "_txt2y" dis2y) (set_tile "_sld2" plcX) (set_tile "_pls2" plcX) (mode_tile "_mode1" 2) ) (defun sld_act3(/ dis3- dis3x dis3y) (setq plc3 (atoi plcX)) (setq dis3- (rtos dist1 3 plc3)) (setq dis3x (rtos dist2 3 plc3)) (setq dis3y (rtos dist3 3 plc3)) (set_tile "_txt3-" dis3-) (set_tile "_txt3x" dis3x) (set_tile "_txt3y" dis3y) (set_tile "_sld3" plcX) (set_tile "_pls3" plcX) (mode_tile "_mode1" 2) ) (defun sld_act4(/ dis4- dis4x dis4y) (setq plc4 (atoi plcX)) (setq dis4- (rtos dist1 4 plc4)) (setq dis4x (rtos dist2 4 plc4)) (setq dis4y (rtos dist3 4 plc4)) (set_tile "_txt4-" dis4-) (set_tile "_txt4x" dis4x) (set_tile "_txt4y" dis4y) (set_tile "_sld4" plcX) (set_tile "_pls4" plcX) (mode_tile "_mode1" 2) ) (defun sld_act5(/ dis5- dis5x dis5y) (setq plc5 (atoi plcX)) (setq dis5- (strcat (rtos (* dist1 25.4) 2 plc5)"mm")) (setq dis5x (strcat (rtos (* dist2 25.4) 2 plc5)"mm")) (setq dis5y (strcat (rtos (* dist3 25.4) 2 plc5)"mm")) (set_tile "_txt5-" dis5-) (set_tile "_txt5x" dis5x) (set_tile "_txt5y" dis5y) (set_tile "_sld5" plcX) (set_tile "_pls5" plcX) (mode_tile "_mode1" 2) ) (defun sld_act6(/ ang1d ang2d) (setq plc6 (atoi plcX)) (setq ang1d (angtos (angle pnt1- pnt2-) 0 plc6)) (setq ang2d (angtos (angle pnt1- pnt2-) 1 plc6)) (set_tile "_txt6x" ang1d) (set_tile "_txt6y" ang2d) (set_tile "_sld6" plcX) (set_tile "_pls6" plcX) (mode_tile "_mode1" 2) ) (action_tile "setup" "(done_dialog)(setq chkclick F)") (action_tile "accept" "(done_dialog)(setq chkclick T)") (start_dialog)(unload_dialog dcl_id) (if (= chkclick F)(#setup)) (if (= chkclick T)(howfarexit)) (princ) ) (defun howfarexit () (setvar "luprec" oldprec) (setvar "orthomode" oldortho) (setq *error* olderr) (setq s_file nil) (setq #setX nil oldortho nil #lines nil #line6 nil #line5 nil set_file nil oldprec nil #line4 nil #line3 nil #line2 nil #line1 nil pnt2- nil dcl_id nil pnt1- nil what_unit nil plc1 nil plc2 nil plc3 nil plc4 nil plc5 nil plc6 nil restarx nil %exit% nil su_togx nil) (prompt "\nHowFar done.....") (princ) ) (defun ritedcl1 (/ dcl-file ln-cntr do-line out-cntr %done%) (setq dcl-file (open (strcat (getvar "tempprefix") "HowFar.dcl") "w")) (princ "HowFar:dialog{key=\"title\";width=80;" dcl-file) (setq ln-cntr 1) (while (<= ln-cntr 5) (setq do-line (substr #lines ln-cntr 1)) (if (= do-line "1")(progn (princ ":row{:column{ spacer;:text{key=\"formatx\";width=14;fixed_width=true;}" dcl-file) (princ (strcat ":text{key=\"_mode" (itoa ln-cntr) "\";width=14;fixed_width=true;}}") dcl-file) (princ ":column{:text{key=\"pt1pt2\";width=2;alignment=centered;}:image{color=8;height=0.2;}" dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "-\";width=13;}}") dcl-file) (princ ":column{:text{key=\"xvalue\";width=2;alignment=centered;}:image{color=8;height=0.2;}" dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "x\";width=13;}}") dcl-file) (princ ":column{:text{key=\"yvalue\";width=2;alignment=centered;}:image{color=8;height=0.2;}" dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "y\";width=13;}}") dcl-file) (princ ":column{:text{label=\"\";}" dcl-file) (princ (strcat ":text{key=\"_pls" (itoa ln-cntr) "\";}}") dcl-file) (princ ":column{:text{label=\"\";}:text{key=\"places1\";width=2;alignment=centered;}" dcl-file) (princ (strcat ":slider{key=\"_sld" (itoa ln-cntr) "\";max_value=9;min_value=-1;width=8;small_increment=1;big_increment=2;}}}") dcl-file) (setq %done% 1) (setq out-cntr ln-cntr) (setq ln-cntr 6) )) (if (/= %done% 1)(setq out-cntr ln-cntr)) (setq ln-cntr (1+ ln-cntr)) ) (setq ln-cntr (1+ out-cntr)) (while (<= ln-cntr 5) (setq do-line (substr #lines ln-cntr 1)) (if (= do-line "1")(progn (princ ":image{color=8;height=0.15;}:row{" dcl-file) (princ (strcat ":text{key=\"_mode" (itoa ln-cntr) "\";width=14;fixed_width=true;}") dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "-\";width=13;}") dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "x\";width=13;}") dcl-file) (princ (strcat ":edit_box{key=\"_txt" (itoa ln-cntr) "y\";width=13;}:text{key=\"_pls" (itoa ln-cntr) "\";}") dcl-file) (princ (strcat ":slider{key=\"_sld" (itoa ln-cntr) "\";max_value=9;min_value=-1;width=8;small_increment=1;big_increment=2;}}") dcl-file) )) (setq ln-cntr (1+ ln-cntr)) ) (setq do-line (substr #lines 6 1)) (if (= do-line "1")(progn (princ ":image{color=8;height=0.2;}:row{:column{:text{label=\"\";width=2;}:text{key=\"_mode6\";width=14;}} :column{:text{key=\"label1\";}:edit_box{key=\"_txt6-\";width=13;}}:column{:text{key=\"label2\";}:edit_box{key=\"_txt6x\";width=13;}} :column{:text{key=\"label3\";}:edit_box{key=\"_txt6y\";width=13;}}:column{:text{label=\"\";}:text{key=\"_pls6\";}} :column{:text{key=\"places2\";width=2;alignment=centered;}:slider{key=\"_sld6\";max_value=9;min_value=-1;width=8;small_increment=1;big_increment=2;}}}" dcl-file) )) (princ ":image{color=8;height=0.2;}:row{fixed_width=true;alignment=centered;:text{key=\"settinx\";width=16;fixed_width=true;} :radio_button{key=\"set0\";label=\"Inches\";}:radio_button{key=\"set1\";label=\"MM's\";}:image{color=8;width=0.6;}:text{key=\"anglx\";width=13;fixed_width=true;} :radio_button{key=\"angtile1\";label=\"Pt1-Pt2\";}:radio_button{key=\"angtile2\";label=\"Pt2-Pt1\";}} :image{color=8;height=0.2;}:row{spacer;:text{key=\"credit0\";width=50;fixed_width=true;}:button{label=\"SETUP\";key=\"setup\";width=8;fixed_width=true;} :button{label=\"EXIT\";key=\"accept\";is_default=true;width=6;fixed_width=true;} spacer;}}" dcl-file) (close dcl-file) (princ) ) (defun ritedcl2 (/ dcl-file) (setq dcl-file (open (strcat (getvar "tempprefix") "HowFar.dcl") "w")) (princ "setup:dialog{key=\"sutitle\";:boxed_row{:column{width=3;spacer;}:column{width=12;:text{key=\"sutext0\";}:text{key=\"sutext1\";}:text{key=\"sutext2\";}:text{key=\"sutext3\";}:text{key=\"sutext4\";}:text{key=\"sutext5\";}:text{key=\"sutext6\";}}:column{width=16;:text{key=\"subox0\";}:edit_box{key=\"subox1\";}:edit_box{key=\"subox2\";}:edit_box{key=\"subox3\";}:edit_box{key=\"subox4\";}:edit_box{key=\"subox5\";}:edit_box{key=\"subox6\";}}:column{width=4;:text{key=\"supls0\";alignment=centered;}:text{key=\"supls1\";alignment=centered;}:text{key=\"supls2\";alignment=centered;}:text{key=\"supls3\";alignment=centered;}:text{key=\"supls4\";alignment=centered;}:text{key=\"supls5\";alignment=centered;}:text{key=\"supls6\";alignment=centered;}}:column{width=8;:text{key=\"susld0\";alignment=centered;}:slider{key=\"susld1\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}:slider{key=\"susld2\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}:slider{key=\"susld3\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}:slider{key=\"susld4\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}:slider{key=\"susld5\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}:slider{key=\"susld6\";max_value=9;min_value=-1;frc_small_increment=1;big_increment=2;}}:column{width=9;:text{key=\"sutog0\";alignment=centered;}:toggle{key=\"sutog1\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}:toggle{key=\"sutog2\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}:toggle{key=\"sutog3\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}:toggle{key=\"sutog4\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}:toggle{key=\"sutog5\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}:toggle{key=\"sutog6\";label=\"Yes\";alignment=centered;width=3;fixed_width=true;}}:column{width=2;}}:row{:spacer{width=6;}:boxed_column{width=20;label=\"Save/Exit or Cancel\";:button{label=\"SAVE/EXIT\";key=\"accept\";height=2;is_default=true;alignment=centered;}:button{label=\"CANCEL\";key=\"exitonly\";height=2; alignment=centered; }}:boxed_column{width=20;label=\"Save and Restart\";:button{label=\"use LAST points\";key=\"restart1\";height=2;}:button{label=\"use NEW points\";key=\"restart2\";height=2;}}:spacer{width=6;}}}" dcl-file) (close dcl-file) ) (prompt "\n\nHowFar.lsp.....Loaded!") (prompt "\nType HOWFAR at command prompt to start.") (princ)