;; Filename: BAT-INSU.LSP draws architectural batt insulation ;; in sectional view at any angle with a user specified ;; thickness using polyarcs and pline segments. ;;========================================================== (defun SSV (savelist) (mapcar '(lambda (sysvar) (list sysvar (getvar sysvar)) ) savelist) ) (setq lista '("aunits" "auprec" "blipmode" "cmdecho" "orthomode")) ;;========================================================= (defun RSV (savelist) (mapcar '(lambda (sysvar) (setvar (car sysvar)(cadr sysvar)) (car sysvar) ) savelist) ) ;;========================================================== (defun HI () (setq olderr *error*) (defun *error* (errstr) (print errstr)(princ) (setq lista (RSV lista)) (setq *error* olderr) (princ) ) (setq lista (SSV lista)) (setvar "aunits" 3) (setvar "auprec" 8) (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "orthomode" 0) (prompt "\n Draw Architectural batt insulation. ") (princ) ) ;;============================================================ (defun BYE () (setq lista (RSV lista)) (setq *error* olderr)(princ) (princ "\n Processing complete. ") (princ) ) ;;============================================================ ;STOPWATCH (setq stime (fix (getvar "date"))) (setq endtime 2452821);30-jun-2003 (if (> stime endtime) (progn (setq stime nil endtime nil) (princ) (alert " **********LISP OVERDUE********** Email to: nguyen6757@rogers.com ") (exit) ) (progn (setq stime nil endtime nil) (princ)) ) ;;============================================================ (defun c:BI (/ A ANG1 ANG2 ANG3 ANG4 ANG5 ANG6 LEN1 LEN2 PT1 PT2 PT3 PT4 PT5 PT6 PT7 THK1 THK2 THK3 THK4) (HI) (setvar "blipmode" 1) (setq PT1 (getpoint "\n Enter start point... ") PT2 (getpoint PT1 "\n Enter end point. ") THK1 (getdist pt2 "\n Pick or Enter insulation thickness. ") THK2(* THK1 0.25) THK3(* THK1 0.40000000) THK4(* THK1 0.44721360) LEN1(distance PT1 PT2) LEN2(/ LEN1 THK1) ANG1(angle PT1 PT2) ANG2(+ ANG1 0.0) ANG3(+ ANG1 1.10714872) ANG4(+ ANG1 2.21429744) ANG5(+ ANG1 4.06888787) ANG6(+ ANG1 4.24874137) a 0 ) (while (< a LEN2) (if (= a 0) (progn (setq PT3 (polar PT1 ANG3 THK4) PT4 (polar PT3 ANG4 THK2) PT5 (polar PT4 ANG2 THK3) PT6 (polar PT5 ANG5 THK2) PT7 (polar PT6 ANG2 THK3) a 0.5 ) (command ".pline" PT1 "w" 0.0 0.0 "a" "d" ANG2 PT3 "l" PT4 "a" PT5 "l" PT6 "a" PT7) ) (progn (setq PT3 PT7 PT4 (polar PT3 ANG4 THK2) PT5 (polar PT4 ANG2 THK3) PT6 (polar PT5 ANG5 THK2) PT7 (polar PT6 ANG2 THK3)) (command PT3 "l" PT4 "a" PT5 "l" PT6 "a" PT7) (setq a (+ a 0.5)) ) ) ) (command "") (command ".break" "l" PT7 (polar PT7 ANG6 THK4)) (command "redraw") (BYE) (princ) (princ"\n BAT-INSU.LSP Draws batt insulation in section view at any angle. Start -> BI")(princ) ) (princ"\n BAT-INSU.LSP Draws batt insulation in section view at any angle. Start -> BI")(princ)