一次搞懂AD导出Gerber与CAM光绘的底层映射逻辑
你有没有遇到过这样的情况:在Altium Designer里辛辛苦苦画完板子,信心满满地导出Gerber发给工厂,结果三天后收到回复——“阻焊开窗错了”、“丝印反了”、“钻孔对不上”?更离谱的是,明明自己用查看器检查过,怎么还会出问题?
别急,这并不是你的操作失误,而是很多工程师都踩过的坑:我们以为输出了一个标准文件,但其实只完成了“生成数据”的第一步,还没打通“被正确理解”这一关。
今天我们就来彻底拆解这个问题的核心——Altium Designer导出的Gerber文件,是如何被PCB厂的CAM系统识别并转化为实际生产的光绘底片的。只有真正理解这个映射过程,才能做到“所见即所得”,避免反复改版、延误进度。
从设计到制造:一条常被忽视的数据链路
在大多数人的认知中,PCB设计流程是这样的:
画图 → DRC → 导出Gerber → 发给厂家 → 等板子回来
但实际上,在“导出Gerber”和“开始生产”之间,还有一个关键环节:CAM工程审核(CAM Engineering Review)。
当你把一包.gbr和.drl文件上传到工厂系统后,并不会直接送去曝光。这些原始数据会先由CAM工程师导入专业软件(如Ucamco U1200、Genesis等),进行一系列解析、校验、补偿和拼版操作,最终生成可用于光绘机或LDI设备的指令。
换句话说:
你在AD里看到的图形 ≠ 工厂机器看到的图形
除非你知道它们之间的翻译规则。
而这场“跨系统对话”的通用语言,就是Gerber RS-274X 格式。
Altium中的“层”到底是什么?别再按名字猜用途了!
我们常说“Top Layer对应顶层走线”,“Solder Mask是阻焊层”。但这只是功能描述,不是技术本质。在AD内部,“层”其实是一种带有特定渲染属性的二维图形容器。
层的本质:一个带标签的画布
每个层都有三个决定性属性:
1.物理类型(如Signal、Mask、Silk)
2.极性模式(Positive / Negative)
3.是否参与输出
举个例子:你画了一根走线,在Top Layer上它是正像图形——有线的地方就有铜;但在Top Solder Mask上,同样的焊盘却是负像图形——有图形的地方反而要去掉绿油。
如果这两个层导出时极性设置错误,就会导致该露铜的地方被盖住,不该露的地方开了大窗。
常见层别及其默认输出扩展名
| AD层名称 | 输出用途 | 推荐扩展名 |
|---|---|---|
| Top Layer | 顶层线路 | .GTL |
| Bottom Layer | 底层线路 | .GBL |
| Top Solder Mask | 顶层阻焊开窗 | .GTS |
| Bottom Solder Mask | 底层阻焊开窗 | .GBS |
| Top Overlay | 顶层丝印文字 | .GTO |
| Bottom Overlay | 底层丝印文字 | .GBO |
| Mechanical 1 | 板框轮廓 | .GM1 |
| Keep-Out Layer | 禁布区边界 | .GKO |
⚠️ 注意:这些扩展名只是行业惯例,并非强制标准!有些工厂甚至要求统一用.gbr结尾。真正重要的是——文件内容必须与层功能严格匹配。
Gerber RS-274X 到底记录了什么?不只是坐标那么简单
很多人以为Gerber就是一堆XY坐标点,其实它是一套完整的矢量绘图指令集。我们可以把它想象成一台老式绘图仪的操作手册:告诉机器“用哪个笔头(aperture)、移动到哪、画线还是填充”。
一段真实的Gerber代码长什么样?
%MOMM*% ← 单位设为毫米 %FSLAX25Y25*% ← 坐标精度2:5(小数点后5位) %ADD10C,0.2*% ← 定义D10为直径0.2mm圆形光圈 %LPD*% ← 极性设为正像(Dark) D10* ← 调用D10光圈 X100000Y80000D02* ← 快速移动至(100,80) D01* ← 开始绘制 X105000Y80000D01* ← 向右画5mm直线 M02* ← 文件结束这段代码描述了一个简单的水平走线。注意几个关键细节:
%MOIN*%或%MOMM*%决定了单位制式,一旦选错,整个图形会放大或缩小25.4倍;D02是抬笔,D01是落笔曝光,控制连续路径;- 极性
%LPD*%表示“正像”,即图形区域保留材料; - 所有Aperture定义都内嵌在文件中(RS-274X特性),无需额外提供
.rep文件。
这就是为什么RS-274X被称为“自包含格式”——只要一个文件,就能完整还原图形。
为什么你的Gerber到了工厂就“变样”?四个高频雷区解析
即使你在AD里配置无误,也有可能因为以下几个隐藏因素导致输出失真。
雷区一:误启“镜像”选项,丝印全反了
在【Gerber Setup】→【General】页签中有一个“Mirror Layers”选项,绝对不能勾选!
一旦启用,所有图形都会沿X轴翻转。对于双面贴片的板子来说,Bottom Silkscreen看起来是对的(因为要透过基材看),但如果你导出了Bottom Copper镜像版,那底层线路就完全颠倒了。
🔧解决方案:永远关闭“Mirror”功能。需要镜像视图时,请使用View → Mirror Layers临时查看即可。
雷区二:单位不一致,图纸缩放10倍
某次项目中,团队成员导出时用了Inch单位,而工厂默认接收MM格式。结果本该是6mil线宽的信号线变成了152mil(约3.8mm),直接被判为异常高风险单。
虽然现代CAM软件能自动检测单位,但并非100%可靠。
🔧解决方案:
- 统一使用公制(Millimeters)
- 在Gerber头部添加注释说明:G04 UNIT=MM, PRECISION=2.5 *
- 在交付包中附带Readme.txt注明单位制式
雷区三:机械层用途未定义,关键信息丢失
Altium支持多达32个Mechanical Layer,但默认情况下它们不会自动关联到任何输出层。如果你把板框画在Mechanical 3上,却没有在Gerber输出中指定该层参与Plotting,那么最终就没有板外形!
更糟的是,某些厂商会将未命名的Mechanical Layer当作装配图处理,造成误解。
🔧解决方案:
- 使用【Layer Stack Manager】明确每一层的用途
- 在【Gerber Setup】→【Layers】中手动勾选需要输出的Mechanical Layer
- 文件命名建议体现用途,例如:ProjectName_Boundary.gm1,ProjectName_Keepout.gko
雷区四:负片层极性反转,电源层短路
多层板中常见的Internal Plane(如GND/VCC)通常采用负片设计——整层铺铜,通过图形“挖洞”来隔离网络。
这类层在Gerber中必须以负极性(Negative Polarity)输出,否则CAM系统会将其解释为“只保留那些孤立的小块”,从而引发大面积断路。
🔧解决方案:
- 在【Gerber Setup】→【Advanced】中确认Internal Plane的Polarity设置为Negative
- 导出后使用GC-Prevue等工具叠加查看:负片层应显示为“暗背景+亮孔”
- 可配合Netlist比对工具验证各网络连通性
如何确保Gerber万无一失?本地验证五步法
不要等到工厂反馈才发现问题。学会自己做预审,才是高效开发的关键。
✅ 第一步:逐层核对输出清单
打开【File】→【Fabrication Outputs】→【Gerber Files】,进入【Layers】页签,确认以下内容已勾选:
- 所有信号层(Top/Bottom + 中间层)
- 两层阻焊(Solder Mask)
- 两层丝印(Overlay)
- 板框所在机械层
- 钻孔图(Drill Drawing)
小技巧:点击“Used On”按钮,AD会自动筛选当前PCB实际使用的层,避免遗漏或多出。
✅ 第二步:统一格式参数
切换到【Gerber Setup】主界面,设置如下推荐值:
| 参数 | 推荐配置 |
|---|---|
| Format | RS-274X |
| Units | Millimeters |
| Precision | 2:5 或 2:6 |
| Zero Suppression | Leading |
| Aperture | Embedded (Automatic) |
特别提醒:不要使用2:4精度!可能导致弧形走线拟合失败,影响高频性能。
✅ 第三步:关闭所有镜像与反转
在【General】页签中:
- ❌ 不勾选 “Mirror Layers”
- ❌ 不勾选 “Include unconnected mid-layer pads”
- ✅ 勾选 “Plot layer labels on separate file”(便于识别)
✅ 第四步:生成并检查钻孔文件
除了Gerber,还需单独导出NC Drill文件:
- 【File】→【Fabrication Outputs】→【NC Drill Files】
- 设置单位为MM,格式为Excellon
- 输出类型选择“Plated & Non-Plated”
导出后务必用ViewMate打开.drl文件,检查:
- 孔位是否与焊盘对齐
- 是否存在多余的工艺孔
- NPTH孔是否有明显标记
✅ 第五步:全流程可视化验证
使用免费工具GC-Prevue或Ucamco ViewMate打开全部文件,执行以下操作:
- 加载所有Gerber和钻孔文件
- 按颜色区分不同层(建议:线路红、阻焊绿、丝印白)
- 叠加Top Copper与Top Solder Mask,观察开窗是否精准覆盖焊盘
- 切换至负片模式查看内电层,确认无多余孤岛铜
- 测量最小线宽/间距,验证是否满足工艺能力
进阶技巧:启用“Flash”模式,可以快速识别所有焊盘是否存在阻焊开窗。
提升效率:建立可复用的输出模板
每次手动配置容易出错,怎么办?Altium提供了两种方式实现标准化输出。
方法一:使用OutJob文件统一管理
OutJob(Output Job File)是一种任务化输出配置文件,可集中定义:
- Gerber输出参数
- NC Drill设置
- PDF装配图
- BOM生成
- 文件打包规则
创建完成后,只需双击运行,即可一键生成全套生产资料,极大减少人为疏漏。
方法二:保存CAM文档作为公司规范
你可以将调试好的Gerber输出设置保存为.cam文件,分发给团队成员使用。后续新项目只需加载该模板,即可继承所有层映射关系和格式参数。
示例命名:
Company_Template_4Layer_Standard.cam
给CAM系统的“友好提示”:如何写一份高质量的Readme
别小看这份文本文件,它是你和工厂工程师之间的第一道沟通桥梁。
一份合格的Readme.txt至少应包含:
Project: XYZ_Controller_V2.1 Layers: 4 (FR-4, 1.6mm) Surface Finish: ENIG (Electroless Nickel Immersion Gold) Solder Mask: Green, Matt Silkscreen: White Impedance Control: Yes (Single-ended 50Ω, Differential 90Ω) Special Notes: - Test points TP1~TP6 must be exposed (no solder mask) - Keep-out zone on bottom side for heat dissipation - No component on backside near connector area - Panelization: 2x2 array with breakaway tabs Contact: zhangsan@company.com / +86-138-XXXX-XXXX有了这些信息,CAM工程师能更快做出准确判断,减少来回确认的时间成本。
结语:掌握映射逻辑,才是真正掌握主动权
回到最初的问题:为什么你导出的Gerber总是“差一点”?
答案已经很清晰:因为你只关注了“怎么导出”,却忽略了“对方怎么看”。
Gerber不是终点,而是起点。它是一封写给制造端的技术信函,每一个参数、每一层命名、每一条注释,都在传递设计意图。
当你学会从CAM系统的视角去审视自己的输出文件时,你就不再是一个被动等待结果的人,而是一个能够主导整个DFM流程的成熟工程师。
下次导出前,请问自己三个问题:
1. 我的每一层图形是否表达了正确的极性?
2. 我的单位和精度是否与工厂匹配?
3. 如果我是CAM工程师,能否仅凭这份文件准确还原我的设计?
能做到这三点,你的投板成功率自然会大幅提升。
如果你在实际操作中还遇到其他奇怪现象,比如“字符边缘毛刺”、“圆弧变成多边形”、“盲孔未识别”等问题,欢迎在评论区留言,我们可以一起深入探讨背后的机制。