news 2026/4/20 5:43:55

适用于生产交付的Allegro Gerber输出参数设置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
适用于生产交付的Allegro Gerber输出参数设置

从设计到制造:Allegro中一套真正“拿得出手”的Gerber输出配置实战指南

在硬件工程师的职业生涯里,最怕听到的一句话不是“功能不对”,而是——
“你们给的板子文件有问题,钻孔和线路对不上。”

更扎心的是,这问题往往出现在你信心满满地把PCB送去打样之后。工厂一封邮件发来截图:焊盘偏了、阻焊开窗太大、底层丝印全是镜像……轻则返工延误进度,重则整批报废。

而这一切的源头,很可能只是你在Cadence Allegro里点了几下“Artwork”设置时,漏掉了一个关键选项。

今天我们就来聊点实在的:如何用Allegro输出一套让厂家看了直呼“标准”的Gerber文件?不讲虚的,不堆术语,只说那些真正影响生产的细节配置,帮你避开90%以上的交付雷区。


Gerber到底是什么?别再把它当“导出图片”了

很多新手会误以为Gerber就是PCB各层的“截图”或“打印稿”。错。
Gerber是制造指令,是机器能读懂的语言。

它告诉光绘机:“在这块区域镀铜,在那里留个洞,这个圆圈要露铜,那段线不能上绿油。”每一个坐标、每一条路径,都直接决定最终电路板能不能做出来、做得准不准。

目前行业通用的是RS-274X 扩展格式,它的优势在于:
✅ 支持内嵌Aperture(图形模板)
✅ 无需额外提供.apt文件
✅ 层属性完整,支持正负片混合输出

所以你在Allegro里导出时,第一件事就是确认勾上了这一项:

✅ Embedded Apertures (RS274X)

否则系统会拆分出独立的aperture文件,一旦传输遗漏或命名错误,工厂根本无法正确解析。


单位与精度:微米级偏差的罪魁祸首

你以为差0.001mm没关系?可你知道大多数PCB厂的Gerber解析能力上限是多少吗?

答案是:6:5 英寸精度—— 即整数6位,小数5位(相当于0.00001 inch ≈ 0.254μm)。听起来很细,但如果你设成5:4或者用了毫米单位没对齐,舍入误差就会累积,导致整体图形偏移。

推荐设置:

参数建议值
UnitInches
Format6:5
Zero SuppressionLeading

为什么不用mm?因为绝大多数欧美设备和国产高端产线仍以inch为默认单位,尤其是钻孔系统。两边单位不一致,坐标原点哪怕差一丝,也足以让BGA焊盘失准。

🛠 实战提示:在Manufacturing > Artwork进入控制表单前,先检查菜单底部的状态栏是否显示INCH / 6:5,如果不是,请手动修改全局设置。


层怎么映射?别让GND层变成Top信号层

这是最常见的低级错误之一:明明画的是内电层,结果Gerber里输出成了普通走线层。

原因很简单——你在Artwork Control里搞错了Film的来源类型。

正确做法如下:

1. 顶层/底层信号层(正片)
Layer Name: TopLayer Source Type: Signal Subclass: All Polarity: Positive
2. 内层电源/地平面(负片)
Layer Name: L2_GND Source Type: Plane Subclass: Default Polarity: Negative ✔ Preserve Orphan Shapes

重点来了:必须勾选“Preserve Orphan Shapes”!

否则,那些用于调试测试的孤立焊盘(比如一个单独的地过孔),会被当成“浮动铜皮”清除掉。等你拿到板子才发现某个地网络不通,查了半天发现是Gerber自己“优化”掉了……

3. 阻焊层(Solder Mask)

这里有个坑很多人踩过:直接把PIN层复制过去当阻焊开窗。

结果呢?绿油把焊盘盖住了,或者开窗比焊盘还大一圈,回流焊时容易连锡。

正确的做法是使用Contraction(收缩)模式

Layer Name: TOP_SOLDERMASK Source Type: Package Geometry Elements: Pin, Shape, Line, Text ✔ Apply Contraction = 4 mils (即 -4)

什么意思?就是每个焊盘自动缩小4mil半径,这样开窗比实际焊盘小8mil直径,既保证上锡空间,又防止溢出短路。

⚠️ 注意:不同工艺略有差异,常规FR4板推荐-4mil;如果是HASL热风整平,可以适当放宽至-3.5mil;沉金板更精细,建议-4.5mil。

4. 丝印层(Silkscreen)

底层丝印文字镜像是正常的!

很多人看到Bottom Silkscreen里的字反着写就慌了:“是不是设置错了?”
不是。PCB制作时,底层丝印是从底面往上印的,所以必须镜像才能从正面看清。

判断标准很简单:
- Top层文字:左 → 右(正常阅读)
- Bottom层文字:右 ← 左(镜像状态)

只要方向符合这个规律,就没问题。

5. 板框与机械层

强烈建议单独建一个Film专门输出板框:

Film Name: BOARD_OUTLINE Source Type: Mechanical Subclass: 1 Only include lines on this layer

不要把尺寸标注、装配说明也混进来。Mechanical 1只放外轮廓线,清晰明了,方便厂家识别V-cut、铣槽路径。

其他用途分配建议:
- Mechanical 2:装配指引(如元件投影区)
- Mechanical 13:尺寸标注
- Mechanical 20:禁布区高亮


钻孔文件必须同步!坐标偏移八成出在这儿

Gerber管图形,NC Drill管钻孔。两者若原点不一致、单位不同步,就会出现“孔不在焊盘中心”的经典事故。

NC Drill 输出要点:

进入Manufacturing > NC Drill后,务必检查以下参数:

设置项推荐值说明
UnitsInches必须与Gerber一致
Format2:5小数点后5位,兼容性最好
Zero SuppressionLeading去除前导零
Tool OriginOff (Absolute)使用绝对坐标
Route Path自定义路径/output/drl/

然后点击 Generate,生成两个核心文件:
-.drl:钻孔数据(Excellon格式)
-.drldrw:钻孔图(供人工核对)

同时记得勾选:
- ✔ Generate N/C Drill Legend
- ✔ Draw Symbol at Each Location

这样才能让厂家一眼看出哪个符号对应多大孔径。


怎么验证你导出的文件没问题?

别指望工厂帮你查错。他们只会说:“文件异常,请重新提交。”

你要做的,是在发出之前自己先看一遍。

推荐工具:GC-Prevue(免费且强大)

下载地址:https://www.graphicode.com/free-viewer/

操作流程:
1. 把所有.art文件拖进去
2. 加载.drl钻孔文件
3. 切换Layer View,叠加Top Layer + Drill
4. 放大BGA区域,观察孔是否居中于焊盘

重点关注:
- 是否有缺层?(特别是内电层)
- 阻焊开窗是否过大?
- 底层丝印是否镜像正确?
- 非金属化孔有没有被误标记为镀通孔?

如果一切正常,再打包交付也不迟。


老手都在用的自动化技巧:Skill脚本一键输出

每次都要手动点十几层?项目多了难免漏掉一两项。

我们团队的做法是:写一个标准Skill脚本,固化输出模板。

; gerber_export_standard.il axlCmdWatchState(nil) printf("▶ 开始执行标准化Gerber输出...\n") dd = axlGetDatabase() artCfg = dd~>artwork axlSetArtworkConfig(artCfg) ; 全局设置 axlArtworkSetUnit('inch) axlArtworkSetPrecision(6 5) axlArtworkEmbedApertures(t) ; Top Layer (正片) topFilm = axlAddFilm("TOP_CU") axlAddToFilm(topFilm 'signal 'all t) axlSetFilmPolarity(topFilm 'positive) ; L2 GND Plane (负片) gndFilm = axlAddFilm("L2_GND") axlAddToFilm(gndFilm 'plane t) axlSetFilmPolarity(gndFilm 'negative) axlFilmPreserveOrphans(gndFilm t) ; 保留孤岛 ; Soldermask Top smTop = axlAddFilm("TOP_SM") axlAddToFilm(smTop 'packagegeometry 'pin t) axlAddToFilm(smTop 'shape t) axlSetFilmContraction(smTop 4) ; 收缩4mil ; Silkscreen Top ssTop = axlAddFilm("TOP_SS") axlAddToFilm(ssTop 'text t) axlAddToFilm(ssTop 'line t) axlAddToFilm(ssTop 'arc t) ; Board Outline outline = axlAddFilm("OUTLINE") axlAddToFilm(outline 'mechanical 1 t) ; 输出路径 outputDir = "/proj/release/gerber_v1.2/" axlArtworkOut(outputDir) printf("✅ Gerber输出完成:%s\n", outputDir)

把这个脚本放在公司共享库中,新人拿到就能用,极大降低人为失误率。

💡 提示:运行前确保当前.brd已保存,且层名与脚本一致。


交付清单:别忘了这些“附加材料”

一份完整的生产交付包,不只是Gerber+钻孔文件。我们通常还会附上:

📦 gerber_package_v1.2/ ├── TOP_CU.art → 顶层线路 ├── BOT_CU.art → 底层线路 ├── L2_GND.art → 内电层(负片) ├── TOP_SM.art → 顶层阻焊 ├── BOT_SM.art → 底层阻焊 ├── TOP_SS.art → 顶层丝印 ├── BOT_SS.art → 底层丝印 ├── OUTLINE.art → 板框 ├── pcb.drl → 钻孔数据 ├── pcb.rep → 钻孔报表 ├── stackup.pdf → 层叠结构图 ├── readme.txt → 特殊要求说明 └── impedance.xlsx → 阻抗控制参数(如有)

其中readme.txt至关重要,内容示例:

项目名称:PowerBoard_V1.2 投板日期:2025-04-05 层数:6层板 板材:IT-180A,Tg=180℃ 表面处理:沉金(ENIG) 特殊工艺: - L3/L4为背钻层,需控深钻 - 差分阻抗 100Ω±10%,参考层L2/L5 - 所有非金属化孔需做掏空处理 联系人:张工,phone: 138xxxx1234

有了这份文档,CAM工程师一看就懂,沟通成本大幅下降。


最后几句掏心窝的话

做过这么多年硬件,我发现一个规律:
越是经验丰富的工程师,越重视输出环节的细节。

因为他们知道,一次成功的投板,不仅仅靠完美的布局布线,更依赖于最后一步——把设计意图毫无损耗地传递出去。

而Gerber输出,正是这场“信息接力赛”的最后一棒。

你现在花十分钟认真检查一下Film设置,可能就避免了两周后的紧急改版。

与其事后救火,不如事前防患。

下次当你准备点击“Generate Artwork”时,不妨停下来问自己几个问题:

  • 我的单位和精度设对了吗?
  • 内电层真的输出成负片了吗?
  • 阻焊收缩量加了吗?
  • 孤立焊盘会被删掉吗?
  • 钻孔和Gerber坐标统一了吗?

只要把这些细节都答清楚了,你的文件,就已经超过80%的同行了。


如果你也在用Allegro做复杂板卡设计,欢迎留言交流你们的输出规范。也许下一次更新,我会把你们的经验也加进来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 6:02:58

工业协议解析入门:结合qserialport通俗解释

工业协议解析实战:用 QSerialPort 玩转 Modbus RTU你有没有遇到过这样的场景?设备连上了,串口也打开了,QSerialPort能收到一串串十六进制数据,但看着01 03 00 00 00 0A C4 0B这样的字节流,却不知道哪是地址…

作者头像 李华
网站建设 2026/4/16 21:32:32

使用量统计面板:可视化展示GPU算力与token消耗趋势

使用量统计面板:可视化展示GPU算力与token消耗趋势 在AI推理服务大规模落地的今天,一个看似不起眼却至关重要的问题浮出水面:我们如何真正“看见”模型运行时的资源消耗?尤其是在像GLM-TTS这样高保真、零样本语音合成系统中&#…

作者头像 李华
网站建设 2026/4/18 16:07:35

V2EX论坛发帖:与极客用户交流获取产品改进建议

与极客用户深度对话:从V2EX社区反馈看GLM-TTS的演进方向 在生成式AI浪潮席卷各行各业的今天,语音合成早已不再是“能出声就行”的初级阶段。越来越多开发者不再满足于千篇一律的机械朗读,而是追求“像人一样说话”——有温度、有个性、可定制…

作者头像 李华
网站建设 2026/4/19 15:22:17

Vivado 2019.2环境变量设置操作指南

Vivado 2019.2环境变量配置实战:从Windows到Linux的无缝部署你是否曾在安装完Vivado 2019.2后,满怀期待地打开终端输入vivado,却只看到一句冰冷的“command not found”或“不是内部或外部命令”?又或者,在运行Tcl脚本…

作者头像 李华
网站建设 2026/4/11 18:51:56

AUTOSAR网络管理PDU路由配置核心要点

AUTOSAR网络管理PDU路由:如何让整车唤醒不再“掉链子”?你有没有遇到过这样的场景?钥匙一拧,仪表盘迟迟不亮;远程启动车辆,空调却没反应;明明所有模块都该醒了,偏偏某个ECU还在“装睡…

作者头像 李华
网站建设 2026/4/15 8:21:33

WinDbg入门解析:快速掌握线程状态查看方法

WinDbg线程调试实战:从卡顿到死锁的精准定位你有没有遇到过这样的场景?一个关键服务突然“假死”,CPU占用率不高,任务管理器里进程还活着,但就是不再响应请求。重启能暂时解决,可问题总在几天后卷土重来——…

作者头像 李华