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 ss oer terh s1 tw tw0 tl1 tl2 axdl x p ang tw1 tw2 tw3 tes hg th wide1 step1 cp1 sp1 riser1 case1 kword)
- (setvar "cmdecho" 0)
- (setvar "AFLAGS" 0)
- (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)))
- ((= 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)))
- ((= 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)))
- ((= 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╩Σ╚δ╘░┬Ñ╠▌┐φ <2400>:"))
- (if (= wide1 nil) (setq wide1 2400))
- (setq case1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╠ñ▓╜╩² <24>:"))
- (if (= case1 nil) (setq case1 24))
- (setq hrl1 (getint "\n╩Σ╚δ╘░┬Ñ╠▌╖÷╩╓╕▀ <1100>:"))
- (if (= hrl1 nil) (setq hrl1 1100))
- (setq kword "No")
- (initget "Yes No")
- (setq kword (getkword "\n╙╨╘░┬Ñ╠▌╓∙╖±? Yes/No <N>:"))
- )
- )
- (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 ss (ssadd))
- (cond ((= s1 "1") (lt1 tl1 tl2 tw1 tw2 p ang hg th))
- ((= s1 "2") (lt2 tl1 tw1 tw2 tw3 p ang hg th))
- ((= s1 "3") (lt3 tl1 tl2 tw1 tw2 tw3 p ang hg th))
- ((= s1 "4") (lt4 cp1 sp1 riser1 step1 wide1 case1 hrl1 ang))
- )
- (if (/= s1 "4") (progn
- (ltd)
- (lt0)
- ))
- (command "layer" "m" "pstair" "")
- (COMMAND "BLOCK" FILE P SS "")
- (command "insert" file p "" "" agi "")
- (command "layer" "s" "0" "")
- ))
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun lt1(tl11 tl22 tw11 tw22 p1 ang1 hg1 th1 / 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)))
- (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))
- (command "attdef" "" "LT" "" at "C" p1 "" "")
- (setq se (entlast)) (ssadd se ss)
- (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 / 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)))
- (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))
- (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))
- (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 / at ff ef plw ang0 ang2 p2 p3 p4 p5 p6 p7 p8 p9 kword 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)))
- (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 kword (getkword "\n╢╘│╞┐╜▒┤? <N>:"))
- (if (= kword "Yes") (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" " " kword " " at))
- (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)
- (setq oldblp (getvar "BLIPMODE"))
- (setq oldelv (getvar "ELEVATION"))
- (setvar "BLIPMODE" 0)
- (setvar "ELEVATION" 0)
- (spcalc)
- (while (< count case) (sbuild))
- (if (= kword "Yes") (pole))
- (setvar "BLIPMODE" oldblp)
- (setvar "ELEVATION" oldelv)
- )
- (defun spcalc ()
- (setq file "ST4-1" ff "ST4-" ef 1)
- (while (/= (tblsearch "BLOCK" file) nil)
- (setq ef (1+ ef) file (strcat ff (itoa ef)))
- )
- (setq at (strcat "T4" " " (rtos ang1 2 5)))
- (command "layer" "m" "pstairat" "")
- (command "attdef" "" "LT" "" at "C" cp "" "")
- (setq se (entlast)) (ssadd se ss)
- (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)
- ; (/ (distance sp pt4) 2.0)
- 0)
- "c" cp "L" step
- )
- (setq se (entlast)) (ssadd se ss)
- (command "line" "" 0 "")
- (setq se (entlast)) (ssadd se ss)
- (setq rp (getvar "LASTPOINT"))
- (COMMAND "ERASE" rp "")
- (setq se (entlast)) (ssadd se ss)
- (command "erase" rp
- (polar sp
- (angle sp pt4)
- (/ (distance sp pt4) 3.0)
- )
- "")
- (setq se (entlast)) (ssadd se ss)
- (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 w1 (/ (* (distance sp uppt2) th) riser))
- (setq sp2 (polar sp pi w1))
- (setq uppt22 (polar uppt2 pi w1))
- (setq pt42 (polar pt4 pi w1))
- (setq uppt32 (polar uppt3 pi w1))
- (command "layer" "m" "pstairb" "")
- (command "3dface" "i" sp sp2 uppt22 "i" uppt2 "")
- (setq se (entlast)) (ssadd se ss)
- (command "3dface" "I" pt4 pt42 uppt32 "I" uppt3 "")
- (setq se (entlast)) (ssadd se ss)
- (command "3dface" "I" pt42 sp2 uppt22 "I" uppt32 "")
- (setq se (entlast)) (ssadd se ss)
- (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 hrlpt1
- (list (car (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- (/ (distance hrlpt3 hrlpt4) 2)
- )
- )
- (cadr (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- (/ (distance hrlpt3 hrlpt4) 2)
- )
- )
- (+ riser (/ riser 2) hrl)
- )
- )
- (setq hrlpt2
- (list (car (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- (/ (distance hrlpt3 hrlpt4) 2)
- )
- )
- (cadr (polar hrlpt3
- (angle hrlpt3 hrlpt4)
- (/ (distance hrlpt3 hrlpt4) 2)
- )
- )
- riser
- )
- )
- (command "layer" "s" "pstair" "")
- (command "3dface" uppt1 uppt2 uppt3 uppt4 "")
- (setq se (entlast)) (ssadd se ss)
- (command "3dface" sp uppt1 uppt4 pt4 "")
- (setq se (entlast)) (ssadd se ss)
- (command "layer" "m" "pstairh" "")
- (command "3dline" hrlpt1 hrlpt2 "")
- (setq se (entlast)) (ssadd se ss)
- (command "3dline" hrlpt3 hrlpt4 "")
- (setq se (entlast)) (ssadd se ss)
- (if (/= kword "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
- )
- )
- (command "3dline" hrlp11 hrlp21 "")
- (setq se (entlast)) (ssadd se ss)
- (command "3dline" hrlp31 hrlp41 "")
- (setq se (entlast)) (ssadd se ss)
- )
- )
- (setq fi "$$1" ff "$$" ef 1)
- (while (/= (tblsearch "BLOCK" fi) nil)
- (setq ef (1+ ef) fi (strcat ff (itoa ef)))
- )
- (command "block" FI sp "c" (polar sp (dtr 215) 0.1)
- (polar pt4 (dtr 90) (distance uppt4 uppt3))
- ""
- )
- (setq se (entlast)) (ssadd se ss)
- (command "oops")
- (setq se (entlast)) (ssadd se ss)
- (setq count (1+ count))
- (setq diag2 (angle uppt1 uppt2))
- (setq isd (distance uppt1 uppt2))
- (setq sp (list
- (car (polar sp diag2 isd))
- (cadr (polar sp diag2 isd))
- riser
- )
- )
- (setq insang (rtd diag))
- (setq riser (+ riser el))
- )
-
- (defun sbuild ()
- (command "insert" fi sp "" "" insang)
- (setq se (entlast)) (ssadd se ss)
- (setq diag2 (+ diag2 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 ()
- (if (/= (tblsearch "LAYER" "PSTAIR4") nil)
- (command "layer" "T" "PSTAIR4" "")
- )
- (COMMAND "LAYER" "M" "PSTAIR4" "")
- (command "circle" cp
- (polar cp 0 (/ (distance cp sp) 10))
- )
- (setq se (entlast)) (ssadd se ss)
- (command "change" "l" "" "p" "e" 0 "th" (+ riser 65) "")
- (setq se (entlast)) (ssadd se ss)
- )
-
- (defun dtr (a)
- (* pi (/ a 180.0))
- )
- (defun rtd (a)
- (* (/ a pi) 180)
- )
-
- (defun LT0(/ sp ep pl n oer kword tes)
- (if (/= s1 "4") (progn
- (setvar "ORTHOMODE" 1)
- (command "layer" "m" "pstair1" "")
- (setq tes t)
- (while tes
- (initget 1)
- (setq sp (getpoint "\n┬Ñ╠▌╝²═╖╞≡╡π:"))
- (setq pl nil pl (cons sp pl))
- (while sp
- (initget "Undo")
- (setq ep (getpoint sp "\n╗╪═╦Undo/<╧┬╥╗╡π>:"))
- (if (= ep "Undo") (if (> (length pl) 1) (setq pl (cdr pl) sp (car pl)) (princ "*╗╪═╦═Ω┴╦*"))
- (if (/= ep nil) (setq pl (cons ep pl) sp ep) (setq sp ep))
- )
- )
- (setq pl (reverse pl) sp (nth 0 pl) n 1)
- (initget "Up")
- (setq kword (getkword "\╔╧Up/<╧┬>:"))
- (if (= kword "Up") (setq kword "╔╧") (setq kword "╧┬"))
- (setq ep (polar sp (angle (nth n pl) sp) (* 4 (getvar "userr1"))))
- (command "text" "c" ep (* 3 (getvar "userr1")) "0" kword)
- (command "pline" sp "w" 0 "")
- (repeat (- (length pl) 1)
- (command (nth n pl))
- (setq n (1+ n))
- )
- (command)
- (setq ep (nth (1- n) pl) sp (nth (- n 2) pl) sp (polar ep (angle ep sp) (* 2.5 (getvar "userr1"))))
- (command "pline" ep "w" 0 (getvar "userr1") sp "")
- (setq kword "No")
- (initget "Yes No")
- (setq kword (getkword "\n╩╟╖±╝╠╨°▒Ω╫ó┬Ñ╠▌╔╧╧┬╧▀? <N>:"))
- (if (/= kword "Yes") (setq tes nil))
- );while
- ))
- )
-
- (defun LTD(/ sn sn2 en oer ename elay dse1 dse2 kword sp ep mp mp1 mp2 mp3 mp4 plw ang1 ang0 ang2)
- (setvar "ORTHOMODE" 0)
- (setq sn nil)
- (while (= sn nil)
- (setq sn (entsel "\n╤í╘±╢╧┴╤╧▀:") sn (car sn))
- (if sn (progn
- (setq en (entget sn) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= ename "LINE") (= elay "PSTAIR")) (progn
- (setq sp (cdr (assoc 10 en)) ep (cdr (assoc 11 en)) mp (polar sp (angle sp ep) (/ (distance sp ep) 2.0)))
- (princ "\n╚╖╢¿╢╧┴╤╧▀╖╜╧≥:")
- (command "rotate" sn "" mp pause)
- (setq en (entget sn))
- (command "u")
- (setq sp (cdr (assoc 10 en)) ep (cdr (assoc 11 en)) mp (polar sp (angle sp ep) (/ (distance sp ep) 2.0)))
- (setq plw (getvar "userr1") ang1 (angle sp ep) ang0 (- ang1 1.57079) ang2 (+ ang1 1.57079))
- (setq mp1 (polar mp ang1 plw) mp2 (polar mp (+ ang1 pi) plw))
- (setq mp3 (polar (polar mp1 (+ ang1 pi) (/ plw 2.0)) ang2 plw))
- (setq mp4 (polar (polar mp2 ang1 (/ plw 2.0)) ang0 plw))
- (command "layer" "m" "pstair2" "")
- (command "pline" sp "w" 0 "" mp2 mp4 mp3 mp1 ep "")
- (setq dse1 (entlast))
- (command "copy" dse1 "" mp (polar mp ang2 (* 0.5 plw)))
- (setq dse2 (entlast))
- )
- (setq sn nil))
- ))
- );while
- (command "zoom" "w" sp ep)
- (setq sn t)
- (while sn
- (setq sn (entsel "\n╤í╘±╥¬╝⌠╟╨╡─┬Ñ╠▌╧α╣╪╧▀:") sn2 (car sn))
- (if sn2 (progn
- (setq en (entget sn2) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= ename "LINE") (= elay "PSTAIR"))
- (command "trim" dse2 dse1 "" sn ""))
- )
- (progn
- (setq kword "No")
- (initget "Yes No")
- (setq kword (getkword "\n╩╟╖±╝╠╨°╤í╘±? <N>:"))
- (if (= kword "Yes") (setq sn 1) (setq sn nil))
- ))
- );while
- (command "zoom" "a")
- )
-
- (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))
- )