今天有個同事咨詢我,不知道是什么原因,文件超大,發(fā)過來一看,一個普通文件220MB,正常應(yīng)該就是幾百KB。為了排除是CAD病毒的原因,遠(yuǎn)程將她計(jì)算機(jī)上的*.lsp文件都刪除(如acad.lsp、acaddoc.lsp等,除了安裝目錄下以及自己保存的lsp之外)。用AutoCAD將文件打開,開始瘦身大變之旅。
1、運(yùn)行Erase命令,選擇對象輸入:ALL,然后輸入R(Remove)移除需要保留的實(shí)體。這樣將759個需要的實(shí)體從4487個垃圾實(shí)體堆中找出來。
2、用Purge命令清理所有多余的對象,保存,文件一下子由219MB變?yōu)?3MB,將近只有十分之一;保存時(shí)有7個“*警告* 多重從屬對象”,不清楚是什么東東,沒理它。
3、將整個文件用WBlock命令,塊寫整個文件,文件大小沒有變化。這是文件去除垃圾,使文件變小的常規(guī)方法,可以常用。
4、打開外部參照,發(fā)現(xiàn)上十個外部參照未成功加載,拆離所有外部參照。這里發(fā)現(xiàn)有趣的一點(diǎn),外部參照中部分為簽名,我大學(xué)同學(xué)和他同事的名字赫然在列,說明這個文件曾經(jīng)在他們單位流轉(zhuǎn)過,或插入過他們單位的Dwg文件。
5、復(fù)制需要的759個實(shí)體粘貼到新文件,保存,文件一下子變?yōu)?+MB,也是將近十分之一減少,還是不正常。保存時(shí),出現(xiàn)3個“*警告* 多重從屬對象”,感覺文件很可能大小與它有關(guān)。
6、百度“多重從屬對象”,查到方法,復(fù)制黑括號內(nèi)的內(nèi)容【(dictremove(namedobjdict)"ACAD_DGNLINESTYLECOMP")】粘貼到AutoCAD命令行,回車運(yùn)行即可。原因?yàn)椋簭囊粋€包含有 “DGN線型” 文件拷貝到別的DWG文件時(shí),導(dǎo)致DWG文件變得非常大,這是因?yàn)閺?fù)制過程中包含了大量的非必要數(shù)據(jù),這部分?jǐn)?shù)據(jù)無法體現(xiàn)及使用Purge命令清除。這些數(shù)據(jù)會伴隨著復(fù)制粘貼、塊插入、塊寫等命令跟隨到其他文件中。從這點(diǎn)可以看出,這個文件曾經(jīng)可能插入過或復(fù)制過地形圖文件,因?yàn)橛胁糠值匦螆D文件是用MicroStation編輯產(chǎn)生,由DGN文件另存為DWG文件。
7、再次執(zhí)行Purge命令,保存,文件變?yōu)?77KB,正常,是上一次的二十分之一。在Purge命令執(zhí)行中,清理了數(shù)百條多余信息,其中發(fā)現(xiàn)了“地下室”關(guān)鍵詞,說明這個文件很可能來自建筑設(shè)計(jì)或者在建筑設(shè)計(jì)中流轉(zhuǎn)過,因?yàn)楣吩O(shè)計(jì)中不涉及到“地下室”。
這真是一幅來源神奇的文件。

個人建議:無論是Dwg文件還是Doc/Docx文件,盡量從新文件開始,如果有需要的內(nèi)容,復(fù)制粘貼到新文件保存再開始,這樣無論文件大小還是文件出錯的可能性會大大降低。文件時(shí)間長了無論是Dwg還是Doc/Docx均容易出現(xiàn)問題,Excel文件尚未發(fā)現(xiàn)類似的問題。在Autodesk官網(wǎng)上,“old drawing”是文件損壞的原因之一。
2020年4月24日補(bǔ)充:
今天又發(fā)現(xiàn)了多個130MB的文件,直接運(yùn)行第6步,再運(yùn)行Purge命令,文件直接減為百KB級別。發(fā)現(xiàn)DGN線形的問題是一個較為普遍的問題,引起問題的原因可能是病毒,具體有待查證。