从设计到制造:在AD23中正确导出Gerber文件的实战全解析
你有没有遇到过这样的情况?
PCB布局布线完成,DRC全绿,信心满满地导出Gerber发给厂家打样,结果三天后收到回复:“阻焊层缺失”、“钻孔偏移”、“丝印压焊盘”……
返工一次,时间浪费不说,成本也蹭蹭往上涨。更尴尬的是,问题出在哪?翻遍设置也找不到原因。
别急——这往往不是你的设计有问题,而是输出环节出了纰漏。
尤其是在 Altium Designer 23(简称 AD23)这个版本中,虽然界面更现代、功能更强大,但很多工程师依然沿用“老办法”手动导出,忽略了新版推荐的OutJob 输出机制,导致配置不一致、图层遗漏、精度不足等问题频发。
今天,我们就以一个真实项目为背景,手把手带你走完从 PCB 完成到最后生成可交付制造文件的全过程。不只是“点哪里”,更要讲清楚“为什么这么设”。
为什么 Gerber 文件如此重要?
在电子研发流程中,原理图和 PCB 设计只是完成了“大脑”的工作。而要把这块板子真正做出来,必须依赖一套标准化的数据包交给工厂加工。
这其中,最核心的就是Gerber 文件 + 钻孔文件(NC Drill)。
简单来说:
-Gerber 文件:描述每一层铜皮、绿油、丝印的图形信息。
-NC Drill 文件:告诉机器在哪里打孔、用多大钻头。
它们合起来,就是 PCB 制造厂眼中的“施工蓝图”。
目前全球通用的标准是RS-274X 格式的 Gerber和Excellon 格式的钻孔文件。只要你输出符合规范,无论是嘉立创、华秋还是海外的 PCBWay,都能准确识别。
小知识:Gerber 是文本格式,可以用记事本打开。不信你可以试试双击
.gbr文件看看里面是不是一堆X12345Y67890D01*这样的代码。
出错重灾区:这些坑你踩过几个?
先来看看几个典型的“低级错误”引发的悲剧:
- ✅ 导出时忘了勾选“Bottom Solder Mask”,结果所有底层焊盘都被绿油盖住,贴不了片;
- ✅ 丝印文字太小或线宽低于 5mil,打印出来一片模糊;
- ✅ 阻焊开窗设置过大,导致相邻焊盘之间被掏空短路;
- ✅ Gerber 和钻孔文件原点不一致,钻孔位置整体偏移 1mm;
- ✅ 使用了旧版 RS-274(非扩展),缺少内嵌 aperture 表,工厂无法解析。
这些问题,90% 都源于输出配置不当,而非设计本身有误。
所以,掌握正确的导出方法,比画好一块板子还关键。
AD23 推荐做法:用 OutJob 实现标准化输出
Altium 自从引入Output Job File(.OutJob)后,就不再鼓励用户通过菜单栏一个个去导出文件了。它是一个集中式任务管理器,把所有输出项统一管控。
为什么要用 OutJob?
| 传统方式 | OutJob 方式 |
|---|---|
| 每次都要重新设置参数 | 一次配置,反复使用 |
| 容易漏层或单位设错 | 图层自动映射,减少人为失误 |
| 不便于团队共享 | 可纳入版本控制,全组共用模板 |
| 无法批量执行 | 支持一键生成全部制造文件 |
换句话说,OutJob 是实现“一次配置,处处可用”的最佳实践。
实战演示:一步步教你配置 Gerber 输出
我们假设已经完成了一块双面板的设计,并通过了 DRC 检查。现在要准备打样。
第一步:创建 Output Job 文件
- 在项目面板右键 →Add New to Project→Output Job File
- 命名为
PCB-Manufacturing.OutJob - 打开该文件,默认包含三个区域:
- Fabrication Outputs(制造)
- Assembly Outputs(装配)
- Documentation Outputs(文档)
我们要重点配置前两项。
第二步:添加并配置 Gerber 输出任务
在Fabrication Outputs区域点击Add New Output→ 选择Gerber Files
双击进入配置界面,分为以下几个关键选项卡:
▶ General 设置
| 参数 | 推荐值 | 说明 |
|---|---|---|
| PCB Layers | Used On | 只输出实际使用的层,避免冗余 |
| Plot Layers | Signal, Plane, Silkscreen, Solder Mask, Paste Mask | 必须包含这五类 |
| Mirror Layers | ❌ Disable | 绝对不要镜像,否则图形反向 |
| Net Attributes in Bar Code | ❌ 关闭 | 工厂一般不需要条码 |
⚠️ 特别注意:如果你做了四层及以上板子,记得确认 Inner Layer 是否被正确包含。
▶ Layers Mapping(图层映射)
这是最容易出错的地方!
重点检查:
-Top Solder Mask极性应为Negative(负片)
-Bottom Solder Mask同样为 Negative
- 其余层如 Top Layer、Silk 等为 Positive
为什么阻焊要用负片?因为工厂制程中,阻焊层是“去掉哪里”的逻辑——你在 AD 里画的“开窗”区域,在负片中表现为“透明”,其他地方则是遮挡。
如果误设为正片,整个板子会被绿油全覆盖!
▶ Advanced 设置
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Format | RS-274X | 必须选这个!支持内嵌 aperture |
| Units | Inches | 国内主流厂家接受 inch 单位 |
| Resolution | 6:6 | 整数6位+小数6位,精度达 0.0254μm |
| Aperture | Embedded (RS274X) | 不再需要单独导出 .lst 文件 |
🔍 解释一下分辨率 6:6 的含义:表示每英寸用 10^6 = 1,000,000 个单位来表示,即最小步进为 1μinch ≈ 0.0254μm,足够应对 HDI 板需求。
第三步:配置 NC Drill 钻孔文件
继续在 Fabrication Outputs 中添加NC Drill Files
双击进入配置:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Units | Inches | 与 Gerber 保持一致 |
| Format | 2:5 | 整数2位,小数5位,对应 0.00001 inch |
| Leading/Trailing Zero | Leading (LZ) | 防止坐标解析错位 |
| Origin | Absolute, User Defined | 建议设为左下角原点 |
| Tool Mode | Auto-generated | 自动生成刀具表 |
| Generate Step Plots | ✅ Enable | 输出钻孔分布预览图 |
💡 提示:可以在机械层上放置一个“Drill Origin”标记,并在“Set Reference Point”中指定为原点,确保 Gerber 和 DRL 坐标系统完全对齐。
第四步:补充装配输出(可选但推荐)
为了方便贴片厂生产,建议同时输出以下内容:
添加 Assembly Drawings(装配图)
- 输出顶层/底层的装配参考图(含元件位号、极性等)
- 格式选 PDF 或 SVG,便于查看
添加 Pick and Place File(贴片坐标文件)
- 格式推荐 CSV 或 TXT
- 字段包括:Designator, Mid X, Mid Y, Layer, Rotation
- 可用于 SMT 贴片机自动导入
这样一套完整的制造包就齐了。
执行输出 & 自动化技巧
一切配置完成后,点击顶部的Run All按钮,AD23 会自动在项目目录下生成/Outputs/Fabrication/Gerber/和/Outputs/Fabrication/NC Drill/文件夹,存放所有输出文件。
如何验证输出是否正确?
强烈建议使用免费工具进行视觉检查:
- 🛠️ 推荐软件:GC-Prevue(经典)、ViewMate、Altium Viewer
- 操作步骤:
1. 打开 GC-Prevue
2. 拖入所有.gbr和.drl文件
3. 分层查看:- 是否有层缺失?
- 阻焊开窗是否合理?
- 丝印是否有压焊盘?
- 钻孔是否落在焊盘中心?
✅ 经验之谈:重点关注电源模块、USB 接口、大封装 IC 周围的丝印和阻焊处理。
常见问题与解决方案(附调试秘籍)
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 工厂说“没收到阻焊层” | 未启用 Solder Mask 层 | 回到 OutJob,确认 Top/Bottom Solder Mask 已勾选 |
| 绿油覆盖部分焊盘 | Solder Mask Expansion 设太大 | 进入 PCB 规则 → Mask → Solder Mask Expansion,改为 0~2mil |
| 丝印模糊不清 | 线宽 < 5mil 或字体太小 | 修改规则 Minimum Silkscreen Width ≥ 5mil,高度≥30mil |
| 钻孔位置偏移 | Gerber 与 DRL 原点不同 | 统一设置 User Origin 并在两者中启用 |
| 内层短路 | Plane 层分割错误 | 用 CAMtastic 打开 Gerber 查看内电层连通性 |
🔧 高阶技巧:在输出后使用 Altium 自带的Compare to Netlist功能,将 Gerber 图形与原始网络对比,检测是否存在断线或意外连通。
最佳实践:让输出流程更高效可靠
1. 建立团队标准模板
将配置好的.OutJob文件保存为公司级模板,例如:
Company_Standard_PCB_Outputs.OutJob放入公共库,新项目直接复制使用,杜绝“每人一套参数”的混乱局面。
2. 添加制造注释层
利用 Mechanical Layer 或 Keep-Out Layer 添加如下标注:
- “V-CUT” —— 指明需切割分板
- “Fiducial Mark” —— 标记光学定位点
- “Impedance Controlled: 50Ω ±10%” —— 要求阻抗控制
- “Do Not Route Under This Area” —— 禁止布线区
这些信息虽不会体现在电气设计中,但对工厂极为有用。
3. 使用虚拟边界辅助检查
在 Gerber 查看器中加载 Board Outline 层,确认所有图形都在有效区域内,防止走线或丝印超出板边造成废料。
4. 定期更新 AD 安装包
Altium 会通过 Service Pack(SP)修复一些隐藏 Bug,比如某些版本中圆形焊盘导出后变成多边形的问题。
确保你使用的是AD23 SPx 最新版,避免因软件缺陷导致输出异常。
进阶玩法:脚本自动化输出(适合量产团队)
对于需要频繁打样或 CI/CD 集成的研发团队,可以借助 Altium 的脚本引擎实现自动化输出。
以下是基于 DelphiScript 的简化示例:
// Script: RunGerberOutput.pas procedure RunFabricationOutput; var ProjectObj : IProject; OutJobName : String; begin ProjectObj := GetActiveProject; if ProjectObj = nil then Exit; OutJobName := 'PCB-Manufacturing.OutJob'; if ProjectObj.HasOutputJobFile(OutJobName) then begin ShowMessage('开始执行制造文件输出...'); ProjectObj.RunOutputTask(OutJobName, 'Fabrication', 'Gerber'); ProjectObj.RunOutputTask(OutJobName, 'Fabrication', 'NC Drill'); ShowMessage('✅ Gerber 与钻孔文件已成功生成!'); end else begin ShowMessage('❌ 错误:未找到 ' + OutJobName); end; end; RunFabricationOutput;将此脚本绑定到快捷键或外部批处理程序(如.bat),即可实现“一键输出”,大幅提升效率。
⚠️ 注意:脚本需在 Altium 内运行,且需开启宏权限(Preferences → System → scripting)。
提交前最后 checklist
在压缩打包发送给厂家之前,请务必确认以下内容:
✅ 所有必要的.gbr文件都存在(至少6层起)
✅.drl文件已生成,且命名清晰
✅ 钻孔报告.rep可选附带
✅ 包含 Readme.txt 说明文件,注明:
板厚:1.6mm 板材:FR-4 表面处理:铅锡 工艺要求:沉金按键区域,V割分板 特殊说明:第3层为完整地平面,不得分割📁 最终提交结构建议如下:
Project_Gerber_Package.zip ├── TopLayer.gbr ├── BottomLayer.gbr ├── InnerLayer1.gbr ├── InnerLayer2.gbr ├── TopSolder.gbr ├── BottomSolder.gbr ├── TopSilk.gbr ├── BottomSilk.gbr ├── NCMap.txt ├── Drill.drl ├── Drill.rep └── Readme.txt写在最后:从“能做出”到“一次做对”
掌握 AD23 正确导出 Gerber 文件的方法,看似只是设计流程的最后一步,实则是决定产品能否顺利投产的关键门槛。
它不仅关乎技术细节,更体现了一名硬件工程师的职业素养——是否具备“可制造性思维”(DFM Thinking)。
当你能把每一次输出都做到精准无误,你就不再是“画图员”,而是真正的“产品实现者”。
随着国产 PCB 快速打样平台(如嘉立创、华秋)普及在线 Gerber 解析功能,精准输出的重要性只会越来越高。未来 Altium 向云协作(Altium 365)演进,Gerber 输出也可能融入 AI 质检、自动合规审查等智能流程。
但无论技术如何变化,理解底层原理的人,永远掌握主动权。
如果你正在带团队、建流程,不妨现在就去创建一个标准 OutJob 模板,把它放进 Git 仓库,让每一位新人上来就能“一次做对”。
毕竟,少一次返工,就是节省一天时间,省下一笔成本,更是赢得一次市场先机。
欢迎在评论区分享你的 Gerber 输出经验,或者你曾经踩过的“坑”。我们一起把这条路走得更稳、更快。