;;;Format and place a curve table using current style settings ;;;to fix the size of the table. The number of decimal ;;;places is hard coded. Locate (RTOS ... 2 2) to change ;;; ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: 3-11-1992 ;;;> EDITED: 10-31-2005 ;;; (DEFUN c:ctbl (/ cent arad sang eang cang arcl txsz radl tp1 tp2 tp3 tp4 tp5 tp6 cnt lp0 lp1 lp2 lp3 lp4 lp5 lp6 vp1 vp2 vp3 vp4 vp5 bp1 bp2 bp3 bp5 atyp mode prec ) ; (setq dimsc (getvar"dimscale")) (COMMAND "_.undo" "begin") (IF dimscl nil (LOAD "dimscl") ) ;_ end of if (dimscl) (IF txtsize NIL (LOAD "txtsize" "\nFile TXTSIZE.LSP not found!")) (IF do_tanlbl (IF do_cmud (SETQ txht (txtsize "120.0")) (SETQ txht (txtsize "125.0")) ) (txtsize nil) ) (SETVAR "cmdecho" 0) (IF getstyle (getstyle "A") (PROGN (LOAD "getstyle") (getstyle "A")) ) ;_ end of if (SETQ tp1 nil cnt 0 ) ;_ end of setq (SETVAR "cecolor" "bylayer") (IF do_tanlbl (SETQ atyp "DMs") (SETQ atyp (ukword 1 "DEgrees DMs Grads Rads Surveyor's" "\Select angle readout (DEgrees/DMs/Grads/Rads/Surveyor's)" "DM" ) ;_ end of ukword ) ;_ end of setq ) ;_ end of IF (IF (OR (= atyp "DEgrees") (= atyp "DE")) (SETQ mode 0 prec 2 ) ;_ end of setq (IF (OR (= atyp "DMs") (= atyp "DM")) (SETQ mode 1 prec 4 ) ;_ end of setq (IF (OR (= atyp "Grads") (= atyp "G")) (SETQ mode 2 prec 2 ) ;_ end of setq (IF (OR (= atyp "Rads") (= atyp "R")) (SETQ mode 3 prec 2 ) ;_ end of setq (IF (OR (= atyp "Surveyor's") (= atyp "S")) (SETQ mode 4 prec 4 ) ;_ end of setq (SETQ prec 2) ) ;if ) ;if ) ;if ) ;if ) ;if (SETQ dataoption (IF do_tanlbl "Data" (ukword 1 "Data Table" "Insert single curve ata or able?" (IF dataoption dataoption "Data" ) ;_ end of IF ) ;_ end of ukword ) ;_ end of IF ) ;_ end of setq (IF (EQ dataoption "Data") (SETQ optstr "data insertion: ") (SETQ optstr "curve table: ") ) ;_ end of if (IF do_tanlbl (SETQ cent tlbl_cent) (SETQ cent (CAR (ENTSEL (STRCAT "\nPick curve for " optstr)))) ) (PRINC cent) (IF (EQUAL (CDR (ASSOC 0 (ENTGET cent))) "ARC") (PROGN (SETQ arad (CDR (ASSOC 40 (ENTGET cent))) dgcrv (/ 100.0 arad);arc based ; dgcrv (* 2.0 (ATAN (/ 50.0 (/ (SQRT (- (* 4.0 arad arad) (* 100.0 100.0))) 2.0))));chord based sang (CDR (ASSOC 50 (ENTGET cent))) eang (CDR (ASSOC 51 (ENTGET cent))) txsz txtht txsz2 (* txtht 1.4) acen (CDR (ASSOC 10 (ENTGET cent))) ) ;setq (SETQ cang (- (IF(> sang eang)(+(* 2 PI)eang)eang) sang)) (SETQ arcl (STRCAT (RTOS (* cang arad) 2 2) "'") radl (STRCAT (RTOS arad 2 2) "'") tanr (* (/ arad (COS (/ cang 2.0))) (SIN (/ cang 2.0))) tanl (STRCAT (RTOS tanr 2 2) ;_ end of rtos "'" ) ;_ end of strcat cang (ANGTOS cang mode prec) dgcrv (ANGTOS dgcrv mode prec) ) ;setq (IF (= (SUBSTR cang 2 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 1) "%%d" (SUBSTR cang 3))) (IF (= (SUBSTR cang 3 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 2) "%%d" (SUBSTR cang 4))) ;_ end of setq (IF (= (SUBSTR cang 4 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 3) "%%d" (SUBSTR cang 5))) ;_ end of setq (IF (= (SUBSTR cang 5 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 3) "%%d" (SUBSTR cang 6)) ;_ end of strcat ) ;_ end of setq (IF (= (SUBSTR cang 6 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 3) "%%d" (SUBSTR cang 7)) ;_ end of strcat ) ;_ end of setq (IF (= (SUBSTR cang 7 1) "d") (SETQ cang (STRCAT (SUBSTR cang 1 3) "%%d" (SUBSTR cang 8)) ;_ end of strcat ) ;_ end of setq ) ;if ) ;if ) ;if ) ;if ) ;if ) ;if (IF (= (SUBSTR dgcrv 2 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 1) "%%d" (SUBSTR dgcrv 3))) (IF (= (SUBSTR dgcrv 3 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 2) "%%d" (SUBSTR dgcrv 4))) ;_ end of setq (IF (= (SUBSTR dgcrv 4 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 3) "%%d" (SUBSTR dgcrv 5))) ;_ end of setq (IF (= (SUBSTR dgcrv 5 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 3) "%%d" (SUBSTR dgcrv 6)) ;_ end of strcat ) ;_ end of setq (IF (= (SUBSTR dgcrv 6 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 3) "%%d" (SUBSTR dgcrv 7)) ;_ end of strcat ) ;_ end of setq (IF (= (SUBSTR dgcrv 7 1) "d") (SETQ dgcrv (STRCAT (SUBSTR dgcrv 1 3) "%%d" (SUBSTR dgcrv 8)) ;_ end of strcat ) ;_ end of setq ) ;if ) ;if ) ;if ) ;if ) ;if ) ;if (IF (AND tp1 (EQ dataoption "Table")) (SETQ tp1 (POLAR tp1 (* 1.5 PI) (* 3.0 txsz))) (IF (EQ dataoption "Table") (PROGN (SETQ tp1 (upoint 1 "" "Start point of curve table" nil nil) ;_ end of upoint tp2 (POLAR tp1 0 (* 12.0 txsz)) tp3 (POLAR tp2 0 (* 12.0 txsz)) tp4 (POLAR tp3 0 (* 12.0 txsz)) tp6 (POLAR tp4 0 (* 12.0 txsz)) tp7 (POLAR tp6 0 (* 12.0 txsz)) tp5 (POLAR tp1 (/ PI 2) (/ txsz 2)) lp1 (POLAR (POLAR tp5 PI (* 6 txsz)) (/ PI 2) (* 1.5 txsz)) lp2 (POLAR lp1 0 (* 72 txsz)) lp3 (POLAR lp1 (* 1.5 PI) (* 3 txsz)) lp4 (POLAR lp2 (* 1.5 PI) (* 3 txsz)) lp5 (POLAR (POLAR lp1 0 (* 36 txsz)) (/ PI 2) (* 1.5 txsz)) cnt (1+ cnt) ) ;_ end of setq (IF lp0 nil (SETQ lp0 (POLAR lp1 (/ PI 2) (* 4 txsz)) vp1 (POLAR lp1 0 (* 12 txsz)) vp2 (POLAR vp1 0 (* 12 txsz)) vp3 (POLAR vp2 0 (* 12 txsz)) vp5 (POLAR vp3 0 (* 12 txsz)) vp6 (POLAR vp5 0 (* 12 txsz)) vp4 (POLAR lp0 0 (* 72 txsz)) ) ;setq ) ;if ) ;_ end of PROGN ) ;_ end of IF ) ;if (IF (AND (= cnt 1) (EQ dataoption "Table")) (PROGN (SETQ colr "4") (c:mklayr) (COMMAND ".text" "c" lp5 txsz2 0 "CURVE TABLE") (SETQ colr "2") (c:mklayr) (COMMAND ".text" "c" tp1 txsz 0 "CURVE" ".text" "c" tp2 txsz 0 "DEG OF CURVE" ".text" "c" tp3 txsz 0 "RADIUS" ".text" "c" tp4 txsz 0 "TANGENT" ".text" "c" tp6 txsz 0 "LENGTH" ".text" "c" tp7 txsz 0 "DELTA" ) ;_ end of COMMAND ;_ end of COMMAND (SETQ colr "4") (c:mklayr) (COMMAND ".line" lp1 lp2 "" ".line" lp3 lp4 "") ;_ end of command (SETQ tp1 (POLAR tp1 (* 1.5 PI) (* 3.0 txsz)) tp2 (POLAR tp1 0 (* 12.0 txsz)) tp3 (POLAR tp2 0 (* 12.0 txsz)) tp4 (POLAR tp3 0 (* 12.0 txsz)) tp6 (POLAR tp4 0 (* 12.0 txsz)) tp7 (POLAR tp6 0 (* 12.0 txsz)) tp5 (POLAR tp1 (/ PI 2) (/ txsz 2)) lp3 (POLAR (POLAR (POLAR tp5 PI (* 6 txsz)) (/ PI 2) (* 1.5 txsz)) ;_ end of polar (* 1.5 PI) (* 3 txsz) ) ;_ end of polar lp4 (POLAR (POLAR (POLAR (POLAR tp5 PI (* 6 txsz)) (/ PI 2) (* 1.5 txsz)) ;_ end of polar 0 (* 72 txsz) ) ;_ end of polar (* 1.5 PI) (* 3 txsz) ) ;_ end of polar ) ;setq ) ;progn ) ;if ;;; (COMMAND) (SETQ colr "2") (c:mklayr) (IF (EQ dataoption "Data") (PROGN (SETQ txang (- 0 (GETVAR "viewtwist")) tp1 (POLAR (POLAR (upoint 1 "" "Data insertion point" nil nil)(- txang (/ PI 2.0)) txsz) txang (* 4.0 txsz)) tp1l (POLAR tp1 (+ txang PI) txsz) tp2 (POLAR tp1 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp2l (POLAR tp2 (+ txang PI) txsz) tp3 (POLAR tp2 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp3l (POLAR tp3 (+ txang PI) txsz) tp4 (POLAR tp3 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp4l (POLAR tp4 (+ txang PI) txsz) tp5 (POLAR tp4 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp5l (POLAR tp5 (+ txang PI) txsz) tp6 (POLAR tp5 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp6l (POLAR tp6 (+ txang PI) txsz) tp7 (POLAR tp6 (- txang (/ PI 2.0)) (* 1.5 txsz)) tp7l (POLAR tp7 (+ txang PI) txsz) ) ;setq (COMMAND ".text" "j" "r" tp1l txsz (* 180.0 (/ txang PI)) "R =" ;"RADIUS =" ".text" tp1 txsz (* 180.0 (/ txang PI)) radl ".text" "j" "r" tp2l txsz (* 180.0 (/ txang PI)) "T =" ;"TANGENT =" ".text" tp2 txsz (* 180.0 (/ txang PI)) tanl ".text" "j" "r" tp3l txsz (* 180.0 (/ txang PI)) "I =" ;"ANGLE OF INTERSECTION =" ".text" tp3 txsz (* 180.0 (/ txang PI)) cang ".text" "j" "r" tp4l txsz (* 180.0 (/ txang PI)) "D =" ;"DEGREE OF CURVE =" ".text" tp4 txsz (* 180.0 (/ txang PI)) dgcrv ".text" "j" "r" tp5l txsz (* 180.0 (/ txang PI)) "L =" ;"LENGTH =" ".text" tp5 txsz (* 180.0 (/ txang PI)) arcl ) ;_ end of COMMAND (SETQ tlbl_radl radl tlbl_tanr tanr tlbl_cang cang tlbl_dgcrv dgcrv tlbl_arcl arcl tlbl_acen acen ) ) ;_ end of progn (PROGN (SETQ cidno (GETPOINT "\nPlace curve I.D. no. ") idcir (POLAR cidno (/ PI 2) (/ txsz 2)) ) ;setq ;;; (COMMAND) (COMMAND ".text" "c" cidno txsz 0 cnt ".circle" idcir txsz) ;_ end of command (SETQ bp6 (POLAR lp4 PI (* 12 txsz)) bp5 (POLAR bp6 PI (* 12 txsz)) bp3 (POLAR bp5 PI (* 12 txsz)) bp2 (POLAR bp3 PI (* 12 txsz)) bp1 (POLAR bp2 PI (* 12 txsz)) ) ;setq ;;; (COMMAND) (SETQ colr "4") (c:mklayr) (COMMAND ".pline" lp0 vp4 lp4 lp3 lp0 "c" ".line" vp1 bp1 "" ".line" vp2 bp2 "" ".line" vp3 bp3 "" ".line" vp5 bp5 "" ".line" vp6 bp6 "" ) ;_ end of COMMAND ) ;_ end of progn ) ;_ end of if ;;; (SETQ do_tanlbl NIL) ) ;progn ) ;if (COMMAND "_.undo" "end") (getstyle "") (SETVAR "cmdecho" 1) ;;; (COMMAND) (PRINC) ) ;defun ;|«Visual LISP© Format Options» (120 2 15 2 T "end of " 100 9 2 1 0 nil nil T T) ***Don't add text below the comment!***|;