近日有几位网友请求我帮他们炸开无法正常炸开的AutoCAD图纸,这些图纸整个是一个“块”,只要点击图形的任何地方,整个图纸都被选中,用explode命令进行分解时,AutoCAD就提示“一个多重插入引用”,无法炸开。实际上这些图纸采用了多重插入匿名块的手段将图形锁定,起到防止他人篡改的作用。
将下面这段代码复制到一个空的文本文件里,保存后将文本文件名改成unlk.lsp。
(defun c:unlk (/ en ent)
(setq en (entsel "\n请选择被加密的图形:"))
(if en
(if (= (cdr (assoc 0 (setq ent (cdr (entget (setq en (car en)))))))
"INSERT"
)
(progn
(setq ent (entmakex
(list '(0 . "INSERT")
(assoc 2 ent)
(assoc 10 ent)
)
)
)
(command "_.explode" (entlast))
(entdel en)
)
)
)
(princ "\nOK,解密成功。")
(princ)
)
用AutoCAD打开无法炸开的图纸,操作菜单“工具”——“加载应用程序”,打开“加载、卸载应用程序”对话框,在对话框里找到并点选那个名为“unlk.lsp”的文件,依次点击“加载”、“关闭”按钮,关闭对话框。在AutoCAD的命令行里输入“unlk”并回车,当提示“请选择被加密的图形”的时候,点击一下图形,OK,图纸被炸开了。
有的图纸重复使用了数次多重插入匿名块的方法,这样的图纸需要重复使用上述方法才能最终炸开,我曾经遇到一张图纸,是在重复运行了10次“unlk”命令以后才炸开的。
其实,这一招我也是从网上学习来的。