home *** CD-ROM | disk | FTP | other *** search
- ;****** PM\MMCB.LSP ****** 11-4-89 BJ
- (if (null tb) (setq tb0 100 tb 1.0 mmm "MM"))
- ;----------------------
- (defun C:MMCB (/ wcy)
- (rgcf1)
- (wgcf1)
- (setq wcy 1)
- (rll11 nlll)
- (while wcy
- (setq mode (getint
- "\n 1.Rsj/2.Wcsj-s/3.Wcsj-r/4.Cll01/5.Dll12/6.A-MCB
- <or RETURN for none>:"))
- (if (= mode nil) (setq wcy nil))
- (if (= mode 1) (rll12))
- (if (= mode 2) (progn (c-mcb) (rll11 nlll)))
- (if (= mode 3) (progn (c-mcb) (rll11 nlll)))
- (if (= mode 4) (progn (cll01) (rll11 nlll)))
- (if (= mode 5) (progn (dll12) (rll11 nlll)))
- ; (if (= mode 6) (progn (a-mcb) (rll11 nlll)))
- (if (= mode 6) (progn (snil) (a-mcb) (wgcf2) (setq wcy nil)))
- )
- (if (/= mode 6) (wgcf2))
- ; (wgcf2)
- )
- ;------------
- (defun snil ( )
- (setq rgcf1 nil wgcf1 nil rll12 nil cll01 nil dll12 nil)
- (setq c-mcb nil c-mcb01 nil c-mcb02 nil mes nil addc nil addc01 nil)
- )
- ;------------
- (defun rll12 ( )
- (setq ll01 (getstring (strcat
- "\n " ll11 " enter ll01:")))
- (if (= ll01 "") (setq ll01 "tb"))
- (setq ll12 (assoc ll01 nlll))
- (print ll12)
- (setq ll02 (cdr ll12))
- )
- (defun cll01 ( )
- (setq ll01 (getstring (strcat
- "\n " ll11 " enter old ll01:")))
- (setq ll12 (assoc ll01 nlll))
- (setq nll01 (getstring "enter new ll01:"))
- (if (/= nll01 "") (setq nll12 (subst nll01 ll01 ll12))
- (setq nll12 ll12))
- (print nll12)
- (setq nlll (subst nll12 ll12 nlll))
- )
- (defun dll12 ( / olll)
- (setq ll01 (getstring (strcat
- "\n " ll11 " enter ll01 for del:")))
- (setq wxr (length nlll) k 0 olll nlll nlll nil)
- (while (< k wxr)
- (setq ll12 (nth k olll))
- (if (/= (car ll12) ll01)
- (setq nlll (cons ll12 nlll)))
- (setq k (1+ k))
- )
- (setq nlll (reverse nlll))
- )
- (defun wll120 ( )
- (setq nll12 (cons ll01 nll02))
- (setq ll12 (assoc ll01 nlll))
- (if (= ll12 nil) (setq nlll (cons nll12 nlll))
- (setq nlll (subst nll12 ll12 nlll))
- )
- )
- ;------
- (defun rgcf1 ( )
- (setq fn1 (strcat (getvar "dwgname") ".gcl"))
- (setq f1 (open fn1 "r"))
- (if (= f1 nil) (setq lll (list (list "tb0" tb0 tb mmm)))
- (progn (setq lll (read (read-line f1))) (close f1))
- )
- (setq nlll lll)
- )
- (defun wgcf1 ( )
- (setq fn1 (strcat (getvar "dwgname") ".gcb"))
- (setq f1 (open fn1 "w"))
- (prin1 lll f1)
- (close f1)
- (setq lll nil)
- )
- (defun wgcf2 ( )
- (setq fn2 (strcat (getvar "dwgname") ".gcl"))
- (setq f2 (open fn2 "w"))
- (prin1 nlll f2)
- (close f2)
- )
- (defun rll11 (nlll)
- (setq wxr (length nlll) k 0 ll11 "*")
- (while (< k wxr)
- (setq ll01 (car (nth k nlll)))
- (setq ll11 (strcat ll01 "/" ll11))
- (setq k (1+ k))
- )
- )
- ;------------
- ;------------
- (defun c-mcb ( )
- (prompt (strcat "\n old SJ:" ll11))
- (setq ll01 (strcase (substr (getstring "\n PTC/BZC? <p>") 1 1)))
- (if (= ll01 "B")
- (progn (setq n (getint "\n Number n <3>:"))
- (if (null n) (setq n 3))
- (setq ll01 (strcat "BCMC" (rtos n 2 0))))
- (progn (setq cs (getint "\n enter ?CMC <1>"))
- (if (null cs) (setq cs 1))
- (setq ll01 (strcat (rtos cs 2 0) "CMC")))
- )
- (if (= mode 2) (c-mcb01))
- (if (= mode 3) (c-mcb02))
- (setq sss (reverse sss))
- (addc sss)
- (wll120)
- (print nll12)
- )
- (defun c-mcb01 ( )
- (setq ppp (ssget))
- (prompt "Working...")
- (setq wcy 0 n (sslength ppp) sss nil)
- (while (< wcy n)
- (setq ss (ssname ppp wcy))
- (setq e (entget ss))
- (setq s (cdr (assoc 8 e)))
- (if (= (substr s 1 2) "MC") (mes))
- (setq wcy (1+ wcy))
- )
- )
- (defun mes ( )
- (setq s (cdr (assoc 0 e)))
- (if (= s "TEXT")
- (setq sss (cons (list (cdr (assoc 1 e)) 1) sss)))
- (if (= s "INSERT") (progn (setq new nil)
- (setq es (cdr (assoc 2 e)))
- (setq ss1 (entnext (entnext ss)))
- (if ss1 (setq new (cdr (assoc 1 (entget (entnext ss1))))))
- (if new (setq es new))
- (setq sss (cons (list es 1) sss))))
- )
- (defun c-mcb02 ( )
- (setq wxr 1 sss nil)
- (while wxr
- (setq mcdh (getstring "\n enter MCDH <or RETRUN for none>:"))
- (if (= mcdh "") (setq wxr nil) (progn
- (setq n (getint "Number of every floor <1>:"))
- (if (null n) (setq n 1))
- (setq sss (cons (list mcdh n) sss))
- (print sss))
- )
- )
- )
- (defun addc (sss)
- (setq wcy 0 n (length sss) nll02 nil)
- (while (< wcy n)
- (setq ss1 (nth wcy sss))
- (if (/= ss1 nil) (progn
- (setq ss101 (car ss1) ss102 (cadr ss1))
- (addc01)
- (setq nll02 (cons (list ss101 ss102) nll02))))
- (setq wcy (1+ wcy))
- )
- (setq nll02 (reverse nll02))
- )
- (defun addc01 ( )
- (setq wxr (1+ wcy))
- (while (< wxr n)
- (setq ss2 (nth wxr sss))
- (if (and (/= ss2 nil) (= (car ss1) (car ss2)))
- (setq ss102 (1+ ss102)))
- (setq wxr (1+ wxr))
- )
- (if (= (substr ll01 1 1) "B")
- (setq ss102 (* ss102 (atoi (substr ll01 5)))))
- (setq sss (subst nil ss1 sss))
- )
- ;------------
- (defun a-mcb ( )
- ; (setq atomlist (member 'C:CLEAN2 atomlist))
- (setq wxr 1 ccc nil sss nil)
- (while wxr
- (prompt (strcat "\n old SJ:" ll11))
- (if ccc (print (reverse ccc)))
- (setq ss1 (getstring "\n Select ?CMC? (or RETURN for continuor>:"))
- (if (= ss1 "") (setq wxr nil)
- (progn
- (setq ss1 (strcase ss1))
- (setq ss1 (assoc ss1 nlll))
- (if ss1 (progn (setq sss (cons ss1 sss))
- (setq ccc (cons (car ss1) ccc)))
- (prompt " 0 found, "))
- )
- )
- )
- (prompt "Working...")
- (setq ccc (reverse ccc))
- (setq sss (reverse sss))
- (if ccc (progn (mnsss sss)
- (setq nsss (cdr nsss))
- (adda nsss)
- (savsss ccc sss)))
- )
- (defun mnsss (sss)
- (setq cccn (length ccc))
- (setq cck 0 nsss '("MCBA"))
- (while (< cck cccn)
- (setq ssk (assoc (nth cck ccc) sss))
- (if ssk (mnssk))
- (setq nsss (append (cdr nssk) nsss))
- (setq cck (1+ cck))
- )
- (setq nsss (reverse nsss))
- )
- (defun mnssk ( / k)
- (setq ssk01 (car ssk) ssk02 (cdr ssk))
- (setq k 0 ssk02n (length ssk02) nssk02 nil)
- (while (< k ssk02n)
- (setq ss (nth k ssk02))
- (if ss (mnss))
- (setq nssk02 (cons nss nssk02))
- (setq k (1+ k))
- )
- (setq nssk (cons ssk01 (reverse nssk02)))
- )
- (defun mnss ( / k)
- (setq ss01 (car ss) ss02 (cadr ss))
- (setq nss02 nil k 0)
- (while (< k cccn)
- (if (= k cck) (setq nss02 (cons ss02 nss02))
- (setq nss02 (cons 0 nss02)))
- (setq k (1+ k))
- )
- (setq nss (cons ss01 (reverse nss02)))
- )
- (defun adda (nsss)
- (setq wcy 0 n (length nsss) sss nil)
- (while (< wcy n)
- (setq ss1 (nth wcy nsss))
- (if ss1 (progn
- (setq ss101 (car ss1) ss102 (cdr ss1))
- (adda01) (adda02)
- (setq sss (cons (cons ss101 ss102) sss))))
- (setq wcy (1+ wcy))
- )
- (setq sss (reverse sss))
- )
- (defun adda01 ( )
- (setq wxr (1+ wcy))
- (while (< wxr n)
- (setq ss2 (nth wxr nsss))
- (if (and (/= ss2 nil) (= ss101 (car ss2)))
- (progn (setq ss202 (cdr ss2))
- (setq ss102 (mapcar '+ ss102 ss202))
- (setq nsss (subst nil ss1 nsss))
- (setq nsss (subst nil ss2 nsss))))
- (setq wxr (1+ wxr))
- )
- )
- (defun adda02 ( / k n)
- (setq aa 0 k 0 n (length ss102))
- (while (< k n)
- (setq aa (+ (nth k ss102) aa))
- (setq k (1+ k))
- )
- (setq ss102 (append ss102 (list aa)))
- )
- ;---------
- (defun savsss (ccc sss)
- (setq ll01 "A-MCB")
- (setq nll02 (cons ccc sss))
- (wll120)
- (print nll12)
- )
- ;----------------------
- ;(defun C:CLEAN2 ( )
- ; (setq atomlist (member 'C:CLEAN2 atomlist))
- ; (princ)
- ;)
- (princ)