;;; ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: ;;;> EDITED: 09-04-2004 ;;; (defun c:stairpl () (setq old_osmode (getvar "osmode")) (setvar "osmode" 0) (if c:mklayr nil (load "mklayr")) (c:svlayr) (setq mjrg "S" llt "-" prod "METL" modf "STEP" usrd nil ) (c:mklayr) (if (and upoint ureal ukword ustr unit uangle) NIL (load "uutils") ) (setq str_wid (ureal 1 "" "Stair tread width" (if str_wid str_wid 36.0))) (setq trd_dpt (ureal 1 "" "Tread depth (nose to nose)" (if trd_dpt trd_dpt 11.0))) (setq str_hgt (ureal 1 "" "Height of stair from bottom landing to top landing" (if str_hgt str_hgt nil))) (setq trgtris (ureal 1 "" "Target riser height" (if trgtris trgtris 7.0))) (setq top_stp (ukword 1 "Yes No" "Is top step level with top landing?" (if top_stp top_stp "Yes"))) (setq bot_stp (ukword 1 "Yes No" "Is bottom step level with bottom landing?" (if bot_stp bot_stp "No"))) (setq strp_01 (if (eq top_stp "Yes") (upoint 1 "" "Middle of top step at back of tread" nil nil) (upoint 1 "" "Middle of top landing nose" nil nil) ) ) (setq strp_02 (upoint 1 "" "Direction of stair" nil strp_01)) (setq str_ang (angle strp_01 strp_02) num_ris (atof (rtos (/ str_hgt trgtris) 2 0)) ;;; num_ris (cond ;;; ((and (eq top_stp "Yes")(eq bot_stp "Yes")) raw_ris) ;;; ((eq top_stp "Yes") (1- raw_ris)) ;;; ((eq bot_stp "Yes") (1+ raw_ris)) ;;; ((and (eq top_stp "No")(eq bot_stp "No")) raw_ris) ;;; ) ris_hgt (/ str_hgt num_ris) num_trd (cond ((and (eq top_stp "Yes")(eq bot_stp "Yes")) (1+ num_ris)) ((or (eq top_stp "Yes")(eq bot_stp "Yes")) num_ris) ((and (eq top_stp "No")(eq bot_stp "No")) (1- num_ris)) ) ) (setq str_len (* trd_dpt num_trd)) (setq strp_03 (polar strp_01 (+ str_ang (* pi 0.5)) (/ str_wid 2.0)) strp_04 (polar strp_01 (+ str_ang (* pi 0.5)) (+(/ str_wid 2.0)1.5)) strp_05 (polar strp_01 (+ str_ang (* pi 1.5)) (/ str_wid 2.0)) strp_06 (polar strp_01 (+ str_ang (* pi 1.5)) (+(/ str_wid 2.0)1.5)) strp_07 (polar strp_03 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) ) strp_08 (polar strp_04 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) ) strp_09 (polar strp_05 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) ) strp_10 (polar strp_06 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) ) ) (command "_.undo" "begin") (SETQ stair_parts (SSADD)) (make_strhids "HDBOX" strp_03 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) 1.5 ) (make_strhids "HDBOX" strp_06 str_ang (cond ((eq bot_stp "Yes")(+ str_len 1.0)) (T (+ str_len 2.5)) ) 1.5 ) (make_strhids "HDBOX" strp_05 str_ang (+ str_len 1.0) str_wid) (command "_.line" strp_04 strp_06 "") (SSADD (ENTLAST) stair_parts) (if (eq bot_stp "Yes") (progn (command "_.line" strp_08 strp_10 "") (SSADD (ENTLAST) stair_parts) ) (PROGN (command "_.line" strp_07 strp_08 "") (SSADD (ENTLAST) stair_parts) (command "_.line" strp_09 strp_10 "") (SSADD (ENTLAST) stair_parts) ) ) (command "_.line" strp_04 strp_08 "") (SSADD (ENTLAST) stair_parts) (command "_.line" strp_03 strp_07 "") (SSADD (ENTLAST) stair_parts) (command "_.line" strp_05 strp_09 "") (SSADD (ENTLAST) stair_parts) (command "_.line" strp_06 strp_10 "") (SSADD (ENTLAST) stair_parts) (if (eq top_stp "Yes") (setq cumulen (1+ trd_dpt)) (setq cumulen 1.0) ) (command "_.line" (polar strp_03 str_ang cumulen) (polar strp_05 str_ang cumulen) "") (SSADD (ENTLAST) stair_parts) (setq cumulen (+ cumulen trd_dpt)) (while (<= cumulen ;;;(if (eq top_stp "Yes") str_len (1+ str_len))) (cond ((and (eq top_stp "Yes")(eq bot_stp "Yes"))(+ str_len 1.0)) (T (+ str_len 2.5)) )) (command "_.line" (polar strp_03 str_ang cumulen) (polar strp_05 str_ang cumulen) "") (SSADD (ENTLAST) stair_parts) (setq cumulen (+ cumulen trd_dpt)) ) (SETQ grp_name_a (RTOS (FIX (GETVAR "cdate")) 2 0) grp_name_b (SUBSTR (RTOS (REM (GETVAR "cdate") 1) 2 8) 3) grp_name_c (STRCAT "STAIR_" (RTOS str_wid 2 0) "X" (RTOS str_hgt 2 0)) bang_str (STRCAT "STAIR") ) ;_ end of setq (COMMAND "-group" "create" (STRCAT grp_name_a grp_name_b grp_name_c) bang_str stair_parts "") ;_ end of COMMAND (command "_.undo" "end") (setvar "osmode" old_osmode) (c:rslayr) (princ) ) (DEFUN make_strhids (hidname hidpnt hidang hid_x hid_y /) (IF stair_parts NIL (SETQ stair_parts (SSADD)) ) (PROGN (IF (TBLOBJNAME "block" "hdbox") nil (PROGN (COMMAND "-insert" "hdbox") (COMMAND) ) ;_ end of progn ) ;_ end of IF (IF (TBLOBJNAME "block" "hdang") nil (PROGN (COMMAND "-insert" "hdang") (COMMAND) ) ;_ end of progn ) ;_ end of IF (IF (TBLOBJNAME "block" "hdcirc") nil (PROGN (COMMAND "-insert" "hdcirc") (COMMAND) ) ;_ end of progn ) ;_ end of IF ) ;_ end of PROGN (SETQ hdboxlst (LIST (CONS 0 "INSERT") (CONS 100 "AcDbBlockReference") (CONS 2 hidname) (CONS 10 hidpnt) (CONS 41 hid_x) (CONS 42 hid_y) (CONS 43 1.0) (CONS 50 hidang) ) ;_ end of LIST ) ;_ end of SETQ (ENTMAKE hdboxlst) (SSADD (ENTLAST) stair_parts) ) ;_ end of defun (defun c:stairel () (setq old_osmode (getvar "osmode")) (setvar "osmode" 0) (setq old_plinetype (getvar"plinetype")) (setvar "plinetype" 2) (if c:mklayr nil (load "mklayr")) (c:svlayr) (setq mjrg "S" llt "-" prod "METL" modf "STEP" usrd nil ) (c:mklayr) (if (and upoint ureal ukword ustr unit uangle) NIL (load "uutils") ) ;;; (setq str_wid (ureal 1 "" "Stair tread width" (if str_wid str_wid 36.0))) (setq trd_dpt (ureal 1 "" "Tread depth (nose to nose)?" (if trd_dpt trd_dpt 11.0))) (setq trd_thk (ureal 1 "" "Tread thickness?" (if trd_thk trd_thk 1.5))) (setvar "osmode" 1) (setq str_top (upoint 1 "" "Top of stair (landing) at face of mounting surface" nil nil)) (setvar "osmode" 129) (setq str_bot (upoint 1 "" "Bottom of stair (landing)" nil str_top)) (setvar "osmode" 0) (setq str_hgt (-(cadr str_top)(cadr str_bot))) (setq trgtris (ureal 1 "" "Target riser height?" (if trgtris trgtris 7.0))) (setq top_stp (ukword 1 "Yes No" "Is top step level with top landing?" (if top_stp top_stp "Yes"))) (setq bot_stp (ukword 1 "Yes No" "Is bottom step level with bottom landing?" (if bot_stp bot_stp "No"))) ;;; (setq strp_01 (if (eq top_stp "Yes") ;;; (upoint 1 "" "Middle of top step at back of tread" nil nil) ;;; (upoint 1 "" "Middle of top landing nose" nil nil) ;;; ) ;;; ) (setq str_dir (upoint 1 "" "Direction of stair" nil str_top)) (if (> (car str_dir) (car str_top)) (setq str_dang 0) (setq str_dang pi) ) (setq num_ris (atof (rtos (/ str_hgt trgtris) 2 0)) ;;; num_ris (cond ;;; ((and (eq top_stp "Yes")(eq bot_stp "Yes")) raw_ris) ;;; ((eq top_stp "Yes") (1- raw_ris)) ;;; ((eq bot_stp "Yes") (1+ raw_ris)) ;;; ((and (eq top_stp "No")(eq bot_stp "No")) raw_ris) ;;; ) ris_hgt (/ str_hgt num_ris) num_trd (cond ((and (eq top_stp "Yes")(eq bot_stp "Yes")) (1+ num_ris)) ((or (eq top_stp "Yes")(eq bot_stp "Yes")) num_ris) ((and (eq top_stp "No")(eq bot_stp "No")) (1- num_ris)) ) ) (setq str_len (* trd_dpt num_trd)) (setq firstp_01 (if (eq top_stp "Yes") (polar str_top str_dang 12.0)(polar str_top str_dang (- 12.0 trd_dpt)))) ;;; strp_02 (polar strp_01 (+ str_ang (* pi 0.5)) (+(/ str_wid 2.0)1.5)) ;;; strp_03 (polar strp_01 (+ str_ang (* pi 1.5)) (/ str_wid 2.0)) ;;; strp_04 (polar strp_01 (+ str_ang (* pi 1.5)) (+(/ str_wid 2.0)1.5)) ;;; strp_05 (polar strp_03 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; ) ;;; strp_08 (polar strp_04 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; ) ;;; strp_09 (polar strp_05 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; ) ;;; strp_10 (polar strp_06 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; ) ;;; ) (command "_.undo" "begin") (SETQ treads (SSADD)) (if (eq top_stp "Yes") (setq trdcnt 2) (setq trdcnt 1) ) (setq strp_01 firstp_01) (while (<= trdcnt num_trd) (maketread strp_01 str_dang) (SSADD (ENTLAST) treads) (if (<= (distance str_top strp_01) 12.0) nil (setq trdcnt (1+ trdcnt)) ) (setq strnnang (atan (/ (- 0 ris_hgt) (if (eq str_dang 0) trd_dpt (- 0 trd_dpt))))) (if (and (> strnnang 0) (< strnnang (* pi 0.5))) (setq strnnang (+ strnnang pi)) ) (setq strp_01 (polar strp_01 strnnang (sqrt(+(* trd_dpt trd_dpt)(* ris_hgt ris_hgt))))) ) (SETQ stair_parts (SSADD)) (setq lastp_01 strp_01) ;;; (setq lastp_01 (polar strp_01 (atan (/ (- 0 ris_hgt) trd_dpt))(sqrt(+(* trd_dpt trd_dpt)(* ris_hgt ris_hgt))))) (setq flg_pt1 (polar firstp_01 (+ (atan (/ (- 0 ris_hgt) (if (eq str_dang 0) trd_dpt (- 0 trd_dpt))))(* pi 0.5)) 1.5) flg_pt2 (polar lastp_01 (+ (atan (/ (- 0 ris_hgt) (if (eq str_dang 0) trd_dpt (- 0 trd_dpt))))(* pi 0.5)) 1.5) flg_pt3 (polar flg_pt1 (+ (atan (/ (- 0 ris_hgt) (if (eq str_dang 0) trd_dpt (- 0 trd_dpt)))) (* pi 1.5)) 12.0) flg_pt4 (polar flg_pt2 (+ (atan (/ (- 0 ris_hgt) (if (eq str_dang 0) trd_dpt (- 0 trd_dpt)))) (* pi 1.5)) 12.0) top_pt1 (polar str_top (* pi 0.5) (if (eq top_stp "Yes") ris_hgt 0.0)) bot_pt1 (cond ((eq bot_stp "Yes") (polar strp_01 (+ str_dang pi) trd_dpt)) (T (polar strp_01 (+ str_dang pi) (- trd_dpt 1.5))) ) str_pt1 (inters top_pt1 (polar top_pt1 0 10) str_top (polar str_top (* pi 0.5) 10) nil) str_pt2 (inters flg_pt1 flg_pt2 top_pt1 (polar top_pt1 0 10) nil) str_pt3 (inters flg_pt1 flg_pt2 bot_pt1 (polar bot_pt1 (* pi 0.5) 10) nil) str_pt4 (inters bot_pt1 (polar bot_pt1 (* pi 0.5) 10) lastp_01 (polar lastp_01 0 10) nil) str_pt5 (inters flg_pt3 flg_pt4 lastp_01 (polar lastp_01 0 10) nil) str_pt6 (inters flg_pt3 flg_pt4 str_top (polar str_top (* pi 0.5) 10) nil) ) (setq x_dist (if (eq str_dang 0)(-(cadr str_pt1)(cadr str_pt6))(-(car str_pt1)(car str_pt2))) y_dist (if (eq str_dang 0)(-(car str_pt2)(car str_pt1))(-(cadr str_pt1)(cadr str_pt6))) ) (make_strhids "HDANG" str_pt1 (angle str_pt1 (if (eq str_dang 0) str_pt6 str_pt2)) x_dist y_dist) (SSADD (ENTLAST) stair_parts) (setq x_dist (if (eq str_dang 0)(-(cadr str_pt3)(cadr str_pt4))(-(car str_pt5)(car str_pt4))) y_dist (if (eq str_dang 0)(-(car str_pt4)(car str_pt5))(-(cadr str_pt3)(cadr str_pt4))) ) (make_strhids "HDANG" str_pt4 (angle str_pt4 (if (eq str_dang 0) str_pt3 str_pt5)) x_dist y_dist) (SSADD (ENTLAST) stair_parts) (cond ((setq top_vtx (inters str_pt2 (polar str_pt2 (+(angle str_pt3 str_pt2)(* pi 0.5)) 12.0) str_pt5 str_pt6 T)) (setq x_dist (distance top_vtx str_pt2) y_dist (distance top_vtx str_pt6) hidang (angle top_vtx str_pt2) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" top_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq top_vtx (inters str_pt6 (polar str_pt6 (+(angle str_pt6 str_pt5)(* pi 0.5)) 12.0) str_pt2 str_pt3 T)) (setq x_dist (distance top_vtx str_pt2) y_dist (distance top_vtx str_pt6) hidang (angle top_vtx str_pt2) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" top_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq top_vtx (inters str_pt2 (polar str_pt2 (-(angle str_pt3 str_pt2)(* pi 0.5)) 12.0) str_pt5 str_pt6 T)) (setq x_dist (distance top_vtx str_pt6) y_dist (distance top_vtx str_pt2) hidang (angle top_vtx str_pt6) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" top_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq top_vtx (inters str_pt6 (polar str_pt6 (-(angle str_pt6 str_pt5)(* pi 0.5)) 12.0) str_pt2 str_pt3 T)) (setq x_dist (distance top_vtx str_pt6) y_dist (distance top_vtx str_pt2) hidang (angle top_vtx str_pt6) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" top_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ) (cond ((setq bot_vtx (inters str_pt3 (polar str_pt3 (+(angle str_pt3 str_pt2)(* pi 0.5)) 12.0) str_pt5 str_pt6 T)) (setq x_dist (distance bot_vtx str_pt5) y_dist (distance bot_vtx str_pt3) hidang (angle bot_vtx str_pt5) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" bot_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq bot_vtx (inters str_pt5 (polar str_pt5 (+(angle str_pt6 str_pt5)(* pi 0.5)) 12.0) str_pt2 str_pt3 T)) (setq x_dist (distance bot_vtx str_pt5) y_dist (distance bot_vtx str_pt3) hidang (angle bot_vtx str_pt5) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" bot_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq bot_vtx (inters str_pt3 (polar str_pt3 (-(angle str_pt3 str_pt2)(* pi 0.5)) 12.0) str_pt5 str_pt6 T)) (setq x_dist (distance bot_vtx str_pt3) y_dist (distance bot_vtx str_pt5) hidang (angle bot_vtx str_pt3) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" bot_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ((setq bot_vtx (inters str_pt5 (polar str_pt5 (-(angle str_pt6 str_pt5)(* pi 0.5)) 12.0) str_pt2 str_pt3 T)) (setq x_dist (distance bot_vtx str_pt3) y_dist (distance bot_vtx str_pt5) hidang (angle bot_vtx str_pt3) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDANG" bot_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) )) ) (COND ((AND(EQUAL (ANGLE str_pt2 str_pt3)(ANGLE str_pt2 top_vtx) 0.001)(eq str_dang 0)) (SETQ str_vtx str_pt6 box_ang (ANGLE str_pt2 str_pt3))) ((AND(EQUAL (ANGLE str_pt6 str_pt5)(ANGLE str_pt6 top_vtx) 0.001)(eq str_dang 0)) (SETQ str_vtx top_vtx box_ang (ANGLE str_pt2 str_pt3))) ((AND(EQUAL (ANGLE str_pt2 str_pt3)(ANGLE str_pt2 top_vtx) 0.001)) (SETQ str_vtx top_vtx box_ang (ANGLE str_pt2 str_pt3))) ((AND(EQUAL (ANGLE str_pt6 str_pt5)(ANGLE str_pt6 top_vtx) 0.001)) (SETQ str_vtx str_pt2 box_ang (ANGLE str_pt2 str_pt3))) ) (COND ((AND(EQUAL (ANGLE str_pt2 str_pt3)(ANGLE bot_vtx str_pt3) 0.001)(eq str_dang 0)) (SETQ box_xpt str_pt5)) ((AND(EQUAL (ANGLE str_pt6 str_pt5)(ANGLE bot_vtx str_pt5) 0.001)(eq str_dang 0)) (SETQ box_xpt bot_vtx)) ((AND(EQUAL (ANGLE str_pt2 str_pt3)(ANGLE bot_vtx str_pt3) 0.001)) (SETQ box_xpt bot_vtx)) ((AND(EQUAL (ANGLE str_pt6 str_pt5)(ANGLE bot_vtx str_pt5) 0.001)) (SETQ box_xpt str_pt3)) ) (setq x_dist (distance str_vtx box_xpt) y_dist 12.0 hidang (angle str_vtx box_xpt) ) (IF (AND (> x_dist 0)(> y_dist 0)) (PROGN (make_strhids "HDBOX" str_vtx hidang x_dist y_dist) (SSADD (ENTLAST) stair_parts) ) ) (setq tread_sscnt 0) (while (setq trdename (ssname treads tread_sscnt)) (SETQ trdent (ENTGET trdename)) (ENTMAKE (CDR trdent)) ;;; (entdel trdename) (SSADD (ENTLAST) stair_parts) (entdel trdename) (setq tread_sscnt (1+ tread_sscnt)) ) (command "_.pline" str_pt1 str_pt2 str_pt3 str_pt4 str_pt5 str_pt6 "c") (SSADD (ENTLAST) stair_parts) (SETQ mjrg "S" prod "CONC" colr "4" modf "SLAB" ) (c:mklayr) (if (eq bot_stp "Yes") (progn (setq bot_lc1 (polar trdpt4 (* pi 0.5) trd_thk) bot_lf1 (polar bot_lp1 (* pi 1.5) 12.0) bot_lt1 (polar str_dang 36.0) ) (command "_.pline" bot_lf1 bot_lc1 bot_lt1 "") (SSADD (ENTLAST) stair_parts) ) (progn (setq bot_lc1 str_pt5 bot_lc2 (polar str_pt4 str_dang 48.0) bot_lc3 (polar bot_lc2 (* pi 1.5) 6.0) bot_lc4 (polar bot_lc1 (* pi 1.5) 6.0) ) (if (eq str_dang 0) (make_strhids "HDBOX" bot_lc4 (angle bot_lc1 bot_lc2) (distance bot_lc1 bot_lc2)(distance bot_lc1 bot_lc4)) (make_strhids "HDBOX" bot_lc3 (angle bot_lc3 bot_lc4) (distance bot_lc1 bot_lc2)(distance bot_lc1 bot_lc4)) ) (command "_.pline" bot_lc1 bot_lc2 bot_lc3 bot_lc4 bot_lc1 "c") (SSADD (ENTLAST) stair_parts) ) ) ;;; (make_strhids "HDBOX" strp_03 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; 1.5 ;;; ) ;;; (make_strhids "HDBOX" strp_06 str_ang ;;; (cond ;;; ((eq bot_stp "Yes")(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; ) ;;; 1.5 ;;; ) ;;; (make_strhids "HDBOX" strp_05 str_ang (+ str_len 1.0) str_wid) ;;; (command "_.line" strp_04 strp_06 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (if (eq bot_stp "Yes") ;;; (progn ;;; (command "_.line" strp_08 strp_10 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; ) ;;; (PROGN ;;; (command "_.line" strp_07 strp_08 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (command "_.line" strp_09 strp_10 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; ) ;;; ) ;;; (command "_.line" strp_04 strp_08 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (command "_.line" strp_03 strp_07 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (command "_.line" strp_05 strp_09 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (command "_.line" strp_06 strp_10 "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (if (eq top_stp "Yes") ;;; (setq cumulen (1+ trd_dpt)) ;;; (setq cumulen 1.0) ;;; ) ;;; (command "_.line" (polar strp_03 str_ang cumulen) (polar strp_05 str_ang cumulen) "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (setq cumulen (+ cumulen trd_dpt)) ;;; (while (<= cumulen ;;;(if (eq top_stp "Yes") str_len (1+ str_len))) ;;; ;;; (cond ;;; ((and (eq top_stp "Yes")(eq bot_stp "Yes"))(+ str_len 1.0)) ;;; (T (+ str_len 2.5)) ;;; )) ;;; ;;; (command "_.line" (polar strp_03 str_ang cumulen) (polar strp_05 str_ang cumulen) "") ;;; (SSADD (ENTLAST) stair_parts) ;;; (setq cumulen (+ cumulen trd_dpt)) ;;; ) (SETQ grp_name_a (RTOS (FIX (GETVAR "cdate")) 2 0) grp_name_b (SUBSTR (RTOS (REM (GETVAR "cdate") 1) 2 8) 3) grp_name_c (STRCAT "STAIR_" (RTOS str_hgt 2 0)) bang_str (STRCAT "STAIR") ) ;_ end of setq (COMMAND "-group" "create" (STRCAT grp_name_a grp_name_b grp_name_c) bang_str stair_parts "") ;_ end of COMMAND (command "_.undo" "end") (setvar "osmode" old_osmode) (setvar "plinetype" old_plinetype) (c:rslayr) (princ) ) (defun maketread ( pt ang /) (setq trdpt2 (polar pt (+ ang pi) (if (<= (distance pt str_top) 12.0) (distance pt str_top) 12.0)) trdpt3 (polar trdpt2 (+ ang (* pi (if (eq ang pi) 0.5 1.5))) trd_thk) trdpt4 (polar pt (+ ang (* pi (if (eq ang pi) 0.5 1.5))) trd_thk) ) (command "_.pline" pt trdpt2 trdpt3 trdpt4 "c") (princ) )