
1. 为什么Gerber导出是PCB设计中“最容易翻车”的一步画完PCBDRC全绿连通性检查也没问题很多人的心态就飘了——觉得板子已经“画完了”。但真正在产线端待过的人都知道从设计文件到工厂能开工生产中间隔着一道叫“Gerber”的坎。这道坎迈不过去前面画得再漂亮都是零。Gerber文件本质上是光绘机能够识别的二维矢量图形格式每一层对应PCB生产中的一个物理层或工艺层。工厂的CAM工程师拿到你的Gerber包之后会做DFM检查、拼板、做补偿然后直接驱动设备去生产。也就是说Gerber是你和板厂之间唯一的技术交接文件它错了板子就废了。我见过太多案例有人导出时漏了钻孔文件板厂打电话来问“你的过孔怎么钻”有人阻焊层没开窗焊盘全被绿油盖住回来一块砖头还有人把钻孔表当成钻孔文件发出去工厂直接回一句“打不开”。这些问题在Allegro里其实都有明确的对应操作只是很多人第一次导出时没人带踩了坑才知道。这篇文章面向的是已经能用Allegro完成基本PCB设计、但准备第一次发板或者导出总出问题的工程师。我会把Cadence Allegro导出Gerber的完整流程拆开讲透包括每一层该出什么、参数怎么设、钻孔文件怎么配、导出后怎么自查以及那些工厂不会主动告诉你、但一定会导致退单的常见错误。整套流程基于Allegro 17.4和24.1两个主流版本17.4目前存量用户最多24.1是近两年新装的主力版本两者在菜单路径上略有差异我会分别标注。2. 导出前的准备工作别急着点“Artwork”2.1 先确认你的设计文件处于“可导出状态”导出Gerber之前有几个前置检查必须做完否则导出的文件可能和你在屏幕上看到的完全不是一回事。第一DRC必须全部清干净。Allegro的Artwork导出不会帮你做任何DRC过滤你设计里存在的短路、间距违规、未连接网络全都会原封不动地进入Gerber。板厂CAM工程师虽然会做基本的DFM检查但他们不会替你改设计只会把问题反馈回来让你重新出。所以导出前跑一遍完整的DRC确保没有Error级别的违规。第二确认所有铜皮已经重新铺过。Allegro的动态铜皮Dynamic Shape在修改走线或过孔后不会自动更新如果你改了走线但忘了Refill铜皮导出的Gerber里铜皮还是旧的可能出现走线和铜皮短路或者孤岛。操作路径是Shape → Global Dynamic Shape Parameters → Refill All或者直接在Find面板里选中Shape右键Refill。第三确认板框在Outline层且闭合。板框不闭合是新手最常犯的错误之一工厂无法确定板子的外形尺寸。检查方法是打开Color Dialog只显示Outline层放大看四个角和圆弧连接处有没有断点。如果有断点用Manufacture → Drafting → Line手动补上确保形成一个完整的闭合轮廓。第四确认钻孔符号已经更新。Allegro的钻孔表Drill Legend和钻孔文件是两回事但钻孔符号的更新会影响钻孔文件的正确性。操作路径是Manufacture → NC → Drill Legend先更新一次确保所有孔位都有对应的符号。2.2 理解Allegro的Artwork层结构Allegro的Artwork导出和Altium Designer的逻辑不太一样。AD是你在PCB界面里直接选层导出Allegro则是通过一个叫“Artwork”的Film Control来管理。你可以把它理解成一个“层映射表”左边是你定义的Film名称比如TOP、BOTTOM、SILKSCREEN_TOP右边是每个Film对应哪些Allegro的层。这个机制的好处是灵活你可以把多个Allegro层合并到一个Gerber层里也可以把一个Allegro层拆到多个Gerber层。但坏处是如果你不熟悉这个映射关系很容易漏层或者多出不该有的层。一个标准的双层板Gerber包通常包含以下FilmFilm名称对应Allegro层作用TOPETCH/TOP, PIN/TOP, VIA CLASS顶层线路和焊盘BOTTOMETCH/BOTTOM, PIN/BOTTOM, VIA CLASS底层线路和焊盘SOLDERMASK_TOPPIN/TOP, VIA CLASS, SOLDERMASK_TOP顶层阻焊开窗SOLDERMASK_BOTTOMPIN/BOTTOM, VIA CLASS, SOLDERMASK_BOTTOM底层阻焊开窗SILKSCREEN_TOPPACKAGE GEOMETRY/SILKSCREEN_TOP, BOARD GEOMETRY/SILKSCREEN_TOP顶层丝印SILKSCREEN_BOTTOMPACKAGE GEOMETRY/SILKSCREEN_BOTTOM, BOARD GEOMETRY/SILKSCREEN_BOTTOM底层丝印PASTEMASK_TOPPIN/TOP, PASTEMASK_TOP顶层钢网有贴片时PASTEMASK_BOTTOMPIN/BOTTOM, PASTEMASK_BOTTOM底层钢网DRILL由NC Drill单独生成钻孔文件OUTLINEBOARD GEOMETRY/OUTLINE板框四层板还要加上内层L2_GND、L3_PWR等对应ETCH/INNER层。六层板同理。注意VIA CLASS这个层在Artwork里经常被忽略。如果你的过孔需要盖油Tenting阻焊层里就不应该包含VIA CLASS如果需要开窗就必须加上。这个选择直接决定过孔是否会被绿油覆盖很多人在调试时发现过孔测不到信号就是因为过孔被盖油了。2.3 版本差异17.4和24.1的菜单路径对比Allegro 17.4和24.1在Artwork导出的核心逻辑上是一致的但菜单路径和部分选项位置有变化。17.4的Artwork在Manufacture → Artwork24.1同样在Manufacture → Artwork但24.1的界面做了扁平化调整Film Control的选项位置从右侧移到了顶部工具栏。钻孔文件的生成路径也有差异。17.4是Manufacture → NC → NC Drill24.1是Manufacture → NC → NC Drill但24.1多了一个“Auto Tool Select”的勾选项默认是勾上的建议保持勾选让软件自动分配刀具号。另外24.1在导出Artwork时新增了一个“Export as ODB”的选项如果你的板厂支持ODB格式可以直接导出ODB比Gerber更不容易出错。但国内大部分中小板厂还是以Gerber为主所以这篇文章还是以Gerber流程为主线。3. Artwork Film的配置与参数设置3.1 新建和编辑Film的正确姿势打开Artwork界面后你会看到一个Film Control列表。如果之前没有人配置过这个列表可能是空的或者只有默认的几个Film。右键 → Add新建一个Film命名建议用大写英文加下划线比如TOP、BOTTOM、SOLDERMASK_TOP不要用中文或空格避免工厂CAM软件识别异常。新建Film后需要把对应的Allegro层加进去。点击Film右侧的“...”按钮会弹出层选择对话框。这里有一个关键操作在添加层之前先在Color Dialog里把该层设为可见。Allegro的Artwork层选择对话框只显示当前可见的层如果你在Color Dialog里把SOLDERMASK_TOP隐藏了这里就找不到它。添加层的时候要注意每个层后面的“Plot Mode”有正片Positive和负片Negative两种。阻焊层和钢网层必须用负片因为Gerber的阻焊层表达的是“哪里没有阻焊”负片模式下你画的焊盘开窗区域会被正确表达。线路层和丝印层用正片。这个设置错了板厂收到的文件就是反的。3.2 关键参数Format、Scale和Suppress在Artwork界面右侧17.4或顶部24.1有几个全局参数每一个都影响最终Gerber的精度和兼容性。Format这是Gerber的坐标格式通常选“2.5”或“3.5”。2.5表示整数部分2位、小数部分5位单位是英寸3.5表示整数3位、小数5位。国内板厂普遍接受2.5格式但如果你的板子尺寸超过100英寸基本不可能才需要3.5。选错格式会导致坐标偏移或尺寸缩放。Scale缩放比例默认是1.0不要动。有人为了“让板子看起来大一点”改成2.0结果工厂做出来的板子是设计的两倍大。Suppress这个选项控制是否省略前导零或后导零。Gerber文件里的坐标是数字串比如“0012345”Suppress Leading Zero表示省略前导零变成“12345”Suppress Trailing Zero表示省略后导零。国内板厂通常要求Suppress Leading Zero也就是选“Leading”。这个选错了坐标会完全错位。Units单位选Inch或Millimeter。国内板厂两种都接受但建议选Millimeter因为大部分国产EDA工具和板厂内部都用毫米。如果你选InchFormat要对应选2.5选MillimeterFormat选3.3或3.5。3.3 阻焊层和钢网层的特殊处理阻焊层SOLDERMASK的配置有一个容易忽略的细节阻焊开窗的大小。Allegro默认的阻焊开窗是焊盘尺寸加上一个全局的Solder Mask Expansion值这个值在Setup → Constraints → Spacing → Solder Mask里设置。通常这个值是4mil到6mil但有些板厂要求2mil到4mil。如果你发现导出的阻焊层开窗太大焊盘之间的绿油桥太窄甚至没有板厂会反馈“阻焊桥不足”。解决办法是减小Solder Mask Expansion值或者在Artwork里单独调整阻焊层的Film把开窗缩小。钢网层PASTEMASK的配置相对简单通常和焊盘尺寸一致不需要额外扩展。但如果你用了BGA或者细间距QFN钢网开窗可能需要做面积比优化这个一般在钢网厂那边处理Gerber里保持和焊盘一致即可。实操心得阻焊层导出后一定要用CAM工具比如CAM350或免费的GC-Prevue打开看一眼。重点看焊盘开窗是否完整、过孔是否被误开窗、丝印是否压在焊盘上。丝印压焊盘是常见问题工厂会直接帮你删掉压焊盘的丝印但如果你设计时没注意回来板子上的位号可能缺胳膊少腿。4. 钻孔文件的生成别把钻孔表和钻孔文件搞混4.1 钻孔表和钻孔文件的本质区别这是新手最容易混淆的地方。钻孔表Drill Legend是画在PCB上的一个表格用来标注每种孔径的数量和符号它是给人和装配看的不是给钻机看的。钻孔文件NC Drill是钻机直接读取的坐标文件包含每个孔的具体位置和孔径。很多人导出Gerber时只导了Artwork忘了单独生成NC Drill文件发给板厂后对方回复“缺少钻孔文件”。或者更糟的是把钻孔表所在的层比如DRILL_LEGEND当成钻孔文件导出去了工厂CAM工程师打开一看是一堆文字和线条根本没法钻。正确的做法是Artwork里正常导出各层Gerber然后单独用Manufacture → NC → NC Drill生成钻孔文件。生成的钻孔文件通常是两个一个.txt或.drl的坐标文件一个.lst的刀具列表文件。有些板厂还要求提供钻孔表作为参考但那是额外的不是必须的。4.2 NC Drill的参数设置打开NC Drill界面后有几个参数需要确认Format和Artwork保持一致选2.5或3.5。如果Artwork选了2.5这里也选2.5否则钻孔坐标和线路坐标会对不上。Units和Artwork一致选Millimeter或Inch。Leading/Trailing Zero和Artwork一致选Suppress Leading Zero。Tool Selection通常选“Auto Tool Select”让软件自动分配刀具号。如果你手动分配过刀具选“Manual”并确认刀具表正确。Drill Origin选“Absolute”或“Relative”。Absolute是相对于板子的绝对原点Relative是相对于你设置的钻孔原点。建议选Absolute避免原点设置错误导致钻孔偏移。Mirror不要勾选。Mirror是给特殊工艺用的常规双面板不需要。设置完成后点“Drill”按钮软件会在当前工作目录下生成钻孔文件。默认文件名是“nc drill.txt”和“nc drill.lst”建议改成和Gerber包一致的名字比如“BOARDNAME_DRILL.txt”。4.3 钻孔文件的验证方法生成钻孔文件后不要直接打包发走。先用文本编辑器打开.txt文件看一眼正常的内容应该是这样的M48 INCH,TZ T1C0.0200 T2C0.0300 % T1 X001000Y001000 X002000Y001000 T2 X003000Y002000 M30每一行T开头的定义刀具C后面的数字是孔径。X和Y是坐标。M48是文件头M30是文件尾。如果你看到的内容是乱码或者全是文字描述说明你导出的不是钻孔文件。更靠谱的验证方法是用GC-Prevue或CAM350打开钻孔文件叠加在Gerber上看孔位是否和焊盘对齐。如果钻孔偏移通常是Format或Units设置不一致导致的。常见坑有些工程师在NC Drill里选了“Auto Tool Select”但刀具表里出现了重复孔径的不同刀具号。这会导致工厂多换几次刀增加成本。解决办法是在生成钻孔文件前先手动合并相同孔径的刀具或者在NC Drill的Tool Selection里选“Manual”并手动整理刀具表。5. 打包与自查发给板厂前的最后一道关5.1 Gerber包的目录结构一个规范的Gerber包应该包含以下文件建议按以下结构组织BOARDNAME_GERBER/ ├── TOP.art ├── BOTTOM.art ├── SOLDERMASK_TOP.art ├── SOLDERMASK_BOTTOM.art ├── SILKSCREEN_TOP.art ├── SILKSCREEN_BOTTOM.art ├── PASTEMASK_TOP.art ├── PASTEMASK_BOTTOM.art ├── OUTLINE.art ├── DRILL.txt ├── DRILL.lst └── README.txtREADME.txt里写清楚板子层数、板材、板厚、铜厚、阻焊颜色、丝印颜色、表面处理工艺喷锡/沉金/OSP、最小线宽/线距、最小孔径。这些信息板厂一定会问提前写好省得来回沟通。5.2 用CAM工具做最终自查打包前强烈建议用CAM350或GC-Prevue把Gerber包打开逐层检查。重点检查以下几项线路层走线是否完整有没有断线焊盘是否齐全铜皮有没有孤岛。阻焊层焊盘开窗是否完整过孔是否按预期盖油或开窗阻焊桥是否足够。丝印层位号是否清晰有没有压在焊盘上极性标记是否完整。钻孔层孔位是否和焊盘对齐孔径是否正确有没有漏孔。板框层外形是否闭合尺寸是否和设计一致。如果发现丝印压焊盘可以在Allegro里调整丝印位置重新导出或者让板厂帮忙削掉压焊盘的部分。但后者会增加沟通成本建议设计阶段就注意。5.3 常见错误速查表错误现象可能原因解决方法板厂反馈缺少钻孔文件只导了Artwork没生成NC Drill用Manufacture → NC → NC Drill单独生成钻孔偏移Format或Units与Artwork不一致确保NC Drill和Artwork的Format、Units、Zero Suppression完全一致阻焊开窗错误Plot Mode选了正片阻焊层必须用负片Negative丝印丢失丝印层没加到Film里在Artwork里把SILKSCREEN_TOP/BOTTOM加到对应Film板框不闭合Outline层有断点用Line工具补全断点确保闭合铜皮短路修改后没Refill铜皮Shape → Global Dynamic Shape Parameters → Refill All坐标错位Suppress Zero设置错误国内板厂通常要求Suppress Leading Zero过孔被盖油测不到信号阻焊层包含了VIA CLASS如果过孔需要开窗阻焊层加上VIA CLASS需要盖油则去掉6. 实操中踩过的坑和独家经验6.1 关于层命名的一个小技巧Allegro的Artwork Film名称会直接变成Gerber文件名。如果你命名成“TOP”导出的文件就是“TOP.art”命名成“SOLDERMASK_TOP”就是“SOLDERMASK_TOP.art”。有些板厂的CAM软件对文件名有要求比如必须包含“GTL”“GBL”“GTS”“GBS”这样的后缀。如果你不确定板厂的要求可以在README.txt里写清楚每个文件对应哪一层或者直接按板厂提供的命名规范来命名。我个人的习惯是用“TOP”“BOTTOM”“SOLDERMASK_TOP”这种直观命名然后在README里列一个对照表。这样即使板厂CAM工程师换人也能快速看懂。6.2 关于钻孔文件的刀具合并前面提到过Auto Tool Select可能会产生重复孔径的不同刀具号。比如你的板子上有0.3mm的过孔和0.3mm的插件孔软件可能分配成T1和T5两个刀具。虽然孔径一样但工厂换刀次数增加成本会上升。解决办法是在生成钻孔文件前打开NC Drill的Tool Selection选“Manual”然后手动把相同孔径的刀具合并。具体操作是在刀具列表里找到相同C值的刀具把其中一个的刀具号改成和另一个一致然后删除多余的。这样生成的钻孔文件里相同孔径只会出现一次。6.3 关于阻焊桥的实战经验阻焊桥是焊盘之间那一条细细的绿油。如果阻焊桥太窄工厂做不出来焊盘之间的绿油会脱落导致焊接时连锡。如果阻焊桥完全没有焊盘之间就是裸露的铜更容易短路。一般来说阻焊桥的宽度建议不小于4mil0.1mm。如果你的焊盘间距很小比如0.5mm pitch的QFN焊盘之间的间距可能只有0.2mm减去两侧的阻焊开窗扩展阻焊桥可能只剩0.05mm工厂很难做。这种情况下有两个选择一是减小Solder Mask Expansion值比如从4mil减到2mil让阻焊桥宽一点二是接受“无阻焊桥”设计让工厂把焊盘之间的绿油全部去掉但这样焊接时更容易连锡需要你在钢网设计上做优化。我个人的经验是对于0.5mm pitch以下的器件直接把Solder Mask Expansion设成0让焊盘开窗和焊盘一样大阻焊桥能留多少留多少同时把钢网厚度减到0.1mm减少锡量降低连锡风险。6.4 关于版本兼容性的提醒Allegro 17.4和24.1导出的Gerber在格式上基本兼容但24.1默认的Format可能是3.5而17.4默认是2.5。如果你用24.1导出发给只支持2.5格式的板厂可能会被退回。所以不管用哪个版本导出前都确认一下Format设置。另外24.1在导出Artwork时新增了一个“Embedded Aperture”选项默认是勾上的。这个选项会把光圈定义嵌入到Gerber文件里减少文件数量。但有些老旧的CAM软件不支持Embedded Aperture打开后可能显示异常。如果你不确定板厂的CAM软件版本建议取消勾选用传统的Separate Aperture File模式。6.5 一个被忽略的细节Gerber文件的单位Gerber文件头里会声明单位比如“%MOIN*%”表示英寸“%MOMM*%”表示毫米。如果你在Artwork里选了Millimeter但NC Drill里选了Inch两个文件的单位不一致板厂CAM工程师叠加时会发现钻孔和线路对不上。这个错误很隐蔽因为Allegro不会报错只有板厂打开文件才会发现。所以导出后用文本编辑器打开Gerber文件看文件头里的单位声明是否和钻孔文件一致。不一致就重新导出。7. 导出后的沟通与确认Gerber包发出去之后不要就等着收板子了。正规的板厂会在收到文件后做DFM检查然后发一份“工程确认”给你里面会列出他们发现的问题比如最小线宽小于工艺能力、阻焊桥不足、孔径小于最小钻头等。这份确认函一定要仔细看逐条回复。有些问题是板厂可以帮你优化的比如削丝印、调整阻焊开窗有些问题是必须你改设计重新导出的比如短路、断线。如果你不确定某条问题是否需要改设计直接打电话给板厂的CAM工程师问清楚比来回发邮件快得多。另外如果你对板厂的工艺能力不熟悉可以在发板前先问他们要一份“工艺能力表”里面会写明最小线宽/线距、最小孔径、最小阻焊桥、板厚范围等。按照他们的能力来设计能避免大部分DFM问题。我个人在实际操作中的体会是Gerber导出这件事流程本身不难难的是细节。每一个参数、每一个层、每一个文件都可能成为翻车的点。但只要按照这篇文章的流程走一遍把该检查的都检查了第一次发板就能顺利很多。后面做多了形成自己的检查清单基本就是十分钟的事。