home *** CD-ROM | disk | FTP | other *** search
- ;******FA\3DPLP.LSP******
- (if (null sol) (setq sol "off"))
- (if (null lbl0) (setq lbl0 0.0))
- (if (null lbb0) (setq lbb0 0.0))
- (if (null lhh0) (setq lhh0 (cadr (getvar "viewctr"))))
- (if (null bhb0) (setq bhb0 (car (getvar "viewctr"))))
- (if (null arcn) (setq arcn 12))
- ;------------
- (defun e0t0 ( )
- (setq se (getvar "elevation"))
- (setq st (getvar "thickness"))
- (setvar "elevation" 0)
- (setvar "thickness" 0)
- )
- (defun ests ( )
- (setvar "elevation" se)
- (setvar "thickness" st)
- )
- ;******
- (defun C:PLP0 ( )
- (e0t0)
- (setq plp0 (getpoint "\n enter point plp0<viewctr>:"))
- (if (null plp0) (setq plp0 (getvar "viewctr")))
- (if (/= (getvar "clayer") "plp0") (command "layer" "m" "plp0"
- "c" "1" "" ""))
- (setq vl (* (getvar "viewsize") 0.5))
- (setq bhb0 (car plp0) lhh0 (cadr plp0))
- (setq lbl0 (- bhb0 (* vl 1.267666)))
- (setq lbb0 (- lhh0 vl))
- (command "pline" (list bhb0 lbb0) (list bhb0 (+ lhh0 vl))
- plp0 (list lbl0 lhh0) (list (+ lbl0 (* vl 2.535333)) lhh0) "")
- ; (command "pline" (setq p1 (polar plp0 (* -0.5 pi) vl))
- ; (setq p1 (polar p1 (* 0.5 pi) (* vl 2))) plp0
- ; (setq p1 (polar plp0 pi (* 1.267666 vl)))
- ; (setq p1 (polar p1 0.0 (* vl 2.535333))) "")
- )
- (defun rplp0 ( )
- (setvar "osmode" 32)
- (setq ppp (entsel "enter point to pline:"))
- (setvar "osmode" 0)
- (setq plp0 (cadr ppp))
- (setq lhh0 (cadr plp0) bhb0 (car plp0))
- (setq lbb0 (caddr (assoc 10 (entget (entnext (car ppp))))))
- (setq lbl0 (cadr (assoc 10 (entget (entnext
- (entnext (entnext (entnext (entnext)))))))))
- )
- ;******LM-3D******
- (defun C:LH-3D ( )
- (setq 2dpto3d lhpto3d)
- (lm-3d)
- )
- (defun C:BH-3D ( )
- (setq 2dpto3d bhpto3d)
- (lm-3d)
- )
- ;--------------------
- (defun lm-3d ( )
- (setq ppp (ssget))
- (setq cp (getpoint "enter point cp:"))
- (setq cpx (car cp) cpy (cadr cp))
- (if (/= (getvar "clayer") "3d") (command "layer" "m" "3d" ""))
- (setq wcy 0 n (sslength ppp))
- (while (< wcy n)
- (setq ss (ssname ppp wcy))
- (setq s (cdr (assoc 0 (setq e (entget ss)))))
- (command "color" (cdr (assoc 62 e)))
- (prompt "Working...")
- (if (= "LINE" s) (lto3d))
- (if (= "INSERT" s) (bto3d))
- (if (= "POLYLINE" s) (plto3d))
- (if (= "SOLID" s) (sto3d))
- (if (or (= "CIRCLE" s) (= "ARC" s)) (arcto3d))
- (setq wcy (1+ wcy))
- )
- )
- (defun lhpto3d (2dp)
- (setq 2dpx (car 2dp) 2dpy (cadr 2dp))
- (setq 3dp (list 2dpx cpy (- 2dpy lhh0)))
- )
- (defun bhpto3d (2dp)
- (setq 2dpx (car 2dp) 2dpy (cadr 2dp))
- (setq 3dp (list cpx (+ lbb0 (- 2dpx bhb0)) (- 2dpy lhh0)))
- )
- ;---------------
- (defun lto3d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq 3dp1 (2dpto3d 2dp1))
- (setq 2dp2 (cdr (assoc 11 e)))
- (setq 3dp2 (2dpto3d 2dp2))
- (command "3dline" 3dp1 3dp2 "")
- )
- ;------------
- (defun bto3d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq 3dp1 (2dpto3d 2dp1))
- (setq bname (cdr (assoc 2 e)))
- (setq bname (strcat "fa/3d" (substr bname 4)))
- (setq xc (cdr (assoc 41 e)))
- (setq zc (cdr (assoc 42 e)))
- (command "insert" bname 3dp1 xc zc 0.0)
- )
- ;---------------
- (defun plto3d ( )
- (setq ss1 (entnext ss))
- (setq ss2 (entget ss1))
- (setq 2dplist (list (cdr (assoc 10 ss2))))
- (setq wxr 1)
- (while wxr
- (setq ss1 (entnext ss1))
- (setq ss2 (entget ss1))
- (if (= (cdr (assoc 0 ss2)) "SEQEND") (setq wxr nil)
- (progn
- (setq 2dp1 (cdr (assoc 10 ss2)))
- (setq 2dplist (cons 2dp1 2dplist))))
- )
- (setq 3dplist (mapcar '(lambda (x) (2dpto3d x)) 2dplist))
- ; (setq 3dplist (append 3dplist '("c")))
- ; (mapcar '(lambda (x) (command "3dline" x)) 3dplist)
- (drawll02 3dplist)
- (prompt "ok!")
- )
- (defun drawll02 (ll02)
- (setq wwxr 0 drawn (length ll02))
- (setq 3dp0 (nth 0 ll02) 3dp1 3dp0)
- (while (< wwxr drawn)
- (setq 3dp2 (nth wwxr ll02))
- (command "3dline" 3dp1 3dp2 "")
- (setq 3dp1 3dp2)
- (setq wwxr (1+ wwxr))
- )
- (command "3dline" 3dp2 3dp0 "")
- )
- ;---------------
- (defun arcto3d (/ c1 r a1 a2 aa n an)
- (setq an (/ pi arcn 0.5))
- (setq c0 (cdr (assoc 10 e)))
- (setq r (cdr (assoc 40 e)))
- (setq a1 (cdr (assoc 50 e)))
- (if (= a1 nil) (setq a1 0.0))
- (setq a2 (cdr (assoc 51 e)))
- (if (= a2 nil) (setq a2 (* pi 2)))
- (setq aa (- a2 a1))
- (if (< aa 0.0) (setq aa (+ aa pi pi)))
- (setq n (fix (/ (abs aa) an)))
- (if (= n 0) (setq n 1))
- (setq an (/ aa n))
- (setq 2dplist (list (polar c0 a1 r)))
- (setq k 1)
- (while (<= k n)
- (setq aa (+ (* an k) a1))
- (setq 2dp1 (polar c0 aa r))
- (setq 2dplist (cons 2dp1 2dplist))
- (setq k (1+ k))
- )
- (setq 3dplist (mapcar '(lambda (x) (2dpto3d x)) 2dplist))
- ; (setq 3dplist (append 3dplist '("c")))
- ; (mapcar '(lambda (x) (command "3dline" x)) 3dplist)
- (drawll02 3dplist)
- (prompt "ok!")
- )
- ;--------------
- (defun sto3d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq 3dp1 (2dpto3d 2dp1))
- (setq 2dp2 (cdr (assoc 11 e)))
- (setq 3dp2 (2dpto3d 2dp2))
- (setq 2dp3 (cdr (assoc 12 e)))
- (setq 3dp3 (2dpto3d 2dp3))
- (setq 2dp4 (cdr (assoc 13 e)))
- (setq 3dp4 (2dpto3d 2dp4))
- (command "3dface" 3dp1 3dp2 3dp4 3dp3 "")
- )
- ;******3D-LM******
- (defun C:3D-LH ( )
- (setq 2dpto2d 2dptolh)
- (setq 3dpto2d 3dptolh)
- (3d-2d0)
- )
- (defun C:3D-BH ( )
- (setq 2dpto2d 2dptobh)
- (setq 3dpto2d 3dptobh)
- (3d-2d0)
- )
- (defun 3d-2d0 ( )
- (if (/= (getvar "clayer") "lm") (command "layer" "m" "lm" ""))
- (setq ppp (ssget))
- (e0t0)
- (setq wcy 0 n (sslength ppp))
- (while (< wcy n)
- (setq s (cdr (assoc 0 (setq e (entget (ssname ppp wcy))))))
- (command "color" (cdr (assoc 62 e)))
- (if (= "LINE" s) (lto2d))
- (if (= "POINT" s) (pto2d))
- (if (= "INSERT" s) (bto2d))
- (if (= "3DLINE" s) (3dlto2d))
- (if (= "3DFACE" s) (3dfto2d))
- (setq wcy (1+ wcy))
- (prompt "Working...")
- )
- (ests)
- )
- ;------------
- (defun 2dptolh (2dp)
- (setq 2dp (list (car 2dp) (+ h01 lhh0)))
- )
- (defun 2dptobh (2dp)
- (setq 2dp (list (+ (- (cadr 2dp) lbb0) bhb0) (+ h01 lhh0)))
- )
- (defun 3dptolh (3dp)
- (setq 2dp (list (car 3dp) (+ (caddr 3dp) lhh0)))
- )
- (defun 3dptobh (3dp)
- (setq 2dp (list (+ bhb0 (- (cadr 3dp) lbb0))
- (+ (caddr 3dp) lhh0)))
- )
- (defun 3dptolb (3dp)
- (setq 2dp (list (- (+ (car 3dp) bhb0) lbl0) (cadr 3dp)))
- )
- ;------------
- (defun pto2d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq h01 (cdr (assoc 38 e)))
- (if (= h01 nil) (setq h01 0.0))
- (setq h11 (cdr (assoc 39 e)))
- (if (= h11 nil) (setq h11 0.0))
- (setq p1 (2dpto2d 2dp1))
- (if (= h11 0) (command "point" p1)
- (command "line" p1 (polar p1 1.570796 h11) "")
- )
- )
- ;------------
- (defun bto2d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq h01 (cdr (assoc 38 e)))
- (if (= h01 nil) (setq h01 0.0))
- (setq p1 (2dpto2d 2dp1))
- (setq bname (cdr (assoc 2 e)))
- (setq bname (strcat "fa/2dl" (substr bname 3)))
- (setq xc (cdr (assoc 41 e)))
- (setq zc (cdr (assoc 43 e)))
- (setq af (cdr (assoc 50 e)))
- (if (null af) (setq af 0.0))
- (if (= 2dpto2d 2dptolh)
- (setq xc (* xc (cos af))) (setq xc (* xc (sin af))))
- (command "insert" bname p1 xc zc 0.0)
- )
- ;------------
- (defun lto2d ( )
- (setq 2dp1 (cdr (assoc 10 e)))
- (setq 2dp2 (cdr (assoc 11 e)))
- (setq h01 (cdr (assoc 38 e)))
- (if (= h01 nil) (setq h01 0.0))
- (setq h11 (cdr (assoc 39 e)))
- (if (= h11 nil) (setq h11 0.0))
- (setq p1 (2dpto2d 2dp1))
- (setq p2 (2dpto2d 2dp2))
- (if (= h11 0) (command "line" p1 p2 "")
- (command "line" p1 p2 (polar p2 (* 0.5 pi) h11)
- (polar p1 (* 0.5 pi) h11) "c")
- )
- )
- ;------------
- (defun 3dlto2d ( )
- (setq 3dp1 (cdr (assoc 10 e)))
- (setq 3dp2 (cdr (assoc 11 e)))
- (setq p1 (3dpto2d 3dp1))
- (setq p2 (3dpto2d 3dp2))
- (command "line" p1 p2 "")
- )
- (defun 3dfto2d ( )
- (setq 3dp1 (cdr (assoc 10 e)))
- (setq 3dp2 (cdr (assoc 11 e)))
- (setq 3dp3 (cdr (assoc 12 e)))
- (setq 3dp4 (cdr (assoc 13 e)))
- (setq p1 (3dpto2d 3dp1))
- (setq p2 (3dpto2d 3dp2))
- (setq p3 (3dpto2d 3dp3))
- (setq p4 (3dpto2d 3dp4))
- (if (= sol "on") (command "solid" p1 p2 p4 p3 "")
- (command "line" p1 p2 p3 p4 "c"))
- )
- (defun 3df-lb ( )
- (setq px (car 3dp1) py (cadr 3dp1))
- (setq p1 (list (+ px nl0) (+ py nb0)))
- (setq px (car 3dp2) py (cadr 3dp2))
- (setq p2 (list (+ px nl0) (+ py nb0)))
- (setq px (car 3dp3) py (cadr 3dp3))
- (setq p3 (list (+ px nl0) (+ py nb0)))
- (setq px (car 3dp4) py (cadr 3dp4))
- (setq p4 (list (+ px nl0) (+ py nb0)))
- (3dfdwg)
- )
- ;----------
- (defun C:CLEAN2 ( )
- (setq atomlist (member 'C:CLEAN2 atomlist))
- 'DONE2
- )