1. 从设计到生产:Gerber文件的核心价值与生成逻辑
画完PCB板,看着屏幕上那些精心布局的走线、焊盘和丝印,心里总会涌起一股成就感。但这份成就感要真正落地,变成一块能拿在手里、能通电运行的实体电路板,中间还隔着一道关键工序——把设计文件转换成能被PCB板厂机器“读懂”的语言。这道工序的产物,就是Gerber文件。很多刚入行的朋友,包括当年的我,都曾在这个环节上犯过嘀咕:明明有PCB源文件,为什么还要多此一举导出Gerber?直接在Altium Designer(也就是大家常说的Protel DXP的后续版本)里把.PcbDoc文件发给板厂不就行了吗?
这里面的门道,恰恰是工程师从“设计者”思维转向“生产者”思维的第一步。PCB源文件里包含了太多信息:你的元件库路径、设计规则、未使用的网络、甚至是一些调试用的注释层。这些信息对你调试设计至关重要,但对板厂的CAM(计算机辅助制造)工程师来说,却是需要费力甄别甚至可能引发误解的“噪音”。更关键的是,不同EDA软件版本、不同库环境都可能造成文件打开异常,直接导致生产延误。Gerber格式则是一种公开的、标准化的光绘文件格式,它只描述一件事:每一层电路图形(线路、阻焊、丝印等)的精确几何形状和位置。这就好比建筑师不能把带有个人标注和未定稿想法的草图直接交给施工队,而必须提供一套标准的、无歧义的施工蓝图。生成Gerber,就是绘制这份用于PCB生产的“施工蓝图”。
今天,我就以最常用的Altium Designer(其操作逻辑与Protel DXP一脉相承)为例,拆解一遍Gerber文件生成的全过程。我会把每个设置选项背后的“为什么”讲清楚,并分享一些只有踩过坑才知道的注意事项和检查技巧,确保你导出的文件一次成功,顺利下厂。
2. 生成前的关键准备:避免“垃圾进,垃圾出”
在点击那个生成Gerber的按钮之前,有几项准备工作比操作步骤本身更重要。所谓“Garbage in, garbage out”,如果原始设计有问题,导出的Gerber再好也是白搭。
2.1 设计完整性检查清单
首先,请务必运行一次彻底的设计规则检查(DRC)。在Altium Designer中,快捷键T + D打开“Design Rule Checker”对话框。我个人的习惯是,在最终导出前,勾选所有与生产相关的电气和物理规则,特别是:
- Clearance(间距):确保所有导线、焊盘、过孔之间的间距满足你的工艺要求和板厂能力(通常至少4-6mil)。
- Width(线宽):检查电源线等大电流走线是否足够宽。
- Short-Circuit(短路):这是致命错误,必须为零。
- Un-Routed Net(未连接网络):必须全部解决,一个飞线都不能留。
- Silk to Solder Mask Clearance(丝印到阻焊间距):防止丝印印到焊盘上,影响焊接。
注意:DRC通过只代表软件逻辑上没问题。你还需要肉眼检查一遍布局,特别是元件封装是否正确(我吃过把0603封装画成0805的亏)、极性元件方向、接插件位置是否与结构图匹配。
2.2 层叠管理与命名规范
进入生产环节,清晰的层定义是沟通的基础。在PCB编辑界面,按L打开“View Configurations”对话框。在这里,你需要确认:
- 所有用到的机械层(Mechanical Layer)都有明确用途。比如,用Mechanical 1层作为板外形(Board Outline),用Mechanical 13层作为尺寸标注层。混乱的机械层会让板厂工程师困惑。
- 为每一层起一个易懂的名字。例如,将“Top Layer”重命名为“线路-顶层”,将“Bottom Solder”重命名为“阻焊-底层”。虽然Gerber输出时不显示这些名字,但清晰的层管理有助于你在输出设置时快速准确地勾选。
2.3 原点设置:一切坐标的基准
这是新手最容易忽略,但后果可能很严重的一步。PCB设计时,原点可能在任何地方。但在生产时,所有Gerber文件必须基于一个统一的、合理的坐标原点。通常,这个原点应设置在板框的左下角或板子的一个定位孔中心。
- 如何设置:在PCB编辑器中,依次点击菜单
Edit->Origin->Set,然后将光标移动到你想设为原点的位置(如板框左下角顶点)并单击。 - 为什么重要:如果原点设置不当,可能导致所有层对位不准。板厂CAM工程师虽然可以手动调整,但会增加沟通成本和出错风险。一个规范的原点设置,是专业度的体现。
3. Gerber文件生成步骤详解:每个选项背后的考量
准备工作就绪,现在可以开始生成Gerber了。在Altium Designer中,通过File->Fabrication Outputs->Gerber Files打开设置对话框。这个对话框包含多个标签页,我们逐一拆解。
3.1 通用设置:精度与格式的基石
首先看到的是“General”标签页。这里的设置决定了Gerber文件的“分辨率”。
- 单位(Units):选择Inches(英寸)或Millimeters(毫米)。必须与你在PCB设计中使用的单位一致。如果设计时用毫米,这里却选了英寸,所有尺寸都会错乱。国内板厂通常更习惯公制(毫米)。
- 格式(Format):这是关键中的关键。它定义了坐标数值的小数点后位数,即精度。
2:3格式表示:整数部分2位,小数部分3位。即分辨率是1 mil(0.001英寸)。2:4格式表示:整数部分2位,小数部分4位。即分辨率是0.1 mil(0.0001英寸)。2:5格式表示:整数部分2位,小数部分5位。即分辨率是0.01 mil。
实操心得:对于绝大多数普通PCB(线宽/间距大于等于4mil),
2:4格式(0.1mil精度)完全足够,也是行业最通用的选择。2:5格式精度更高,但文件体积会略微增大,除非你做的是超高密度HDI板,否则没必要。绝对不要用2:3,1mil的精度对于现代精细工艺来说太粗糙了,可能导致边缘锯齿或细微间距错误。
3.2 层设置:勾选什么,不勾选什么
切换到“Layers”标签页。这里需要你决定哪些层需要被输出为单独的Gerber文件。勾选“Plot Layers”下的“Used On”,然后在下拉框中选择“All Used”。这时,所有你用到的层都会出现在下面的列表中。现在,你需要根据生产需求,手动勾选或调整。
下面这个表格是我总结的必出层清单及其对应关系,你可以对照着勾选:
| 层类型 (设计端) | Gerber文件后缀 (生产端通用) | 包含内容与输出要点 |
|---|---|---|
| 线路层 (Copper) | ||
| Top Layer | .GTL | 顶层走线、焊盘、覆铜。务必勾选。 |
| Bottom Layer | .GBL | 底层走线、焊盘、覆铜。务必勾选。 |
| Mid Layer 1, 2... (如有) | .G1, .G2... | 内电层或内信号层。通常板厂能识别,但最好在文件包中附上说明。 |
| Internal Plane 1, 2... (负片层) | .GP1, .GP2... | 负片内电层(Plane)。输出方式与正片不同,需特别注意。 |
| 丝印层 (Silkscreen) | ||
| Top Overlay | .GTO | 顶层元件边框、标识、文字。检查丝印是否远离焊盘。 |
| Bottom Overlay | .GBO | 底层丝印(如果有)。 |
| 阻焊层 (Solder Mask) | ||
| Top Solder Mask | .GTS | 定义顶层不开绿油的区域(即需要裸露焊接的焊盘和过孔)。这是负片:你看到的部分是“开口”。 |
| Bottom Solder Mask | .GBS | 定义底层不开绿油的区域。同样是负片。 |
| 锡膏层 (Paste Mask) | ||
| Top Paste Mask | .GTP | 用于制作SMT钢网,定义顶层需要刷锡膏的焊盘(通常是表贴元件焊盘)。 |
| Bottom Paste | .GBP | 定义底层需要刷锡膏的焊盘。 |
| 机械/边框层 (Mechanical/Board Outline) | ||
| 你定义的板外形层 (如 Mech1) | .GKO 或 .GMx | 最重要的一层。定义PCB的物理轮廓、槽孔、非金属化孔。必须清晰无误。 |
| 钻孔文件 (Drill Drawing) | 这是另一个独立文件,但必须和Gerber一起提供。 | |
| 钻孔图 | .GD1 (可选) | 钻孔位置的图形化表示,便于人工核对。 |
| 钻孔数据 (NC Drill) | 核心文件,提供钻孔的精确坐标和大小。 | |
| NC Drill File | .TXT 或 .DRL | 数控钻孔机直接使用的文件。 |
- 关于“Mirror”选项:永远不要勾选!除非你非常清楚自己在做什么(比如制作特殊工艺的底层菲林)。勾选镜像会导致生产出来的图形是反的。
- 关于“Include unconnected mid-layer pads”:对于内电层(负片),建议勾选。这会在孤立焊盘(如过孔)周围生成一个“反焊盘”(Antipad)的隔离圈,防止其与内电层短路。如果不勾选,软件可能默认这些过孔与内电层连接,导致严重错误。
3.3 钻孔绘制与钻孔数据:两个必须输出的文件
切换到“Drill Drawing”和“Drill Guide”标签页。这两个都是关于钻孔的。
- Drill Drawing(钻孔图表):生成一个图形化的钻孔位置图,标注不同孔径的符号。这主要是给人看的,用于视觉核对。勾选“Drill Drawing Plots”下的层,通常输出到某个机械层。
- Drill Guide(钻孔图例):生成钻孔符号的图例表。可以和Drill Drawing一起输出。
但是,以上两个图形文件并不是机床需要的!机床需要的是精确的坐标数据文件,这就是NC Drill Files。
你需要额外通过File->Fabrication Outputs->NC Drill Files来生成钻孔数据。在NC Drill设置中:
- 单位/格式:必须与Gerber文件的设置完全一致(例如,都是英寸,2:4格式)。
- 生成Leading/Trailing Zeroes:选择“Suppress leading zeroes”(抑制前导零)是更通用的格式。
- 点击“OK”后,会生成一个
.DRL(或.TXT)的钻孔数据文件和一个.DRR的钻孔报告文件。
核心禁忌:只发Gerber不发NC Drill文件,板厂就无法钻孔,生产根本无法进行。必须将Gerber文件包和NC Drill文件包一起打包发给板厂。
3.4 光圈表与高级设置
在“Apertures”标签页,通常保持“Embedded apertures (RS274X)”选中即可。RS274X(即Gerber X2格式的雏形)格式将光圈表(定义各种图形形状和尺寸)嵌入到每个Gerber文件内部,这是现代的标准做法,可以避免过去单独的.APT光圈文件丢失或错配的问题。 在“Advanced”标签页:
- Film Size:一般不用改,默认即可。
- Aperture Matching Tolerances:通常默认。
- Batch Mode和Separate File Per Layer:确保“Separate File Per Layer”被选中,这样每一层都会生成独立的Gerber文件,这是板厂要求的标准形式。
所有设置检查无误后,点击“OK”。软件会在你项目目录下自动生成一个“Project Outputs for ...”的文件夹,里面包含了所有输出的Gerber文件。
4. 生成后绝不能省的步骤:文件检查与验证
文件生成完毕,直接打包发出去?千万别!至少花15分钟做以下检查,能避免99%的返工风险。
4.1 使用免费查看器进行可视化检查
不要用Altium Designer回看,要用第三方Gerber查看器。我强烈推荐GC-Prevue(免费)或ViewMate。它们能像板厂CAM工程师一样“纯净”地读取你的文件。
- 导入所有Gerber层和NC Drill文件到查看器中。
- 逐层关闭/打开,检查:
- 层对齐:所有层的原点是否一致?叠在一起看,顶层焊盘和底层焊盘是否通过过孔完美对齐?阻焊层开口是否比焊盘稍大(通常单边大2-4mil)?
- 图形完整性:有没有异常的线条、丢失的焊盘、多余的碎铜?
- 板框:
.GKO层定义的板子形状是否正确?内部挖空区域(如有)是否存在? - 钻孔对齐:将钻孔层(
.DRL)与所有线路层叠加,看过孔是否都打在焊盘中心?槽孔(如果有)的位置和大小是否正确?
4.2 生成并阅读IPC网表进行电气验证
这是最专业、最可靠的检查手段,可以验证Gerber的电气连接性与你的原始PCB设计完全一致。 在Altium Designer中,通过File->Fabrication Outputs->Test Point Report或使用File->Assembly Outputs->Generates pick and place files的向导,其中包含IPC网表生成选项。更直接的方法是使用“PCB Filter”面板,但新手可以通过输出菜单找到。 生成一个IPC-D-356A格式的网表文件。这个文件描述了所有网络的连接关系。然后,在Gerber查看器(如GC-Prevue)中导入这个IPC网表和你输出的Gerber,运行“网表对比”功能。软件会逐点检查Gerber图形构成的连接关系,是否与IPC网表描述的连接关系一致。如果完全一致,恭喜你,你的Gerber文件在电气上是100%正确的。
4.3 文件打包与命名规范
检查无误后,将输出文件夹中的所有文件打包成一个ZIP压缩包。在压缩包里,最好包含一个简单的README.txt文件,说明:
- 板子名称、版本号。
- 所用软件及版本(如Altium Designer 23)。
- Gerber格式(如RS274X, 2:4 精度)。
- 各文件对应层说明(可以简写,如
.GTL-顶层线路)。 - 板厚、铜厚、表面工艺(如沉金、喷锡)等特殊要求(这些通常在订单页面填写,但放在包里更保险)。
- 你的联系方式(以备板厂工程师紧急沟通)。
5. 实战中遇到的典型问题与排查实录
即使步骤都对了,也可能因为一些细节设置导出有问题的文件。下面是我和同事们踩过的坑,以及解决办法。
5.1 问题一:板厂反馈“钻孔文件与Gerber对不上”
- 现象:板厂CAM工程师说钻孔位置偏移,或者孔径不对。
- 排查:
- 首要怀疑对象:单位/格式不一致。这是最高发的原因。立刻检查Gerber输出设置(
2:4)和NC Drill输出设置(2:4)是否百分百相同。一个用英寸一个用毫米,或者一个2:4一个2:3,必然对不上。 - 检查原点:确认Gerber和NC Drill文件是否使用了同一个坐标原点。在输出NC Drill文件时,也有一个“Origin”选项,务必选择“Reference to absolute origin”。
- 在查看器中叠加验证:用GC-Prevue同时导入Gerber和
.DRL文件,肉眼观察是否对齐。
- 首要怀疑对象:单位/格式不一致。这是最高发的原因。立刻检查Gerber输出设置(
- 解决:统一所有输出设置,重新输出,并在查看器中验证通过后再发送。
5.2 问题二:阻焊层覆盖了焊盘,导致无法焊接
- 现象:做出的板子,绿油(阻焊漆)把本该焊接的焊盘盖住了。
- 排查:
- 在Altium Designer中打开
.PcbDoc,检查Solder Mask Expansion规则(Design->Rules->Manufacturing->SolderMask Expansion)。这个值定义了阻焊层开口相对于焊盘的扩大值。如果这个值被设成了负数或0,阻焊层就会覆盖或刚好等于焊盘。 - 在Gerber查看器中,单独打开
.GTS(顶层阻焊)层,与.GTL(顶层线路)层叠加。正常情况下,阻焊层的开口应该比线路层的焊盘每一边都大出一点(通常是2-4mil)。如果两者完全重合或更小,就有问题。
- 在Altium Designer中打开
- 解决:在PCB规则中,将Solder Mask Expansion设置为一个正值(如4mil)。更新PCB后,重新输出Gerber并检查。
5.3 问题三:板框(外形层)缺失或不正确
- 现象:板厂不知道板子应该做成什么形状,或者形状有误(如缺少开槽)。
- 排查:
- 确认你输出的机械层(如
.GKO文件)确实包含了完整的板框信息。在PCB图中,板框必须是闭合的轮廓线,通常画在指定的机械层上。 - 在Gerber查看器中单独打开外形层文件,检查轮廓是否闭合,是否有断线。复杂的板框(含有弧线、非直角)是否变形。
- 特别注意非金属化孔和槽孔:这些也需要在外形层或专门的机械层上用线条画出其形状和位置,并在钻孔文件中体现(槽孔通常由一系列重叠的小孔或特殊指令表示)。
- 确认你输出的机械层(如
- 解决:确保板框绘制在独立的、已勾选输出的机械层上。对于复杂外形,可以用“Place -> Solid Region”来绘制多边形实心区域作为板框,这样输出更可靠。
5.4 问题四:丝印印到了焊盘上
- 现象:板子上的元件标识字符印在了焊盘区域,影响焊接和外观。
- 排查:
- 在Altium Designer中,使用“Tools -> Legacy Tools -> Legacy 3D View”快速查看3D效果,丝印问题一目了然。
- 运行DRC时,确保已启用“SilkToSolderMaskClearance”或“SilkToSilkClearance”规则。
- 在Gerber查看器中,将丝印层(
.GTO)和阻焊层(.GTS)叠加。阻焊开口定义了可焊接区域,丝印应完全在这个区域之外。
- 解决:在PCB图中手动调整丝印位置,远离所有焊盘和过孔。也可以使用软件提供的“Auto-Position Silkscreen”功能(如果可用),但之后仍需人工复查。
生成Gerber文件是PCB设计流程中承上启下的关键一步,它要求工程师具备严谨和细致的态度。我的体会是,把这套流程标准化、清单化,能极大减少出错概率。每次导出后,固定执行“查看器目视检查+IPC网表比对”这两步,就像飞行员起飞前的检查单一样,虽然繁琐,但能保证安全。最后一个小技巧:建立一个属于自己或团队的Gerber输出配置文件(.Cam文件),在Altium Designer中设置好一次后,以后的项目都可以直接调用,只需微调层选项即可,既高效又避免了每次设置可能带来的输入错误。