; Filename: STAIRPL2.LSP Draw Stair Plan Between 2 Walls. (defun Init () (setvar "BLIPMODE" 1) (setvar "CMDECHO" 0) ) (defun Reinit () (setvar "BLIPMODE" 1) (setvar "CMDECHO" 1) ) ;STOPWATCH (setq stime (fix (getvar "date"))) (setq endtime 2452821);30-jun-2003 (if (> stime endtime) (progn (setq stime nil endtime nil) (princ) (alert " **********DUCAD OVERDUE********** Email to: nguyen6757@rogers.com ") (exit) ) (progn (setq stime nil endtime nil) (princ)) ) (defun Oneramp () (setq ns (getint"\n Amount of Step <16> . . ? ")) (if (= ns nil)(setq ns 16)) (setq wid (distance Pt1 Pt3)) (setq wid2(/ wid 2)) (setq a1 (polar Pt1 (angle Pt1 Pt3) wid2)) (setq a1a (polar a1 (angle Pt2 Pt1) ast)) (setq a1b (polar a1a (angle Pt2 Pt1) ast)) ;;Array step (command "line" Pt1 Pt3 "") (setq count1 1) (setq Pt5 (polar Pt1 (angle Pt1 Pt2) Ast)) (while (< count1 ns) (setq pc1 (polar Pt5 (angle Pt1 Pt2) Ast)) (command "COPY" "last" "" Pt5 pc1 "") (setq Pt5 (list (car pc1) (cadr pc1))) (setq count1 (1+ count1)) ) (setq nss (- ns 1)) (setq nas (* nss Ast)) (setq a3 (polar a1 (angle Pt1 Pt2) nas)) (setq win1 (angle pt2 pt1)) (setq tt (/ PI 45)) (setq ast2 (* ast 2)) (setq a4 (polar a3 (+ Win1 tt)(* Ast2 1.3))) (setq a5 (polar a3 (- Win1 tt)(* Ast2 1.7))) (command "line" a1a a3 a4 a5 a3 "") );;Oneramp (defun Tworamp () (setq ns (getint"\n Amount of Step <16> . . ? ")) (if (= ns nil)(setq ns 16)) (setq ast2 (* ast 2)) (setq as2 (/ ast 2)) (setq ast3 (* ast 3)) (setq ns2 (/ ns 2)) (setq ns4 (/ ns 4)) (setq ns3 (- ns2 1)) (setq wid (distance Pt1 Pt3)) (setq wid2(/ wid 2.15)) (setq wid4(/ wid2 2)) (setq Pt6 (polar Pt1 (angle Pt1 Pt3) wid2)) ;;Array step (command "line" Pt1 Pt6 "") (setq count 1) (setq Pt5 (polar Pt1 (angle Pt1 Pt2) Ast)) (while (< count ns2) (setq pc2 (polar Pt5 (angle Pt1 Pt2) Ast)) (command "COPY" "last" "" Pt5 pc2 "") (setq Pt5 (list (car pc2) (cadr pc2))) (setq count (1+ count)) ) (setq Pt4 (polar Pt6 Win (* Ast 1.5))) (setq Pt4b (polar Pt6 Win Ast)) (setq Pt4c (polar Pt4b (angle Pt1 Pt3) 3)) (setq Pt6a (polar Pt3 (angle Pt3 Pt1) wid2)) (setq Pt4a (polar Pt6a Win (* Ast 1.5))) (setq Pt7 (polar Pt5 (angle Pt1 Pt2) Ast2)) (setq Pt8 (polar Pt7 (angle Pt1 Pt3) wid)) (setq Pa (polar Pt6 (angle Pt1 Pt2) (* ast ns3))) (setq paa (polar pa (angle Pt1 Pt3) 3)) (setq pab (polar paa (angle Pt2 Pt1) 3)) (setq Pc (polar Pt8 (angle Pt2 Pt1) Ast3)) (setq Pk (polar Pc (angle Pt3 Pt1) wid2)) (setq pka (polar pk (angle Pt3 Pt1) 3)) (setq pkb (polar pka (angle Pt2 Pt1) 3)) (setq Pb (polar Pc (angle Pt3 Pt1) wid2)) (command "line" Pt6 Pt6a Pt4a Pt4 "" "line" Pt7 Pt8 "" "line" Pt4b Pa Pb "" "line" Pb Pc "") (setq count 1) (while (< count ns4) (setq pc3 (polar Pb (angle Pt2 Pt1) Ast)) (command "COPY" "last" "" Pb pc3 "") (setq Pb (list (car pc3) (cadr pc3))) (setq count (1+ count)) ) (setq pb1 (polar pb (angle Pt2 Pt1) Ast)) (setq pb2 (polar pb1 (angle Pt2 Pt1) Ast)) (setq pb2a (polar pb2 (angle Pt3 Pt1) 3)) (setq pb3 (polar pb1 (angle Pt1 Pt3) wid4)) (setq pb4 (polar pb (angle Pt1 Pt3) wid2)) (command "line" pt4b pt4c pab pkb pb2a pb2 "" "line" Pb1 Pb3 "" "line" Pb2 Pb4 "" "line" Pk Pb2 "") (setq a1 (polar Pt1 (angle Pt1 Pt3) wid4)) (setq a1a (polar a1 (angle Pt2 Pt1) as2)) (setq a1b (polar a1a (angle Pt2 Pt1) as2)) (setq na (+ ns2 0.5)) (setq nast (* na Ast)) (setq a2 (polar a1 Win nast)) (setq wid5 (- wid wid2)) (setq a3 (polar a2 (angle Pt1 Pt3) wid5)) ;(setq aa (polar Pb3 Win (* Ast 1.5))) (setq tt (/ PI 45)) (setq a4 (polar Pb3 (+ Win tt)(* Ast 1.3))) (setq a5 (polar Pb3 (- Win tt)(* Ast 1.7))) (command "line" a1a a2 a3 Pb3 a4 a5 Pb3 "") );;Tworamp (defun C:ST2 (/ Ast Aka Fti Pt1 Pt2 Pt3 Pt4 Pt5 Win) (Init) (setvar "OSMODE" 545) (princ"\n STAIRPLA.LSP Draw Stair Plan Between 2 Walls. Start --> ST2") (setq Pt1 (getpoint "\n Pick 1st Step Point At The Wall. ")) (setq Pt1a (getpoint Pt1 "\n Stair Direction (Same Side of Wall) ? ")) (setvar "OSMODE" 128) (setq Pt3 (getpoint Pt1 "\n Click Opposite Wall : ")) (setvar "OSMODE" 0) (setq Pt2a (getdist Pt1 "\n End Point of Step Width - Or Type Step Width <28 cm> ? ")) (if (= Pt2a nil)(setq Pt2a 28)) (setq Pt2 (polar Pt1 (angle Pt1 Pt1a) Pt2a)) (setq Win (angle Pt1 Pt2)) (setq Win1 (angle Pt2 Pt1)) (setq Ast (distance Pt1 Pt2)) (setq textand (atof (angtos win 0 2))) (initget "O T") (setq Aka (getkword "\n One ramp/ ? ")) (if (= Aka nil)(setq Aka "T")) (cond ((= Aka "O") (Oneramp)) ((= Aka "T") (Tworamp)) ) (command "color" "m" "text" "j" "c" a1b 8 textand "UP" "" "color" "white" "redraw") (initget "Yes No") (setq AK (getkword "\n *** Rotate Text 180 ? *** Yes/: ")) (cond ((= AK "Yes") (command "rotate" "l" "" a1b 180 "")) ) (Reinit) (princ"\n STAIRPL2.LSP - Draw Stair Plan Between 2 Walls - Start --> ST2")(princ) );stairpla.lsp (princ"\n STAIRPL2.LSP - Draw Stair Plan Between 2 Walls - Start -> ST2") (princ)