AD导出Gerber文件避坑指南:从原理到实战的全流程解析
在硬件工程师的日常工作中,完成PCB设计只是第一步。真正决定产品能否顺利投产的关键一步——把设计“翻译”成工厂能读懂的语言,往往被忽视或轻视。而这个“语言”,就是我们常说的Gerber 文件。
尤其是在使用 Altium Designer(简称AD)进行项目交付时,“ad导出gerber文件”这看似简单的操作,却频频成为压垮项目的最后一根稻草:绿油不开窗、丝印反了、过孔没镀铜……这些问题背后,几乎都指向同一个源头——输出设置不当。
本文不讲理论堆砌,也不复读手册内容,而是以一名资深硬件工程师的真实踩坑经验为基础,带你从底层逻辑出发,系统梳理AD生成Gerber和钻孔文件的核心机制,并针对高频问题给出可落地的解决方案。无论你是刚入行的新手,还是偶尔被生产反馈“打脸”的老手,这篇都能帮你少走弯路。
为什么你的Gerber总是出问题?先搞懂它到底是什么
很多人以为Gerber就是“PCB截图”。错!
Gerber 是一种工业级光绘数据格式,本质上是一套描述图形坐标的指令集。制造商用它来控制激光光绘机,在底片上精确还原每一层铜皮、阻焊开窗、文字标识等信息。
目前通用的标准是RS-274X(扩展Gerber),支持复杂多边形填充、正负片表达、区域切割等功能。这意味着它不仅能画线,还能表示电源平面的大面积铺铜,甚至是差分对的精细结构。
Gerber是怎么“出生”的?
当你点击「File → Fabrication Outputs → Generate Gerber Files」时,AD并不是简单地把当前画面保存为图片。它的内部流程如下:
- 层映射:将PCB中的物理层(如Top Layer)对应到标准制造层(如顶层线路);
- 矢量重构:根据单位精度、零抑制模式等参数,重新计算所有坐标的数值表达;
- 文件生成:逐层输出
.gbr文件,并记录极性(正片/负片)、镜像状态等属性; - 协同输出:配合NC Drill文件,共同构成完整的制板资料包。
🔍 小知识:一个完整的Gerber包通常包含:
- 各信号层(Top/Bottom/Internal)
- 阻焊层(Solder Mask)
- 锡膏层(Paste Mask)
- 丝印层(Silkscreen)
- 钻孔文件(Excellon格式)
- 板框与工艺边
缺一不可!
关键配置别乱选!这些参数直接影响工厂能不能做出来
打开Gerber输出对话框后,面对一堆英文选项,很多人直接“默认下一步”。但正是这些细节,决定了你交出去的数据是否可靠。
下面这几个关键设置,必须逐项确认:
| 参数 | 推荐值 | 原因说明 |
|---|---|---|
| Units | Inches | 国内大多数工厂仍以英寸为主流,默认mm容易导致比例错乱 |
| Format | 4:4 | 表示整数4位+小数4位,足够应对0.1mm级精度需求;3:3太粗糙,5:5则可能兼容性差 |
| Zero Suppression | Leading | 去除前导零(如.00100→100),提升设备识别稳定性 |
| Plot Layers | All Used | 自动包含所有已布线层,避免遗漏内电层或辅助层 |
| Mirror Layers | ❌ 不勾选 | 一旦勾选,顶层会变成镜像,贴片方向全反! |
| Include Unconnected Mid-Spans in Plane Areas | ✅ 勾选 | 确保孤立铜块也能正确显示在负片中 |
特别提醒:不要迷信“默认设置”。不同版本AD的默认值可能不同,更稳妥的做法是——每次导出前手动核对一遍。
钻孔文件不是附属品!NC Drill配置同样关键
很多工程师只关注Gerber,却忽略了另一个核心文件:NC Drill(数控钻孔文件)。它是指导CNC机床打孔的“施工图”,记录了每一个通孔、盲埋孔的位置、直径、是否沉铜等信息。
AD通过「File → Fabrication Outputs → NC Drill Files」生成该文件,常用格式为Excellon(.drl)。
几个必须注意的点:
- 原点设置要一致:建议选择“Absolute Origin = Current Origin”,防止坐标漂移;
- 启用拼板信息:若做了阵列(Array),务必勾选“Generate Step and Repeat Info”,否则只会导出单个单元;
- 区分PTH与NPTH:对于非金属化孔(如定位孔、散热孔),一定要勾选“Split Plated and Non-Plated Holes into Separate Files”,否则工厂无法判断哪些需要镀铜;
- 检查刀具列表:过多相近尺寸的钻头(如0.3mm、0.35mm)会导致频繁换刀,增加加工成本。
📌 实战案例:某项目反馈“部分过孔不通”,排查发现是因为Pad属性误设为NPTH,且未分离钻孔文件,导致钻头路径合并,工艺判定为不镀铜孔。修正后重新提交,问题解决。
六大高频问题 & 解决方案(附自查清单)
以下是我在实际项目中总结出的最高频六大坑点,几乎每个新手都会至少踩中一个。
❌ 问题1:工厂说没有阻焊层?我明明画了!
现象:板子做好后整个覆盖绿油,元件焊盘都被盖住,根本没法焊接。
原因:最常见的原因是——你在Gerber Setup里没勾选 Solder Mask 层!
尤其当使用机械层手动定义开窗时,如果没有在Layers Tab中明确指定哪个Mechanical Layer对应Top/Bottom Solder Mask,AD就不会输出这一层。
✅正确做法:
- 进入Gerber Setup → Layers;
- 找到Top Solder Mask和Bottom Solder Mask;
- 确保它们被勾选,并正确映射到对应的层(推荐使用内置层而非机械层);
- 输出后用Gerber查看器确认是否存在开窗区域。
💡 最佳实践:优先使用AD自带的Solder Mask层,避免依赖机械层映射带来的混淆风险。
❌ 问题2:图形缩成一个小点?单位搞错了!
现象:用GC-Prevue打开Gerber,发现所有图形挤在一起,像个像素点。
原因:典型的单位不匹配问题。比如你在AD中设的是mm,但Format是3:3,而工厂期望inches + 4:4。
举个例子:
- 实际坐标:100mil = 0.1 inch
- 若设为mm,则变为0.1mm ≈ 4mil,在4:4格式下会被截断或压缩
结果就是整体缩小约25倍!
✅解决方案:
- 统一设置为Inches + 4:4;
- 检查Origin是否为Relative(相对原点),避免负坐标;
- 使用Gerber Viewer比对坐标范围,确认X/Y最大值合理(例如几英寸内);
❌ 问题3:丝印文字怎么是反的?焊工都看懵了
现象:贴片完成后,发现U1、R5这些位号是镜像的,像照镜子一样。
原因:两个可能:
1. 误勾了“Mirror Layers”;
2. 把Bottom Overlay错误映射到了Top层输出。
尤其是做双面贴片时,容易混淆两层丝印。
✅解决方法:
- 明确取消“Mirror Layers”选项;
- 分别输出Top Overlay和Bottom Overlay;
- 在Gerber Viewer中开启“Flip”功能,模拟实物视角查看效果。
🔧 调试技巧:可以在ViewMate中加载Top层并翻转,看看是否与实物一致。
❌ 问题4:内电层为啥是空的?铜都没了!
现象:Gerber中Internal Plane 1一片空白,工厂质疑是否有电源层。
原因:内电层通常采用负片(Negative Artwork)方式制作。也就是说,你不该期待看到“实心铜皮”,而是应该看到“挖掉的部分”——即隔离环、散热孔等开口。
如果你看到的是全黑或全白,说明配置有问题。
✅正确配置步骤:
- 在Gerber Setup → Advanced中选择Draw Plane as Negative;
- 勾选“Remove Deletion Links”;
- 检查Split Plane边界是否闭合;
- 输出后使用专业软件(如CAM350)查看是否呈现窗口状结构。
⚠️ 注意:负片不会显示连续铜皮,只有断开区域才会以“负形”出现。
❌ 问题5:文件名全是GTO、GBL…工厂说我乱传
现象:上传资料后,客服回复:“请提供层序说明,看不懂哪个是哪个。”
原因:AD默认命名太抽象:
- GTO → Top Copper
- GTS → Top Solder
- GTP → Top Paste
- GBO → Bottom Overlay
除非对方熟悉标准,否则极易误解。
✅改进方案:
- 在Output Job中自定义输出名称:
-TOP_CU.gbr
-BOT_SMT.gbr
-INNER1.gbr
-VIA_DRL.drl
- 配套提供一份《Layer Stack-Up Table》,注明每层功能、材料厚度、阻抗要求等。
📎 示例表格:
| 文件名 | 对应层 | 功能说明 |
|---|---|---|
| TOP_CU.gbr | Top Layer | 顶层走线 |
| INNER1.gbr | Internal Plane 1 | 电源层(-12V) |
| BOT_SMT.gbr | Bottom Solder | 底层绿油开窗 |
| FIDUCIAL.drl | Mechanical 10 | 光学定位孔 |
❌ 问题6:拼板结构没导出!V-CUT去哪了?
现象:单板正常,但拼板后的V-cut线、工艺边、定位孔都没出现在Gerber里。
原因:拼板元素绘制在Mechanical层,但未在Gerber Setup中显式勾选输出。
或者使用了Panelize功能,但未设置“Include Board Outline”。
✅解决办法:
- 将V-cut、铣槽、二维码等绘制在独立的Mechanical层(如Mechanical 8);
- 在Gerber Setup中勾选该层,并指定用途;
- 或者在输出时选择“Include Board Outline from Current Document”;
- 检查钻孔文件是否包含工艺孔(Tooling Hole)。
如何做到一次成功?建立标准化输出流程
为了避免每次都“凭感觉”操作,建议团队建立一套标准化输出流程,包含以下要素:
✅ 标准化检查清单(Checklist)
每次导出前逐项核对:
- [ ] DRC无错误
- [ ] 原点已设定(Design » Origin)
- [ ] 单位:Inches,Format:4:4
- [ ] 所有Used层均已勾选输出
- [ ] Mirror Layers未勾选
- [ ] 内电层设置为Negative输出
- [ ] 阻焊、锡膏、丝印层完整
- [ ] 钻孔文件已生成,PTH/NPTH分离
- [ ] 拼板结构包含在输出范围内
- [ ] 文件命名清晰,附带说明文档
✅ 使用Output Job模板固化配置
AD支持保存.OutJob文件,可以将Gerber、Drill、Assembly Drawing等输出任务打包保存。
建议:
- 创建公司/项目专用模板;
- 固化层映射、命名规则、输出路径;
- 新员工直接调用,减少人为失误。
✅ 引入自动化脚本(进阶)
对于频繁迭代的项目,可通过AD Script实现一键输出:
procedure ExportGerber; var Job : IPCB_FabricationOutputJob; begin Job := PCBServer.CreateFabricationOutputJob; Job.Name := 'Production_Output'; Job.AddOutputType(eGerberOutput); with Job.GerberSettings do begin Units := eInch; Format := eExtendedGerber4_4; ZeroSuppression := eLeading; MirrorLayers := False; end; Job.Execute; end;此脚本可集成到批处理工具中,实现无人值守输出,极大提升效率。
工程师之间的鸿沟:设计与制造如何高效协作?
一个好的Gerber包,不只是“能用”,更要“好懂”。
现实中,许多沟通成本来自于设计师不了解工厂流程,工厂又不懂设计意图。
因此,除了技术层面的正确性,还应注重数据交付的专业性:
- 提交ZIP压缩包,结构清晰(按类型分类:Gerber、Drill、Doc);
- 包含README.txt,说明层数、板材、特殊工艺要求;
- 敏感项目可加密,但需提前与厂商协商解密方式;
- 每次变更后重新导出全套文件,禁止局部替换;
- 归档每次输出的Gerber副本,便于后期追溯对比。
写在最后:Gerber不会淘汰,但你要学会超越它
虽然近年来 ODB++、IPC-2581 等更先进的集成数据格式逐渐普及,能携带更多属性信息(如网络表、元器件高度、装配方向等),但在国内中小批量制造领域,Gerber仍是绝对主流。
掌握ad导出gerber文件的完整技能,不仅是交付的基本功,更是硬件工程师专业性的体现。
未来趋势是智能化、自动化、高集成度的数据交换,但我们仍需打好基础。先把Gerber做到零缺陷,再去谈下一代标准。
如果你正在经历类似困扰,不妨收藏这份指南,下次导出前对照执行一遍。你会发现,那些曾经让你夜不能寐的“低级错误”,其实都可以轻松规避。
📢 欢迎在评论区分享你遇到过的最离谱的Gerber事故,我们一起避坑前行。