home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun exwerr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" olay "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:EXW(/ oer fname olay x ss ssl sn ename bn xx yy sn1 sn2 en en1 en2 wlength wwidth insp n)
- (setvar "CMDECHO" 0)
- (setq olay (getvar "CLAYER"))
- (setq oer *error* *error* exwerr)
- (chkw) (setq winn fname)
- (setq ss (ssget))
- (command "layer" "m" "ewindow" "")
- (if ss (progn
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn))
- (setq ename (cdr (assoc 0 en)) bn (cdr (assoc 8 en)))
- (if (and (eq ename "POLYLINE") (eq bn "EWINDOW"))
- (progn
- (setq sn1 (entnext sn) en1 (entget sn1))
- (setq sn2 (entnext sn1) en2 (entget sn2))
- (setq sn3 (entnext sn2) en3 (entget sn3))
- (setq scal (cdr (assoc 40 en)))
- (if (= (substr (rtos scal 2 4) (strlen (rtos scal 2 4)) 1) "1") (setq scal (- scal)))
- (setq insp (cdr (assoc 10 en1)))
- (setq wlength (fix (+ 0.5 (distance insp (setq insp1 (cdr (assoc 10 en2)))))))
- (setq wwidth (fix (+ 0.5 (distance insp1 (cdr (assoc 10 en3))))))
- (command "insert" winn "x" scal insp "0" wwidth)
- )
- )
- (setq n (1+ n))
- )
- )) ;endif
- (command "layer" "s" olay "")
- (setvar "CMDECHO" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:INSW(/ oer olay fname x loop bn sn en ename elayer sp ep dang bn elay p10 p11 p12 d1 d2 xh)
- (setvar "cmdecho" 0)
- (setq olay (getvar "CLAYER"))
- (setq oer *error* *error* exwerr)
- (chkw) (setq bn fname)
- (initget "Auto")
- (setq x (getkword "Auto/<Single>: "))
- (if (= x "Auto") (progn
- (setq ss (ssget))
- (if ss (progn
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn))
- (setq ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= ename "3DFACE") (member elay '("TWINDOW" "TDOOR"))) (progn
- (setq p10 (cdr (assoc 10 en)) p11 (cdr (assoc 11 en)) p12 (cdr (assoc 12 en)))
- (setq dang (/ (* 180 (angle p10 p11)) pi))
- (setq d1 (* (fix (+ 0.5 (/ (distance p10 p11) 100.0))) 100) d2 (* (fix (+ 0.5 (/ (distance p11 p12) 100.0))) 100))
- (if (< d1 1000) (setq d1 (strcat "0" (rtos (/ d1 100) 2 0))) (setq d1 (rtos (/ d1 100) 2 0)))
- (if (< d2 1000) (setq d2 (strcat "0" (rtos (/ d2 100) 2 0))) (setq d2 (rtos (/ d2 100) 2 0)))
- (if (= xh (strcat (substr xh 1 1) d1 d2)) (progn
- (command "layer" "m" elay "")
- (command "ucs" "w")
- (command "ucs" "o" p10)
- (command "ucs" "z" dang)
- (command "ucs" "x" 90)
- (command "insert" bn (trans p10 0 1) 1 "" 0 (rtos (angle p10 p11) 2 4))
- ))
- ))
- (setq n (1+ n))
- )
- (command "ucs" "w")
- ))
- )
- (progn
- (setq loop t)
- (while loop
- (setq sn (car (entsel "\n╤í├┼┤░╢┤┐┌:")))
- (if (/= sn nil) (progn
- (setq en (entget sn) ename (cdr (assoc 0 en)) elayer (cdr (assoc 8 en)))
- (if (and (member elayer '("TWINDOW" "TDOOR")) (= "3DFACE" ename)) (progn
- (setq sp (cdr (assoc 10 en)) ep (cdr (assoc 11 en)))
- (setq dang (/ (* 180 (angle sp ep)) pi))
- (command "layer" "m" elayer "")
- (command "ucs" "w")
- (command "ucs" "o" sp)
- (command "ucs" "z" dang)
- (command "ucs" "x" 90)
- (command "insert" bn (trans sp 0 1) 1 "" 0 (rtos (angle sp ep) 2 4))
- (command "ucs" "w")
- )
- (princ "*╦∙╤í╩╡╠σ▓╗╩╟├┼┤░*")
- )
- )
- (setq loop nil)
- )
- )
- )) ;if
- (command "layer" "s" olay "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (setq clay "TREE")
-
- (defun C:BDINSW(/ oer olay fname x loop bn sn en ename elayer elay sp ep dang bn xh d1 d2 ssbl p10 p11 p12 iang)
- (setvar "cmdecho" 0)
- (setq olay (getvar "CLAYER"))
- (setq oer *error* *error* exwerr)
- (setq xh (strcase (getstring "\n╩Σ╚δ╛░╬∩┤·║┼ <C1815>:")))
- (if (= xh "") (setq xh "C1815"))
- (setq d1 (* 100 (atoi (substr xh 2 2))) d2 (* 100 (atoi (substr xh 4))))
- (if (not (tblsearch "block" (setq bn (strcat xh "BD")))) (progn
- (command "layer" "s" "0" "")
- (command "color" 1)
- (setq ssbl nil ssbl (ssadd))
- (command "ucs" "w")
- (setvar "thickness" 0)
- (setvar "elevation" 0)
- (command "line" '(0 0) (list 0 d2) "")(ssadd (entlast) ssbl)
- (command "line" (list 0 d2) (list d1 d2) "")(ssadd (entlast) ssbl)
- (command "line" (list d1 d2) (list d1 0) "")(ssadd (entlast) ssbl)
- (command "line" (list d1 0) '(0 0) "") (ssadd (entlast) ssbl)
- (command "line" '(20 20) (list (- d1 20) (- d2 20)) "")(ssadd (entlast) ssbl)
- (setvar "aflags" 1)
- (command "attdef" "" "B" "" "" "j" "m" (list (/ d1 2) (/ d2 2)) 500 0)
- (ssadd (entlast) ssbl)
- (setvar "expert" 2)
- (command "block" (setq bn (strcat xh "BD")) '(0 0) ssbl "")
- (setvar "expert" 0)
- (command "color" "bylayer")
- ))
- (initget "Auto Insert")
- (setq x (getkword "Insert/Auto/<Single>: "))
- (cond ((= x "Insert")
- (princ "\n▓π├√ <")(princ clay)
- (setq x (getstring ">:"))
- (if (/= x "") (setq clay x))
- (setq loop t)
- (while loop
- (princ "\n▓σ╚δ╡π: ")
- (command "insert" "border" "x" d1 "y" 200 pause pause)
- (setq en (entget (setq sn (entlast))) sp (cdr (assoc 10 en)) iang (cdr (assoc 50 en)))
- (command "erase" sn "")
- (setq dang (/ (* 180 iang) pi))
- (command "layer" "m" clay "")
- (command "ucs" "w")
- (command "ucs" "o" sp)
- (command "ucs" "z" dang)
- (command "ucs" "x" 90)
- (command "insert" bn (trans sp 0 1) 1 "" 0 (rtos iang 2 4))
- (command "ucs" "w")
- (princ " ╝╠╨°▓σ╚δ<Y>:")
- (initget "Yes No")
- (setq x (getkword))
- (if (= x "No") (setq loop nil))
- ) ;endwhile
- )
- ((= x "Auto")
- (setq ss (ssget))
- (if ss (progn
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn))
- (setq ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= ename "3DFACE") (member elay '("TWINDOW" "TDOOR"))) (progn
- (setq p10 (cdr (assoc 10 en)) p11 (cdr (assoc 11 en)) p12 (cdr (assoc 12 en)))
- (setq dang (/ (* 180 (angle p10 p11)) pi))
- (setq d1 (* (fix (+ 0.5 (/ (distance p10 p11) 100.0))) 100) d2 (* (fix (+ 0.5 (/ (distance p11 p12) 100.0))) 100))
- (if (< d1 1000) (setq d1 (strcat "0" (rtos (/ d1 100) 2 0))) (setq d1 (rtos (/ d1 100) 2 0)))
- (if (< d2 1000) (setq d2 (strcat "0" (rtos (/ d2 100) 2 0))) (setq d2 (rtos (/ d2 100) 2 0)))
- (if (= xh (strcat (substr xh 1 1) d1 d2)) (progn
- (command "layer" "m" elay "")
- (command "ucs" "w")
- (command "ucs" "o" p10)
- (command "ucs" "z" dang)
- (command "ucs" "x" 90)
- (command "insert" bn (trans p10 0 1) 1 "" 0 (rtos (angle p10 p11) 2 4))
- ))
- ))
- (setq n (1+ n))
- )
- (command "ucs" "w")
- ))
- )
- (T
- (setq loop t)
- (while loop
- (setq sn (car (entsel "\n╤í├┼┤░╢┤┐┌:")))
- (if (/= sn nil) (progn
- (setq en (entget sn) ename (cdr (assoc 0 en)) elayer (cdr (assoc 8 en)))
- (if (and (member elayer '("TWINDOW" "TDOOR")) (= "3DFACE" ename)) (progn
- (setq sp (cdr (assoc 10 en)) ep (cdr (assoc 11 en)))
- (setq dang (/ (* 180 (angle sp ep)) pi))
- (command "layer" "m" elayer "")
- (command "ucs" "w")
- (command "ucs" "o" sp)
- (command "ucs" "z" dang)
- (command "ucs" "x" 90)
- (command "insert" bn (trans sp 0 1) 1 "" 0 (rtos (angle sp ep) 2 4))
- (command "ucs" "w")
- )
- (princ "*╦∙╤í╩╡╠σ▓╗╩╟├┼┤░*")
- )
- )
- (setq loop nil)
- )
- )
- )) ;cond
- (command "layer" "s" olay "")
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:WTOPL(/ oer loop sn en ename elay bn p oen n)
- (setvar "cmdecho" 0)
- (setq oer *error* *error* exwerr)
- (command "layer" "s" "0" "")
- (setq loop t)
- (while loop
- (setq sn (car (entsel "\n╤í╘±╥¬╝╙┐φ╡─├┼┤░:")))
- (setq en (entget sn) ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= ename "INSERT") (member elay '("TOTHER" "TWINDOW" "TDOOR"))) (progn
- (setq bn (cdr (assoc 2 en)) oen (entlast))
- (command "ucs" "w")
- (command "insert" bn '(0 0) 1 1 0 "")
- (setq ss nil ss (ssadd))
- (command "explode" (entlast))
- (while (/= (setq oen (entnext oen)) nil) (setq ss (ssadd oen ss)))
- (setq ssl (sslength ss) n 0)
- (repeat ssl
- (setq sn (ssname ss n) en (entget sn) ename (cdr (assoc 0 en)))
- (cond ((= ename "LINE") (command "pedit" sn "y" "w" 50 "") (ssadd (entlast) ss))
- ((= ename "POLYLINE") (command "pedit" sn "w" 50 ""))
- )
- (setq n (1+ n))
- )
- (command "block" bn "y" '(0 0) ss "")
- (setq loop nil)
- ) (princ "*╦∙╤í╩╡╠σ▓╗╩╟├┼┤░*"))
- )
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun chkw(/ fg loop oer ratio scr scr1 scr2 scrx scry sctr sctrx sctry dx dy ddx ddy dxx dyy p1 p2 q1 q2 pl ql n inp source lp pt prev m ll lr ul ur)
- (if (/= (+ fh78 fh65 fh72 fh85 fh70) 370) (tst))
- (setq loop t)
- (while loop
- (setq xh (strcase (getstring "\n╩Σ╚δ├┼┤░╨═║┼ <C1815>:")))
- (if (= xh "") (setq xh "C1815"))
- (if (or (setq fname (findfile (strcat xh ".dwg"))) (setq fname (findfile (strcat xh "a.dwg")))) (setq loop nil fg t))
- (if (tblsearch "BLOCK" xh) (setq loop nil fg nil))
- )
- (if fg (progn
- (cond ((= "C" (substr xh 1 1)) (setq xh0 "C"))
- ((= "M" (substr xh 1 1))
- (cond ((= "P" (substr xh 2 1)) (setq xh0 "MP"))
- ((= "Z" (substr xh 2 1)) (setq xh0 "MZ"))
- ((= "C" (substr xh 2 1)) (setq xh0 "MC"))
- (t (setq xh0 "M"))
- ))
- )
- (command "vslide" (strcat xh0 "(" xh ")"))
- (command "ucs" "view")
- (setq ratio (getvar "userr5"))
- (setq scr (getvar "screensize") scr1 (car scr) scr2 (cadr scr))
- (setq scry (getvar "viewsize")) ;screen y size
- (setq sctr (getvar "viewctr") sctrx (car sctr) sctry (cadr sctr)) ;screen centre
- (setq scrx (/ (* scr1 scry) scr2 ratio)) ;screen x size
- (setq dx (/ scrx 4.0) dy (/ scry 2.0) dy (- dy (* 0.164 dy)));one
- (setq ddx (- dx (* 0.082 dx)) ddy (- dy (* 0.082 dy))) ;space
- (setq dxx (* 0.041 dx) dyy (* 0.041 dy))
- (setq p1 (polar sctr 0 (/ scrx 2.0)) q1 (polar p1 (* 1.5 pi) (/ scry 2.0)))
- (setq pl nil pl (cons p1 pl) ql nil ql (cons q1 ql))
- (setq n 1)
- (repeat 4
- (setq p2 (polar p1 pi (* n dx)) pl (cons p2 pl))
- (setq q2 (polar q1 pi (* n dx)) ql (cons q2 ql))
- (setq n (1+ n))
- )
- (setq n 0 p1 (nth n pl) p2 p1)
- (defbox)
- (setq loop t)
- (while loop
- (setq inp (grread t))
- (setq source (car inp) pt (cadr inp))
- (cond ((= source 3)
- (drawbox)
- (setq loop nil))
- ((= source 5)
- (if (not (equal prev pt 0.1))
- (progn
- (setq prev pt)
- (setq lp t n 0)
- (while (and lp (< n 4))
- (if (and (>= (car pt) (car (nth n pl))) (<= (car pt) (car (nth (1+ n) pl)))) (setq lp nil) (setq n (1+ n)))
- (if (> (cadr pt) sctry) (setq p1 (nth n pl) m 0) (setq p1 (nth n ql) m 1))
- )
- (if (not (equal p1 p2 0.1)) (progn (drawbox) (defbox) (setq p2 p1)))
- )))
- )
- )
- (if (and (= n 0) (= m 0)) (setq fname fname) (setq fname (strcat (strcase xh) (chr (+ 65 n (* m 4))) ".DWG")))
- (command "ucs" "p")
- (redraw))
- (setq fname xh))
- )
-
- (defun defbox(/ x1 x2 y1 y2)
- (setq x1 (+ (car p1) dxx) x2 (+ x1 ddx))
- (setq y1 (+ (cadr p1) dyy) y2 (+ y1 ddy))
- (setq ll (list x1 y1) lr (list x2 y1))
- (setq ul (list x1 y2) ur (list x2 y2))
- (drawbox)
- )
-
- (defun drawbox()
- (grdraw ll lr -1) (grdraw lr ur -1)
- (grdraw ur ul -1) (grdraw ul ll -1)
- )