CAD图纸很小,却打开很慢甚至打不开的原因

2013-11-17 CAD小苗 真空技术网整理

  几十兆甚至上百兆的图纸用CAD图纸打开和操作速度慢很正常,但偶尔会碰到这种图纸,图纸只有一两M甚至几十K,可是用CAD打开时非常慢,打开后操作也相当慢,如果之前打开了其他图纸,打开这种图纸时还会因为内存不足导致CAD退出,这是为什么呢?

  我正好碰到了几张这样的图纸,研究了一下,发现他们有一个共同点,就是有非常非常密集的填充,出现这种情况的原因有两种:一是本来应该用SOLID填充,但却是用了其他有线条组成的填充样式,由于要得到类似SOLID填充的效果,填充比例设置得非常小;二是确实需要用线条填充图案,但填充区域面积非常大,从而导致填充的线非常多。无论哪种情况下,如果这样的填充在图中只有一两个,可能还没什么关系,但问题就出在有时这些填充被定义成图块,会在图中反复插入,或者规划图中有很多大区域需要填充,这类密集填充一旦数量比较多,就会照成CAD打开和操作慢。

  上面说的只是现象,既然有这种情况,为什么保存的CAD文件那么小,为什么在打开和操作的时候有会占用内存非常多,而且反应特别慢呢?要弄清楚这个问题我们需要从CAD保存图形的格式和处理文件的模式说起。对于一个填充图案,在图纸中只需要保存一些参数,例如原点、图案样式名、比例等等,使用SOLID填充或线型填充对于保存文件大小基本没有影响,只是图案样式名不同而已。而要打开和显示这个填充图案就不一样了,如果是SOLID填充的话,CAD会根据边界形状将填充分解为一个或多个实线(SOLID)来进行显示,即使非常复杂的形状显示数据量也不会太大,如果是线型填充图案,就要计算所有线的显示数据,保证每条线都能显示出来。

  可能这么讲大家还是不太理解,我用我手头的一张图纸跟大家讲一下就很容易理解了。我这儿有一张给排水的图,图纸不大,2MB多一点。截图如下:

CAD图纸很小,却打开很慢甚至打不开的原因

  当初拿到这张图,打开巨慢,有时还会退出。我一点点的查,终于找到问题所在。问题出在其中一个消火栓,如下图所示。

CAD图纸很小,却打开很慢甚至打不开的原因

  这里肯定应该用SOLID填充,结果用的是ANSI37,比例设置成0.01。我将这个填充复制到一张新图中炸开,你知道有多少条线吗?90多万条,图中只有这么一个消火栓还好,这一张图中这样的消火栓有六七十个,想想这得有多少条线啊!几千万条线,CAD吃不消也很正常了。

  遇到这种图应该怎么解决呢?图纸能打开的话还好说,找到问题所在,将填充图案改成SOLID。如果上面的消火栓是图块还比较简单,对一个图块参照编辑后,其他图块就自动修改了。如果图很复杂,要从中找出问题来很费劲,或者由于内存不足根本就打不开图纸,那该怎么办呢?有没有更好的方法呢?

  方法倒有一个,在CAD(仅适用于AUTOCAD和浩辰CAD8)中有一个变量,可以设置单个填充线数量的最大值。当填充的线数量超过这个数值时,填充直接显示为SOLID填充。这个变量是HPMAXLINES,默认值是1000000。当遇到图纸很小,但打开很慢或打开时内存溢出的图纸时,可以先适当调低这个设置,然后再打开图纸。比如说,输入HPMAXLINES命令,回车,将这个数值设置成300000万,然后打开上面那张图纸,由于消火栓的填充的线数超过300000,打开时被显示为SOLID填充,因此就可以很轻松就打开,缩放、做其他操作也很顺畅。

  这种方法只能暂时解决你打开和操作的问题,如果确认是使用了错误的填充图案,最好能找出来并进行修改,修改后保存图纸,这样以后自己或其他人在使用这张图纸的时候就不会面临相同的问题了。

  大家要注意,如果没有特殊需要,做设备图块、公司LOGO等图形时,尽量使用SOLID填充,避免出现类似问题。而且如果做图的时候不注意,后面再想找出问题出在什么地方很困难。

  当然文件打不开原因还有很多种,比如说文件数据错误,文件损坏等等,这些情况都应该会有相应的提示。小文件、打开慢、内存占用大很有可能是这个原因,可以试试这样的方法。

  AUTOCAD及同类CAD软件都会遇到类似问题,但HPMAXLINES这个变量并不是所有CAD都有,除了AUTOCAD,我只看到浩辰CAD8有这个变量。