;;;Sets 3D elevation of pipe end points and sets layer for different utilities ;;; ;;; Author: ;;; Henry C. Francis ;;; 425 N. Ashe St. ;;; Southern Pines, NC 28387 ;;; ;;; e-mail hfrancis@pinehurst.net ;;; All rights reserved. ;;; ;;; Copyright: 2000 ;;; Edited: 10/19/2004 ;;; (DEFUN endz_error (msg /) (SETVAR "osmode" old_osmode) (SETQ *error* (IF old_error old_error NIL ) ;_ end of IF ) ;_ end of SETQ (SETQ ent_10x NIL ent_10y NIL ent_10z NIL ent_11x NIL ent_11y NIL ent_11z NIL 1is_grd NIL 1is_top NIL 1is_inv NIL 2is_grd NIL 2is_top NIL 2is_inv NIL ) ;_ end of SETQ (PRINC "\n") (PRINC msg) (PRINC) ) ;_ end of defun (DEFUN c:endz () (SETQ old_osmode (GETVAR "osmode")) (SETVAR "osmode" 9) (SETQ old_error *error*) (SETQ *error* endz_error) (SETQ linetxt "") (IF (AND ustr ureal uint ukword) NIL (LOAD "uutils" "\nFile UUTILS.LSP not loaded") ) ;_ end of IF (WHILE (SETQ line_ent (ENTSEL (STRCAT "\nSelect point or near end of " linetxt "line to set \"Z\" for ( to quit) ") ) ;_ end of ENTSEL ) ;_ end of SETQ (SETQ linetxt "next ") (SETQ ent_data (ENTGET (CAR line_ent))) (SETQ ent_pt (CADR line_ent)) (SETQ ent_pt (LIST (CAR ent_pt) (CADR ent_pt) 0)) (COND ((EQ (CDR (ASSOC 0 ent_data)) "LINE") (SETQ ent_10x (CADR (ASSOC 10 ent_data))) (SETQ ent_10y (CADDR (ASSOC 10 ent_data))) (SETQ ent_11x (CADR (ASSOC 11 ent_data))) (SETQ ent_11y (CADDR (ASSOC 11 ent_data))) ) ((EQ (CDR (ASSOC 0 ent_data)) "AECC_POINT") (SETQ ent_10x (CADR (ASSOC 11 ent_data))) (SETQ ent_10y (CADDR (ASSOC 11 ent_data))) (SETQ ent_10z (CADDDR (ASSOC 11 ent_data))) (SETQ ent_302 (CDR (ASSOC 302 ent_data))) (SETQ ent_303 (CDR (ASSOC 303 ent_data))) (COND ((WCMATCH (STRCASE ent_302) "*TOP*") (SETQ 1is_top T 1is_inv NIL 1is_grd NIL ) ;_ end of SETQ ) ((WCMATCH (STRCASE ent_302) "*INV*") (SETQ 1is_top NIL 1is_inv T 1is_grd NIL ) ;_ end of SETQ ) ((OR (WCMATCH (STRCASE ent_302) "*-#.#*") (WCMATCH (STRCASE ent_302) "-#.#*")) (SETQ 1is_top T 1is_inv NIL 1is_grd NIL ) ;_ end of SETQ ) (T (SETQ 1is_top NIL 1is_inv NIL 1is_grd NIL ) ;_ end of SETQ ) ) ;_ end of COND (COND ((WCMATCH (STRCASE ent_302) "*RCP*") (SETQ utilmatl "RCP")) ((WCMATCH (STRCASE ent_302) "*VCP*") (SETQ utilmatl "VCP")) ((WCMATCH (STRCASE ent_302) "*CMP*") (SETQ utilmatl "CMP")) ((WCMATCH (STRCASE ent_302) "*CPP*") (SETQ utilmatl "CPP")) ((WCMATCH (STRCASE ent_302) "*DIP*") (SETQ utilmatl "DIP")) ((WCMATCH (STRCASE ent_302) "*PVC*") (SETQ utilmatl "PVC")) ((WCMATCH (STRCASE ent_302) "*HDPE*") (SETQ utilmatl "HDPE")) ((WCMATCH (STRCASE ent_302) "*SS*") (SETQ utilmatl "SS")) ((WCMATCH (STRCASE ent_302) "*SD*") (SETQ utilmatl "SD")) ((WCMATCH (STRCASE ent_302) "*S*") (SETQ utilmatl "S")) ((WCMATCH (STRCASE ent_302) "*W*") (SETQ utilmatl "W")) ((WCMATCH (STRCASE ent_302) "*GAS*") (SETQ utilmatl "GAS")) ((WCMATCH (STRCASE ent_302) "*G*") (SETQ utilmatl "G")) (T (SETQ utilmatl NIL)) ) ;_ end of COND (COND ((WCMATCH (STRCASE ent_302) "*#RCP*") (size_it "RCP")) ((WCMATCH (STRCASE ent_302) "*#VCP*") (size_it "VCP")) ((WCMATCH (STRCASE ent_302) "*#CMP*") (size_it "CMP")) ((WCMATCH (STRCASE ent_302) "*#CPP*") (size_it "CPP")) ((WCMATCH (STRCASE ent_302) "*#DIP*") (size_it "DIP")) ((WCMATCH (STRCASE ent_302) "*#PVC*") (size_it "PVC")) ((WCMATCH (STRCASE ent_302) "*#HDPE*") (size_it "HDPE")) ((WCMATCH (STRCASE ent_302) "*#SS*") (size_it "SS")) ((WCMATCH (STRCASE ent_302) "*#SD*") (size_it "SD")) ((WCMATCH (STRCASE ent_302) "*#S*") (size_it "S")) ((WCMATCH (STRCASE ent_302) "*#W*") (size_it "W")) ((WCMATCH (STRCASE ent_302) "*#GAS*") (size_it "GAS")) ((WCMATCH (STRCASE ent_302) "*#G*") (size_it "G")) (T (SETQ utilsize NIL)) ) ;_ end of COND (IF (OR (WCMATCH ent_302 "*-##.#*") (WCMATCH ent_302 "*-#.#*")) (vertoffset ent_302 "1") (SETQ vrt_offset1 NIL) ) ;_ end of IF (COND (vrt_offset1 (SETQ utilsize (ITOA (FIX (* (ATOF vrt_offset1) 12.0))))) ) (SETQ next_pnt NIL) (WHILE (OR (NOT next_pnt) (NOT (EQ (CDR (ASSOC 0 next_data)) "AECC_POINT"))) (SETQ next_pnt (ENTSEL "\nSelect point at other end of line to draw: ")) (IF next_pnt (SETQ next_data (ENTGET (CAR next_pnt))) ) ;_ end of IF ) ;_ end of WHILE (SETQ nent_pt (CADR next_pnt)) (SETQ nent_pt (LIST (CAR nent_pt) (CADR nent_pt) 0)) (SETQ ent_11x (CADR (ASSOC 11 next_data))) (SETQ ent_11y (CADDR (ASSOC 11 next_data))) (SETQ ent_11z (CADDDR (ASSOC 11 next_data))) (SETQ nent_302 (CDR (ASSOC 302 next_data))) (SETQ nent_303 (CDR (ASSOC 303 next_data))) (COND ((WCMATCH (STRCASE nent_302) "*TOP*") (SETQ 2is_top T 2is_inv NIL 2is_grd NIL ) ;_ end of SETQ ) ((WCMATCH (STRCASE nent_302) "*INV*") (SETQ 2is_top NIL 2is_inv T 2is_grd NIL ) ;_ end of SETQ ) ((OR (WCMATCH (STRCASE nent_302) "*-#.#*") (WCMATCH (STRCASE nent_302) "-#.#*")) (SETQ 2is_top NIL 2is_inv NIL 2is_grd T ) ;_ end of SETQ ) (T (SETQ 2is_top NIL 2is_inv NIL 2is_grd NIL ) ;_ end of SETQ ) ) ;_ end of COND (COND ((WCMATCH (STRCASE nent_302) "*RCP*") (SETQ utilmatl "RCP")) ((WCMATCH (STRCASE nent_302) "*VCP*") (SETQ utilmatl "VCP")) ((WCMATCH (STRCASE nent_302) "*CMP*") (SETQ utilmatl "CMP")) ((WCMATCH (STRCASE nent_302) "*CPP*") (SETQ utilmatl "CPP")) ((WCMATCH (STRCASE nent_302) "*DIP*") (SETQ utilmatl "DIP")) ((WCMATCH (STRCASE nent_302) "*PVC*") (SETQ utilmatl "PVC")) ((WCMATCH (STRCASE nent_302) "*HDPE*") (SETQ utilmatl "HDPE")) ((WCMATCH (STRCASE nent_302) "*SS*") (SETQ utilmatl "SS")) ((WCMATCH (STRCASE nent_302) "*SD*") (SETQ utilmatl "SD")) ((WCMATCH (STRCASE nent_302) "*S*") (SETQ utilmatl "S")) ((WCMATCH (STRCASE nent_302) "*W*") (SETQ utilmatl "W")) ((WCMATCH (STRCASE nent_302) "*GAS*") (SETQ utilmatl "GAS")) ((WCMATCH (STRCASE nent_302) "*G*") (SETQ utilmatl "G")) (T (SETQ utilmatl NIL)) ) ;_ end of COND (COND ((WCMATCH (STRCASE nent_302) "*#RCP*") (size_it "RCP")) ((WCMATCH (STRCASE nent_302) "*#VCP*") (size_it "VCP")) ((WCMATCH (STRCASE nent_302) "*#CMP*") (size_it "CMP")) ((WCMATCH (STRCASE nent_302) "*#CPP*") (size_it "CPP")) ((WCMATCH (STRCASE nent_302) "*#DIP*") (size_it "DIP")) ((WCMATCH (STRCASE nent_302) "*#PVC*") (size_it "PVC")) ((WCMATCH (STRCASE nent_302) "*#HDPE*") (size_it "HDPE")) ((WCMATCH (STRCASE nent_302) "*#SS*") (size_it "SS")) ((WCMATCH (STRCASE nent_302) "*#SD*") (size_it "SD")) ((WCMATCH (STRCASE nent_302) "*#S*") (size_it "S")) ((WCMATCH (STRCASE nent_302) "*#W*") (size_it "W")) ((WCMATCH (STRCASE nent_302) "*#GAS*") (size_it "GAS")) ((WCMATCH (STRCASE nent_302) "*#G*") (size_it "G")) (T (SETQ utilsize NIL)) ) ;_ end of COND (IF (OR (WCMATCH nent_302 "*-##.#*") (WCMATCH nent_302 "*-#.#*")) (vertoffset nent_302 "2") (SETQ vrt_offset2 NIL) ) ;_ end of IF (COND ((AND vrt_offset1 vrt_offset2) (SETQ utilsize (ITOA (MAX (FIX (* (ATOF vrt_offset1) 12.0))(FIX (* (ATOF vrt_offset2) 12.0)))))) ) ) ) ;_ end of COND (SETQ ent_lay (CDR (ASSOC 8 ent_data))) (SETQ clayr ent_lay) ;;; (IF (clnmstd) NIL (PROGN ;;; (IF mjrg NIL (SETQ mjrg "C" ;;; (ukword 1 ;;; "G C L A S M P F E I O Q T Z" ;;; "Arch/Civil/Elec/Fire/Gis/Inter/Land/Mech/Other/Plumb/Equip/Struc/Tele/Contr ?" ;;; (IF mjrg mjrg "C") ;;; ) ) ;_ end of SETQ ;;; ) (SETQ llt "E") (IF (OR ;;; (WCMATCH (STRCASE ent_lay) "*EW*") (WCMATCH (STRCASE ent_lay) "*GAS*") ;;; (WCMATCH (STRCASE ent_lay) "*ES*") (WCMATCH (STRCASE ent_lay) "*RCP*") (WCMATCH (STRCASE ent_lay) "*CMP*") (WCMATCH (STRCASE ent_lay) "*VCP*") (WCMATCH (STRCASE ent_lay) "*CPP*") (WCMATCH (STRCASE ent_lay) "*DIP*") (WCMATCH (STRCASE ent_lay) "*PVC*") (WCMATCH (STRCASE ent_lay) "*HDPE*") (WCMATCH (STRCASE ent_lay) "*SD*") (WCMATCH (STRCASE ent_lay) "*SS*") (WCMATCH (STRCASE ent_lay) "*#S*") (WCMATCH (STRCASE ent_lay) "*#W*") (WCMATCH (STRCASE ent_lay) "*#G*") ) ;_ end of OR (PROGN (WHILE (AND (NOT utilsize) (NOT (EQ (STRLEN (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters)" (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ ) ;_ end of STRLEN 2 ) ;_ end of EQ ) ;_ end of NOT (NOT (EQ (TYPE (READ utilsize)) 'INT)) (NOT (EQ (STRCASE utilsize) "NA")) ) ;_ end of AND ) ;_ end of WHILE (IF (EQ (TYPE (READ utilsize)) 'INT) (IF (< (READ utilsize) 10) (SETQ modf (STRCAT "ES0" utilsize "P")) (SETQ modf (STRCAT "ES" utilsize "P")) ) ;_ end of IF ) ;_ end of IF ) ;_ end of PROGN (SETQ modf NIL) ) ;_ end of IF (COND ((OR (WCMATCH ent_lay "*SD*") (NOT (OR (WCMATCH ent_lay "*CPP*") (WCMATCH ent_lay "*CMP*") (WCMATCH ent_lay "*RCP*") (WCMATCH ent_lay "*SS*") (WCMATCH ent_lay "*GAS*") ) ;_ end of OR ) ;_ end of NOT ) ;_ end of OR (SETQ utilmatl (ukword 1 "CPp CMp Dip Hdpe Pvc Rcp" "Material CPP/CMP/DIP/HDPE/PVC/RCP ? " (IF utilmatl utilmatl "RCP" ) ;_ end of IF ) ;_ end of ukword ) ;_ end of SETQ (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters) " (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ (IF (EQ (STRLEN utilmatl) 3) (SETQ prod (STRCAT "0" (STRCASE utilmatl))) (SETQ prod (STRCASE utilmatl)) ) ;_ end of IF (SETQ colr "4" llt "I" ltstr "Hidden2" ) ;_ end of SETQ ) ;;; ((WCMATCH ent_lay "*EW*") ;;; (SETQ prod "000W" colr "5" ltstr "Continuous") ;;; ) ((WCMATCH ent_lay "*GAS*") (SETQ prod "000G" colr "1" ltstr "Continuous" ) ;_ end of SETQ ) ((WCMATCH ent_lay "*SS*") (SETQ prod "00SS" colr "1" llt "H" ltstr "Hidden" ) ;_ end of SETQ ) ((WCMATCH ent_lay "*CMP*") (SETQ prod (STRCASE "0CMP") colr "7" llt "I" ltstr "Hidden2" ) ;_ end of SETQ ) ((WCMATCH ent_lay "*CPP*") (SETQ prod (STRCASE "0CPP") colr "7" llt "I" ltstr "Hidden2" ) ;_ end of SETQ ) ((WCMATCH ent_lay "*RCP*") (SETQ prod (STRCASE "0RCP") colr "7" llt "I" ltstr "Hidden2" ) ;_ end of SETQ ) (T (SETQ ltstr "CONTINUOUS")) ) ;_ end of COND ) ;_ end of PROGN ;;; ) ;;; (IF (AND ent_10x ent_10y ent_11x ent_11y) ;;; (PROGN (SETQ view_center (GETVAR "VIEWCTR")) (SETQ view_size (GETVAR "VIEWSIZE")) (IF (< (DISTANCE ent_pt (LIST ent_10x ent_10y 0)) (DISTANCE ent_pt (LIST ent_11x ent_11y 0))) (SETQ nearest_pt (LIST ent_10x ent_10y 0) farthest_pt (LIST ent_11x ent_11y 0) ) ;_ end of SETQ (SETQ nearest_pt (LIST ent_11x ent_11y 0) farthest_pt (LIST ent_10x ent_10y 0) ) ;_ end of SETQ ) ;_ end of IF ;;; (GRDRAW (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; 7 ;;; ) ;_ end of GRDRAW ;;; (GRDRAW (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; 7 ;;; ) ;_ end of GRDRAW (SETQ near_endz "Select") ;;; (SETQ near_endz (ureal 1 ;;; "Select" ;;; "New \"Z\" for this end or elect \"Z\" text" ;;; (IF (AND near_endz (EQ (TYPE near_endz) 'REAL)) ;;; near_endz ;;; ) ;_ end of if ;;; ) ;_ end of ureal ;;; ) ;_ end of setq (SETQ accept_z NIL) (IF (EQ near_endz "Select") (PROGN (SETQ nearz_txt T) (WHILE (AND (NOT (OR (EQ accept_z "Yes") (EQ accept_z "-Grade") (EQ accept_z "-Top") (EQ accept_z "Key-in"))) nearz_txt ) ;_ end of AND (IF (OR 1is_top 1is_inv 1is_grd) (SETQ nearz_txt line_ent) (SETQ nearz_txt (NENTSEL "Select 1st end \"Z\" text")) ) ;_ end of IF (COND (nearz_txt (SETQ ztxt_data (ENTGET (CAR nearz_txt))) (IF (OR (EQ (CDR (ASSOC 0 ztxt_data)) "TEXT") (EQ (CDR (ASSOC 0 ztxt_data)) "ATTRIB")) (PROGN (SETQ rawz_txt (CDR (ASSOC 1 ztxt_data))) (SETQ strt_cnt 1) (WHILE (OR (EQ (SUBSTR rawz_txt strt_cnt 1) "\"") (AND (NOT (EQ (TYPE (READ (SUBSTR rawz_txt strt_cnt))) 'REAL)) (< strt_cnt (STRLEN rawz_txt))) ) ;_ end of OR (SETQ strt_cnt (1+ strt_cnt)) ) ;_ end of WHILE (IF (AND (< strt_cnt (STRLEN rawz_txt)) (NOT 1is_top) (NOT 1is_inv) (NOT 1is_grd) (NOT vrt_offset1)) (SETQ accept_z (ukword 1 "Yes No -Grade -Top Key-in" (STRCAT "Accept " (SUBSTR rawz_txt strt_cnt) " (1st end)? " "pipe size is " (IF utilsize (STRCAT utilsize "\"") "unknown" ) ;_ end of IF " [Yes No -Grade -Top Key-in]" ) ;_ end of STRCAT "Yes" ) ; _ ) ;_ end of SETQ (COND ((OR 1is_top vrt_offset1) (SETQ accept_z "-Top")) (1is_grd (SETQ accept_z "-Grade")) (1is_inv (SETQ accept_z "Yes")) (T (SETQ accept_z "No")) ) ;_ end of COND ) ;_ end of IF (IF (EQ accept_z "Key-in") (SETQ near_endz (ureal 1 "" "New \"Z\" for 1st end" (IF (AND near_endz (EQ (TYPE near_endz) 'REAL)) near_endz ) ;_ end of if ) ;_ end of ureal accept_z "Yes" use_nearkey T ) ;_ end of setq ) ;_ end of IF (COND ((OR (EQ accept_z "Yes") (EQ accept_z "-Grade") (EQ accept_z "-Top") (EQ accept_z "Key-in")) (SETQ near_endz (COND ((EQ utilsize "13") (- (ATOF (SUBSTR rawz_txt strt_cnt)) 1.083)) ((AND (EQ accept_z "-Grade") utilsize vrt_offset1) (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (ATOF utilsize) 12.0) (ATOF vrt_offset1)) ) ((EQ accept_z "-Grade") (- (ATOF (SUBSTR rawz_txt strt_cnt)) (ureal 1 "" (STRCAT "Enter invert distance below " (SUBSTR rawz_txt strt_cnt)) (COND (near_endz near_endz) (T 0.0) ) ;_ end of if ) ;_ end of ureal ) ;_ end of - ) ((AND (EQ accept_z "-Top") vrt_offset1) (- (ATOF (SUBSTR rawz_txt strt_cnt)) (ATOF vrt_offset1)) ) ((AND (EQ accept_z "-Top") utilsize (EQ (TYPE (READ utilsize)) 'INT)) (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (READ utilsize) 12.0)) ) ((AND (EQ accept_z "-Top") (IF utilsize T (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters)" (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ ) ;_ end of IF (EQ (TYPE (READ utilsize)) 'INT) ) ;_ end of AND (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (READ utilsize) 12.0)) ) (use_nearkey near_endz) (T (ATOF (SUBSTR rawz_txt strt_cnt))) ) ;_ end of COND ) ;_ end of SETQ ) ) ;_ end of COND (IF use_nearkey (SETQ use_nearkey NIL) ) ;_ end of IF ) ;_ end of PROGN (IF (EQ (CDR (ASSOC 0 ztxt_data)) "AECC_POINT") (PROGN (SETQ ent_11z (CADDDR (ASSOC 11 ztxt_data))) (SETQ rawz_txt (RTOS ent_11z 2 4)) (SETQ strt_cnt 1) (WHILE (OR (EQ (SUBSTR rawz_txt strt_cnt 1) "\"") (AND (NOT (EQ (TYPE (READ (SUBSTR rawz_txt strt_cnt))) 'REAL)) (< strt_cnt (STRLEN rawz_txt))) ) ;_ end of OR (SETQ strt_cnt (1+ strt_cnt)) ) ;_ end of WHILE (IF (OR 1is_top 1is_inv 1is_grd vrt_offset1) (COND ((OR 1is_top vrt_offset1) (SETQ accept_z "-Top")) (1is_grd (SETQ accept_z "-Grade")) (1is_inv (SETQ accept_z "Yes")) (T (SETQ accept_z NIL)) ) ;_ end of COND (SETQ accept_z (ukword 1 "Yes No -Grade -Top Key-in" (STRCAT "Accept " (RTOS ent_11z 2 3) " (1st end)? " "pipe size is " (IF utilsize (STRCAT utilsize "\"") "unknown" ) ;_ end of IF " [Yes No -Grade -Top Key-in]" ) ;_ end of STRCAT "Yes" ) ;_ end of ukword ) ;_ end of SETQ ) ;_ end of IF (IF (EQ accept_z "Key-in") (SETQ near_endz (ureal 1 "" "New \"Z\" for 1st end" (IF (AND near_endz (EQ (TYPE near_endz) 'REAL)) near_endz ) ;_ end of if ) ;_ end of ureal accept_z "Yes" use_nearkey T ) ;_ end of setq ) ;_ end of IF (IF (OR (EQ accept_z "Yes") (EQ accept_z "-Grade") (EQ accept_z "-Top") (EQ accept_z "Key-in")) (COND ((AND (EQ accept_z "-Grade") utilsize vrt_offset1) (SETQ near_endz (- ent_11z (/ (ATOF utilsize) 12.0) (ATOF vrt_offset1))) ) ((EQ accept_z "-Grade") (SETQ near_endz (- ent_11z (ureal 1 "" (STRCAT "Enter invert distance below " (RTOS ent_11z 2 2)) (IF (AND near_endz (EQ (TYPE near_endz) 'REAL)) near_endz 0.0 ) ;_ end of if ) ;_ end of ureal ) ;_ end of - )) ((AND (EQ accept_z "-Top") vrt_offset1) (SETQ near_endz (- ent_11z (ATOF vrt_offset1)))) ((AND (EQ accept_z "-Top") utilsize (EQ (TYPE (READ utilsize)) 'INT)) (SETQ near_endz (- ent_11z (/ (READ utilsize) 12.0))) ) ((AND (EQ accept_z "-Top") (IF utilsize T (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters)" (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ ) ;_ end of IF (EQ (TYPE (READ utilsize)) 'INT) ) ;_ end of AND (SETQ near_endz (- ent_11z (/ (READ utilsize) 12.0))) ) (use_nearkey (SETQ use_nearkey NIL)) (T (SETQ near_endz ent_11z)) ) ;_ end of COND ) ;_ end of IF ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of IF ) (T (SETQ accept_z "No")) ) ;_ end of COND ) ;_ end of WHILE ) ;_ end of PROGN ) ;_ end of IF (IF (EQ (TYPE near_endz) 'REAL) (PROGN (IF (EQ (CDR (ASSOC 0 ent_data)) "LINE") (PROGN (IF (< (DISTANCE ent_pt (LIST ent_10x ent_10y)) (DISTANCE ent_pt (LIST ent_11x ent_11y))) (SETQ ent_data (SUBST (CONS 10 (LIST ent_10x ent_10y near_endz)) (ASSOC 10 ent_data) ent_data) ; _ end of ; subst other_end 11 ) ;_ end of setq (SETQ ent_data (SUBST (CONS 11 (LIST ent_11x ent_11y near_endz)) (ASSOC 11 ent_data) ent_data) ; _ end of ; subst other_end 10 ) ;_ end of setq ) ;_ end of if ;;; (GRDRAW (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; -7 ;;; ) ;_ end of GRDRAW ;;; (GRDRAW (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR nearest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; -7 ;;; ) ;_ end of GRDRAW ;;; (GRDRAW (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; 7 ;;; ) ;_ end of GRDRAW ;;; (GRDRAW (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; 7 ;;; ) ;_ end of GRDRAW ) ;_ end of PROGN ) ;_ end of IF (SETQ far_endz "Select") ;;; (SETQ far_endz (ureal 1 ;;; "Select" ;;; "New \"Z\" for other end or elect \"Z\" text" ;;; (IF (AND far_endz (EQ (TYPE far_endz) 'REAL)) ;;; far_endz ;;; (IF (AND near_endz (EQ (TYPE near_endz) 'REAL)) ;;; near_endz ;;; ) ;_ end of IF ;;; ) ;_ end of if ;;; ) ;_ end of ureal ;;; ) ;_ end of setq (SETQ accept_farz NIL) (IF (EQ far_endz "Select") (PROGN (SETQ farz_txt T) (WHILE (AND (NOT (OR (EQ accept_farz "Yes") (EQ accept_farz "-Grade") (EQ accept_farz "-Top") (EQ accept_farz "Key-in") ) ;_ end of OR ) ;_ end of NOT farz_txt ) ;_ end of AND (IF (OR 2is_top 2is_inv 2is_grd) (SETQ farz_txt next_pnt) (SETQ farz_txt (NENTSEL "Select 2nd end \"Z\" text")) ) ;_ end of IF (COND (farz_txt (SETQ ztxt_data (ENTGET (CAR farz_txt))) (IF (OR (EQ (CDR (ASSOC 0 ztxt_data)) "TEXT") (EQ (CDR (ASSOC 0 ztxt_data)) "ATTRIB")) (PROGN (SETQ rawz_txt (CDR (ASSOC 1 ztxt_data))) (SETQ strt_cnt 1) (WHILE (OR (EQ (SUBSTR rawz_txt strt_cnt 1) "\"") (AND (NOT (EQ (TYPE (READ (SUBSTR rawz_txt strt_cnt))) 'REAL)) (< strt_cnt (STRLEN rawz_txt))) ; _ ; end ; of ; AND ) ;_ end of OR (SETQ strt_cnt (1+ strt_cnt)) ) ;_ end of WHILE (IF (AND (< strt_cnt (STRLEN rawz_txt)) (NOT 2is_top) (NOT 2is_inv) (NOT 2is_grd) (NOT vrt_offset1)) (SETQ accept_farz (ukword 1 "Yes No -Grade -Top Key-in" (STRCAT "Accept " (SUBSTR rawz_txt strt_cnt) " (2nd end)? " "pipe size is " (IF utilsize (STRCAT utilsize "\"") "unknown" ) ;_ end of IF " [Yes No -Grade -Top Key-in]" ) ;_ end of STRCAT "Yes" ) ; _ ; end ; of ; ukword ) ;_ end of SETQ (COND ((OR 2is_top vrt_offset2) (SETQ accept_farz "-Top")) (2is_grd (SETQ accept_farz "-Grade")) (2is_inv (SETQ accept_farz "Yes")) (T (SETQ accept_farz "No")) ) ;_ end of COND ) ;_ end of IF (IF (EQ accept_farz "Key-in") (SETQ far_endz (ureal 1 "" "New \"Z\" for 2nd end" (IF (AND far_endz (EQ (TYPE far_endz) 'REAL)) far_endz ) ;_ end of if ) ;_ end of ureal accept_farz "Yes" use_farkey T ) ;_ end of setq ) ;_ end of IF (COND ((OR (EQ accept_farz "Yes") (EQ accept_farz "-Grade") (EQ accept_farz "-Top") (EQ accept_farz "Key-in") ) ;_ end of OR (SETQ far_endz (COND ((EQ utilsize "13") (- (ATOF (SUBSTR rawz_txt strt_cnt)) 1.083)) ((AND (EQ accept_farz "-Grade") utilsize vrt_offset2) (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (ATOF utilsize) 12.0) (ATOF vrt_offset2)) ; _ ; end ; of ; - ) ((EQ accept_farz "-Grade") (- (ATOF (SUBSTR rawz_txt strt_cnt)) (ureal 1 "" (STRCAT "Enter invert distance below " (SUBSTR rawz_txt strt_cnt)) (IF far_endz far_endz 0.0 ) ;_ end of if ) ;_ end of ureal ) ;_ end of - ) ;;; ((AND (EQ accept_farz "-Top") utilsize vrt_offset2 (EQ (TYPE (READ utilsize)) ;;; 'INT)) ;;; (SETQ far_endz (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (READ utilsize) 12.0) (ATOF ;;; vrt_offset2))) ;;; ) ((AND (EQ accept_z "-Top") vrt_offset2) (- (ATOF (SUBSTR rawz_txt strt_cnt)) (ATOF vrt_offset2)) ) ((AND (EQ accept_farz "-Top") utilsize (EQ (TYPE (READ utilsize)) 'INT)) (SETQ far_endz (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (READ utilsize) 12.0))) ) ((AND (EQ accept_farz "-Top") (IF utilsize T (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters)" (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ ) ;_ end of IF (EQ (TYPE (READ utilsize)) 'INT) ) ;_ end of AND (- (ATOF (SUBSTR rawz_txt strt_cnt)) (/ (READ utilsize) 12.0)) ) (use_farkey far_endz) (T (ATOF (SUBSTR rawz_txt strt_cnt))) ) ;_ end of COND ) ;_ end of SETQ ) ) ;_ end of COND (IF use_farkey (SETQ use_farkey NIL) ) ;_ end of IF ) ;_ end of PROGN (IF (EQ (CDR (ASSOC 0 ztxt_data)) "AECC_POINT") (PROGN (SETQ ent_11z (CADDDR (ASSOC 11 ztxt_data))) (IF (OR 2is_top 2is_inv 2is_grd) (COND ((OR 2is_top vrt_offset2) (SETQ accept_farz "-Top")) (2is_grd (SETQ accept_farz "-Grade")) (2is_inv (SETQ accept_farz "Yes")) (T (SETQ accept_farz "No")) ) ;_ end of COND (SETQ accept_farz (ukword 1 "Yes No -Grade -Top Key-in" (STRCAT "Accept " (RTOS ent_11z 2 3) " (2nd end)? " "pipe size is " (IF utilsize (STRCAT utilsize "\"") "unknown" ) ;_ end of IF " [Yes No -Grade -Top Key-in]" ) ;_ end of STRCAT "Yes" ) ;_ end of ukword ) ;_ end of SETQ ) ;_ end of IF (IF (EQ accept_farz "Key-in") (SETQ far_endz (ureal 1 "" "New \"Z\" for 2nd end" (IF (AND far_endz (EQ (TYPE far_endz) 'REAL)) far_endz ) ;_ end of if ) ;_ end of ureal accept_farz "Yes" use_farkey T ) ;_ end of setq ) ;_ end of IF (IF (OR (EQ accept_farz "Yes") (EQ accept_farz "-Grade") (EQ accept_farz "-Top") (EQ accept_farz "Key-in") ) ;_ end of OR (COND ((AND (EQ accept_farz "-Grade") utilsize vrt_offset2) (SETQ far_endz (- ent_11z (/ (ATOF utilsize) 12.0) (ATOF vrt_offset2))) ) ((EQ accept_farz "-Grade") (SETQ far_endz (- ent_11z (ureal 1 "" (STRCAT "Enter invert distance below " (RTOS ent_11z 2 2)) (IF (AND far_endz (EQ (TYPE far_endz) 'REAL)) far_endz 0.0 ) ;_ end of if ) ;_ end of ureal ) ;_ end of - ) ;_ end of SETQ ) ;;; ((AND (EQ accept_farz "-Top") utilsize vrt_offset2 (EQ (TYPE (READ utilsize)) ;;; 'INT)) ;;; (SETQ far_endz (- ent_11z (/ (READ utilsize) 12.0) (ATOF vrt_offset2))) ;;; ) ((AND (EQ accept_z "-Top") vrt_offset2) (SETQ far_endz (- ent_11z (ATOF vrt_offset2)))) ((AND (EQ accept_farz "-Top") utilsize (EQ (TYPE (READ utilsize)) 'INT)) (SETQ far_endz (- ent_11z (/ (READ utilsize) 12.0))) ) ((AND (EQ accept_farz "-Top") (IF utilsize T (SETQ utilsize (ustr 1 "Pipe size or NA? (2 characters)" (IF utilsize utilsize "15" ) ;_ end of IF NIL ) ;_ end of ustr ) ;_ end of SETQ ) ;_ end of IF (EQ (TYPE (READ utilsize)) 'INT) ) ;_ end of AND (SETQ far_endz (- ent_11z (/ (READ utilsize) 12.0))) ) (use_farkey (SETQ use_farkey nil)) (T (SETQ far_endz ent_11z)) ) ;_ end of COND ) ;_ end of IF ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of IF ) (T (SETQ accept_farz NIL)) ) ;_ end of COND ) ;_ end of WHILE ) ;_ end of PROGN ) ;_ end of IF (SETQ accept_farz NIL) (IF (EQ (TYPE far_endz) 'REAL) (PROGN (SETQ ent_data (SUBST (CONS other_end (LIST (CADR (ASSOC other_end ent_data)) (CADDR (ASSOC other_end ent_data)) far_endz) ) ;_ end of CONS (ASSOC other_end ent_data) ent_data ) ;_ end of subst ) ;_ end of setq (IF (AND utilsize (EQ (TYPE (READ utilsize)) 'INT)) (IF (< (READ utilsize) 10) (SETQ modf (STRCAT "ES0" utilsize "P")) (SETQ modf (STRCAT "ES" utilsize "P")) ) ;_ end of IF ) ;_ end of IF (SETQ ent_layer (STRCAT mjrg llt prod colr (IF modf modf "" ) ;_ end of IF ) ;_ end of STRCAT ) ;_ end of SETQ (SETQ ent_data (SUBST (CONS 8 ent_layer) (ASSOC 8 ent_data) ent_data)) (IF (EQ (CDR (ASSOC 0 ent_data)) "AECC_POINT") NIL (ENTMOD ent_data) ) ;_ end of IF (IF ltstr (COMMAND ".layer" "c" colr ent_layer "lt" ltstr ent_layer "") (COMMAND ".layer" "c" colr ent_layer "") ) ;_ end of IF (ENTUPD (CDR (ASSOC -1 ent_data))) ) ;_ end of PROGN (PRINC "\nInvalid or no \"Z\" for 2nd end! ") ) ;_ end of IF ) ;_ end of PROGN (PROGN (PRINC "\nnear_endz=") (princ near_endz) (PRINC "\nInvalid or no \"Z\" for 1st end! ") (princ) ) ) ;_ end of IF (IF (EQ (CDR (ASSOC 0 ent_data)) "AECC_POINT") (PROGN (IF (AND utilsize (EQ (TYPE (READ utilsize)) 'INT)) (IF (< (READ utilsize) 10) (SETQ modf (STRCAT "ES0" utilsize "P")) (SETQ modf (STRCAT "ES" utilsize "P")) ) ;_ end of IF ) ;_ end of IF (SETQ ent_layer (STRCAT mjrg llt prod colr (IF modf modf "" ) ;_ end of IF ) ;_ end of STRCAT ) ;_ end of SETQ ;;; (FOREACH n (LIST ent_10x ent_10y near_endz ent_11x ent_11y far_endz ent_layer) ;;; (PRINC "\n") ;;; (PRINC n) ;;; (PRINC) ;;; ) ;_ end of foreach (IF (AND ent_10x ent_10y ent_11x ent_11y far_endz ent_layer) (PROGN (SETQ line_ent (LIST (CONS 0 "LINE") (CONS 10 (LIST ent_10x ent_10y near_endz)) (CONS 11 (LIST ent_11x ent_11y far_endz)) (CONS 8 ent_layer) (CONS 62 256) ) ;_ end of LIST ) ;_ end of SETQ (ENTMAKE line_ent) (IF ltstr (COMMAND ".layer" "c" colr ent_layer "lt" ltstr ent_layer "") (COMMAND ".layer" "c" colr ent_layer "") ) ;_ end of IF (SETQ ent_10x NIL ent_10y NIL near_endz NIL ent_11x NIL ent_11y NIL far_endz NIL ent_layer NIL ) ;_ end of SETQ ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of PROGN ) ;_ end of IF ;;; ) ;_ end of IF (IF (EQ (CDR (ASSOC 0 ent_data)) "LINE") (PROGN ;;; (GRDRAW (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.25)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; -7 ;;; ) ;_ end of GRDRAW ;;; (GRDRAW (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 0.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; (POLAR farthest_pt ;;; (+ (ANGLE (LIST ent_10x ent_10y 0) (LIST ent_11x ent_11y 0)) (* PI 1.75)) ;;; (/ view_size 33.33) ;;; ) ;_ end of POLAR ;;; -7 ;;; ) ;_ end of GRDRAW (REDRAW) ) ;_ end of progn ) ;_ end of if ;;; ) ;_ end of PROGN ;;; ) ;_ end of IF ) ;_ end of while (SETVAR "osmode" old_osmode) ) ;_ end of DEFUN (DEFUN size_it (matl /) (COND ((WCMATCH (STRCASE ent_302) (STRCAT "#" matl "*")) (SETQ utilsize (SUBSTR ent_302 1 1))) ((WCMATCH (STRCASE ent_302) (STRCAT "##" matl "*")) (SETQ utilsize (SUBSTR ent_302 1 2))) ((WCMATCH (STRCASE ent_302) (STRCAT "###" matl "*")) (SETQ utilsize (SUBSTR ent_302 1 3))) ((WCMATCH (STRCASE ent_302) (STRCAT "*###" matl "*")) (SETQ temp_302 (STRCASE ent_302)) (WHILE (AND (>= (STRLEN temp_302) 4) (NOT (WCMATCH temp_302 (STRCAT "###" matl "*")))) (SETQ temp_302 (SUBSTR temp_302 2)) ) ;_ end of WHILE (IF (WCMATCH temp_302 (STRCAT "###" matl "*")) (SETQ utilsize (SUBSTR temp_302 1 3)) ) ;_ end of IF ) ((WCMATCH (STRCASE ent_302) (STRCAT "*##" matl "*")) (SETQ temp_302 (STRCASE ent_302)) (WHILE (AND (>= (STRLEN temp_302) 3) (NOT (WCMATCH temp_302 (STRCAT "##" matl "*")))) (SETQ temp_302 (SUBSTR temp_302 2)) ) ;_ end of WHILE (IF (WCMATCH temp_302 (STRCAT "##" matl "*")) (SETQ utilsize (SUBSTR temp_302 1 2)) ) ;_ end of IF ) ((WCMATCH (STRCASE ent_302) (STRCAT "*#" matl "*")) (SETQ temp_302 (STRCASE ent_302)) (WHILE (AND (>= (STRLEN temp_302) 2) (NOT (WCMATCH temp_302 (STRCAT "#" matl "*")))) (SETQ temp_302 (SUBSTR temp_302 2)) ) ;_ end of WHILE (IF (WCMATCH temp_302 (STRCAT "#" matl "*")) (SETQ utilsize (SUBSTR temp_302 1 1)) ) ;_ end of IF ) ) ;_ end of COND ;;; (princ "\nutilsize=") ;;; (princ utilsize) ;;; (princ) ) ;_ end of DEFUN (DEFUN vertoffset (pntdescr index /) (COND ((OR (WCMATCH pntdescr "*-##.#*") (WCMATCH pntdescr "*-##.#*")) (WHILE (AND (>= (STRLEN pntdescr) 5) (NOT (WCMATCH pntdescr "-##.#*")) (NOT (WCMATCH pntdescr "-##.#*"))) (SETQ pntdescr (SUBSTR pntdescr 2)) ) ;_ end of WHILE ) ((OR (WCMATCH pntdescr "*-#.#*") (WCMATCH pntdescr "*-#.#*")) (WHILE (AND (>= (STRLEN pntdescr) 4) (NOT (WCMATCH pntdescr "-#.#*")) (NOT (WCMATCH pntdescr "-#.#*"))) (SETQ pntdescr (SUBSTR pntdescr 2)) ) ;_ end of WHILE ) ) ;_ end of COND ;;; (princ "\npntdescr=") ;;; (princ pntdescr) ;;; (princ) (COND ((OR (WCMATCH pntdescr "-##.####*") (WCMATCH pntdescr "-##.####*")) (SETQ vrt_offset (SUBSTR pntdescr 2 7)) ) ((OR (WCMATCH pntdescr "-##.###*") (WCMATCH pntdescr "-##.###*")) (SETQ vrt_offset (SUBSTR pntdescr 2 6)) ) ((OR (WCMATCH pntdescr "-##.##*") (WCMATCH pntdescr "-##.##*")) (SETQ vrt_offset (SUBSTR pntdescr 2 5)) ) ((OR (WCMATCH pntdescr "-##.#*") (WCMATCH pntdescr "-##.#*")) (SETQ vrt_offset (SUBSTR pntdescr 2 4)) ) ((OR (WCMATCH pntdescr "-#.####*") (WCMATCH pntdescr "-#.####*")) (SETQ vrt_offset (SUBSTR pntdescr 2 6)) ) ((OR (WCMATCH pntdescr "-#.###*") (WCMATCH pntdescr "-#.###*")) (SETQ vrt_offset (SUBSTR pntdescr 2 5)) ) ((OR (WCMATCH pntdescr "-#.##*") (WCMATCH pntdescr "-#.##*")) (SETQ vrt_offset (SUBSTR pntdescr 2 4)) ) ((OR (WCMATCH pntdescr "-#.#*") (WCMATCH pntdescr "-#.#*")) (SETQ vrt_offset (SUBSTR pntdescr 2 3))) ) ;_ end of COND (SET (READ (STRCAT "vrt_offset" index)) vrt_offset) ) ;_ end of DEFUN (PRINC) ;|«Visual LISP© Format Options» (120 2 15 2 T "end of " 100 9 2 0 nil nil nil T T) ***Don't add text below the comment!***|;