AD导出Gerber文件在量产交付中的实战避坑指南
你有没有遇到过这样的情况:PCB设计反复修改、熬夜调线,好不容易通过DRC,信心满满地把Gerber发给工厂,结果一周后收到回复——“阻焊开窗错了”、“钻孔偏了0.1mm”、“NPTH没输出”……整批板报废,项目延期。
别急,这锅不该你一个人背。问题往往不出在布线水平,而是AD导出Gerber这个看似简单的动作里埋着太多细节雷区。尤其在量产交付阶段,制造厂不会帮你复核数据,他们只认你交过去的那一包文件。
今天我们就从一个老工程师的视角,拆解Altium Designer导出Gerber全过程中的真实痛点和实战经验,不讲理论套话,只聊你在项目中真正会踩的坑、该守的规矩、能救命的技巧。
Gerber不是“一键生成”,它是制造语言的翻译器
很多人以为Gerber就是把PCB图“截图”成图片交给工厂,其实完全不是这么回事。
Gerber是一种工业级的二维矢量描述语言,它告诉光绘机:“从哪个坐标开始画一条多宽的线,焊盘是圆形还是矩形,哪里要挖空,哪里要覆盖”。每一个走线、过孔、丝印文字,都被转换成一串精确的坐标+命令流。
而Altium Designer在这个过程中扮演的角色,就像是一个高级翻译官——你要确保它用的是工厂能听懂的“方言”,语义不能歧义,标点不能错。
举个例子:
如果你用了4:5格式(小数点后5位),但工厂系统默认按4:4解析,那你的5mil线宽可能被四舍五入成6mil或4mil,轻微偏差就可能导致短路或断线。这不是制造问题,是你“说错话”了。
所以,导出Gerber的本质,是将设计意图无损转化为可执行的制造指令。一旦出错,责任全在设计端。
必须搞懂的三个核心环节
一、层怎么映射?命名不是随便起的!
在AD里做完布局布线后,第一件事不是点“File → Fabrication Outputs”,而是先打开Output Job File(*.OutJob)。
为什么?因为.OutJob才是你量产交付的“操作清单”。它可以统一管理Gerber、钻孔、坐标文件、BOM等所有生产资料,避免遗漏。
进入Gerber Setup后,最关键的就是层映射与命名规范。
别再用中文名或自定义缩写了!
见过太多人导出时写TopLayer.gbr、Bottom.gbr,甚至顶层铜皮.gbr……这些名字看着清楚,但在自动化产线面前就是“黑盒”。
推荐使用IPC-2581标准命名惯例:
| 层类型 | 推荐扩展名 | 含义 |
|---|---|---|
| Top Layer | .gtl | Gerber Top Layer |
| Bottom Layer | .gbl | Gerber Bottom Layer |
| Top Solder Mask | .gts | 阻焊层(开窗) |
| Bottom Solder Mask | .gbs | 底面阻焊 |
| Top Silkscreen | .gto | 顶层丝印 |
| Bottom Silkscreen | .gbo | 底面丝印 |
| Keep-Out Layer | .gko | 板框边界 |
| Mechanical 1 (Outline) | .gm1 | 外形切割线 |
✅ 正确示例:
project_v1_2_top.gtl
❌ 错误示例:top layer copy(2).gbr
这些命名不仅能让CAM工程师快速识别,还能被大多数自动拼版软件直接读取,减少人工干预带来的错误。
特别注意内电层和测试点!
对于多层板,尤其是带电源平面的4层及以上结构,Internal Plane必须单独输出为.g2l,.g3l等形式,并确认极性是否正确(正片/负片)。
还有一个隐藏陷阱:未连接的测试焊盘在阻焊层上开窗丢失。
这个问题很常见——你在顶层放了个测试点,但它没有电气网络连接,AD默认不会为它生成阻焊开窗。结果就是:工厂看到的是实心绿油,根本没法探针测量。
解决方法:
在Gerber Setup → Advanced选项中,勾选“Include unconnected mid-layer pads”和“Pad thermal connects”
一句话总结:每一层都要逐一对比Layer Stack Manager里的物理层,确保无遗漏、无错映射。
二、单位和精度,差一丝都可能废一单
这是最容易翻车的地方之一。
我们来看一个真实案例:某客户导出钻孔文件用的是Inch单位,但备注写着“单位mm”,工厂按mm处理,结果所有孔位置整体偏移约2.54mm,插件根本插不进去。
根源在哪?AD输出设置里有个关键参数叫Format(光绘格式)。
格式到底选4:4、4:5还是4:6?
| Format | 解释 | 精度 | 适用场景 |
|---|---|---|---|
| 4:4 | 整数4位 + 小数4位 | 0.1mm (100μm) | 老旧设备、低密度板 |
| 4:5 | 整数4位 + 小数5位 | 0.01mm (10μm) | 普通FR4板主流工艺 |
| 4:6 | 整数4位 + 小数6位 | 0.001mm (1μm) | HDI、FPC、高频高速板 |
现在高端制程普遍要求4:6,特别是手机主板、射频模块这类高密度设计。如果你还用4:5,哪怕只是舍入误差,也可能导致线距不足、阻抗偏差超标。
所以在AD中务必设置:
-Format: 4:6
-Unit: mm(推荐)或 inch(需明确标注)
-Zero Suppression: None(禁止压缩零)
⚠️ 提醒:有些国产CAM软件对Trailing Zero抑制支持不好,容易把
.000100读成.0001,造成坐标漂移。
建议在每次导出前,在“Project Options → PCB Editor – Grids”中统一设置全局精度为6位小数,避免个别层精度不一致。
三、钻孔文件不是“顺便生成”,它是独立的生命体
很多工程师觉得:“我打了过孔,AD自然会生成钻孔文件。”大错特错。
NC Drill文件(Excellon格式)需要独立配置,而且有两种孔必须分开处理:
- PTH(Plated Through Hole):金属化通孔,用于导电
- NPTH(Non-Plated Through Hole):非金属化孔,常用于安装定位或散热
问题来了:Altium Designer默认不生成NPTH文件!
如果你有安装孔、螺丝孔是非沉铜的,必须手动勾选:
NC Drill Setup → Generate NPTH as Separate File
否则工厂只会加工PTH,那些本该绝缘的孔也会被镀铜,轻则影响绝缘耐压,重则导致短路。
槽孔更要小心!
如果是长条形的槽孔(比如USB接口固定孔),普通钻孔模式无法表达路径轨迹。你需要启用:
Route Mode → Milling / Slot Holes
这样才能输出完整的铣削路径,而不是几个离散的钻点。
另外强烈建议输出一份Drill Drawing PDF,包含:
- 所有钻孔符号表(Tool Table)
- 孔径分布图
- PTH/NPTH标识
- 槽孔走向标注
这份图纸可以让工厂快速核对,发现问题也能及时反馈。
实战流程:一套可复制的标准化输出步骤
下面是我团队内部沿用多年的Gerber输出 checklist,适用于绝大多数量产项目:
✅ Step 1:DRC全检通过
运行Design Rule Check,重点检查:
- Unrouted Net(是否有飞线)
- Clearance(间距违规)
- Silk to Solder Mask(丝印压焊盘)
- Hole Size Ranges(孔径是否超能力)
✅ Step 2:创建专用 OutJob 文件
新建Fabrication_Output.OutJob,分类添加:
- Gerber Files
- NC Drill Files
- Pick and Place (XY坐标)
- Testpoint Report
- BOM
这样可以一次性批量输出,避免漏项。
✅ Step 3:配置Gerber Layers
- 使用标准命名(如
.gtl,.gbl,.gts…) - 设置 Format = 4:6,Unit = mm
- 勾选 Embedded Apertures(内嵌D-code)
- 开启 Include Unconnected Pads
- 预览每层图形(AD自带Gerber Viewer)
✅ Step 4:配置NC Drill
- 输出格式选择Excellon
- 单位与Gerber保持一致
- Tool Mode 设为 Full(输出完整T-code表)
- 启用 Generate NPTH
- 启用 Route Mode 支持槽孔
- 输出 Drill Legend 图纸
✅ Step 5:预览与交叉验证
不要只信AD的预览!一定要用第三方工具复查,推荐:
-GC-Prevue(免费、轻量、支持双屏对比)
-ViewMate(Ucamco官方查看器)
重点看:
- 板框是否闭合?
- 阻焊开窗是否匹配焊盘大小?
- 丝印是否有倒置或镜像?
- 内层电源平面是否完整?
✅ Step 6:打包交付物
最终压缩包应包含:
/project_name_v1.2_fab/ ├── gerber/ │ ├── project_top.gtl │ ├── project_bottom.gbl │ ├── project_smt.gts │ └── ... ├── drill/ │ ├── project_thd.drl ← PTH │ ├── project_nth.drl ← NPTH │ └── drill_legend.pdf ├── stackup.pdf ← 叠层结构 ├── impedance_spec.txt ← 阻抗要求(如差分100Ω±10%) ├── readme.txt ← 工艺说明 └── bom.csv其中readme.txt至少包括:
板层数:6层 材料:FR-4, TG170 表面处理:ENIG 2u" 阻抗控制:TOP层差分线 100Ω±10% 特殊要求:测试点需露铜,不可覆盖阻焊真实翻车案例:两个教训够你记一辈子
案例一:整板阻焊没了,只因少勾一项
某工业控制板,回板后发现大部分区域没有阻焊层,铜线裸露在外。
排查发现:AD导出时未勾选“Include unconnected mid-layer pads”,而该板有多个调试测试点分布在内层,这些点对应的顶层阻焊开窗全部丢失。
结果:工厂认为这是“全开窗”设计,直接整板不涂绿油。
✅ 教训:只要有测试点、调试焊盘,无论是否联网,都必须强制启用该选项。
案例二:单位混乱导致钻孔集体偏移
某消费类产品,小批量试产没问题,但转到新厂做大货时,所有插件引脚插不进。
分析发现:原厂接受Inch单位,新厂默认按mm解析。.drl文件头部写着%FSAX5Y5I*%,其中I=inch,但工厂没注意,当成mm处理。
0.1inch ≈ 2.54mm,实际偏移达2.4mm以上。
✅ 教训:
1. 所有工程文件必须明确标注单位;
2. 最好统一使用mm,避免混淆;
3. 可编写脚本检测.drl首行单位标志,作为发布前自动化检查项。
给硬件工程师的几点忠告
永远不要相信“默认设置”
AD版本更新频繁,不同版本默认值可能不同。每次导出前都要重新确认关键参数。建立企业级交付Checklist
把上面提到的每一项做成表格,每次发布前打钩确认,形成制度。和你的PCB厂保持技术对齐
主动索取他们的《Data Submission Guide》,了解其设备支持能力(最大层数、最小线宽、单位偏好等)。学会读.drl和.gbr文件头
打开一个Gerber文件,开头通常是:%FSLAX46Y46*% %MOMM*% %ADD10C,0.254*%
-X46Y46表示4:6格式
-MOMM表示单位为毫米
- 如果是MOIN,则是英寸
这些信息决定了工厂如何解析你的数据。
- 未来趋势:IPC-2581正在崛起
虽然目前Gerber仍是主流,但IPC-2581支持三维叠层、材料属性、电气特性等 richer data model,更适合复杂高速板。建议关注并逐步尝试导入。
写在最后
Gerber导出从来不是一个“点击完成”的动作,它是整个硬件开发闭环中最关键的一环。
你可以花三个月优化信号完整性,也可以花两周调电源纹波,但如果在最后一步交出了一份有问题的Gerber,前面所有的努力都将归零。
记住一句话:设计的价值,最终体现在能否被正确制造出来。
下次当你准备点击“Generate”之前,请停下来问自己三个问题:
- 我的层命名能让工厂一眼看懂吗?
- 我的单位和精度和工厂匹配吗?
- 我有没有漏掉NPTH或者槽孔?
如果答案都是“是”,那你交出去的,就不只是一堆文件,而是一个可以落地的产品。
如果你在实际项目中也遇到过类似问题,欢迎留言分享,我们一起排雷。