(DEFUN c:encase (/ this_arc this_poly arc_list poly_list poly_data_list this_case_ss) (IF ureal NIL (LOAD "ureal" "\nFile UREAL.LSP not loaded! ")) (SETQ min_case_thk (ureal 1 "" "Minimum concrete casement thickness? " (IF min_case_thk min_case_thk 12.0))) ;;;maybe include plan or elevation construction from single-line pipe polylines ;;; (SETQ this_case_ss (SSGET '((-4 . "")(-4 . "")(-4 . "OR>")))) (SETQ this_case_ss (SSGET '((-4 . "")))) (IF this_case_ss (PROGN (SETQ cnt 0) (SETQ this_ent (ENTGET (SSNAME this_case_ss cnt))) (WHILE (< cnt (SSLENGTH this_case_ss)) (COND ((EQ (CDR (ASSOC 0 this_ent)) "ARC") (SETQ this_arc (ENTGET (SSNAME this_case_ss cnt)) this_data (LIST (CDR (ASSOC 10 this_arc)) (CDR (ASSOC 40 this_arc)) (CDR (ASSOC 50 this_arc)) (CDR (ASSOC 51 this_arc)) ) ;_ end of LIST ) ;_ end of SETQ (IF arc_list (IF (SETQ curr_data (ASSOC (CDR (ASSOC 10 this_arc)) arc_list)) (IF (> (CADR curr_data) (CADR this_data)) (SETQ arc_list (SUBST this_data curr_data arc_list)) ) ;_ end of IF (SETQ arc_list (APPEND arc_list (LIST (LIST (CDR (ASSOC 10 this_arc)) (CDR (ASSOC 40 this_arc)) (CDR (ASSOC 50 this_arc)) (CDR (ASSOC 51 this_arc)) ) ;_ end of LIST ) ;_ end of LIST ) ;_ end of APPEND ) ;_ end of SETQ ) ;_ end of IF (SETQ arc_list (LIST (LIST (CDR (ASSOC 10 this_arc)) (CDR (ASSOC 40 this_arc)) (CDR (ASSOC 50 this_arc)) (CDR (ASSOC 51 this_arc)) ) ;_ end of LIST ) ;_ end of LIST ) ;_ end of SETQ ) ;_ end of IF ) ;;; ((EQ (CDR (ASSOC 0 this_ent) "POLYLINE")) ;;; (WHILE (NOT (EQ (CDR (ASSOC 0 this_ent)) "SEQEND")) ;;; (SETQ poly_data_list (APPEND poly_data_list (LIST this_ent)) ;;; this_ent (ENTGET (ENTNEXT (CDR (ASSOC -1 this_ent)))) ;;; ) ;;; ) ;;; ;(foreach n poly_data_list ...)) ) (SETQ cnt (1+ cnt)) ) ;_ end of WHILE (FOREACH n arc_list (SETQ case_pt01 (POLAR (POLAR (CAR n) (+ (* PI 0.5) (/ (+ (CADDR n) (CADDDR n)) 2.0)) (+ (CADR n) min_case_thk) ) (/ (+ (CADDR n) (CADDDR n)) 2.0) (+ (CADR n) min_case_thk) ) ;_ end of POLAR case_pt02 (POLAR case_pt01 (+ PI (/ (+ (CADDR n) (CADDDR n)) 2.0)) (* 2.0 (+ (CADR n) min_case_thk))) case_pt03 (POLAR case_pt02 (+ (ANGLE case_pt01 case_pt02) (* PI 0.5)) (* 2.0 (+ (CADR n) min_case_thk)) ) ;_ end of POLAR case_pt04 (POLAR case_pt03 (ANGLE case_pt02 case_pt01) (* 2.0 (+ (CADR n) min_case_thk))) ) ;_ end of SETQ (ENTMAKE (LIST (CONS 0 "POLYLINE") (CONS 8 "S-CONC4CASE") (CONS 10 (CAR n)) (CONS 70 129))) (ENTMAKE (LIST (CONS 0 "VERTEX") (CONS 8 "S-CONC4CASE") (CONS 10 case_pt01))) (ENTMAKE (LIST (CONS 0 "VERTEX") (CONS 8 "S-CONC4CASE") (CONS 10 case_pt02))) (ENTMAKE (LIST (CONS 0 "VERTEX") (CONS 8 "S-CONC4CASE") (CONS 10 case_pt03))) (ENTMAKE (LIST (CONS 0 "VERTEX") (CONS 8 "S-CONC4CASE") (CONS 10 case_pt04))) (ENTMAKE (LIST (CONS 0 "VERTEX") (CONS 8 "S-CONC4CASE") (CONS 10 case_pt01))) (ENTMAKE (LIST (CONS 0 "SEQEND"))) ) ;_ end of FOREACH ) ;_ end of PROGN ) ;_ end of IF (PRINC) ) ;_ end of defun ;|«Visual LISP© Format Options» (100 2 15 2 T "end of " 100 15 2 0 2 nil nil nil T) ;*** DO NOT add text below the comment! ***|;