下午,同事傳來一個圖紙,聽過是加密過的圖,很多人都沒有辦法打開,抱著試一試的想法,接受了這個任務。
收到圖紙打開后發(fā)現(xiàn)整個圖在被塊固化了,有分解命令根本就沒有用。只是看到提示為“1個多重插入引用”。沒法,以前是字典是我們最好的老師,現(xiàn)在我相信谷歌才是我們最好的老師。搜索一下,還發(fā)現(xiàn)有很多的這樣子的文章,開始試了幾個沒有用,最后采用網(wǎng)易暖通huawencai大俠的做法終于搞定了。不敢獨享,方法如下:
一、定義
1.“多重插入引用”的制作:
用minsert命令,提示塊名,在cad工作目錄下找一張圖,鍵入這個圖名,然后到提示行數(shù)或列數(shù)時,輸入2以上,但行距或列距輸入0。這樣一個多重插入引用制作完成,無法用explode炸開了。多重塊不是重復定義塊,而是在矩形陣列中插入一個塊的多重引用。多重塊是由命令minsert插入一個塊而形成,其在正常情況下不能被分解。但若是用普通的方法構建的多重塊,可以刪除掉,然后用insert再插入它原來引用的塊即可。不過,若它原來引用的塊是匿名塊(即名稱前帶*的塊,只能用程序構建),就不是那么簡單的了。這是,你就需要程序(或者說插件)來還原。vlx程序就是一個插件。也就是我上面說的編程實現(xiàn)。若不會編程,也沒有插件,下面的方法四(方法三也可以實現(xiàn))。
二、分解
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”根據(jù)提示選中多重插入塊;
5、運行“explode”就可以將 多重插入塊分解,大功告成。
AutoCAD多重插入引用
時間:2011-11-10 09:04:16 來源:未知
推薦文章