home *** CD-ROM | disk | FTP | other *** search
- (vmon)
- (defun lterr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:LT(/ file se se2 ss ss1 oer terh s1 tw tw0 tl1 tl2 axdl x p ang tw1 tw2 tw3 tes hg th wide1 step1 cp1 sp1 riser1 case1 kword kword2 agi clh cr rp1 w2 hrl1)
- (setvar "cmdecho" 0)
- (setvar "AFLAGS" 0)
- (setq oldatm (getvar "ATTMODE"))
- (SETVAR "ATTMODE" 0)
- (setq oer *error* *error* lterr)
- (setq s1 (getstring "\n╩Σ╚δ┬Ñ╠▌╩╜╤∙4/3/2/<1>:"))
- (if (= s1 "") (setq s1 "1"))
- (if (and (>= s1 "1") (<= s1 "4")) (progn
- (cond ((= s1 "1") (setq tes 1)
- (while (/= tes 0)
- (setq tl1 (getstring "\n╩Σ╚δ┬Ñ╠▌╢╬╕≈┐φ╢╚ <1650,1650>:"))
- (if (= tl1 "") (setq tl1 "1650,1650"))
- (sub11 tl1) (setq tl1 axdl)
- (if (> (length tl1) 3) (princ "\n┬Ñ╠▌▓╗─▄╢α╙┌3┼▄ !")
- (setq tes 0))
- );while
- (setq tw1 (getint "\n╩Σ╚δ╠ñ▓╜┐φ <270>:"))
- (if (= tw1 nil) (setq tw1 270))
- (setq tw2 (getint "\n╩Σ╚δ╠ñ▓╜╩² <11>:"))
- (if (= tw2 nil) (setq tw2 11))
- (setq tw2 (1- tw2))
- (setq hg (getint "\n╩Σ╚δ╠ñ▓╜╕▀ <150>:"))
- (if (= hg nil) (setq hg 150))
- (setq tl2 (getint "\n╩Σ╚δ╨▌╧ó░σ│ñ╢╚ <1800>:"))
- (if (= tl2 nil) (setq tl2 1800))
- (setq th (getint "\n╩Σ╚δ╨▌╧ó░σ║±╢╚ <120>:"))
- (if (= th nil) (setq th 120))
- (setq hrl1 (getint "\n╩Σ╚δ┬Ñ╠▌╖÷╩╓╕▀╢╚ <1100>:"))
- (if (= hrl1 nil) (setq hrl1 1100)))
- ((= s1 "2") (setq tl1 (getint "\n╩Σ╚δ┬Ñ╠▌╢╬┐φ <1650>:"))
- (if (= tl1 nil) (setq tl1 1650))
- (setq tw1 (getint "\n┬Ñ╠▌╠ñ▓╜┐φ <270>:"))
- (if (= tw1 nil) (setq tw1 270))
- (setq tw2 (getint "\n╩Σ╚δ╫≤╙╥┬Ñ╠▌╠ñ▓╜╩² <8>:"))
- (if (= tw2 nil) (setq tw2 8))
- (setq tw2 (1- tw2))
- (setq tw3 (getint "\n╩Σ╚δ╔╧├µ┬Ñ╠▌╠ñ▓╜╩² <8>:"))
- (if (= tw3 nil) (setq tw3 8))
- (setq tw3 (1- tw3))
- (setq hg (getint "\n╩Σ╚δ╠ñ▓╜╕▀ <150>:"))
- (if (= hg nil) (setq hg 150))
- (setq tl2 (getint "\n╩Σ╚δ╨▌╧ó░σ│ñ╢╚ <1800>:"))
- (if (= tl2 nil) (setq tl2 1800))
- (setq th (getint "\n╩Σ╚δ╨▌╧ó░σ║±╢╚ <120>:"))
- (if (= th nil) (setq th 120))
- (setq hrl1 (getint "\n╩Σ╚δ┬Ñ╠▌╖÷╩╓╕▀╢╚ <1100>:"))
- (if (= hrl1 nil) (setq hrl1 1100)))
- ((= s1 "3") (setq tl1 (getint "\n╩Σ╚δ╧┬├µ┬Ñ╠▌╢╬┐φ╢╚ <1650>:"))
- (if (= tl1 nil) (setq tl1 1650))
- (setq tw2 (getint "\n╩Σ╚δ╧┬├µ┬Ñ╠▌╠ñ▓╜╩² <11>:"))
- (if (= tw2 nil) (setq tw2 11))
- (setq tw2 (1- tw2))
- (setq tl2 (getint "\n╩Σ╚δ╔╧├µ┬Ñ╠▌╢╬┐φ╢╚ <1650>:"))
- (if (= tl2 nil) (setq tl2 1650))
- (setq tw3 (getint "\n╩Σ╚δ╔╧├µ┬Ñ╠▌╠ñ▓╜╩² <8>:"))
- (if (= tw3 nil) (setq tw3 8))
- (setq tw3 (1- tw3))
- (setq tw1 (getint "\n╩Σ╚δ╠ñ▓╜┐φ <270>:"))
- (if (= tw1 nil) (setq tw1 270))
- (setq hg (getint "\n╩Σ╚δ╠ñ▓╜╕▀ <150>:"))
- (if (= hg nil) (setq hg 150))
- (setq th (getint "\n╩Σ╚δ╨▌╧ó░σ║±╢╚ <120>:"))
- (if (= th nil) (setq th 120))
- (setq hrl1 (getint "\n╩Σ╚δ┬Ñ╠▌╖÷╩╓╕▀╢╚ <1100>:"))
- (if (= hrl1 nil) (setq hrl1 1100)))
- ((= s1 "4")
- (setq sp1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌─┌░δ╛╢ <750>:"))
- (if (= sp1 nil) (setq sp1 750))
- (setq riser1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╠ñ▓╜╕▀ <150>:"))
- (if (= riser1 nil) (setq riser1 150))
- (setq step1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╠ñ▓╜┐φ <270>:"))
- (if (= step1 nil) (setq step1 270))
- (setq wide1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌┐φ <1600>:"))
- (if (= wide1 nil) (setq wide1 1600))
- (setq case1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╠ñ▓╜╩² <24>:"))
- (if (= case1 nil) (setq case1 24))
- (setq th (getint "\n╩Σ╚δ┬Ñ╠▌╢╬║±╢╚ <150> :"))
- (if (= th nil) (setq th 150))
- (setq hrl1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╖÷╩╓╕▀ <1100>:"))
- (if (= hrl1 nil) (setq hrl1 1100))
- (setq w2 (+ wide1 sp1))
- (setq kword "No" kword2 "Yes")
- (initget "Yes No")
- (setq kword (getkword "\n╙╨╘░┬Ñ╠▌╓∙╖±? Yes/No <N>:"))
- (if (= kword "Yes") (progn
- (setq clh (getint "\n╩Σ╚δ╓∙╕▀ <3600> :"))
- (if (= clh nil) (setq clh 3600))
- (setq cr (getint "\n╩Σ╚δ╘░┬Ñ╠▌╓∙░δ╛╢ <300>:"))
- (if (= cr nil) (setq cr 300))
- (setq rp1 (- sp1 cr))
- (initget "Yes No")
- (setq kword2 (getkword "\n╙╨╘░┬Ñ╠▌─┌▓α╖÷╩╓╖±? Yes/No <Y>:"))
- (if (= kword2 nil) (setq kword2 "Yes"))
- )
- )
- )
- )
- (graphscr)
- (initget 1 "R")
- (setq p (getpoint "\n▓╬┐╝╡πR/<▓σ╚δ╡π>:"))
- (if (= p "R") (progn (setq p (getpoint "\n▓╬┐╝╡π:"))
- (setq p (getpoint p "\n▓σ╚δ╡π:"))))
- (setq ang (getangle p "\n▓σ╚δ╖╜╧≥ <0>:"))
- (if (= ang nil) (setq ang 0))
- (if (= s1 "4") (setq cp1 p sp1 (polar cp1 0 sp1) agi (rtd ang))
- (setq agi 0))
- (command "layer" "m" "pstair" "")
- (setq se nil se2 nil ss (ssadd))
- (cond ((= s1 "1") (lt1 tl1 tl2 tw1 tw2 p ang hg th hrl1))
- ((= s1 "2") (lt2 tl1 tw1 tw2 tw3 p ang hg th hrl1))
- ((= s1 "3") (lt3 tl1 tl2 tw1 tw2 tw3 p ang hg th hrl1))
- ((= s1 "4") (lt4 cp1 sp1 riser1 step1 wide1 case1 hrl1 ang))
- )
- (if (/= s1 "4") (progn
- (load "lisp/ltd") (C:ltd)
- (load "lisp/lt0") (C:lt0)
- ))
- (command "layer" "m" "pstair" "")
- (COMMAND "BLOCK" FILE P SS "")
- (command "insert" file p "" "" agi "")
- (COMMAND "LAYER" "F" "PSTAIRAT" "")
- (command "layer" "s" "0" "")
- ))
- (SETVAR "ATTMODE" OLDATM)
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun lt1(tl11 tl22 tw11 tw22 p1 ang1 hg1 th1 hrl / at at1 at2 lnt nt ff ef plw l1 l ang0 ang2 n p2 p3 p4 p5 p6 p7 p8 p9)
- (setq plw (getvar "userr1"))
- (setq lnt (length tl11))
- (setq nt (1- lnt) at2 (itoa (nth nt tl11)))
- (repeat (1- lnt)
- (setq at1 (itoa (nth (1- nt) tl11)) at2 (strcat at1 "," at2) nt (1- nt))
- )
- (setq at (strcat at2 " " (itoa tl22) " " (itoa tw11) " " (itoa (1+ tw22)) " " (rtos ang1 2 5) " " (itoa hg1) " " (itoa th1) " " (itoa hrl)))
- (setq file "ST1-1" ff "ST1-" ef 1)
- (while (/= (tblsearch "BLOCK" file) nil)
- (setq ef (1+ ef) file (strcat ff (itoa ef)))
- )
- (setq at (strcat "T1" " " at))
- (if (/= (tblsearch "LAYER" "PSTAIRAT") nil)
- (command "layer" "T" "PSTAIRAT" "")
- )
- (COMMAND "LAYER" "M" "PSTAIRAT" "")
- (command "attdef" "" "LT" "" at "C" p1 "" "")
- (setq se (entlast)) (ssadd se ss)
- (COMMAND "LAYER" "M" "PSTAIR" "")
- (setq l1 (+ (* tw11 tw22) tl22))
- (setq l (length tl11) ang0 (- ang1 1.57079) ang2 (+ ang1 1.57079))
- (if (= l 1) (progn
- (setq tl1 (- (nth 0 tl11) plw))
- (setq p2 (polar p1 ang0 l1) p3 (polar p2 ang1 (+ tl1 plw)))
- (setq p4 (polar p3 ang2 (- (* tw11 (1+ tw22)) plw)) p5 (polar p4 ang1 (- tw11 plw)))
- (setq p6 (polar p5 ang2 plw) p7 (polar p6 (+ ang1 pi) tw11))
- (setq p8 (polar p7 ang0 (+ (* 0.5 tw11) (* tw11 tw22))) p9 (polar p8 ang1 plw))
- (command "line" p2 p3 p4 p5 p6 p7 p8 p9 "")
- (setq se (entlast)) (ssadd se ss)
- (repeat tw22
- (setq p2 (polar p2 ang2 tw11) p3 (polar p2 ang1 tl1))
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- ))
- (progn
- (setq n 0)
- (repeat l
- (if (> n 0) (progn
- (setq p4 (polar p33 ang0 (* 0.5 tw11)) p5 (polar p4 ang1 (* 3 plw)))
- (setq p6 (polar p5 ang2 (* (1+ tw22) tw11)) p7 (polar p6 (+ ang1 pi) (* 3 plw)))
- (command "pline" p4 "w" 0 "" p5 p6 p7 "c")
- (setq se (entlast)) (ssadd se ss)
- (command "offset" plw (list (entlast) p4) (polar (polar p4 ang1 (* 1.5 plw)) ang2 50) "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p1 ang0 l1) p2 (polar p2 ang1 (* 1.5 plw)))
- )
- (setq p2 (polar p1 ang0 l1))
- ) ;endif
- (if (or (= n 0) (= n (1- l))) (setq w1 (- (nth n tl11) (* 1.5 plw))) (setq w1 (- (nth n tl11) (* 3 plw))))
- (setq p3 (polar p2 ang1 w1) p33 p3)
- (repeat (1+ tw22)
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang2 tw11) p3 (polar p2 ang1 w1))
- )
- (setq p1 (polar p1 ang1 (nth n tl11)))
- (setq n (1+ n))
- )
- )) ;endif
- )
-
- (defun lt2(tl11 tw11 tw22 tw33 p1 ang1 hg1 th1 hrl / at ff ef plw l2 l1 p2 p3 p4 p5 ang0 ang2)
- (setq at (strcat (itoa tl11) " " (itoa tw11) " " (itoa (1+ tw22)) " " (itoa (1+ tw33)) " " (rtos ang1 2 5) " " (itoa hg1) " " (itoa th1) " " (itoa hrl)))
- (setq file "ST2-1" ff "ST2-" ef 1)
- (while (/= (tblsearch "BLOCK" file) nil)
- (setq ef (1+ ef) file (strcat ff (itoa ef)))
- )
- (setq at (strcat "T2" " " at))
- (if (/= (tblsearch "LAYER" "PSTAIRAT") nil)
- (command "layer" "T" "PSTAIRAT" "")
- )
- (COMMAND "LAYER" "M" "PSTAIRAT" "")
- (command "attdef" "" "LT" "" at "C" p1 "" "")
- (setq se (entlast)) (ssadd se ss)
- (setq plw (getvar "userr1") ang0 (- ang1 1.57079) ang2 (+ ang1 1.57079) l1 (+ tl11 (* tw11 tw22) (* 0.5 tw11)))
- (setq l2 (+ (* (1+ tw33) tw11) tl11) l3 (+ tl11 (* 0.5 tw11)))
- (setq p2 (polar p1 ang0 l1) p3 (polar p2 ang1 tl11))
- (setq p4 (polar p2 ang1 l2) p5 (polar p4 ang1 tl11))
- (COMMAND "LAYER" "M" "PSTAIR" "")
- (repeat (1+ tw22)
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (command "line" p4 p5 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang2 tw11) p3 (polar p2 ang1 tl11))
- (setq p4 (polar p4 ang2 tw11) p5 (polar p4 ang1 tl11))
- )
- (setq p2 (polar p1 ang1 l3) p3 (polar p2 ang0 tl11))
- (repeat (1+ tw33)
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang1 tw11) p3 (polar p2 ang0 tl11))
- )
- (setq l2 (* (1+ tw22) tw11) l3 (* (1+ tw33) tw11))
- (setq p2 (polar p3 (+ ang1 pi) (* 0.5 tw11)) p3 (polar p2 ang0 l2) p4 (polar p3 (+ ang1 pi) l3) p5 (polar p4 ang2 l2))
- (command "pline" p2 "w" 0 "" p3 p4 p5 "c")
- (setq se (entlast)) (ssadd se ss)
- (command "offset" plw (list (entlast) p2) (polar (polar p4 ang2 tw11) ang1 50) "")
- (setq se (entlast)) (ssadd se ss)
- )
-
- (defun lt3(tl11 tl22 tw11 tw22 tw33 p1 ang1 hg1 th1 hrl / at ff ef plw ang0 ang2 p2 p3 p4 p5 p6 p7 p8 p9 pkword l1 l2 osn ssn)
- (setq at (strcat (itoa tl11) " " (itoa tl22) " " (itoa tw11) " " (itoa (1+ tw22)) " " (itoa (1+ tw33)) " " (rtos ang1 2 5) " " (itoa hg1) " " (itoa th1) " " (itoa hrl)))
- (setq file "ST3-1" ff "ST3-" ef 1)
- (while (/= (tblsearch "BLOCK" file) nil)
- (setq ef (1+ ef) file (strcat ff (itoa ef)))
- )
- (setq plw (getvar "userr1") l2 (- (+ tl22 (* 0.5 tw11) (* tw11 tw22)) plw))
- (setq osn (entlast) ang0 (- ang1 1.57079) ang2 (+ ang1 1.57079))
- (setq p2 (polar p1 ang0 l2) p3 (polar p2 ang1 tl11) p33 p3)
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang2 tw11) p3 (polar p2 ang1 (- tl11 plw)))
- (repeat tw22
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang2 tw11) p3 (polar p2 ang1 (- tl11 plw)))
- )
- (setq p2 (polar p1 ang1 (+ (- tl11 plw) (* 0.5 tw11))) p3 (polar p2 ang0 (- tl22 plw)))
- (repeat (1+ tw33)
- (command "line" p2 p3 "")
- (setq se (entlast)) (ssadd se ss)
- (setq p2 (polar p2 ang1 tw11) p3 (polar p2 ang0 (- tl22 plw)))
- )
- (setq p2 (polar p33 ang2 (* 0.5 tw11)) p3 (polar p2 ang2 (- (* tw11 tw22) plw)) p4 (polar p3 ang1 (- (* (1+ tw33) tw11) (* 2 plw))) p5 (polar p4 ang0 (- tw11 plw)))
- (setq p6 (polar p5 ang1 plw) p7 (polar p6 ang2 tw11) p8 (polar p7 (+ ang1 pi) (* (1+ tw33) tw11)))
- (setq p9 (polar p8 ang0 (* tw22 tw11)))
- (command "pline" p33 "w" 0 "" p3 p4 p5 p6 p7 p8 p9 p2 "")
- (setq se (entlast)) (ssadd se ss)
- (initget "Yes No")
- (setq pkword (getkword "\n╢╘│╞┐╜▒┤? Yes/No <N>:"))
- (if (= pkword nil) (setq pkword "No"))
- (if (/= pkword "No") (progn
- (setvar "MIRRTEXT" 0)
- (setq ssn nil ssn (ssadd))
- (while (/= (setq osn (entnext osn)) nil) (ssadd osn ssn))
- (command "mirror" ssn "" p1 (polar p1 ang0 50) "N")
- (setvar "MIRRTEXT" 1)
- (while (/= (setq se (entnext se)) nil) (ssadd se ss))
- ))
- (setq at (strcat "T3" " " pkword " " at))
- (if (/= (tblsearch "LAYER" "PSTAIRAT") nil)
- (command "layer" "T" "PSTAIRAT" "")
- )
- (COMMAND "LAYER" "M" "PSTAIRAT" "")
- (command "attdef" "" "LT" "" at "C" p1 "" "")
- (setq se (entlast)) (ssadd se ss)
- )
-
- (defun lt4(cp sp riser step wide case hrl ang1 / at ef ff pt4 uppt1 uppt2 uppt3 uppt4 count el riser rp insr diag diag2 hrlpt1 hrlpt2 hrlpt3 hrlpt4 isd fi hrlp21 hrlp31 hrlp41 hrl22 sp2 pt42 uppt32 uppt22 uppt31 w1)
- (setq oldblp (getvar "BLIPMODE"))
- (setq oldelv (getvar "ELEVATION"))
- (setvar "BLIPMODE" 0)
- (setvar "ELEVATION" 0)
- (spcalc)
- (while (< count case) (sbuild))
- (if (= kword "Yes") (pole))
- (setq se2 (entnext se))
- (while (/= se2 nil)
- (ssadd se2 ss)
- (setq se2 (entnext se2))
- )
- (setq at (strcat "T4" " " (rtos ang1 2 5) " " (itoa w2)))
- (if (/= (tblsearch "LAYER" "PSTAIRAT") nil)
- (command "layer" "T" "PSTAIRAT" "")
- )
- (command "layer" "m" "pstairat" "")
- (command "attdef" "" "LT" "" at "C" cp "" "")
- (setq se (entlast)) (ssadd se ss)
- (setvar "BLIPMODE" oldblp)
- (setvar "ELEVATION" oldelv)
- )
- (defun spcalc (/ e1 e2 e3 e4 e11 e21 E31 E41 h1 h2 h11 h21 h3 h4 h31 h41)
- (setq file "ST4-1" ff "ST4-" ef 1)
- (while (/= (tblsearch "BLOCK" file) nil)
- (setq ef (1+ ef) file (strcat ff (itoa ef)))
- )
- (setq pt4 (polar sp 0 wide))
- (setq uppt1 (list (car sp) (cadr sp) riser))
- (setq uppt4 (list (car pt4) (cadr pt4) riser))
- (setq count 0)
- (setq el riser)
- (command "layer" "m" "pstair" "")
- (command "line" sp pt4 "")
- (setq se (entlast)) (ssadd se ss)
- (command "arc" (polar sp
- (angle sp pt4)
- 0)
- "c" cp "L" step
- )
- (command "line" "" 0 "")
- (setq rp (getvar "LASTPOINT"))
- (COMMAND "ERASE" rp "")
- (command "erase" rp
- (polar sp
- (angle sp pt4)
- (/ (distance sp pt4) 3.0)
- )
- "")
- (setq diag (angle cp rp))
- (setq incr diag)
- (setq uppt3
- (list (car (polar cp diag (distance cp pt4)))
- (cadr (polar cp diag (distance cp pt4)))
- riser
- )
- )
- (setq uppt2
- (list (car (polar cp diag (distance cp sp)))
- (cadr (polar cp diag (distance cp sp)))
- riser
- )
- )
- (setq uppt22 (list (car uppt2) (cadr uppt2) (- riser th)))
- (setq sp2 (list (car sp) (cadr sp) (- (caddr sp) th)))
- (setq uppt32 (list (car uppt3) (cadr uppt3) (- riser th)))
- (setq pt42 (list (car pt4) (cadr pt4) (- (caddr pt4) th)))
- (command "layer" "m" "pstairb" "")
- (command "3dface"
- "i" uppt1 sp2
- "i" uppt22
- "i" uppt2 "")
- (command "3dface"
- "i" uppt4 pt42
- "i" uppt32
- "i" uppt3 "")
- (command "3dface"
- "i" pt42 "i" sp2
- "i" uppt22 "i" uppt32 "")
- (setq hrlpt3
- (list (car (polar uppt4
- (angle uppt4 uppt1)
- (/ (distance uppt4 uppt1) 10)
- )
- )
- (cadr (polar uppt4
- (angle uppt4 uppt1)
- (/ (distance uppt4 uppt1) 10)
- )
- )
- (+ riser hrl)
- )
- )
- (setq hrlpt4
- (list (car (polar uppt3
- (angle uppt3 uppt2)
- (/ (distance uppt3 uppt2) 10)
- )
- )
- (cadr (polar uppt3
- (angle uppt3 uppt2)
- (/ (distance uppt3 uppt2) 10)
- )
- )
- (+ riser riser hrl)
- )
- )
- (setq w1 (/ (distance hrlpt3 hrlpt4) 3))
- (setq hrlpt1
- (list (car (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- w1
- )
- )
- (cadr (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- w1
- )
- )
- (- (+ riser (/ riser 2) hrl) 25)
- )
- )
- (setq hrlpt2
- (list (car (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- w1
- )
- )
- (cadr (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- w1
- )
- )
- riser
- )
- )
- (setq hrl11 (list (car (polar hrlpt3 (angle hrlpt3 hrlpt4) (+ w1 w1)))
- (cadr (polar hrlpt3 (angle hrlpt3 hrlpt4) (+ w1 w1)))
- (+ riser (/ riser 2) hrl 25)
- )
- )
- (setq hrl22 (list (car (polar hrlpt3 (angle hrlpt3 hrlpt4) (+ w1 w1)))
- (cadr (polar hrlpt3 (angle hrlpt3 hrlpt4) (+ w1 w1)))
- riser
- )
- )
- (setq h1 (list (+ (car hrlpt1) 9) (cadr hrlpt1) (caddr hrlpt1)))
- (setq h2 (list (+ (car hrlpt2) 9) (cadr hrlpt2) (caddr hrlpt2)))
- (setq h21 (list (+ (car hrl11) 9) (cadr hrl11) (caddr hrl11)))
- (setq h22 (list (+ (car hrl22) 9) (cadr hrl22) (caddr hrl22)))
- (setq h3 (list (+ (car hrlpt3) 25) (cadr hrlpt3) (caddr hrlpt3)))
- (setq h4 (list (+ (car hrlpt4) 25) (cadr hrlpt4) (caddr hrlpt4)))
- (command "layer" "s" "pstair" "")
- (command "3dface" uppt1 uppt2 uppt3 uppt4 "")
- (command "3dface" sp uppt1 uppt4 pt4 "")
- (command "layer" "m" "pstairh" "")
- (command "circle" hrl11 9)
- (setq e21 (entlast))
- (command "circle" hrl22 9)
- (setq e22 (entlast))
- (command "rulesurf" (list e21 h21) (list e22 h22))
- (entdel e21) (entdel e22)
- (command "circle" hrlpt1 9)
- (setq e1 (entlast))
- (command "circle" hrlpt2 9)
- (setq e2 (entlast))
- (command "rulesurf" (list e1 h1) (list e2 h2))
- (entdel e1) (entdel e2)
- (command "circle" hrlpt3 25)
- (setq e3 (entlast))
- (command "circle" hrlpt4 25)
- (setq e4 (entlast))
- (command "rulesurf" (list e3 h3) (list e4 h4))
- (entdel e3) (entdel e4)
- (if (= kword2 "Yes") (progn
- (setq hrlp31
- (list (car (polar uppt1
- (angle uppt1 uppt4)
- (/ (distance uppt4 uppt1) 10)
- )
- )
- (cadr (polar uppt1
- (angle uppt1 uppt4)
- (/ (distance uppt4 uppt1) 10)
- )
- )
- (+ riser hrl)
- )
- )
- (setq hrlp41
- (list (car (polar uppt2
- (angle uppt2 uppt3)
- (/ (distance uppt2 uppt3) 10)
- )
- )
- (cadr (polar uppt2
- (angle uppt2 uppt3)
- (/ (distance uppt2 uppt3) 10)
- )
- )
- (+ riser riser hrl)
- )
- )
- (setq hrlp11
- (list (car (polar hrlp31
- (angle hrlp31 hrlp41)
- (/ (distance hrlp31 hrlp41) 2)
- )
- )
- (cadr (polar hrlp31
- (angle hrlp31 hrlp41)
- (/ (distance hrlp31 hrlp41) 2)
- )
- )
- (+ riser (/ riser 2) hrl)
- )
- )
- (setq hrlp21
- (list (car (polar hrlp31
- (angle hrlp31 hrlp41)
- (/ (distance hrlp31 hrlp41) 2)
- )
- )
- (cadr (polar hrlp31
- (angle hrlp31 hrlp41)
- (/ (distance hrlp31 hrlp41) 2)
- )
- )
- riser
- )
- )
- (setq h11 (list (+ (car hrlp11) 9) (cadr hrlp11) (caddr hrlp11)))
- (setq h21 (list (+ (car hrlp21) 9) (cadr hrlp21) (caddr hrlp21)))
- (setq h31 (list (car hrlp31) (- (cadr hrlp31) 25) (caddr hrlp31)))
- (setq h41 (list (car hrlp41) (+ (cadr hrlp41) 25) (caddr hrlp41)))
- (command "layer" "s" "pstairh" "")
- (command "circle" hrlp21 9)
- (setq e21 (entlast))
- (COMMAND "circle" hrlp11 9)
- (setq e11 (entlast))
- (command "rulesurf" (list e11 h11) (list e21 h21))
- (entdel e11) (entdel e21)
- (command "circle" hrlp31 25)
- (setq e31 (entlast))
- (command "circle" hrlp41 25)
- (setq e41 (entlast))
- (command "rulesurf" (list e31 h31) (list e41 h41))
- (entdel e31) (entdel e41)
- )
- )
- (setq se2 (entnext se))
- (while (/= se2 nil)
- (ssadd se2 ss)
- (setq se2 (entnext se2))
- )
-
- (setq fi "$$1" ff "$$" ef 1)
- (while (/= (tblsearch "BLOCK" fi) nil)
- (setq ef (1+ ef) fi (strcat ff (itoa ef)))
- )
- (command "layer" "s" "pstair" "")
- (command "block" FI sp ss "")
- (setq se (entlast))
- (command "oops")
- (setq se (entlast))
- (setq count (1+ count))
- (setq diag2 (angle uppt1 uppt2))
- ; (setq diag3 (angle uppt2 uppt1))
- (setq isd (distance uppt1 uppt2))
- (setq sp (list
- (car (polar sp diag2 isd))
- (cadr (polar sp diag2 isd))
- riser
- )
- )
- (setq insang (rtd diag) in2 0)
- (setq riser (+ riser el))
- )
- (defun sbuild (/ p11 p21 p31 p41 p12 p22 p32 p42 cp2 lw)
- (command "insert" fi sp "" "" insang)
- (if (and (= kword "Yes") (>= (- insang in2) 90))
- (progn
- (setq cp2 (list (car cp) (cadr cp) (- (caddr sp) el)))
- (setq p11 (polar cp2 diag cr))
- ; (if (< step 350) (setq lw (- step 1))
- (setq lw 350)
- ; )
- (setq p21 (polar p11 diag2 lw))
- (setq p31 (list (car p21) (- (cadr p21) 300) (caddr p21)))
- (setq p41 (list (car p11) (- (cadr p11) 300) (caddr p11)))
- (setq p12 (polar p11 diag (+ rp1 wide)))
- (setq p22 (polar p21 diag (+ rp1 wide)))
- (setq p32 (polar p31 diag (+ rp1 wide)))
- (setq p42 (polar p41 diag (+ rp1 wide)))
- (setq in2 insang)
- (command "layer" "m" "pstairlh" "")
- (command "3dface" p11 p21 p31 p41 "")
- (command "3dface" p12 p22 p32 p42 "")
- (command "3dface" p11 p12 p42 p41 "")
- (command "3dface" p21 p22 p32 p31 "")
- (command "3dface" p41 p31 p32 p42 "")
- (command "3dface" p11 p12 p22 p21 "")
- )
- )
- (setq diag2 (+ diag2 incr))
- ; (setq diag3 (+ diag3 incr))
- (setq sp
- (list (car (polar sp diag2 isd))
- (cadr (polar sp diag2 isd))
- riser
- )
- )
- (setq diag (+ diag incr))
- (setq insang (rtd diag))
- (setq count (1+ count))
- (setq riser (+ riser el))
- )
-
- (defun pole (/ h3 h4 e3 e4 cp2)
- (setq cp2 (list (car cp) (cadr cp) (+ (caddr cp) clh)))
- (setq h3 (list (+ (car cp) cr) (cadr cp) (caddr cp)))
- (setq h4 (list (+ (car cp2) cr) (cadr cp2) (caddr cp2)))
- (COMMAND "LAYER" "M" "PSTAIRC" "")
- (command "circle" cp cr)
- (setq e3 (entlast))
- (command "circle" cp2 cr)
- (setq e4 (entlast))
- (command "rulesurf" (list e3 h3) (list e4 h4))
- (entdel e3) (entdel e4)
- )
-
- (defun dtr (a)
- (* pi (/ a 180.0))
- )
- (defun rtd (a)
- (* (/ a pi) 180)
- )
-
- (defun instr(st s0 s00 / l n loop x n0 l0)
- (setq l (+ (- (strlen s0) st) 1) l0 0 n0 st n 1 loop t)
- (while (and (<= n l) loop)
- (setq x (substr s0 n0 1))
- (if (eq x s00) (setq loop nil l0 n0) (setq n0 (1+ n0) n (1+ n)))
- )
- (eval l0)
- )
-
- (defun sub22(af / l0 sp ep)
- (setq l0 (instr 1 af "*") nl nil)
- (setq sp (substr af 1 (- l0 1)) ep (substr af (+ l0 1)))
- (repeat (atoi sp)
- (setq nl (cons (atoi ep) nl))
- )
- )
-
- (defun sub11(axd / l0 l1 ax nl)
- (setq axdl nil)
- (if (and (= (instr 1 axd ",") 0) (> (strlen axd) 0))
- (progn
- (if (> (instr 1 axd "*") 0)
- (progn
- (sub22 axd)
- (setq axdl nl))
- (setq axdl (cons (atoi axd) axdl))
- )
- )
- (progn
- (setq l0 0 l1 (instr 1 axd ","))
- (while (> (instr (+ l0 1) axd ",") 0)
- (setq ax (substr axd (+ l0 1) (- l1 l0 1)))
- (if (> (instr 1 ax "*") 0) (progn
- (sub22 ax)
- (setq axdl (append nl axdl))
- )
- (setq axdl (cons (atoi ax) axdl))
- )
- (setq l0 l1 l1 (instr (+ l0 1) axd ","))
- )
- (setq ax (substr axd (+ l0 1)))
- (if (> (instr 1 ax "*") 0) (progn
- (sub22 ax)
- (setq axdl (append nl axdl))
- )
- (setq axdl (cons (atoi ax) axdl))
- )
- ))
- (setq axdl (reverse axdl))
- )