以下是对您提供的博文《Altium Designer生成Gerber文件实战案例解析》的深度润色与专业重构版本。本次优化严格遵循您的全部要求:
✅ 彻底去除AI痕迹,语言自然、老练、有工程师“人味”;
✅ 摒弃模板化标题(如“引言”“总结”),全文以技术逻辑流驱动,层层递进;
✅ 所有知识点有机融合,不堆砌、不割裂,关键点加粗强调,经验判断穿插其中;
✅ 删除所有“本文将……”式预告句,开篇即切入真实痛点;
✅ 代码、表格、术语保留并增强可读性,新增实操提示与行业潜规则说明;
✅ 全文无“展望”“结语”类收尾,最后一句落在可延续的技术动作上,留有余韵;
✅ 字数扩展至约2800字,内容更扎实,补充了CAM侧视角、DFM协同、模板固化等一线经验。
Gerber不是导出按钮,是设计与制造之间的第一道工艺契约
你有没有遇到过这样的情况:PCB layout刚画完,信心满满地点击「Generate Gerber」,等了一分钟,弹出11个.gbl、.gtl、.txt文件——然后发给板厂,三天后收到一封邮件:“GTO层镜像异常,位号全反;钻孔单位为mm,但Gerber为inch,无法对齐;内电层未声明负片,CAM渲染为空白……请重新提供”。
这不是操作失误,而是对Gerber本质的理解断层。
Gerber RS-274X从来就不是一种“图形格式”,而是一套面向光绘机与钻床的、带语义的制造指令集。Altium Designer(AD)导出的不是“图片”,而是由G01/D10/X12345Y67890组成的、可被CAM系统逐行解析的文本协议。它不关心你画得有多美,只认三件事:单位是否统一、原点是否一致、极性是否明确。
下面,我就以一个已量产的工业四层板(含BGA、内电层、金属化/非金属化孔)为蓝本,带你从AD界面一路走到CAM350验证窗口,把ad导出gerber文件这件事,真正做“透”。
为什么你的Gerber总被板厂打回来?先破三个幻觉
很多工程师卡在第一步,是因为信了三个“看起来很合理”的错觉:
- ❌ “单位用mm更直观” → 实际上,全球99%的PCB厂CAM系统默认按inch解析。你在AD里设
mm,导出的%MOMM*%指令会被部分老旧CAM识别为%MOIN*%(误当inch),导致0.1mm焊盘变成0.0039inch(≈0.1mm × 0.03937),坐标整体缩放失真; - ❌ “丝印层跟线路层一样画就行” →Top Overlay必须镜像,Bottom Overlay严禁镜像。原因很简单:贴片机是从正上方俯视PCB,但丝印油墨是印在板子顶层表面,人眼阅读时看到的是“镜像结果”。AD的
Mirror Top Overlay选项,本质是在Gerber中插入%LMN*%指令,告诉光绘机:“这张图要翻过来晒”; - ❌ “Internal Plane自动就是负片” → 错。AD内部用负片渲染Plane层,但Gerber导出时默认按正片输出。如果不手动勾选
Plot as Negative,CAM会把整块铜皮当成“要保留的图形”,结果——板子做出来,电源层是空的。
这些不是软件Bug,而是RS-274X协议与PCB物理制造逻辑之间的必然映射。理解它,才能跳出“反复试错”的循环。
层映射:别让AD替你猜哪一层该叫GTL
AD的OutJob不是配置菜单,它是你和板厂之间的制造合同草案。其中最易被忽视的,是Layer Stackup Mapping——即物理层到Gerber逻辑名的绑定关系。
标准命名(IPC-2581兼容)如下:
| AD物理层名 | 推荐Gerber后缀 | 必须设置项 |
|--------------------|----------------|----------------------------------|
| Top Layer |.GTL|Mirror = False|
| Bottom Layer |.GBL|Mirror = False|
| Top Overlay |.GTO|Mirror = True|
| Bottom Overlay |.GBO|Mirror = False|
| Top Solder Mask |.GTS|Plot as Negative = False|
| Internal Plane 1 |.GP1|Plot as Negative = True✅ |
⚠️ 特别注意:
-Solder Mask层虽是“开窗”,但Gerber中为正片语义(图形=绿油覆盖区),所以GTS/GBS不勾Negative;
-Internal Plane才是真正的负片(图形=挖空区域),必须双确认:① AD层属性设为Negative;② Gerber输出中勾Plot as Negative;否则CAM按正片渲染,整个VCC层变“实心铜”,板子直接报废。
钻孔文件:NC Drill不是“附赠品”,而是独立加工指令
很多人以为Drill Drawing(.gbr)和NC Drill(.txt)是一回事。其实前者只是给你看的示意图,后者才是CNC钻床真正执行的代码。
AD导出NC Drill时,最关键的三项设置是:
- Units必须与Gerber完全一致(Inches);
- Format建议用
2:5(2位整数+5位小数)——钻孔精度要求低于线路层,2:5对应0.00001inch(0.254μm),已远超机械钻头极限(±25μm); - 务必勾选
Separate Plated/Non-Plated Holes。多层板中,PTH(金属化孔)需沉铜,NPTH(定位孔/螺丝孔)不能沉铜,两者必须走不同工艺流程。混在一起,板厂只能拒收。
顺手一提:AD默认会过滤<0.1mm的孔。如果你做了0.08mm激光微孔,记得在Preferences → PCB Editor → Defaults → Via里把Minimum Hole Size调低,并切换至Laser Drill专用输出——普通NC Drill不支持。
验证不是“看看就行”,而是用工具重走一遍制造路径
导出完成≠任务结束。真正的防线,在于用板厂同款工具(如GC-Prevue或CAM350)做三件事:
- 查单位:打开任意
.gbl,搜%MO——必须是%MOIN*%,绝不能是%MOMM*%或没有; - 叠层对齐:加载
GTL+GTO,放大FIDUCIAL基准点,用测量工具看位号中心与焊盘中心偏移是否≤1mil(0.0254mm); - 数文件:四层板标准应有11个文件:
GTL,GBL,GTS,GBS,GTO,GBO,GTP,GBP,GP1,GP2,TXT
少一个,就等于少一道工序。
💡 行业老司机秘籍:把
GC-Prevue的验证步骤录成宏,每次导出后一键运行。我们团队还写了个Python脚本(见原文),集成进AD的Post-Process命令,导出即校验,错误直接弹窗。
把经验变成制度:一份能传承的OutJob模板
最后送你一句硬核建议:不要每次导出都手动点12次勾选。把最佳实践固化进OutJob模板里:
[GerberOutputs] Name = "Production_Gerbers_V3" Units = Inches Format = 5:5 ZeroSuppression = Leading CoordinateOrigin = UserOrigin MirrorTopOverlay = True MirrorBottomOverlay = False PlotInternalPlanesAsNegative = True ... [NC Drill Outputs] Units = Inches Format = 2:5 SeparatePlatedHoles = True SeparateNonPlatedHoles = True再配上一份Layer Checklist打印贴在显示器边:
☑ Top/Bottom Layer
☑ Top/Bottom Solder Mask
☑ Top/Bottom Silkscreen
☑ Internal Plane 1 & 2
☑ NC Drill (Plated + Non-Plated)
☑ Drill Drawing(仅用于人工检查)
如果你在导入GC-Prevue时发现某层边缘有锯齿、或钻孔圆心漂移明显,别急着重画PCB——先打开那个.gbl文件,用记事本搜FS(Format Statement),确认X2Y2还是X3Y3;再搜MO,看单位声明是否干净利落。
这才是电子工程师该有的“底层手感”。
欢迎在评论区分享你踩过的Gerber坑,或者贴出你的OutJob模板,我们一起补全这份制造契约。