
做硬件设计这一行谁没在 Gerber 上栽过跟头Cadence Allegro 17.4 出光绘光是一个 Artwork 设置就能让不少新人卡上一整天。尤其是从 AD 转过来的工程师对 Allegro 里 Film、Subclass、RS-274X 这些概念非常懵。这篇教程就是一份可以直接照着点的保姆级操作手册从出图前的原点设置、叠层核对到 Artwork 面板里的每个参数再到钻孔文件、辅助生产文档、CAM350 回收检查我会把每一步该点什么、为什么要这么设置、哪些坑我替你踩过了全部写清楚。只要板子设计本身没问题按这套流程走20 分钟就能拿到一套板厂敢接、代工厂敢贴的干净 Gerber。先说结论出 Gerber 这件事绝大多数返工不是设计错误而是设置问题。文件名乱起、负片忘了勾选项、钻孔和光绘格式对不上这些和电路原理半毛钱关系都没有但就是把项目拖死。所以这套流程的核心不是“学会点按钮”而是建立一套可控、可复查的输出规范。1. 正式动手前先把这几处边界条件锁死很多人一上来就直接Manufacture - Artwork结果输出完发现内层铜皮整个反了或者板厂反馈说“文件打不开”最后熬夜排错。我先劝住你Artwork 只是最后一步前面还有四件事必须确认否则后面越着急越乱。1.1 原点与单位板框左下角才是最稳的参考点Allegro 默认画布上是无坐标起点的所有器件坐标、钻孔坐标、光绘坐标都跟着原点走。我的习惯是在出 Gerber 之前先把设计原点钉死在板框左下角。操作路径Setup - Change Drawing Origin然后在命令行输入坐标0 0再把光标吸附到板框左下角顶点点击确认。如果你板框是圆角矩形就吸附到机械层Design Outline的任意左下端点。设置完成后可以在Display - Status里看看原点是否生效最直观的方法是看右下角坐标读数。为什么非要做这一步因为板厂会用原点作为拼板、钻孔、贴片坐标的绝对参考。如果原点浮在板外光绘坐标里会出现大数值偏移虽然现代软件一般也能处理但一旦拼板或者做邮票孔量产的误差会被放大。把原点锁在板框左下角所有文件里的坐标都和 PCB 实际位置一一对应排查问题会轻松很多。单位方面Allegro 默认设计单位一般是 mil也就是千分之一英寸。我不建议在最后关头切换成毫米尤其不要在光绘设置里单独换单位。整个工程从建库到出图单位必须全链路统一混用单位是原点和钻孔错位的头号嫌疑犯。1.2 用 Cross-Section 核对叠层不能只盯着图形Gerber 描述的是每一层“长什么样”铜厚、介质厚度、阻抗线宽这些物理参数是不包含在光绘文件里的。板厂拿到手后会参考你的叠层报告来压合。如果叠层设置错了比如把 1oz 当成 0.5oz输出来的板子要么阻抗偏了要么铜厚不达标完全是废品。在 17.4 里打开叠层管理器Setup - Cross-Section。这里能看层叠结构、介质材料、铜箔厚度、阻抗层设置。我的建议是在出 Gerber 前把叠层表对照一下自己的设计需求确认以下几点层数是否和原理图一致内层命名是否清楚比如GND、PWR、SIG1每层铜厚与板厂报价单是否一致常见是 1oz 或 0.5oz介质总厚度是否会影响到目标阻抗如果板厂要求 100Ω 差分需要核对线宽和间距处理完这块把叠层报告导出来备用后面辅助生产文档章节会细说。1.3 先跑真实 DRC消除“带着错误出图”Allegro 的在线 DRC 不是默认全开的尤其 17.4 这种版本很多规则检查要靠手动触发。你可以在Display - Status里看到 DRC 错误数量如果 Short 或 Spacing 报红千万别当没看见直接出 Gerber。稳妥做法是Setup - Constraints - Modes把所有 Spacing、Same Net Spacing、Physical 相关项全部开启然后Display - DRC Update等跑完再看Display - Status。不是说 DRC 清干净才能出图而是说不能有“短路”“断路”等致命错误。一些 warning 级别的报错比如丝印压盘、最小间距告警可以在后面检查阶段人工判断。但短路必须清零。1.4 更新数据库避免输出旧状态Allegro 画板过程中封装修改、铜皮更新、网络变化会留下很多缓存。直接输出 Artwork偶尔会出现“焊盘还是旧形状”“铜皮少了块”这种诡异问题。所以出图前我会固定做一次Place - Update Symbols在弹出的窗口里什么都不改直接点Refresh All。这一步会刷新所有封装和铜皮的数据库状态。如果有条件再跑一次Tools - Database Check也就是 DBDoctor确认数据库没有损坏。数据库损坏的情况不常见但真碰上一次输出光绘会随机缺层排查起来极其痛苦。流程跑完才可以进入 Artwork 设置。2. Artwork 面板逐项解剖Film、格式、线宽参数一个都不能少Artwork 这个词直译是“艺术品”在 Allegro 里实际指光绘/底片输出。打开方式Manufacture - Artwork。这个面板集中了所有输出控制很多人一进来看到一堆树形结构就懵了其实拆开看就三块Film 列表、Subclass 勾选、General Parameters 全局参数。2.1 建好 Film并给文件起一个板厂一眼懂的名字Film 可以理解为一个“虚拟相机”每一台相机拍一层内容。常见的做法是TOP 铜箔、内层、BOTTOM 铜箔、顶层丝印、底层丝印、顶层阻焊、底层阻焊、板框各建一个 Film。在 Artwork Control Form 里左边是 Film 列表默认只有DEFAULT。右键可以Add新建 Film双击名称可以重命名。命名不是随便起的有一个隐含的行业习惯就是让板厂不用猜也知道这是什么层。下面这套命名是我一直在用的也是不少板厂熟悉的主流风格Film 名称生产文件含义建议命名后缀01_TOP顶层铜箔TOP.GTL02_INNER1内层1铜箔INNER1.G1L03_INNER2内层2铜箔INNER2.G2L04_BOTTOM底层铜箔BOTTOM.GBL05_TOPSILK顶层丝印TOPSILK.GTO06_BOTSILK底层丝印BOTSILK.GBO07_TOPMASK顶层阻焊TOPMASK.GTS08_BOTMASK底层阻焊BOTMASK.GBS09_OUTLINE板框/外形OUTLINE.GKO当然后缀不是绝对的有些板厂习惯.gbr或者以自定义后缀为主只要你交付时文件名和内容对应清楚就行。关键是不要出现TOP1、TOP2这种含义模糊的名字更不要用默认的DEFAULT直接输出。2.2 Film 里到底勾哪些 Subclass铜箔、丝印、阻焊分开看选中左侧一个 Film右侧会显示所有可供勾选的 Subclass 树形结构。这一步是新手最容易翻车的地方很多人图省事直接Select All结果把丝印、装配层、禁止布线层全部塞进铜箔层板厂收到的 TOP 层花花绿绿DFM 根本没法自动处理。我给出一个可以直接抄的勾选标准铜箔层 Film 只勾这三类对应层的ETCH比如 TOP 层的TOP/ETCH对应层的PIN也就是焊盘对应层的VIA过孔以 TOP 层为例你需要展开树形列表到TOP下的ETCH、PIN、VIA三个子项勾上即可。不要勾SILKSCREEN、SOLDERMASK那些是别的 Film 的事。丝印层 Film 要勾对应层的SILKSCREEN_TOP或SILKSCREEN_BOTTOM多数设计还需要勾BOARD GEOMETRY/SILKSCREEN_TOP用于输出板框丝印标记如果元件位号在REF DES/SILKSCREEN_TOP这种子层里也要一并加上丝印层输出前我建议在 PCB 编辑器里检查一下位号文字大小是否都大于等于生产最小线宽常见要求是字宽不低于 0.15mm如果太小板厂会直接帮你省略或者调整这会影响贴片找位。阻焊层 Film 要勾SOLDERMASK_TOP或SOLDERMASK_BOTTOM同时勾上对应层的PIN和VIA因为阻焊开窗的位置就是从焊盘和过孔的位置来的不要勾ETCH阻焊层常见问题是插件孔周围、BGA 焊盘周围的开窗大小需要看生产要求一般板厂默认开窗比焊盘大 4~6mil但是如果你想控制开窗就要在封装里画SOLDERMASK层的内容或者在输出前确认。板框 Film常见板框画在BOARD GEOMETRY/OUTLINE或DESIGN_OUTLINE勾选对应子层即可如果设计里有异形孔、安装孔、V-cut 标记、拼板标记通常也一并勾入这里给一个提醒在 17.4 中左侧 Film 列表下方的树形结构默认是折叠的你勾完一个子层后不要着急关面板可以展开看看是否真勾上了。我遇到过不少次勾完以为生效其实点在了父节点上导致整个子层都没输出。2.3 正片与负片四层板以上能用正片就别用负片Film 面板里每个 Film 都有一个Positive/Negative选项这是几十年的老概念但它依然坑人。正片的意思是光绘里“有图形的地方就是铜”黑就是有铜。负片相反白的地方才是铜。负片在 Allegro 里主要用于内层大平面电源/地层因为不用将大片铜皮逐一画出能大幅减小文件体积早期数据传输时代这是巨大优势。问题在于负片在 Allegro 里的避让、隔离带、散热焊盘处理逻辑非常绕。内层如果有多个分割的电源网络或者既有平面又有走线负片很容易出现“莫名的多余铜皮”或者“该连的地方断开了”。我收到的返工案例里大量是负片参数没设对导致的。我的建议是除了一种情况——内层整层就是一个完整的地平面且没有任何混合走线可以考虑负片——其他时候统一用正片。正片输出的是所见即所得的铜皮和你画板时看到的完全一致板厂处理起来也不容易误解。文件大一点无所谓现在网络传输成本约等于零别为了省文件大小给自己埋雷。如果你坚持用负片那下面这个选项必须打开General Parameters里的Suppress unconnected pads。这句话翻译过来就是“删除没有实际连接网络的孤立焊盘”。负片是全区域反白如果没有连接关系的焊盘不会被抑制掉最终会形成孤立铜盘生产时既可能造成短路风险也会影响阻抗一致性。这个选项在正片模式下通常也建议勾选但负片模式下是必须勾选。2.4 通用参数格式、线宽、输出路径的推荐值Artwork 面板底部有个General Parameters按钮点进去是全局设置。四个关键项目我一个一个说清楚。Device type 必须选 Gerber RS-274X。这是现在所有板厂通吃的格式光绘文件里已经内嵌了光圈D码信息不再需要单独的光圈文件。如果你选老式 RS-274D输出时还必须额外提供.APR光圈表一旦文件清单漏了这玩意儿板厂打开光绘就会报错。所以我的态度很明确新设计一律 RS-274X不要因为“公司老流程一直用 274D”而头铁。Format 选择 4:6。这个参数指的是坐标的整数位和小数位长度。Allegro 默认一般是 3:5也就是整数 3 位、小数 5 位。如果设计单位是 mil当板子尺寸超过 999mil约 25.4mm时用 3:5 就有坐标溢出风险虽然 Allegro 有时会自动处理但更稳妥的方式是直接选 4:6。整数 4 位支持到 9999mil也就是约 254mm绝大多数 PCB 都够用了小数 6 位在 mil 单位下精度远高于生产需求不会因此膨大文件放心用。Undefined line width 设置为 0.006 inch 左右。这个参数是给“线宽为 0”的图形赋一个默认宽度。Allegro 里很多板框、外框、标注线默认线宽是 0如果不给个值有些老机型或者低端 CAM 工具会解析失败。设多少合适太小可能被制造工艺吃掉太大则可能造成间距不足。0.006 inch 约等于 0.1524mm一般板厂最小线宽工艺在 0.1mm 到 0.15mm 之间0.006 是一个稳妥的底线。如果你的设计中有比这更细的有效图形会选择覆盖成 0.006需要确认不会影响电气间距。我习惯在出图前用Display - Status看一眼设计最小线宽如果最小线宽比 0.006 还小说明本身有工艺风险不是靠调 Undefined width 能解决的。输出路径建议单独建目录。在 General Parameters 里把输出目录设置到工程目录下的gerber_out文件夹不要直接输出到.brd所在目录。这样打包交付时整个文件夹一压缩就能发给板厂不会漏文件也不会把工程文件误发出去。提示如果 General Parameters 里也看到了Aperture rotation或者Aperture type这类选项那是给 274D 用的RS-274X 下一般不用动。别乱勾尤其是“Use rotation for flashes”这类选项勾了反而可能让焊盘旋转角度出错。3. NC Drill 钻孔文件最容易“差一点”的环节光绘文件解决的是铜箔、丝印、阻焊的图形问题但板子上所有孔的信息要靠 NC Drill 文件传出去。钻孔文件如果和光绘对不齐板厂按一个坐标系做出来的孔就会偏轻则焊盘报废重则整板作废。3.1 生成钻孔文件前先检查单位与格式是否和光绘一致进入Manufacture - NC - NC Drill。在弹出的 NC Drill 窗口里第一件事就是看单位和格式。单位必须和光绘一致也就是设计单位 inch 或 mm不要混用。格式同样选4:6。很多“钻孔偏移”的案例根因不是生产问题而是光绘用 4:6钻孔却用了 3:3 或 2:4小数点位数不一致CAM 软件导入后坐标就被截断了视觉上就是“孔没有打在焊盘中心”。所以在 NC Drill 窗口里可以这样设置单位Inches格式4:6输出文件名保持drill.drl或按项目命名Enhanced Excellon格式可以勾选这是当前主流格式支持更多钻孔属性设置完点击GenerateAllegro 会在输出目录生成一个.drl文件。如果你的板子有槽孔、异形孔通常还需要Manufacture - NC - NC Route生成.rou文件参数和钻孔一致即可。大多数设计都有几种非圆形孔这一步不能省。3.2 生成钻孔符号图NC Legend板厂和装配都依赖它钻孔文件是坐标数据人眼是看不了的所以还要生成一张钻孔图也就是 Drill Legend。操作路径Manufacture - NC - NC Legend。在参数窗口里选好单位、线宽和钻孔图层的摆放位置通常放到板框外右下角空白区域。Allegro 会自动生成一个表格列出每种孔径的符号、类型、数量。比如0.3mm 过孔、0.8mm 插件孔、1.0mm 定位孔每一种都有对应符号。这张图不是纯摆设。板厂做工程确认时会依据钻孔图核对 Gerber 里的孔和钻孔文件是否一致SMT 贴片时也会参考钻孔图确认特殊孔位。所以它本质上是“钻孔坐标文件的可视化解释文档”不可省略。3.3 盲埋孔与背钻不只要出文件还要在说明里写清楚如果你的板子有盲孔、埋孔或者背钻NC Drill 会自动生成多个层段的钻孔文件文件名里通常会有BLIND、BURIED、BACKDRILL之类的字样。这个没问题但要注意板厂生产时除了看文件还需要一个文档明确说明“哪几层之间是盲埋孔”“背钻是从第几层钻到第几层”。我的做法是在输出文件夹里额外放一个README.txt写清层叠、孔类型、背钻要求、阻抗要求。不要觉得多余很多沟通误会就是“我以为板厂看得懂文件板厂以为我知道他们默认规则”。项目名xxxxx 版本V1.0 层数6层 叠层TOP/GND/SIG1/PWR/SIG2/BOTTOM 孔类型通孔 盲孔(TOP-L2) 埋孔(L2-L5) 背钻无 阻抗100Ω差分对参考 GND 层 板材FR4 1.6mm 1oz 铜厚这段话现在写起来简单真等板厂打电话来问时就晚了。生产文件里多一个说明永久省心。4. 辅助生产文档叠层报告、PDF 装配图和坐标文件光绘和钻孔是生产主文件但只交这些板厂做工程确认时还是会追着你要叠层报告、装配图。与其让板厂追不如主动一起交付。4.1 叠层报告把 Cross-Section 里的信息导出成文档在Setup - Cross-Section中检查完叠层信息后可以通过菜单导出文本报告。17.4 里通常在 Cross-Section 窗口内部或者File - Export - Reports中找到Cross-section report。如果导出的报告格式比较乱也没关系你完全可以手动整理成一个表格关键是数据要真实对应设计文件层名类型铜厚介质材料介质厚度TOP走线1oz——PREPREG介质—FR40.2mmGND平面1oz——CORE芯板—FR41.2mm...............这份报告会直接影响阻抗计算和生产压合。建议在发板前把表格和板厂确认一遍“是否按这个叠层生产”不要等 Gerber 全部做完才发现铜厚报错。4.2 PDF 装配图和打印输出Allegro 自带的绘图输出可以直接生成 PDF。操作路径File - Plot在打印设置里选择 PDF 打印机或者通过Print Setup选 Adobe PDF 虚拟打印机。这里面有个细节打印前先通过右侧颜色管理器把你想输出的图层显示出来。比如要出 TOP 装配图就只显示 TOP 层的铜箔、丝印、位号、板框要出 BOTTOM 装配图时尽量把“视图翻到底面”并勾选镜像避免丝印和层方向不对应。PDF 装配图对 SMT 贴片厂非常有用他们核对 BOM、位号、极性时不会有人打开你的.brd原文件而是看 PDF。所以 PDF 里必须把位号文字、极性标志、第一脚标志打得清清楚楚。这一页 PDF 别省。4.3 坐标文件给贴片机准备的 Pick and Place 文件坐标文件不归板厂管但归贴片厂管。如果你的项目后面要委外 SMT 贴片提前导出会省很多事。操作路径File - Export - Placement。导出的坐标文件包含每个器件位号、中心坐标、旋转角度、所在面。单位建议按照贴片机要求来常见是公制毫米坐标原点要和 Gerber 原点保持一致。如果原点是板框左下角贴片厂就不需要再做坐标换算。有一个容易忽略的地方Placement 文件默认会输出所有器件包括测试点、定位标记点Fiducial。如果你只想要贴片器件可以在导出时选择类型过滤。测试点坐标也一起给出来方便后续计划用倒也不是什么坏事。5. 最后一道闸拿 CAM350 把 Gerber 读回来逐层检查这一步是我永远不跳过的环节。Gerber 输出完你以为结束了其实一半的坑都藏在“导出的文件并不等于你画的设计”里。只有把它重新读进第三方工具站在板厂视角看一遍才算闭环。5.1 CAM350 自动导入先确认所有文件都能被识别打开 CAM350没有的话用开源 Gerbv 也能做基础检查选择File - Import - Autoimport然后指向你输出的gerber_out目录。Autoimport 会自动识别所有.GTL、.GBL、.GTO、.GTS、.drl并按照层叠顺序排好。这一步如果出现任何“读取失败”“D码未定义”“层文件为空”的提示不要跳过先回到 Allegro 检查对应 Film 是否设置正确再重新输出。读都读不出来板厂机器大概率也会报错只是时间早晚问题。能走到 CAM350 这一步说明文件完整性已经初步过关。5.2 逐层与设计文件比对重点看四个位置CAM350 里导入后我一般按下面顺序检查铜箔层和焊盘完整性只看 TOP 光绘层确认主要芯片的引脚焊盘、过孔都在和 Allegro 里的 TOP 层视觉对比一下网络连线没有缺失。阻焊开窗打开 Top Mask 层把焊盘层叠上来目测开窗是否完全覆盖焊盘。注意 BGA 区域如果开窗过小贴片才看到绿油盖盘就晚了。丝印层文字方向Top Silk 的文字方向是否可读、有没有严重压焊盘。压到焊盘的位号板厂可能会移字或删字但你要提前判断哪些是绝对不能动的标记比如极性符号。板框与外形打开 OUTLINE 层看板框是否有缺口、是否闭合。如果外形线有重叠、断线板厂做铣削时可能出现公差问题。铜箔层、阻焊层、丝印层、板框四个维度过一遍基本能避免 90% 的低级错误。5.3 钻孔对齐检查打开 Drill 层看“同心度”这是我认为 CAM350 最值得花时间去做的检查。把磨损层叠在同一视图里显示钻孔层放大到焊盘中心看钻孔符号的中心是否和焊盘中心重合。如果偏了先看是不是只是显示比例问题。如果确实偏而且偏移方向一致那基本可以断定是钻孔文件和光绘文件单位或者坐标格式不一致。现在回到 Allegro检查 NC Drill 里的 Format 和单位和 Artwork 里 General Parameters 的 Format 对齐重新输出一次钻孔文件。如果孔偏的方向不一致、大小不一那就要检查焊盘封装里钻孔层定义是否跟实际焊盘大小匹配。封装阶段的问题此时也要一并处理否则板厂会按最小孔环规则给你做出来很可能出现孔环不足。5.4 交付前最后检查清单打包发送给板厂之前我再做一遍清单式确认。这个习惯帮我减少过无数次低级错误[ ] 生成的文件是否覆盖所有层TOP、内层、BOTTOM、丝印、阻焊、板框、钻孔[ ] 是否遗漏 NC Route 文件有非圆形孔时[ ] 文件名和实际内容对应版本号是否一致[ ] 钻孔文件与光绘文件单位/格式一致[ ] 叠层报告、装配 PDF、坐标文件是否齐全[ ] 整个文件夹压缩后命名是否带项目名和版本号比如项目_V1.0_Gerber_20250101.zip压包的时候建议顺便把.brd文件也放在一个design_backup子目录里一起发不是给板厂用的而是留存一个完整时间点的快照。万一后面要改板、查问题直接从这个包恢复不用满硬盘找旧文件。我经历过一次改了三版后客户要第一版要不是压缩包里存了当时的.brd真的会翻车。最后再分享一个心得。出 Gerber 这件事熟练以后真的不复杂可怕的是每次“只差一点点”文件名错了、格式不对、忘了勾选项、有些层没干净。所以与其记一堆零星技巧不如把上面这套流程固化成自己的检查清单每次发板之前按清单打勾稳如老狗。我踩过负片漏勾孤岛铜皮也踩过钻孔格式不一致导致孔偏现在反而觉得发板像交作业前检查一遍姓名学号心里有底。希望这篇教程能帮你把出 Gerber 从“提心吊胆点按钮”变成“照流程走完收工”。