home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun twerr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command)
- (command "layer" "s" "0" "")
- (command "text" "s" "hz")
- (command)
- (setvar "cmdecho" 1)
- (setvar "orthomode" 0)
- (setvar "dimse1" 0)
- (setvar "dimse2" 0)
- (setvar "dimrnd" 0)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:TWALL(/ na oer sp ep ss ssl n n1 l loop pl pl1 sn sn1 en en1 ename elay sp1 ep1 intp1 r dmax d1 np np1)
- (setvar "cmdecho" 0)
- (setvar "orthomode" 1)
- (setq oer *error* *error* twerr)
- (setq sp (getpoint "\n▒Ω╫ó╞≡╡π:"))
- (setq ep (getpoint sp "\n▒Ω╫ó╓╒╡π:"))
- (setq ss (ssget "C" sp ep))
- (if ss (progn
- (setq ssl (sslength ss) n 0 loop t pl nil)
- (while (and (< n ssl) loop)
- (setq sn (ssname ss n) en (entget sn))
- (setq ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
- (if (and (= "LINE" ename) (member (substr elay 1 5) '("PWALL" "PAXIS" "PDIM"))) (progn
- (setq sp1 (cdr (assoc 10 en)) ep1 (cdr (assoc 11 en)))
- (setq intp1 (inters sp1 ep1 sp ep))
- (if intp1 (setq pl (cons intp1 pl)))
- ) ;end progn
- (progn ;else
- (if (and (= "ARC" ename) (member (substr elay 1 5) '("PWALL" "PAXIS"))) (progn
- (setq sp1 (cdr (assoc 10 en)) r (cdr (assoc 40 en)))
- (setq intp1 (polar sp1 (angle sp1 sp) r))
- (if intp1 (setq pl (cons intp1 pl)))
- ))
- )) ;end if
- (setq n (1+ n))
- (if (= (setq l (length pl)) 3) (setq loop nil))
- )
- (if (or (= l 3) (= l 2))
- (if (= l 3) (progn
- (setq d1 (list (distance sp (nth 0 pl)) (distance sp (nth 1 pl)) (distance sp (nth 2 pl))) pl1 nil)
- (setq n 0)
- (repeat l
- (setq dmax (apply 'max d1) n1 0)
- (repeat l
- (if (= dmax (nth n1 d1)) (setq pl1 (cons (nth n1 pl) pl1) d1 (subst 0.0 dmax d1)))
- (setq n1 (1+ n1))
- )
- (setq n (1+ n))
- )
- (command "layer" "m" "pdim" "c" "3" "pdim" "")
- (command "color" "bylayer")
- (command "dim" "dimse1" "on" "dimse2" "on" "dimrnd" 10 "style" "standard")
- (command "rotate" (/ (* (angle sp ep) 180.0) pi) (nth 0 pl1) (nth 1 pl1) (nth 0 pl1) "")
- (setq sn (entlast) en (entget sn))
- (command "rotate" (/ (* (angle sp ep) 180.0) pi) (nth 1 pl1) (nth 2 pl1) (nth 1 pl1) "")
- (setq sn1 (entlast) en1 (entget sn1))
- (setq np (polar (cdr (assoc 11 en)) (+ pi (angle sp ep)) 400))
- (setq np1 (polar (cdr (assoc 11 en1)) (angle sp ep) 400))
- (setq en (subst (cons 70 128) (assoc 70 en) en))
- (entmod (subst (cons 11 np) (assoc 11 en) en))
- (setq en1 (subst (cons 70 128) (assoc 70 en1) en1))
- (entmod (subst (cons 11 np1) (assoc 11 en1) en1))
- (command "dimse1" "off" "dimse2" "off" "dimrnd" 0 "style" "hz" "exit")
- (command "layer" "s" "0" "")
- ) ;progn l=3
- (progn ;else l=2
- (setq d1 (distance sp (nth 0 pl)) d2 (distance sp (nth 1 pl)))
- (setq pl1 nil)
- (if (> d1 d2) (setq pl1 (cons (nth 0 pl) pl1) pl1 (cons (nth 1 pl) pl1)) (setq pl1 (cons (nth 1 pl) pl1) pl1 (cons (nth 0 pl) pl1)))
- (command "layer" "m" "pdim" "c" "3" "pdim" "")
- (command "color" "bylayer")
- (command "dim" "dimse1" "on" "dimse2" "on" "dimrnd" 10 "style" "standard")
- (command "rotate" (/ (* (angle sp ep) 180.0) pi) (nth 0 pl1) (nth 1 pl1) (nth 0 pl1) "")
- (setq sn (entlast) en (entget sn))
- (setq na (getangle (setq np (cdr (assoc 11 en))) "\n╩²╫╓╥╞╢»╖╜╧≥:"))
- (if (/= na nil) (progn
- (setq en (subst (cons 70 128) (assoc 70 en) en))
- (setq np1 (polar np na 500))
- (entmod (subst (cons 11 np1) (assoc 11 en) en))
- ))
- (command "dimse1" "off" "dimse2" "off" "dimrnd" 0 "style" "hz" "exit")
- (command "layer" "s" "0" "")
- )) ;end if
- )
- ))
- (setvar "orthomode" 0)
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )