CAD多重插入引用问题
想必做cad方面久的人,一定会碰到拿过来的设计图怎么都修改不了的问题吧,在这里为大家做一个详细的解答。
主要原因是被加密过了。 多重插入引用的分解
炸开“多重插入引用”的方法以及制作
1.“多重插入引用”的制作:用minsert命令,提示块名,在cad工作目录下找一张图,键入这个图名,然后到提示行数或列数时,输入2以上,但行距或列距输入0。这样一个多重插入引用制作完成,无法用explode炸开了。多重块不是重复定义块,而是在矩形阵列中插入一个块的多重引用。多重块是由命令minsert插入一个块而形成,其在正常情况下不能被分解。但若是用普通的方法构建的多重块,可以删除掉,然后用insert再插入它原来引用的块即可。不过,若它原来引用的块是匿名块(即名称前带*的块,只能用程序构建),就不是那么简单的了。这是,你就需要程序(或者说插件)来还原。vlx程序就是一个插件。也就是我上面说的编程实现。若不会编程,也没有插件,下面的方法四(方法三也可以实现)。
1、炸开方法如下:
方法一:点击这个多重引用,看它的名字,然后再用minsert命令,插入这个名字,只不过都按默认的行数(1行)列数一直回车。这样插入的这个块就可以炸开了。
方法二:双击这个块,出现参照编辑对话框,点确定,出现参照编辑工具条;用explode炸开;然后点击参照编辑工具条从工作集删除对象,选中所有图形,回车;再点击参照编辑工具条上的放弃对参照的修改。此时再用explode就可以炸开了。
方法三:
1、打开原文件后,输出为*.wmf文件,
2、新建空*.DWG文件,插入*.wmf文件,
3、输入另外一个炸开命令:xplode回车
4、选图层(TA),大功告成。可惜的是文字都炸开了,填充也炸了,图层只有一个,而且文件比较大。附件为wmf文件(自己试过这种方法)
方法四:
1、在任何版本中打开图件(只要能打的开就行)
2、选中图,打开属性对话框,将行和列均改为1。
3、另存为R14以下(包括R14)版本格式。
4、打开R14,打开刚才另存的图,保存。(记住,这步尤其重要,必须是R14不能是cad2002及以上版本)好了,你再用任何版本的cad打开看看。另外一种方法就是编程,直接炸开即可。
有的CAD图形由于加了密,整张图纸无法分解,这时候我们就不能对里面的构件进行转化,如果你用分解命令命令行会提示找到1个,1 个是多重插入引用,此时是无法分解的。这时候可能是由于CAD加密造成的,我们可以用CAD的UNLOCKDWG命令对图纸进行解密,解密后的图纸就能用分解等相关命令进行操作了。注:该命令需要加载插件lockdwg.VLX支持,可以从网上下载。
参考:http://blog.sina.com.cn/ 插件下载地址:
2、之二(主要推荐)
把以下内容保存为lsp文件(如exm.lsp),加载后运行exm既可把“多重插入块”转换为“普通块”,然后既可用“explode”分解。加载后运行lockb可把“普通块”转换为“多重插入块”
;;------------------------------ ;;转换“多重插入块”为“普通块”。 (DEFUN C:exm () (setvar \"cmdecho\" 0) (SETQ STM (car (ENTSEL \"\\n点取多重块\"))) (while stm (setq e (entget stm)) (setq stlx (cdr (aoc 0 e))) (if (= stlx \"INSERT\") (PROGN (setq r_zm70 (aoc 70 e)) (setq c_zm71 (aoc 71 e)) (setq r_dist_zm44 (aoc 44 e)) (setq c_dist_zm45 (aoc 45 e)) (setq e (subst (cons 44 0) r_dist_zm44 e)) (setq e (subst (cons 45 0) c_dist_zm45 e)) (setq e (subst (cons 70 0) r_zm70 e)) (setq e (subst (cons 71 0) c_zm71 e)) (setq e (subst (list 100 \"AcDbBlockReference\") (list 100 \"AcDbMInsertBlock\") e)) (entmake e) (entdel stm) )) (SETQ STM (car (ENTSEL \"\\n点取下一多重块\"))) ) (setvar \"cmdecho\" 1) ) ;;------ ;;转换“普通块”为“多重插入块” (DEFUN C:lockb () (setvar \"cmdecho\" 0) (SETQ STM (car (ENTSEL \"\\n点取块\"))) (while stm (setq e (entget stm)) (setq stlx (cdr (aoc 0 e))) (if (= stlx \"INSERT\") (PROGN (setq r_zm70 (aoc 70 e)) (setq c_zm71 (aoc 71 e)) (setq e (subst (cons 70 1) r_zm70 e)) (setq e (subst (cons 71 1) c_zm71 e)) (setq e (subst (list 100 \"AcDbMInsertBlock\") (list 100 \"AcDbBlockReference\") e)) (entmake e) (entdel stm) )) (SETQ STM (car (ENTSEL \"\\n点取下一块\"))) ) (setvar \"cmdecho\" 1) ) ;;------ 原文:http://www.daodoc.com/ ------------------
3、之三
在ACAD中不能分解的情况如下:
1.EXPLMODE系统变量设置为0的时候,插入了一个不等比的块. 2.以不等比的方式插入一个三维实体作为对象的块. 3.无名块
4.使用MINSERT命令插入超过1个块. 5.外部参照文件. 6.对象被置为锁定层.
4、之四
多重插入引用就是我们经常会使用的图纸加密技术。永远无法解开的死锁。 你选中图纸中的对象后,先看看特性是什么,选中后看特性,是“光栅文件”,你拿原子弹都无法炸开。的。
5、之五
解决方法:全选 按.x 回车