下午,同事传来一个图纸,听过是加密过的图,很多人都没有办法打开,抱着试一试的想法,接受了这个任务。
收到图纸打开后发现整个图在被块固化了,有分解命令根本就没有用。只是看到提示为“1个多重插入引用”。没法,以前是字典是我们最好的老师,现在我相信谷歌才是我们最好的老师。搜索一下,还发现有很多的这样子的文章,开始试了几个没有用,最后采用网易暖通huawencai大侠的做法终于搞定了。不敢独享,方法如下:
一、定义
1.“多重插入引用”的制作:
用minsert命令,提示块名,在cad工作目录下找一张图,键入这个图名,然后到提示行数或列数时,输入2以上,但行距或列距输入0。这样一个多重插入引用制作完成,无法用explode炸开了。多重块不是重复定义块,而是在矩形阵列中插入一个块的多重引用。多重块是由命令minsert插入一个块而形成,其在正常情况下不能被分解。但若是用普通的方法构建的多重块,可以删除掉,然后用insert再插入它原来引用的块即可。不过,若它原来引用的块是匿名块(即名称前带*的块,只能用程序构建),就不是那么简单的了。这是,你就需要程序(或者说插件)来还原。vlx程序就是一个插件。也就是我上面说的编程实现。若不会编程,也没有插件,下面的方法四(方法三也可以实现)。
二、分解
1、先在图层管理器里将锁定图层打开;
2、选中该“多重插入块”,在其属性里将行、列均改为“1″;
3、将下段保存为”exm.lsp” (DEFUN C:exm () (setvar ”cmdecho” 0) (SETQ STM (car (ENTSEL ”n点取多重块”))) (while stm (setq e (entget stm)) (setq stlx (cdr (assoc 0 e))) (if (= stlx ”INSERT”) (PROGN (setq r_zm70 (assoc 70 e)) (setq c_zm71 (assoc 71 e)) (setq r_dist_zm44 (assoc 44 e)) (setq c_dist_zm45 (assoc 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) ) ;;
4、在打开了含有多重插入块的图形文件里加载“exm.lsp”,运行“exm”根据提示选中多重插入块;
5、运行“explode”就可以将 多重插入块分解,大功告成。
AutoCAD多重插入引用
时间:2011-11-10 09:04:16 来源:未知
推荐文章