多重绑定。
各位,我有一个lisp例程,可以执行多种电子传输,问题是我们的许多客户都想要绑定dwg。我们可以一次发布多达200个图形,因此绑定每个外部参照、文件另存为等需要很多时间。我希望有一个例程可以为我完成所有这些,所以我可以在另一台机器上设置它,并让例程打开所有图形,绑定外部参照,另存为一个新文件(这样它就不会覆盖所有绑定的图形)我可以看到的一个问题是,有时我们的一个外部参照可能会被卸载或找不到。不确定该项目如何应对这种情况。有人有lisp文件吗?谢谢 我有一个很好用的。确保您创建了一个空白dwg,将其保存为“dummy.dwg”,并将其放在搜索路径文件夹中。它将分离卸载/未解析的外部参照、绑定外部参照、审核和清除dwg。命令已发送。;...............................................................................
;
; << Detach unloaded/unresolved xrefs, Bind xrefs, Audit, Purge >>
; <<2007 >>
;
; NOTE: Must have a blank dwg in search path name "dummy.dwg"
;
;...............................................................................
(defun C:SENT ( / )
(defun *error*(msg)
(setvar "modemacro" ".")
(setvar "bindtype" oldBnType)
(setvar "cmdecho" 1)
(princ "\n...Audit/Bind/PurgeAll terminated!!!")
(princ)
); end of *error*
(setvar "modemacro" "Audit/Bind/PurgeAll processing......please wait......")
(setvar "cmdecho" 0)
(prompt "\n--- Audit/Bind/PurgeAll......please wait---")
(prompt "\nAuditing...")(terpri)
(command "_audit" "y")
(bind_xrefs)
(prompt "\nPurging #1")(terpri)
(command "-purge" "a" "*" "N")
(prompt "\nPurging #2")(terpri)
(command "-purge" "a" "*" "N")
(prompt "\nPurging #3")(terpri)
(command "-purge" "a" "*" "N")
(prompt "\n--- Audit, Bind, PurgeAll completed! ---")
(setvar "modemacro" ".")
(setvar "cmdecho" 1)
(princ)
); end of c:sent
(defun bind_xrefs ( / CMD)
(setq oldBnType(getvar "bindtype"))
(setq CMD (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setvar "bindtype" 0)
(setq XLIST (xref-status))
(if XLIST
(progn
(prompt "\nBinding all Xrefs...")
(foreach n XLIST (rem-xref n))
(command "-xref" "b" "*" )
(prompt "...done")(terpri)
)
)
(setvar "CMDECHO" CMD)
(setvar "bindtype" oldBnType)
(princ)
)
(defun rem-xref ( XL / XNAME XSTATUS )
(setq XNAME (nth 0 XL))
(setq XSTATUS (nth 2 XL))
(if (= XSTATUS "UNLOADED")
(rem_unload)
)
(if (= XSTATUS "UNRESOLVED")
(rem_unload)
)
)
(defun xref-status ( / d n f r)
(while (setq d (tblnext "block" (null d)))
(cond
(
(eq 4 (logand 4 (cdr (assoc 70 d))))
(setq
d (entget (tblobjname "block" (cdr (assoc 2 d))))
n (cdr (assoc 2 d))
p (cdr (assoc 3 d))
f (cdr (assoc 70 d))
)
(setq r
(cons
(list n p
(cond
( (eq 32 (logand 32 f)) "LOADED")
( (assoc 71 d) "UNLOADED")
( t "UNRESOLVED")
)
)
r
)
)
)
)
)
(reverse r)
)
(defun rem_unload ( / )
(setq DFILE (findfile "dummy.dwg"))
(if (not DFILE)
(prompt "\nCannot find dummy_xref drawing ")
(progn
(command "-xref" "p" XNAME DFILE)
(command "-xref" "r" XNAME)
)
)
) 我不确定这是否正是我想要的,或者我只是做错了。我希望lisp能够绘制多个图形,而不必全部打开。我宁愿只选择我想要的图形,它为我这样做,但也保存为新的文件(这样我就不会覆盖我的正确的绘图)这个程序这样做吗?如果是这样,我该如何使用它? 你看电子传输设置累了吗。您可以在其中添加文件,以便在打开文件的同时进行电子传输。此外,还可以创建一个新的传递设置,让它为您绑定和清除所有图形。我一直在用它。
我想这就是你想要的。这是Autocad的一部分,您不需要另一个lisp或脚本来执行此操作。只要把它设置好,它就会完成你添加的所有绘图 谢谢,我还没看到呢。它运行得很好,在我们所有的程序都启动并运行之前,它必须运行。谢谢你的帮助 得了VB。如果你感兴趣的话,它会帮你的。。。目前是基本的,但可以扩展以处理不同的场景(嵌套外部参照等) 谢谢,如果你不介意的话,也许值得一看。我们公司目前正在制作一个程序,通过在标题栏中放置一个问题,创建PDF和绑定的DWG来发布我们的图纸,因此我们可能可以扩展您必须包含的所有内容。
谢谢
你好
我正在寻找一个lsp,可以做一些你说的。我有一组需要电子传递的图形,但我需要每个图形都有自己的电子传递。目前,我必须打开每张图纸,制作一个电子传递。我在电子传递中看到了添加图形的选项,但它将图形放在一个zip文件中。
我们不需要在外部参照中绑定,所以希望你的lisp能够工作
谢谢
史蒂芬 这些天我会尽量避开VBA,尤其是当你使用64位的时候。
我在ACad中使用了一个名为AutoScript的小插件(只需在谷歌上搜索一下即可)。然后,我让它在选定图形的文本SCR文件中运行以下内容:
它首先将DWG保存到该文件夹(根据脚本中的需要更改文件夹),因为即使其他人当时打开了文件,它也可以工作。我已经在启用“绑定外部参照”选项的情况下设置了电子传递。不需要更多的lisp来绑定外部参照。 谢谢你,我下载了Autoscript exe,并通过menuload加载了cui,但当我运行程序时,我得到了这个mesage。
未知命令“AUTOSCRIPT”。按F1键获取帮助。知道它为什么不运行吗
页:
[1]
2