home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun dwaerr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setvar "blipmode" 1)
- (setvar "pickbox" pib)
- (setq *error* oer)
- (princ)
- )
-
- (setq w 370)
-
- (defun C:DWALL(/ pib w1 x ang a1 a2 a3 p1 p2 p insp oer ss sn en ename elay intp p3 p4 p5 p6)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setq pib (getvar "pickbox"))
- (setq oer *error* *error* dwaerr)
- (princ "\n╟╜╢Γ┐φ╢╚ <")
- (princ w)
- (setq x (getint ">:"))
- (if (/= x nil) (setq w x))
- (setq insp (getpoint "\n▓σ╚δ╡π:"))
- (setq p (getpoint insp "\n╟╜╢Γ╖╜╧≥:"))
- (setq ang (angle insp p) p (polar insp ang 250))
- (setq ss (ssget "C" insp p))
- (if ss (progn
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= "LINE" ename) (= "PWALL" (substr elay 1 5))) (progn
- (setq p1 (cdr (assoc 10 en)) p2 (cdr (assoc 11 en)))
- (setq intp (inters p1 p2 insp p nil))
- (setq w1 (getdist intp "\n╟╜╢Γ│ñ╢╚ <500>:"))
- (if (= w1 nil) (setq w1 500))
- (setq p (polar intp ang w1))
- (setq a1 (- ang 1.57079) a2 (+ ang 1.57079))
- (setq p3 (polar intp a1 (/ w 2.0)) p4 (polar p a1 (/ w 2.0)))
- (setq p5 (polar p a2 (/ w 2.0)) p6 (polar intp a2 (/ w 2.0)))
- (setq p6 (inters p1 p2 p5 p6 nil) p3 (inters p1 p2 p4 p3 nil))
- (command "break" sn p3 p6)
- (command "layer" "m" elay "")
- (command "line" p3 p4 p5 p6 "")
- )) ;endif
- (setq n (1+ n))
- )
- )) ;endif sn
- (command "layer" "s" "0" "")
- (setvar "blipmode" 1)
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:ERWALL(/ sn sn1 en en1 pib p10 p11 p20 p21 p30 p31 ang ang1 lp loop p1 p2 ename elay)
- (setvar "cmdecho" 0)
- (setq pib (getvar "pickbox"))
- (setq oer *error* *error* dwaerr)
- (setq loop t)
- (while loop
- (setq sn (entsel "\n╤í╘±╡┌╥╗╟╜╧▀:"))
- (if sn (progn
- (setq en (entget (car sn)) p1 (cadr sn))
- (setq ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= "LINE" ename) (= "PWALL" (substr elay 1 5))) (progn
- (setq lp t p10 (cdr (assoc 10 en)) p11 (cdr (assoc 11 en)) ang (angle p10 p11))
- (while lp
- (setq sn1 (entsel "\n╤í╘±╡┌╢■╟╜╧▀:"))
- (if sn1 (progn
- (setq en1 (entget (car sn1)) p2 (cadr sn1))
- (setq ename (cdr (assoc 0 en1)) elay (cdr (assoc 8 en1)))
- (if (and (= "LINE" ename) (= "PWALL" (substr elay 1 5))) (progn
- (setq p20 (cdr (assoc 10 en1)) p21 (cdr (assoc 11 en1)) ang1 (angle p20 p21))
- (if (or (equal ang (- ang1 pi) 0.1) (equal ang (+ ang1 pi) 0.1)) (progn
- (if (<= (distance p1 p10) (distance p1 p11)) (setq p1 p10) (setq p1 p11))
- (if (<= (distance p2 p20) (distance p2 p21)) (setq p2 p20) (setq p2 p21))
- (setq p30 (polar p10 (angle p10 p11) (/ (distance p10 p11) 2.0)))
- (command "break" sn "f" p1 p30)
- (setq p31 (polar p20 (angle p20 p21) (/ (distance p20 p21) 2.0)))
- (command "break" sn1 "f" p2 p31)
- (setvar "pickbox" 1)
- (setq sn (ssname (ssget p1) 0))
- (if sn (progn
- (setq en (entget sn) p30 (cdr (assoc 10 en)) p31 (cdr (assoc 11 en)) ang (angle p30 p31))
- (command "erase" sn "")
- (if (>= (distance p1 p30) (distance p1 p31)) (setq p1 p30) (setq p1 p31)) )) ;if
- (setq sn (ssname (ssget p2) 0))
- (if sn (progn
- (setq en (entget sn) p30 (cdr (assoc 10 en)) p31 (cdr (assoc 11 en)))
- (command "erase" sn "")
- (if (>= (distance p2 p30) (distance p2 p31)) (setq p2 p30) (setq p2 p31)) )) ;if
- (setq ang1 (angle p1 p2))
- (setvar "pickbox" pib)
- (command "layer" "m" "pwalln" "")
- (if (equal ang ang1 0.1) (command "line" p1 p2 "") (command "line" p2 p1 ""))
- (setq lp nil loop nil)
- ) (princ "**┴╜╟╜╧▀▓╗╞Ñ┼Σ**"))
- ) (princ "**▓╗╩╟╟╜╧▀**"))
- )(setq lp nil loop nil))
- ) ;while
- ) (princ "**▓╗╩╟╟╜╧▀**"))
- )(setq loop nil))
- ) ;while
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )