分享

为什么CAD图纸很小,却打开操作很慢、占用内存很多?

 昵称58337436 2019-03-29

安装 文件 异常、退出 复制粘贴 基本操作 快捷键 界面 设置 捕捉 视图 坐标定位 选择、组 图层 颜色 线型 线宽  二维绘图 多段线 填充 标注 图块 文字\字体 表格 图形修改 三维建模 外部参照 光栅图像 布局和视口 打印 面积、长度 综合技巧 提高教程  工具插件 图库资源 二维练习  三维练习

前几天有网友问了类似的问题,图纸不大,只有几兆,但打开任务管理器,查看内存却占用4个多G,如下图所示。

其实这个问题之前的文章中介绍过,当时文章的标题是:为什么图纸很小,但打开很慢或操作很卡?图纸小但占用内存多的问题类似,因此决定将之前的文章重新整理一下。

如果是一张几十兆甚至上百兆的图纸,用CAD图纸打开和操作速度慢、占用内存多,大家觉得很正常,但偶尔会碰到这种图纸,图纸只有一两兆,可是用CAD打开时非常慢,内存占用特别多,打开后操作也相当慢,这是为什么呢?

CAD图纸异常大时怎么处理?

之前研究过几张这类图纸,发现原因是一样的,都是因为密集填充引起的。后来研究了网友的的其他图纸,发现原因并不止这一种,这里给大家简单介绍几种情况,遇到类似图纸的时候可以先从这几个方面来分析。

一、密集或单元数非常多的填充

以前遇到过一些打开和操作特别慢的图纸有一个共同点,要么图中有大面积的填充,要么错误地将线性填充图案比例设置得过小当做实体SOLID填充使用。

一个填充图案在保存图纸时只需要记录一些参数,例如边界线、原点、图案样式名、比例等等,使用SOLID填充或图形填充,比例设置为1或1000对于保存文件大小基本没有影响。

但要将填充显示出来,使用SOLID或普通填充图案,比例设置成1或1000就相差很多了。比如说在一个矩形区域内填充ANSI31的图案,比例设置100时和设置成1,图纸保存的大小几乎不会变化,但线的数量却差将近100倍,如下图所示。

而SOLID填充没有比例,SOLID填充会分解成三角形显示,SOLID显示数据量的大小主要取决于边界的复杂程度,比如一个矩形会分解成两个三角形,一个圆就会分解成更多的三角形,如果边界复杂,中间再带曲线的孤岛三角形会更多。但如果用密集的线型填充去当SOLID用的话,数据量就会大很多。

CAD填充需要了解的重要问题之一(图案篇)

CAD填充需要了解的重要问题之二(比例篇)

之前就见过一批给排水图纸就是因为将线性填充比例设置得极小来当SOLID用导致出现了打开和操作极慢的情况,下面我们就看一下这些图纸是怎么回事。有一张给排水的图只有2MB多一点,这张图打开巨慢,在32位的CAD里打开有时甚至会退出。通过排查终于找到问题所在。问题出在其中一个消火栓,如下图所示。

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

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

在CAD中有一个变量HPMAXLINES,可以设置单个填充对象线数量的最大值,默认值是1000000。当填充的线数量超过这个数值时,填充直接显示为SOLID填充。当遇到图纸很小,但打开很慢或打开时内存溢出的图纸时,可以先适当调低这个设置,然后再打开图纸试试。

比如说,输入HPMAXLINES命令,回车,将这个数值设置成300000,然后打开上面那张图纸,由于消火栓的填充线数超过300000,打开时被显示为SOLID填充,因此就可以很轻松就打开,缩放、做其他操作也很顺畅。

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

如果是尺寸很大的规划或地形图中使用填充,填充比例虽然很大,但由于面积很大,填充单元和线数确实很多,也可以将HPMAXLINES变量值线调整小,这样可以加快开图和编辑的速度,到打印前再将HPMAXLINES设置回正常值。

二、大量的区域覆盖WIPEOUT

有网友发过来的图纸也是2MB多,打开还不算太慢,但打开后缩放和平移的时候非常卡,网友以为是图块太多,打开图看了一下,图块并不多,有一些填充,但看上去不密集,将填充和图块全部删除后,仍然很卡,于是用快速选择一种对象一种对象地删除,最终终于发现原来跟图中大量的区域覆盖WIPEOUT,如下图所示。

每日一贴——CAD的区域覆盖WIPEOUT使用的一些技巧

里面有3963个区域覆盖,将这些区域覆盖删除后,缩放和平移一下子就顺畅了。

这张图的冗余数据并不止区域覆盖,还有一些多余的圆、直线、多段线,但造成缩放和平移慢的原因就是区域覆盖。区域覆盖其实相当于一张单色的图片,但为什么大量的区域覆盖会导致AUTOCAD操作这么慢我也不太理解,而且我试了最新的AUTOCAD 2018版也是如此,但浩辰CAD里打开缩放和平移还很顺畅。

后面又有其他网友也遇到了类似的图纸,因此我针对这个问题专门发了一篇文章。

为什么CAD图纸很小但缩放平移时卡顿?

三、图插入了复杂的图纸或图像

图纸插入外部参照XREF或者光栅图像的时候,图纸中记录的只是外部参照图纸和光栅图像的文件名,图纸的大小并不会增加多少。有些图纸中只是画了几条线,但可能插入了一张几十MB的图纸甚至上百MB的光栅图像,当打开图纸的时候,插入的外部参照和光栅图像就要被读取和显示出来,图纸打开和操作的速度会很慢,如果内存不足,同样可能会打不开

什么是CAD外部参照?外部参照和图块有什么不同?

每日一贴——CAD图纸中如何插入光栅图像?

上面是我目前遇到的几种情况,大家遇到类似情况首先确认是否插入了复杂的外部参照、光栅图像或其他数据,如果没有,就需要检查一下是否有密集填充。区域覆盖主要影响缩放、平移的速度,对内存占用影响倒不大。

如果你的图纸不属于上述任何原因,可以发过来看一下。如果你还知道其他可能导致图小操作慢、内存大的原因,也请留言分享一下。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多