一张不算复杂的平面图,文件却有 80MB;打开要等三分钟,平移一下鼠标就转圈,保存一次能去接杯水回来。换电脑、加内存、关掉硬件加速……试了一圈都没用。
问题不在电脑,在文件里堆的垃圾。CAD 文件在反复编辑、复制粘贴、插入外部图块的过程中,会累积大量看不见但占空间的东西:用过的图层、插入又删掉的块定义、从别的图复制过来的标注样式、MicroStation 转图带进来的线型数据。这些内容你在图上一个都看不到,但它们每个都占体积、每个都在拖慢打开速度。
一、先搞清楚:体积都被谁占了
按经验,一张「莫名其妙变大」的图纸,体积构成大致是这样:
| 占比 | 内容 | 能否清理 |
|---|---|---|
| 30%~50% | 未使用的块定义(复制粘贴带进来的) | 能,PURGE |
| 10%~25% | DGN 线型数据(外部转图带入) | 能,需专门处理 |
| 5%~15% | 未使用的图层/文字样式/标注样式 | 能,PURGE |
| 5%~10% | 重复重叠的对象 | 能,OVERKILL |
| 5%~20% | 光栅图像(扫描底图、卫星图) | 能,压缩或转外部参照 |
| 其余 | 真实图形数据 | 不该清 |
关键认知:真实有用的图形数据往往只占一小半。所以瘦身的空间通常远超想象,从 80MB 压到 8MB 是很常见的,而且压完之后图形一个不少。
二、六步瘦身流程(按力度从轻到重)
第 1 步:AUDIT 修复,先治病再减肥
命令行输入 AUDIT,问「是否修复错误」时输入 Y。
这一步是清理图纸里的错误数据。必须先做——如果图里有损坏的对象,后面的清理命令可能中断甚至崩掉。AUDIT 会报告修复了多少个错误,如果报告有几十个错误,说明这张图经历比较复杂,清理后要仔细检查一遍。
第 2 步:PURGE 清理,而且要清三遍
命令行输入 PURGE,勾选「清理嵌套项目」,然后全选清理。
为什么一遍不够:CAD 的清理是分层的。第一遍清掉的是没被引用的块,但这些块内部可能还引用了别的块——只有第一遍清完,第二遍才能看到那些被引用的块变成了未引用状态。实测经验:
- 第 1 遍:清掉大部分垃圾,体积通常降 20%~40%
- 第 2 遍:又能清出一批嵌套块定义
- 第 3 遍:基本清干净了
用 -PURGE(前面加横杠的命令行版本)可以清得更彻底,特别是能清理 RegApp 条目(注册应用程序表)——这是各种第三方插件写进图纸的残留数据,图形界面版本的 PURGE 看不到它。
第 3 步:OVERKILL 删除重复对象
命令行输入 OVERKILL,框选全图,按默认设置执行。
这一步处理的是重复线和重叠对象。复制粘贴、多次分解块、反复偏移,都会在同一位置堆好几条一模一样的线。这些线在屏幕上完全重合,你看不出来,但每条都要参与渲染计算。
OVERKILL 还能合并端点重合的线段,把断开的多段线接起来。注意勾选设置里的「忽略对象特性」要谨慎——如果不同图层上的重合线被合并了,图层信息会丢失,出图时线型可能不对。
第 4 步:处理光栅图像
输入 IMAGEATTACH 可以看到图里插入了哪些图像。
扫描底图、卫星影像、效果图这类光栅图像是体积大户。三种处理方式:
- 压缩:选中图像右键 → 图像 → 质量,改成较低质量(看图够用就行)
- 裁剪:只保留实际需要的区域,裁掉的部分不占空间
- 转外部参照:图像不嵌入图纸,只存路径链接——效果最明显,但发给别人时必须连图像文件一起发
第 5 步:清理 DGN 线型污染(重点)
这一条知道的人不多,但它经常是文件暴涨的真正元凶。
从 MicroStation( Bentley 的设计软件)或者经过某些转换工具转过来的 DWG,会带进来一种叫 DGN 线型的数据。这种线型数据会成百上千地堆积在图纸里,每条都占空间,而且用 PURGE 清不掉。
判断方法:命令行输入 DGNLSCONV(或在新版本里用 -PURGE 的 R 选项清理 RegApp 后再试)。更直接的判断:如果一张不复杂的图体积异常大、PURGE 清了三遍体积基本没变,八成就是 DGN 线型污染。
清理办法:DGNLSCONV 命令把 DGN 线型转换成 CAD 原生线型,或者用 DGNPURGE 直接清除。
第 6 步:WBLOCK 写块大法(终极手段)
如果上面五步做完体积还是不理想,用这一招——实测能把文件从 80MB 压到 8MB,成功率最高。
操作:
- 命令行输入
WBLOCK(写块) - 源选择「整个图形」,指定保存路径
- 保存后,新建一张空白图,用
INSERT把刚才存的块插进来,插入点填0,0 - 输入
ZOOM→E(范围缩放)确认图形完整
为什么这么有效:WBLOCK 相当于把图形「重新倒一遍」,只带走真正被引用的对象定义,所有冗余的字典条目、注册表、历史残留全部丢弃。
两个注意事项:
- 写块前一定要先备份原图——写块是不可逆的,虽然图形不会丢,但某些特性(如字段、动态块的部分属性)可能变化
- 如果图里有外部参照,写块后参照路径可能需重新指定
三、每一步的体积对照(实测案例)
一张经历过多轮修改的厂区平面图,清理过程中的体积变化:
| 步骤 | 操作 | 体积 | 耗时 |
|---|---|---|---|
| 初始 | — | 78.4 MB | — |
| 1 | AUDIT 修复(修复 41 个错误) | 77.9 MB | 约 20 秒 |
| 2 | PURGE 三遍 | 46.2 MB | 约 1 分钟 |
| 3 | OVERKILL 去重 | 41.8 MB | 约 1 分钟 |
| 4 | 光栅图像转外部参照 | 22.5 MB | 约 2 分钟 |
| 5 | DGNPURGE 清线型 | 14.3 MB | 约 30 秒 |
| 6 | WBLOCK 写块重建 | 8.1 MB | 约 3 分钟 |
最终体积是原来的 10.3%,图形内容一个不少,打开速度从三分钟变成几秒。
四、容易被忽略的另外四个拖慢元凶
有时候文件不算特别大,但就是卡,问题出在这几处:
1. 图层过滤器过多
从别人的图里复制内容时,会连带复制图层过滤器(尤其是「组过滤器」)。累积几百个过滤器后,每次打开图层特性管理器都要卡一下。
清理:图层特性管理器里右键删掉不需要的过滤器,或者用 LAYERFILTERALERT 控制是否提示。也可以在选项里把 LAYERFILTERALERT 设为 0 关闭警告。
2. 大量填充(HATCH)
密集的填充图案,特别是实体填充和小间距的斜线填充,会严重拖慢显示。检查方法:输入 QSELECT 筛选图案填充,看数量。
处理:确认填充是否在某个被关闭或冻结的图层上;把不必要的填充分解或删除;出图时可以考虑用 HATCHGENERATEBOUNDARY 重生成边界。
3. 注释性对象(Annotative)
注释性对象是好功能,但如果一个对象挂了几十个注释比例,每个比例都要计算一次显示位置。用 ANNOALLVISIBLE 或清理对象的多余比例能缓解。
4. 缩略图预览
选项 → 打开和保存 → 取消勾选「保存缩略图预览图像」。这个不影响图形,能省一点体积,也加快保存速度。
五、日常防胖习惯
- 不要直接复制粘贴整张图——用「复制」命令整体复制会带进来对方的所有块定义和样式。要局部复制时,先
PURGE源图,或者复制后立即PURGE - 外部参照优先于插入——底图、地形图用
XREF参照进来,主文件永远保持轻量 - 定期 PURGE——出图前清一次,养成习惯比事后救火省事
- 交付前 WBLOCK 一遍——发给甲方或合作单位之前写块重建一次,既瘦身又清净
- 别用高分辨率光栅图当底图——扫描件够用就行,300dpi 的 A0 扫描图轻松就是几十 MB
六、命令速查表
| 命令 | 作用 | 使用要点 |
|---|---|---|
| AUDIT | 修复图纸错误 | 清理前必做,选 Y 修复 |
| PURGE | 清理未使用项 | 勾嵌套,连做三遍 |
| -PURGE | 命令行版清理 | 能清 RegApp 条目 |
| OVERKILL | 删除重复对象 | 谨慎勾选忽略特性 |
| DGNLSCONV | 转换 DGN 线型 | 处理外部转图污染 |
| DGNPURGE | 清除 DGN 数据 | 体积异常大时优先试 |
| WBLOCK | 写块重建 | 终极瘦身,先备份 |
| XREF | 外部参照管理 | 底图走参照不嵌入 |
七、清理后必须做的三项检查
瘦身是有风险的,做完这三步再交付:
- 1. 图形完整性:
ZOOM→E范围缩放,肉眼扫一遍有没有缺块缺线 - 2. 图层与线型:打开图层特性管理器,确认关键图层还在、线型没退化成 Continuous
- 3. 打印自检:
PLOT虚拟打印 PDF,逐项核对线宽和文字——这一项最容易被跳过,也最容易在交付后被发现
如果需要按块名、按数量核对清理结果,可以用我们站的 图块统计工具 导出设备清单做前后对比;量面积、核对标注数字则用 面积统计工具,清理前后各跑一次,数字对得上就说明没有误删。
八、什么时候不该清
两种情况按下不动:
- 图纸还在多方协同修改中——你 PURGE 掉的块定义,可能是别人下一步要用的,清完对方打开会报缺块
- 甲方明确要求保留全部图层——有些审图单位要求图层完整,清理前先问清楚
拿不准就先另存一份再清理,原图留底,这是零成本的自保。
💬 评论 (0)
暂无评论,快来抢沙发~