home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p065 / 4.img / WINDOW.LSP < prev    next >
Encoding:
Text File  |  1992-01-28  |  6.6 KB  |  202 lines

  1. (vmon)
  2.  
  3. (defun werr(s)
  4.    (if (/= s "Function cancelled")
  5.        (princ (strcat "\nError:") s)
  6.    )
  7.    (setvar "cmdecho" 1)
  8.    (setq *error* oer)
  9.    (princ)
  10. )
  11.  
  12. (defun C:DIRT(/ oer loop sn en bn ename)
  13.     (setvar "cmdecho" 0)
  14.     (setq oer *error* *error* werr)
  15.     (setq loop t)
  16.     (while loop
  17.        (setq sn (entsel "\n╤í╘±╥¬╕─▒Σ┐¬╞⌠╖╜╧≥╡─├┼┤░: "))
  18.        (if sn (progn
  19.               (setq en (entget (car sn)) ename (cdr (assoc 0 en)) bn (cdr (assoc 2 en)))
  20.               (if (and (= ename "INSERT") (or (= (substr bn 1 1) "M") (= (substr bn 1 1) "C")))
  21.                   (progn
  22.                   (setq en (subst (cons 42 (* -1 (cdr (assoc 42 en)))) (assoc 42 en) en))
  23.                   (entmod en)
  24.                   )
  25.                   (princ "\n**╤í╘±╡─╩╡╠σ▓╗╩╟├┼┤░!")
  26.                )
  27.                )
  28.                (setq loop nil)
  29.         )
  30.      )
  31.    (setvar "cmdecho" 1)
  32.    (setq *error* oer)
  33.    (princ)
  34. )
  35.  
  36. (defun C:FIX(/ oer sn en ename bn p)
  37.    (setvar "cmdecho" 0)
  38.    (setq oer *error* *error* werr)
  39.     (setq loop t)
  40.     (while loop
  41.        (setq sn (entsel "\n╤í╘±╥¬╕─▒Σ├┼╓ß╬╗╓├╡─├┼┤░: "))
  42.        (if sn (progn
  43.               (setq en (entget (car sn)) ename (cdr (assoc 0 en)) bn (cdr (assoc 2 en)))
  44.               (if (and (= ename "INSERT") (or (= (substr bn 1 1) "M") (= (substr bn 1 1) "C")))
  45.                   (progn
  46.                   (setq en (subst (cons 41 (* -1 (cdr (assoc 41 en)))) (assoc 41 en) en))
  47.                   (entmod en)
  48.                   (initget "Yes")
  49.                   (setq p (getpoint "\n╕─▒Σ┐¬╞⌠╖╜╧≥ <N>:"))
  50.                   (if p (progn
  51.                   (setq en (subst (cons 42 (* -1 (cdr (assoc 42 en)))) (assoc 42 en) en))
  52.                   (entmod en)
  53.                   )) 
  54.                   )
  55.                   (princ "\n**╤í╘±╡─╩╡╠σ▓╗╩╟├┼┤░!")
  56.                )
  57.                )
  58.                (setq loop nil)
  59.         )
  60.      )
  61.    (setvar "cmdecho" 1)
  62.    (setq *error* oer)
  63.    (princ)
  64. )
  65.  
  66. (defun C:CALC(/ oer fn name ss ssl sn en ename elay n rn wlist wn ww wh f one wl dl)
  67.    (setvar "cmdecho" 0)
  68.    (setq oer *error* *error* werr)
  69.   (setq loop t)
  70.   (while loop
  71.    (setq name (getstring "\╩Σ╚δ▓π├√ <1>:"))
  72.    (if (= name "") (setq name "1"))
  73.    (if (findfile (strcat name ".dat")) (progn
  74.    (princ (strcat "** " name " ▓π├┼┤░▒φ╥╤┤µ╘┌, ╓╪╨┤┬≡ <N>"))
  75.    (initget "Yes No")
  76.    (setq kw (getkword))
  77.    (if (= kw "Yes") (setq loop nil))
  78.    ) (setq loop nil))
  79.    ) ;while
  80.    (setq ss (ssget))
  81.    (if ss (progn
  82.    (setq wl nil dl nil ssl (sslength ss) n 0)
  83.    (repeat ssl
  84.       (setq sn (ssname ss n) en (entget sn))
  85.       (setq ename (cdr (assoc 0 en)) elay (cdr (assoc 8 en)))
  86.       (if (and (= "INSERT" ename) (= "PWINDOW" elay)) (progn
  87.       (setq rn (cdr (assoc 1 (entget (entnext sn)))))
  88.       (strdv rn) (setq one wlist)
  89.       (setq wn (nth 0 one) ww (nth 1 one) wh (nth 2 one))
  90.       (if (= (substr wn 1 1) "C")
  91.       (if (setq one (assoc wn wl)) (setq wl (subst (list (car one) (cadr one) (1+ (last one))) one wl))
  92.           (setq wl (cons (list wn (strcat ww "x" wh) 1) wl)))
  93.       (if (setq one (assoc wn dl)) (setq dl (subst (list (car one) (cadr one) (1+ (last one))) one dl))
  94.           (setq dl (cons (list wn (strcat ww "x" wh) 1) dl)))
  95.       )
  96.       )) ;endif "Insert"
  97.       (setq n (1+ n))
  98.    )
  99.    ))
  100.    (princ "╒²╘┌╨┤╬─╝■......╟δ╔╘║≥")
  101.    (setq f (open (strcat name ".dat") "w"))
  102.    (setq n 0 l (length wl))
  103.    (repeat l
  104.       (setq one (nth n wl))
  105.       (write-line (strcat (car one) " " (cadr one) " " (itoa (last one))) f)
  106.       (setq n (1+ n))
  107.    )
  108.    (setq n 0 l (length dl))
  109.    (repeat l
  110.       (setq one (nth n dl))
  111.       (write-line (strcat (car one) " " (cadr one) " " (itoa (last one))) f)
  112.       (setq n (1+ n))
  113.    )
  114.    (close f)
  115.    (setvar "cmdecho" 1)
  116.    (setq *error* oer)
  117.    (princ)  
  118.  
  119. (defun C:MCB(/ oer sn en p wl dl f one rn wlist o1 o2 o3 n l)
  120.    (setvar "cmdecho" 0)
  121.    (setq oer *error* *error* werr)
  122.    (setq fn (getstring "\n╩Σ╚δ╕≈▓π├√ <1>:"))
  123.    (if (= fn "") (setq fn "1"))
  124.    (strdv0 fn) (setq ll (length wlist) fn wlist)
  125.    (command "insert" "mcb" "x" blx "y" blx "r" 0 pause)
  126.    (setq sn (entlast) en (entget sn))
  127.    (setq p (cdr (assoc 10 en)) wl nil dl nil n0 0)
  128.    (repeat ll
  129.    (setq f (open (strcat (nth n0 fn) ".dat") "r"))
  130.    (while (/= (setq rn (read-line f)) nil)
  131.       (strdv rn) (setq one wlist)
  132.       (setq o1 (car one) o2 (cadr one) o3 (atoi (last one)))
  133.       (if (/= (substr o1 1 2) "**") (progn
  134.       (if (= (substr o1 1 1) "C")
  135.       (if (setq one (assoc o1 wl)) (setq wl (subst (list o1 o2 (+ o3 (last one))) one wl))
  136.           (setq wl (cons (list o1 o2 o3) wl)))
  137.       (if (setq one (assoc o1 dl)) (setq dl (subst (list o1 o2 (+ o3 (last one))) one dl))
  138.           (setq dl (cons (list o1 o2 o3) dl)))
  139.       )))
  140.    )
  141.    (close f)
  142.    (setq n0 (1+ n0))
  143.    )
  144.    (setq n 0 l (length wl) p (polar p -1.57079 (* 1700 blx)))
  145.    (repeat l
  146.       (setq one (nth n wl) o1 (car one) o2 (cadr one) o3 (itoa (last one)))
  147.       (command "insert" "mcb0" (list (car p) (- (cadr p) (* n 700 blx)) (last p)) blx blx 0 o1 o2 o3)
  148.       (setq n (1+ n))
  149.    )
  150.    (setq l (length dl) p (polar p -1.57079 (* n 700 blx)) n 0)
  151.    (repeat l
  152.       (setq one (nth n dl) o1 (car one) o2 (cadr one) o3 (itoa (last one)))
  153.       (command "insert" "mcb0" (list (car p) (+ (cadr p) (* n 700 blx)) (last p)) blx blx 0 o1 o2 o3)
  154.       (setq n (1+ n))
  155.    )
  156.    (setvar "cmdecho" 1)
  157.    (setq *error* oer)
  158.    (princ)
  159. )
  160.  
  161. (defun strdv(rn / loop l x)
  162.        (setq wlist nil loop t)
  163.        (while loop
  164.           (setq l (instr 1 rn " "))
  165.           (if (= l 0) (setq wlist (cons rn wlist) loop nil)
  166.              (progn ;else
  167.              (setq x (substr rn 1 (1- l)))
  168.              (setq wlist (cons x wlist))
  169.              (setq rn (substr rn (1+ l) (- (strlen rn) l)))
  170.              (setq loop t)
  171.              )
  172.           )
  173.        )
  174.        (setq wlist (reverse wlist))
  175. )
  176.  
  177. (defun strdv0(rn / loop l x)
  178.        (setq wlist nil loop t)
  179.        (while loop
  180.           (setq l (instr 1 rn ","))
  181.           (if (= l 0) (setq wlist (cons rn wlist) loop nil)
  182.              (progn ;else
  183.              (setq x (substr rn 1 (1- l)))
  184.              (setq wlist (cons x wlist))
  185.              (setq rn (substr rn (1+ l) (- (strlen rn) l)))
  186.              (setq loop t)
  187.              )
  188.           )
  189.        )
  190.        (setq wlist (reverse wlist))
  191. )
  192.  
  193. (defun instr(st s0 s00 / l n loop x n0 l0)
  194.    (setq l (+ (- (strlen s0) st) 1) l0 0 n0 st n 1 loop t)
  195.    (while (and (<= n l) loop)
  196.       (setq x (substr s0 n0 1))
  197.       (if (eq x s00) (setq loop nil l0 n0) (setq n0 (1+ n0) n (1+ n)))
  198.    )
  199.    (eval l0)
  200. )
  201.