吴,很抱歉耽搁了,我的同事和我正在使用Excel LISP以及。。嗯,实际工作
我不能创造一个神奇的“为你做一切”Lisp程序,但我确实解决了一些事情,应该节省一些时间。
- ; Coba utilities
- ; by Mark Mercier, 04-30-09
- (defun c:cobaGet()
- (getBlkAttsFile "C:\\ttlblk.txt")
- (copyMSpace)
- )
- (defun c:cobaPut()
- (giveBlkAtts)
- (pasteMSpace)
- )
- (defun copyMSpace( / ss)
- (if (setq ss (ssget "X" (list (cons 410 "Model") (cons 2 "IPCSHT")))) (command "erase" ss ""))
- (if (setq ss (ssget "X" (list (cons 410 "Model") (cons 2 "DRGSHEET")))) (command "erase" ss ""))
- (command "copyclip" (ssget "X" (list (cons 410 "Model"))) "")
- (command "undo" 2)
- (princ)
- )
- (defun pasteMSpace()
- (setvar "tilemode" 1)
- (command "pasteclip" (list 0 0 0))
- )
- (defun getBlkAttsFile(file / ent file)
- (setq ent (car(entsel)))
- (setq file (open file "W"))
- (if (= (cdr (assoc 66 (entget ent))) 1)
- (progn
- (setq ent (entnext ent))
- (while (/= (cdr (assoc 0 (entget ent))) "SEQEND")
- (if ent (write-line (strcat (cdr (assoc 2 (entget ent))) "\n" (cdr (assoc 1 (entget ent)))) file))
- (setq ent (entnext ent))
- )
- )
- )
- (close file)
- (princ)
- )
- (defun giveBlkAtts( / )
- (setq getFrm (open "C:\\ttlblk.txt" "R"))
- (setq linChk 1)
- (while linChk
- (if (and (setq line1 (read-line getFrm))
- (setq line2 (read-line getFrm))
- )
- (progn
- (setq ssAtBk (ssget "X" (list (cons 66 1))))
- (setq ssVar 0)
- (repeat (sslength ssAtBk)
- (setq getBkN (ssname ssAtBk ssVar))
- (setq ent (entnext getBkN))
- (while (/= (cdr (assoc 0 (entget ent))) "SEQEND")
- (setq attLst (entget ent))
- (if (= (cdr (assoc 2 attLst)) line1)
- (progn
- (princ line2)
- (setq attLst (subst (cons 1 line2) (assoc 1 attLst) attLst))
- (entmod attLst)
- (entupd ent)
- )
- )
- (setq ent (entnext ent))
- )
- (setq ssVar (1+ ssVar))
- )
- )
- (setq linChk nil)
- )
- )
- (close getFrm)
- (princ)
- )
我假设你有很多文件和一个模板,或者至少有其他一些新文件,可以将旧文件中的所有数据放入其中。
保存并加载我刚刚发布的代码后,打开旧文件,运行“COBAGET”。这将把一些东西复制到你的剪贴板,并在你的“C:\”目录中创建一个文本文件。
打开新文件,将所有内容放在其中,然后运行“COBAPUT”。这应该会将一堆东西粘贴到你的模型空间中,并更新标题栏中的许多信息。我不确定它是否能得到所有东西,甚至它是否能正常工作,因为我不在你们的终端和所有的爵士乐。但是,希望Lisp程序的魔力能够显现出来。
让我知道它是否有效,或者它是否节省了一些时间^^ |