home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun projerr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\Error:" s))
- )
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setvar "blipmode" 1)
- (setvar "highlight" 1)
- (setq *error* oer)
- (princ)
- )
-
- (setq fdist 45)
-
- (defun C:PROJ(/ x en1 sn1 ename1 elay1 fg p0 p1 p2 p3 np1 np2 np3 np4 fd p4 p5 p00 p01 p02 p03 sn en)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setvar "highlight" 0)
- (setq oer *error* *error* projerr)
- (princ "\n╩Σ╚δ╔ó╔Σ╫┤┤░╡─╞┬╢╚ <")
- (princ fdist)
- (setq x (getreal ">:"))
- (if (/= x nil) (setq fdist x))
- (setq sn1 (car (entsel "\n╤í╘±╢┤┐┌╞╜├µ╗≥├┼┤░╞╜├µ:")))
- (setq en1 (entget sn1) ename1 (cdr (assoc 0 en1)) elay1 (cdr (assoc 8 en1)))
- (if (and (= ename1 "3DFACE") (= elay1 "TWALL")) (progn
- (setq fg (cdr (assoc 70 en1)) p0 (cdr (assoc 10 en1)) p1 (cdr (assoc 11 en1)) p2 (cdr (assoc 12 en1)) p3 (cdr (assoc 13 en1)))
- (cond ((or (= fg 2) (= fg 8))
- (setq fd (/ (* (distance p0 p3) (sin (/ (* fdist pi) 180.0))) (cos (/ (* fdist pi) 180.0))))
- (setq np1 (polar p3 (angle p3 p2) fd) np2 (polar p2 (angle p2 p3) fd))
- (if (= fg 2) (setq np1 (list (car np1) (cadr np1) (+ (caddr np1) fd)) np2 (list (car np2) (cadr np2) (+ (caddr np2) fd))) (setq np1 (list (car np1) (cadr np1) (- (caddr np1) fd)) np2 (list (car np2) (cadr np2) (- (caddr np2) fd))))
- (setq en1 (subst (cons 13 np1) (assoc 13 en1) en1))
- (entmod en1)
- (setq en1 (subst (cons 12 np2) (assoc 12 en1) en1))
- (entmod en1))
- ((or (= fg 0) (= fg 4))
- (setq fd (/ (* (distance p0 p1) (sin (/ (* fdist pi) 180.0))) (cos (/ (* fdist pi) 180.0))))
- (if (= fg 0) (setq np1 (polar p1 (- (angle p0 p1) 1.57079) fd) np2 (polar p2 (- (angle p3 p2) 1.57079) fd)) (setq np1 (polar p1 (+ (angle p0 p1) 1.57079) fd) np2 (polar p2 (+ (angle p3 p2) 1.57079) fd)))
- (setq np1 (list (car np1) (cadr np1) (+ (caddr np1) fd)) np2 (list (car np2) (cadr np2) (- (caddr np2) fd)))
- (setq en1 (subst (cons 11 np1) (assoc 11 en1) en1))
- (entmod en1)
- (setq en1 (subst (cons 12 np2) (assoc 12 en1) en1))
- (entmod en1)))
- ) ;then
- (if (and (= ename1 "3DFACE") (member elay1 '("TWINDOW" "TDOOR"))) (progn
- (setq sn (car (entsel "\n╤í╘±╢┤┐┌╞╜├µ:")))
- (setq en (entget sn) p0 (cdr (assoc 10 en)) p1 (cdr (assoc 11 en)) p2 (cdr (assoc 12 en)) p3 (cdr (assoc 13 en)))
- (setq fg (cdr (assoc 70 en)))
- (setq p00 (cdr (assoc 10 en1)) p01 (cdr (assoc 11 en1)) p02 (cdr (assoc 12 en1)) p03 (cdr (assoc 13 en1)))
- (if (or (= fg 0) (= fg 4))
- (setq fd (/ (* (distance p0 p1) (sin (/ (* pi fdist) 180.0))) 2.0))
- (setq fd (/ (* (distance p1 p2) (sin (/ (* pi fdist) 180.0))) 2.0))
- )
- (setq p00 (polar p00 (angle p00 p01) fd) p00 (list (car p00) (cadr p00) (+ (caddr p00) fd)))
- (setq p01 (polar p01 (angle p01 p00) fd) p01 (list (car p01) (cadr p01) (+ (caddr p01) fd)))
- (setq p02 (polar p02 (angle p02 p03) fd) p02 (list (car p02) (cadr p02) (- (caddr p02) fd)))
- (setq p03 (polar p03 (angle p03 p02) fd) p03 (list (car p03) (cadr p03) (- (caddr p03) fd)))
- (setq en1 (subst (cons 10 p00) (assoc 10 en1) en1))
- (setq en1 (subst (cons 11 p01) (assoc 11 en1) en1))
- (setq en1 (subst (cons 12 p02) (assoc 12 en1) en1))
- (setq en1 (subst (cons 13 p03) (assoc 13 en1) en1))
- (entmod en1)
- )
- (princ "*▓╗╩╟╞╜├µ*")
- ))
- (setvar "blipmode" 1)
- (setvar "highlight" 1)
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )