试着点击一下图形,天哪!图形竟然用参照编辑的方法炸开了。
进一步设想一下,如果插入进来的块图形是匿名的,“参照编辑”对话框里不显示块图形的名字,就不能够进行参照编辑,当然也就不会被炸开了。
总结以上思路,创建无法炸开的图纸需要三个步骤,第一步将画好的图纸转换成块并删除,第二步用minsert命令将这个块插回图纸,第三步将块的名字隐匿起来。
遗憾的是手工操作不可能将块图形匿名,而只能用编程的方法。
将下面的代码复制粘贴在文本文件里,保存后将文本文件名改成“jm.lsp”。在画好的图纸里操作菜单“工具”——“加载应用程序”,打开“加载、卸载应用程序”对话框,在对话框里找到并点选那个名为“jm.lsp”的文件,依次点击“加载”、“关闭”按钮,关闭对话框。在命令行里输入“jm”并回车,当提示“选择对象”的时候,用鼠标拖一个框将整个图形选中,按一下回车键,程序自动依次完成图形转换成“块”、用minsert命令多重插入、块图形匿名三个步骤,创建成无法炸开的图纸。
(defun c:JM(/ BLOCKNAME SELECTIONSET)
(vl-load-com)
(if (setq Selectionset (ssget))
(progn
(setq BlockName (getvar "CDATE"))
(command "block" BlockName '(0 0 0) Selectionset "" "minsert"
BlockName '(0 0 0) 1 1 0 2 2 0 0)
(vla-put-name (vla-item (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object)))
(vla-get-name (vlax-ename->vla-object (entlast)))) "*U")
(princ "n加密完成")
)
(princ "n没有选中图元")
)
(princ)
)