Allegro导出Gerber文件实战指南:从零开始,避开90%新手都会踩的坑
你是不是也经历过这样的时刻?
花了几周时间精心完成PCB布局布线,DRC全绿,自信满满地准备发给工厂——结果一打开Gerber查看器,发现焊盘被阻焊层盖住了、丝印反了、钻孔文件打不开……更糟的是,工厂回邮件说“缺少内电层”,只能返工重做。
别慌。这几乎是每个刚接触Allegro导出Gerber文件的工程师都绕不开的“成人礼”。
今天,我就带你一步步走完这个关键流程——不讲虚的,只讲你在实际项目中真正用得上的东西。我们会从界面认识开始,深入每一个设置项背后的工程逻辑,让你不仅知道“怎么点”,更明白“为什么这么设”。
一、为什么“Allegro导出Gerber文件”这么容易出错?
先说个真相:Allegro本身功能强大,但它的输出流程对新手极不友好。
它不像KiCad或Altium Designer那样有“一键输出”模板,而是把控制权完全交给你。这意味着:
- 每一层都要手动映射;
- 单位、精度、格式要自己定;
- 钻孔和光绘是两个独立流程;
- 稍有疏忽,就会导致生产事故。
而Gerber文件作为连接设计与制造的“唯一语言”,一旦出错,轻则板子报废,重则耽误整个项目进度。
所以,我们必须搞清楚:到底哪些环节最容易翻车?又该如何避免?
二、核心四步走:搞定Allegro Gerber输出的关键模块
1. 先定调子:Artwork Format Setup 决定了你的“输出标准”
当你点击Manufacture > Artwork进入输出管理器时,第一件事就是设置输出格式规范。
很多人直接跳过这一步,默认走,结果吃大亏。
关键参数必须这样设:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Format | RS-274X | 必选!这是目前全球通用的标准,支持内嵌Aperture(光圈),不需要额外传.apt文件 |
| Units | inch | 行业惯例,尤其是国内快板厂普遍接受inch单位 |
| Precision | 2:5 | 小数点后5位,足够精确且兼容性好;不要用3:5,部分老设备可能解析失败 |
| Mirror Layers | 不勾选 | 除非客户特别要求镜像层,否则关闭,避免丝印反向 |
📌划重点:RS-274X vs RS-274D
早期的RS-274D需要单独输出一个Aperture List(.apt),如果漏传或命名不对,工厂根本没法生成正确图形。而RS-274X把这些信息直接写进Gerber文件里,安全得多。现在所有项目都应强制使用RS-274X。
能不能自动化?当然可以!
如果你经常做类似项目,可以用Skill脚本一键加载配置:
;; 自动设置Artwork输出参数 (axlSetPlotSetup( list( 'outputDir "/project/output/gerber" 'format 'rs274x 'units 'inch 'precision '(2 5) 'mirrorLayers nil ) ))把这个保存为.scr文件,在下次新建项目时运行,省时又防错。
2. 精细控制每一层内容:Film Control 才是真正的“显微镜”
很多人以为Layer Mapping就是拖拽一下完事,其实真正的细节在Film Control里。
进入Artwork Control Form > Film Control后,你会看到每个film(即输出层)的具体构成。
举个真实案例:阻焊层为啥会把焊盘盖住?
我见过太多人在这里栽跟头——他们把整个Top层丢进了Soldermask层,结果所有铜皮都被覆盖了!
正确的做法是:
- 创建一个名为GTS的film(Top Solder Mask)
- 在Source中只添加:Soldermask_Top
- 极性设为Positive
- 绝对不要加入Top Etch或Top Pins
因为Soldermask的作用是“开窗”,也就是告诉工厂:“这里不要上绿油”。如果你把它当成铜层一样正片输出,那工厂就会理解成“整块都是绿油”,自然就把焊盘封死了。
特殊情况:电源层怎么处理?
对于多层板中的内电层(如VCC/GND Plane),建议采用Negative Polarity(负片)输出方式。
好处:
- 文件体积小;
- 大面积铺铜效率高;
- 工厂CAM软件处理更快。
如何设置?
- 新建film,比如叫G2P(Layer 2 as Plane)
- 添加源层:Route, Pin, Via等非平面区域
- 设置Polarity = Negative
- 这样输出的就是“挖掉”的区域,其余部分默认连通
💡 小技巧:右侧有个Preview窗口,点一下就能实时预览效果。务必养成习惯,每配一层就看一眼!
3. 钻孔文件不是小事:NC Parameters 设置错了,钻床直接罢工
很多新人误以为钻孔只是“生成.drl文件”就行,其实这里面门道很深。
进入路径:Manufacture > NC > NC Parameters
必须统一的关键参数:
| 参数 | 推荐设置 | 原因 |
|---|---|---|
| Format & Units | 2:5 inch | 和Gerber保持一致,避免坐标系统混乱 |
| Zero Suppression | Trailing | 去掉末尾零,例如0.05000→0.05,主流格式 |
| Tool Origin | Absolute Offsets | 使用绝对原点,确保与PCB坐标系一致 |
| Generate Step Plots | 勾选 | 支持盲埋孔分步钻孔,尤其适用于HDI板 |
别忘了生成钻孔图!
除了.drl数控文件,你还得输出一张Drill Drawing给人工核对。
操作路径:Manufacture > Drafting > Drill Symbol Drawing
它会自动生成一张PDF或Gerber图,上面标有:
- 每种钻头的符号(圆形、方形等)
- 孔径列表
- 总孔数统计
方便工厂快速确认是否有异常孔径或遗漏孔型。
自动化脚本加持:
;; 设置并生成NC钻孔文件 (axlCmdQuote (axlSetNcParams list( 'outputDir "/output/ncdrill" 'format '(2 5) 'units 'inch 'zeroSuppression 'trailing 'toolOrigin 'absolute ) ) (axlGenerateNCDrill) )配合批处理任务,实现“一键输出钻孔+光绘”。
4. 层映射别乱来:Layer Mapping 是数据完整的基石
最后一步,也是最容易遗漏的一步:Layer Mapping。
打开Artwork Control Form > Layers,左边是你的物理层,右边是你定义的films。
常见的标准映射关系如下:
| Allegro Layer | 输出名称 | 标准后缀 | 说明 |
|---|---|---|---|
| Top | GTL | .gtl | 顶层铜皮 |
| Bottom | GBL | .gbl | 底层铜皮 |
| Soldermask_Top | GTS | .gts | 顶面阻焊开窗 |
| Silkscreen_Top | GTO | .gto | 顶面丝印 |
| PasteMask_Top | GTP | .gtp | 贴片钢网层 |
| Inner Layer 2 | G2P | .g2p | 第二层内电层(负片) |
✅ 提示:命名尽量遵循IPC-2581或Ucamco推荐规范,提高通用性。
容易犯的三个错误:
- 漏掉内层:特别是中间的电源/地层,忘记映射会导致整板短路;
- 重复映射:同一个层被加到多个film中,造成数据冗余甚至冲突;
- 命名随意:比如叫
power.gbr、top_silk.gbr,工厂无法自动识别。
建议将常用配置保存为.art模板文件,团队共享使用,保证一致性。
三、完整工作流:我是怎么一次成功交付的
下面是我个人的标准操作流程,已经验证过上百个项目,几乎零返工。
✅ 第一步:收尾检查
- 运行最终DRC,确保无未布线网络;
- 更新所有动态铜皮(Ctrl+Flood);
- 检查位号是否整齐、无重叠或压焊盘;
- 确认所有封装都有正确的Soldermask/PasteMask定义。
✅ 第二步:启动Artwork Manager
- 路径:
Manufacture > Artwork - 创建新的Plot Group,命名为
GERBER_RS274X
✅ 第三步:设置全局格式
- Format: RS-274X
- Units: inch
- Precision: 2:5
- Subdrawing Options: Include all
✅ 第四步:逐层配置Film
| Film Name | Source Layers | Polarity | 备注 |
|---|---|---|---|
| GTL | Top, Top Etch, Top Pins | Positive | 顶层铜 |
| GBL | Bottom, … | Positive | 底层铜 |
| GTS | Soldermask_Top | Positive | 只开窗 |
| GBS | Soldermask_Bottom | Positive | 同上 |
| GTO | Silkscreen_Top | Positive | 丝印文字 |
| GBO | Silkscreen_Bottom | Positive | 注意字体方向 |
| G2P | Route, Pin (on L2) | Negative | 内电层负片 |
⚠️ 特别注意:Silkscreen层不要包含RefDes以外的内容,防止误入阻焊层。
✅ 第五步:生成钻孔文件
- 进入NC Parameters,按上述推荐设置;
- 点击 Generate Drill Files;
- 同时生成Drill Drawing供审核。
✅ 第六步:执行输出
- 回到Artwork窗口,点击
Plot; - 查看Log窗口是否有警告(如missing layer、aperture超出范围等);
- 若无错误,继续下一步。
✅ 第七步:打包交付
将以下文件整理进一个文件夹:
/output_20250405/ ├── TOP.gtl ├── BOT.gbl ├── TSM.gts ├── BSM.gbs ├── TSS.gto ├── BSS.gbo ├── IN1.g1p ├── IN2.g2p ├── drill.drl ├── drill.pdf └── README.txt在README.txt中写明:
项目名称:XXX主板 版本号:V1.2 层数:6层 板材:FR-4 表面处理:沉金 备注:已包含全部Gerber及钻孔文件,请确认坐标原点为板左下角。压缩为ZIP发送即可。
四、常见问题急救包:遇到这些问题别慌
| 现象 | 原因 | 解法 |
|---|---|---|
| 工厂说“缺层” | Layer Mapping遗漏 | 回查Artwork中是否少了内层或阻焊层 |
| 绿油盖住焊盘 | Soldermask极性错设为Negative | 改为Positive,并确认只含Soldermask层 |
| 钻孔文件打不开 | 单位或零抑制不匹配 | 统一为2:5 inch + Trailing Zero |
| 丝印镜像反了 | 错误启用Mirror Layers | 关闭Artwork中的Mirror选项 |
| 文件太大传输困难 | 内层用了正片输出 | 改为Negative输出,减小90%以上体积 |
五、高手都在用的设计习惯
建立公司级输出模板
把一套验证过的.art文件作为标准模板,新项目直接加载,减少人为失误。双重校验机制
导出后必须用第三方工具查看,推荐:
- GC-Prevue (免费)
- ViewMate(老牌专业工具)
重点关注:各层对齐情况、焊盘开窗、丝印位置、是否有残留图形。
- 提前对接工厂规范
不同厂家接收标准略有差异,例如:
- JLCPCB:支持zip打包,自动识别命名;
- Sunstone:要求提供readme;
- 快板厂:偏好2:4精度以加快处理速度。
建议在项目初期就索取其Gerber接收规范文档。
- 集成自动化脚本
对于量产项目,可编写Tcl/Skill脚本实现:
- 自动更新版本号
- 自动打包带时间戳的文件夹
- 自动生成PDF报告
实现“一键发布”。
写在最后:掌握本质,才能应对变化
“allegro导出gerber文件”看起来只是一个操作步骤,但它背后反映的是你对PCB制造工艺的理解深度。
当你明白:
- 为什么用RS-274X而不是RS-274D,
- 什么时候该用负片输出,
- 阻焊层的本质是“开窗”而非“铺铜”,
你就不再是一个只会点按钮的人,而是一名真正懂制造的设计师。
未来随着智能制造的发展,EDA工具会越来越智能,也许有一天真的能做到“一键投产”。但在那天到来之前,我们仍需亲手把关每一次输出。
毕竟,一块板子的成本可能是几十块,但项目的代价,往往是几个月的时间。
如果你正在学习Allegro,或者刚刚接手第一个量产项目,欢迎在评论区留言交流。我们一起少走弯路,把每一笔设计,都变成可靠的硬件产品。
🔍关键词回顾:allegro导出gerber文件、Gerber文件、RS-274X、Artwork、Film Control、NC Drill、Layer Mapping、钻孔文件、PCB制造、输出格式、单位精度、Skill脚本、正负片、阻焊层、丝印层