CAD圖紙很小,卻打開很慢甚至打不開的原因

2013-11-17 CAD小苗 真空技術(shù)網(wǎng)整理

  幾十兆甚至上百兆的圖紙用CAD圖紙打開和操作速度慢很正常,但偶爾會(huì)碰到這種圖紙,圖紙只有一兩M甚至幾十K,可是用CAD打開時(shí)非常慢,打開后操作也相當(dāng)慢,如果之前打開了其他圖紙,打開這種圖紙時(shí)還會(huì)因?yàn)閮?nèi)存不足導(dǎo)致CAD退出,這是為什么呢?

  我正好碰到了幾張這樣的圖紙,研究了一下,發(fā)現(xiàn)他們有一個(gè)共同點(diǎn),就是有非常非常密集的填充,出現(xiàn)這種情況的原因有兩種:一是本來應(yīng)該用SOLID填充,但卻是用了其他有線條組成的填充樣式,由于要得到類似SOLID填充的效果,填充比例設(shè)置得非常;二是確實(shí)需要用線條填充圖案,但填充區(qū)域面積非常大,從而導(dǎo)致填充的線非常多。無論哪種情況下,如果這樣的填充在圖中只有一兩個(gè),可能還沒什么關(guān)系,但問題就出在有時(shí)這些填充被定義成圖塊,會(huì)在圖中反復(fù)插入,或者規(guī)劃圖中有很多大區(qū)域需要填充,這類密集填充一旦數(shù)量比較多,就會(huì)照成CAD打開和操作慢。

  上面說的只是現(xiàn)象,既然有這種情況,為什么保存的CAD文件那么小,為什么在打開和操作的時(shí)候有會(huì)占用內(nèi)存非常多,而且反應(yīng)特別慢呢?要弄清楚這個(gè)問題我們需要從CAD保存圖形的格式和處理文件的模式說起。對(duì)于一個(gè)填充圖案,在圖紙中只需要保存一些參數(shù),例如原點(diǎn)、圖案樣式名、比例等等,使用SOLID填充或線型填充對(duì)于保存文件大小基本沒有影響,只是圖案樣式名不同而已。而要打開和顯示這個(gè)填充圖案就不一樣了,如果是SOLID填充的話,CAD會(huì)根據(jù)邊界形狀將填充分解為一個(gè)或多個(gè)實(shí)線(SOLID)來進(jìn)行顯示,即使非常復(fù)雜的形狀顯示數(shù)據(jù)量也不會(huì)太大,如果是線型填充圖案,就要計(jì)算所有線的顯示數(shù)據(jù),保證每條線都能顯示出來。

  可能這么講大家還是不太理解,我用我手頭的一張圖紙跟大家講一下就很容易理解了。我這兒有一張給排水的圖,圖紙不大,2MB多一點(diǎn)。截圖如下:

CAD圖紙很小,卻打開很慢甚至打不開的原因

  當(dāng)初拿到這張圖,打開巨慢,有時(shí)還會(huì)退出。我一點(diǎn)點(diǎn)的查,終于找到問題所在。問題出在其中一個(gè)消火栓,如下圖所示。

CAD圖紙很小,卻打開很慢甚至打不開的原因

  這里肯定應(yīng)該用SOLID填充,結(jié)果用的是ANSI37,比例設(shè)置成0.01。我將這個(gè)填充復(fù)制到一張新圖中炸開,你知道有多少條線嗎?90多萬條,圖中只有這么一個(gè)消火栓還好,這一張圖中這樣的消火栓有六七十個(gè),想想這得有多少條線啊!幾千萬條線,CAD吃不消也很正常了。

  遇到這種圖應(yīng)該怎么解決呢?圖紙能打開的話還好說,找到問題所在,將填充圖案改成SOLID。如果上面的消火栓是圖塊還比較簡(jiǎn)單,對(duì)一個(gè)圖塊參照編輯后,其他圖塊就自動(dòng)修改了。如果圖很復(fù)雜,要從中找出問題來很費(fèi)勁,或者由于內(nèi)存不足根本就打不開圖紙,那該怎么辦呢?有沒有更好的方法呢?

  方法倒有一個(gè),在CAD(僅適用于AUTOCAD和浩辰CAD8)中有一個(gè)變量,可以設(shè)置單個(gè)填充線數(shù)量的最大值。當(dāng)填充的線數(shù)量超過這個(gè)數(shù)值時(shí),填充直接顯示為SOLID填充。這個(gè)變量是HPMAXLINES,默認(rèn)值是1000000。當(dāng)遇到圖紙很小,但打開很慢或打開時(shí)內(nèi)存溢出的圖紙時(shí),可以先適當(dāng)調(diào)低這個(gè)設(shè)置,然后再打開圖紙。比如說,輸入HPMAXLINES命令,回車,將這個(gè)數(shù)值設(shè)置成300000萬,然后打開上面那張圖紙,由于消火栓的填充的線數(shù)超過300000,打開時(shí)被顯示為SOLID填充,因此就可以很輕松就打開,縮放、做其他操作也很順暢。

  這種方法只能暫時(shí)解決你打開和操作的問題,如果確認(rèn)是使用了錯(cuò)誤的填充圖案,最好能找出來并進(jìn)行修改,修改后保存圖紙,這樣以后自己或其他人在使用這張圖紙的時(shí)候就不會(huì)面臨相同的問題了。

  大家要注意,如果沒有特殊需要,做設(shè)備圖塊、公司LOGO等圖形時(shí),盡量使用SOLID填充,避免出現(xiàn)類似問題。而且如果做圖的時(shí)候不注意,后面再想找出問題出在什么地方很困難。

  當(dāng)然文件打不開原因還有很多種,比如說文件數(shù)據(jù)錯(cuò)誤,文件損壞等等,這些情況都應(yīng)該會(huì)有相應(yīng)的提示。小文件、打開慢、內(nèi)存占用大很有可能是這個(gè)原因,可以試試這樣的方法。

  AUTOCAD及同類CAD軟件都會(huì)遇到類似問題,但HPMAXLINES這個(gè)變量并不是所有CAD都有,除了AUTOCAD,我只看到浩辰CAD8有這個(gè)變量。