
1. 为什么出Gerber总是卡在最后一步做硬件这行画板子只是前半程真正让无数新手甚至老手翻车的往往是最不起眼的“导文件”环节。Cadence Allegro 17.4 出Gerber这件事说难不难但坑是真不少——Artwork窗口里几十个参数看不懂、底片叠层顺序搞反、钻孔文件忘了加、光绘Gerber导入CAM350一看铜皮全飘了……每一样都能让人血压拉满。这篇东西不是给你复述一遍菜单翻译而是把我在实际项目中摸出来的整套流程、参数取舍逻辑、还有踩过的坑一次性交代清楚。无论你是刚开始学Allegro的学生还是被PCB厂追着要文件的硬件工程师只要照着这套流程走Gerber文件基本一次过不用来回复核。开始之前先把工具版本交代清楚我这边用的是Cadence Allegro 17.42022对应Hotfix版本为SPB17.40.000PCB编辑器为Allegro PCB Designer。不同小版本界面可能略有差异但关键设置项的位置和逻辑是一致的不影响照做。2. Artwork前的准备底片叠层与光绘参数2.1 为什么不能直接点“Generate Artwork”很多新手拿到板子打开Manufacture - Artwork勾上所有层就点生成出来的Gerber丢给板厂直接被拒。原因很简单Allegro的Artwork是基于“底片叠层Film”逻辑工作的不是你Board Geometry里画了哪层就导哪层。底片要按电镀、阻焊、丝印、助焊的实际生产需求来组合比如顶层铜箔和底层铜箔必须分开两张底片不能混在一起。另外出Gerber之前必须先保证PCB文件本身的完整性。我遇到过不止一次原理图改了几根网络PCB只更新了部分走线结果出的Gerber和最终板子对不上白花打样费。所以强烈建议在Artwork之前先执行Tools - Database Check数据库检查勾选“Update All DRC”和“Check Shape Boundaries”把数据库错误清零再往下走。这一步等于给文件做一个全身体检把隐藏的铜皮变形、线段断裂、未连接引脚之类的问题提前揪出来。2.2 图纸单位和格式的选择逻辑进入Artwork前先确认设计文件采用的单位。Allegro默认支持Mils和Millimeter两种在Setup - Design Parameter Editor - Design页签里可以查。单位会影响后面所有尺寸类参数的填写比如钻孔符号大小、底片边框宽度如果单位搞错Gerber文件尺寸比例就会对不上板厂做出来的板子直接废。对于常用精度我建议如果板子规模不大、线宽线距在5mil以上用2:5格式整数2位小数5位单位mil即0.01mil分辨率足够满足常规FR4工艺。如果板子高密度、BGA焊盘间距小或者单位是mm用3:5格式整数3位小数5位单位mm0.01mm分辨率更稳。这个参数在Artwork - General Parameters里设置我个人的经验是单位跟随设计文件输出格式宁高勿低。Gerber是矢量格式文件大小不会因为精度高而爆炸但精度不够的后果是圆角失真、圆弧断裂后期极难查。2.3 通用参数面板逐项说明Allegro 17.4的Artwork General Parameters面板看起来密密麻麻其实核心就几块Device typeGerber格式。新板厂基本都支持RS-274X也就是带内嵌孔径的Gerber X不需要单独的Aperture文件如果你合作的板厂老旧只能收RS-274-D那还得额外输出Aperture列表这种厂子建议趁早换。Film size limits底片尺寸范围填大一点无所谓不会影响实际输出。Coordinate type用Absolute不要用Incremental。绝对坐标在CAM350里复核不会错位。Format整数位和小数位上面已说不再赘述。Output options建议勾选“Open file after generation”生成后自动调用CAM编辑器预览方便现场确认。Suppress...那一排“Suppress unconnected pads”、“Suppress shape fill”等选项要谨慎勾选。我的建议是默认全不勾除非板厂明确要求减少文件体积。一旦勾了“Suppress shape fill”动态铜皮填充会被省略板厂收到的只是铜皮边框生产时极可能出现大块铜皮缺失。3. Film底片叠层配置实操3.1 Film层与Subclass的映射关系理解了底片逻辑后我们要做的就是在Artwork面板左侧的Film列表里创建并配置每一张底片对应哪些Subclass。以常规双层板为例我通常配置以下几张FilmFilm名称包含Subclass说明TOPETCH/TOP, PIN/TOP, VIA CLASS/TOP顶层铜箔含焊盘和过孔盘BOTTOMETCH/BOTTOM, PIN/BOTTOM, VIA CLASS/BOTTOM底层铜箔SILK_TOPBOARD GEOMETRY/SILKSCREEN_TOP, MANUFACTURING/NCFAB顶层丝印SILK_BOTTOMBOARD GEOMETRY/SILKSCREEN_BOTTOM, MANUFACTURING/NCFAB底层丝印PASTEMASK_TOPPASTEMASK/TOP顶层锡膏层SMT钢网用PASTEMASK_BOTTOMPASTEMASK/BOTTOM底层锡膏层SOLDERMASK_TOPSOLDERMASK/TOP, PIN/TOP, VIA CLASS/TOP顶层阻焊开窗SOLDERMASK_BOTTOMSOLDERMASK/BOTTOM, PIN/BOTTOM, VIA CLASS/BOTTOM底层阻焊开窗BOARD_OUTLINEBOARD GEOMETRY/OUTLINE, MANUFACTURING/NCLEGEND板框和钻孔图例注意阻焊层的特殊性阻焊底片必须包含PIN和VIA CLASS否则焊盘和过孔上会覆盖整片绿油无法上锡焊接。如果设计中有BGA建议单独出一张SOLDERMASK_TOP_BGA把BGA区域的过孔和焊盘单独映射便于板厂调整阻焊桥工艺减少连锡风险。3.2 手动创建Film的完整步骤打开Manufacture - Artwork左侧Current films列表默认只有“ART_1”、“ART_2”等空名称右键选择Add/Delete。在弹出的Film面板中先添加你需要的底片名称如TOP、BOTTOM等回车确认。然后在右侧Subclasses窗口对照上面的表格给每张Film勾选对应的Subclass。勾选完成后逐个选择Film确认“Film enabled”并指定“Mirror”方向。顶层和底层铜箔、丝印、阻焊、锡膏的镜像方向不同这里最容易出错比如BOTTOM层底片若Mirror设置错误导出的Gerber左右镜像颠倒板厂照着做零件全装反。最后点击View可以预览底片内容确认每一层的图形显示正确后再输出。别嫌这一步麻烦我都是每定义一张Film就View一次确认比返工便宜得多。3.3 动态铜皮的Artwork处理Allegro中动态铜皮Dynamic Shape默认是实心填充模式但Artwork输出时有“Vector”和“Raster”光栅化两种处理方式。默认的Vector模式适合规则铜皮但遇到复杂异形铜皮时Gerber文件生成后会偏大且部分CAM软件显示异常。我的做法是在Shape - Global Dynamic Shape Parameters - Shape fill中将“Smoothing”设置为“Smooth”并将“Artwork format”调整为Raster光栅化光栅精度选2.0mil。这个操作能显著降低CAM350导入后的铜皮变形概率尤其适合电源平面大面积铺铜的设计。要注意的是Raster化之后同一块铜皮被Allegro自动细分为多个小块属于正常现象不必惊慌只要DRC无报错生产没有问题。4. 钻孔文件与钻孔符号的生成4.1 NC Drill参数设置Gerber底片描述的是“铜长什么样”而板子上哪些位置要打孔、孔多大全靠钻孔文件NC Drill来传达。17.4里钻孔文件的生成路径是Manufacture - NC - NC Drill。进入NC Drill参数面板后重点设置以下参数Output file指定输出路径和文件名前缀建议与PCB工程同名方便归档。Format同样选用2:5或3:5与Artwork保持一致避免坐标精度不匹配。Drill hole symbol如果要输出钻孔符号图Drill Legend在Manufacture - NC - Drill Legend中设置。尺寸方面符号大小建议不小于50mil标注文字不小于30mil否则图纸放大后看不清。Repeat code勾选“Enhanced Excellon format”即Excellon这种格式包含了孔径信息能简化板厂数据解析实际沟通中很省事。4.2 钻孔文件与底片的对齐出完NC Drill后必须做一步操作将钻孔文件与对应的底片放在同一坐标系下。在CAM350中导入时板厂依赖钻孔文件和Gerber同原点如果两者原点不一致孔位整体偏移板子报废。所以我通常在设计阶段就把原点定在左下角板框外侧并且Artwork和NC Drill都采用“Relative to origin”的同样基准。在Allegro里检查原点是否统一可以用Setup - Change Drawing Origin将原点移动到板框左下角外的同一坐标点确保所有输出文件共享同一参考。4.3 盲埋孔板的钻孔文件扩展如果是多层HDI板含盲孔和埋孔那么每一组孔都要单独出NC Drill文件。比如激光盲孔L1-L2、机械埋孔L2-L3、通孔L1-L4这三种孔要分别命名NC_DRILL_L1_L2.drl、NC_DRILL_L2_L3.drl、NC_DRILL_L1_L4.drl。在Allegro中NC Drill界面左下角有“Drill hole types”过滤选项按层对过滤后再输出即可。此类板子必须保住钻孔叠层表Drill Chart和过孔叠层图Via Stackup而且要在压缩包中附带一份钻孔说明文本文件以免板厂误判孔层归属。5. 从Artwork到Gerber全流程实操5.1 输出底片文件上述设置全部完成后真正输出Gerber的路径是Manufacture - Artwork在Film列表里勾选所有需要输出的Film点击Select All然后点Generate Artwork。这里有个细节生成前先点击“Aperture”按钮检查是否有未定义的光圈。RS-274X格式自带光圈定义但若有自定义光圈比如异形热焊盘缺失生成过程会弹报警此时必须返工修复。不要忽略这个报警硬点生成出的文件就是废的。输出完成后去指定目录下检查文件列表正常应当看到每张Film对应一个.art文件外加一个art_aper.txt光圈表和一个art_param.txt参数表。5.2 生成钻孔文件和钻孔图继续执行Manufacture - NC - NC Drill点击Generate。此时得到.drl文件。然后回到Artwork面板将Manufacturing/Nclegend-1-4或对应钻孔图例层映射到底片“BOARD_OUTLINE”中再重新Generate一次Artwork确保钻孔符号图被包含在最终输出中。这一步容易漏很多人出了光绘和钻孔就打包发给板厂结果板厂不知道该在哪个位置标注孔径又打电话来问。钻孔符号图Drill Legend是板厂制前检查的重要参考务必包含。5.3 生成IPC网表可选但推荐17.4支持从Manufacture - IPC - IPC Netlist输出IPC-D-356网表文件。这个文件是给飞针测试用的测试厂用它对板子的电气连接做开路短路测试。如果项目后续需要做飞针测试现在就一并输出省得后面再补。输出时注意选择“Net list in IPC-356 format”并在导出后打开文件确认所有网络号都在。5.4 文件命名与打包规范我习惯按以下目录结构整理输出文件ProjectName/ ├── GERBER/ │ ├── TOP.art │ ├── BOTTOM.art │ ├── SILK_TOP.art │ ├── SILK_BOTTOM.art │ ├── PASTE_TOP.art │ ├── PASTE_BOTTOM.art │ ├── SOLDER_TOP.art │ ├── SOLDER_BOTTOM.art │ ├── BOARD_OUTLINE.art │ ├── art_aper.txt │ └── art_param.txt ├── NC_DRILL/ │ ├── NC_DRILL.drl │ └── drill_legend.art ├── IPC/ │ └── ProjectName.ipc └── README.txtREADME里写清楚设计软件版本、板材厚度、铜厚、表面处理工艺、阻焊颜色、丝印颜色、层叠结构、最小线宽线距、最小孔径等关键信息。这样打包成一个zip发给板厂沟通成本骤降对方不但不嫌你啰嗦反而效率更高。6. 文件检查三板斧CAM350验证与常见问题6.1 CAM350导入检查流程拿到生成的Gerber后我强烈建议用CAM350或其他CAM工具做一次“反向导入”验证。步骤如下新建CAM工程File - Import - AutoImport选择刚才生成的Gerber目录。CAM350会自动读取所有.art文件并识别各个光绘层。导入完成后逐层检查D码Aperture分配看有没有异常大的焊盘或变形光圈。使用Tables - Composite把各层按叠层顺序叠起来尤其在钻孔层和焊盘层之间切换检查焊盘中心与钻孔中心是否重合。使用Utilities - Draw - Draw to Custom检查是否存在严重铜箔毛刺以及Info - Report - DRC做一次简单DRC。为了更快定位问题我会重点检查以下3个高发点TOP层与SILK_TOP层在焊盘上的丝印重叠。丝印压焊盘会导致焊接不良CAM350里用两层叠加显示一眼就能看到。阻焊开窗是否完全覆盖焊盘。如果SOLDER层在某个焊盘处是空的说明阻焊开窗丢失必须回Allegro重新映射。板框与走线/铜皮间距。用CAM测量板框到最近铜箔的距离确认满足板厂最小工艺一般推荐≥10mil。6.2 常见问题与排查技巧实录先列表格后面再展开说问题现象可能原因解决办法Gerber导入CAM350后缺线/缺铜皮Artwork中未勾选对应Subclass或动态铜皮未Raster化回Allegro检查Film映射和Shape参数钻孔文件比Gerber坐标偏移输出原点不一致在Allegro和CAM中统一原点丝印反向底片Mirror设置颠倒检查Film的Mirror方向焊盘上出现“十”字花自定义散热焊盘未定义完整光圈在Artwork中检查热焊盘光圈定义阻焊层整层空白SOLDERMASK底片缺少PIN/VIA CLASS添加PIN和VIA CLASS到阻焊Film问题1动态铜皮只剩轮廓这个我踩过太多次了。现象是Allegro里看铜皮填充好好的出Gerber后只剩一个边框板厂问你要不要大铜皮。原因基本是Artwork的Shape fill suppression被勾选了或者动态铜皮参数里“Artwork fill”被设成了“Hollow”。解决办法是回Shape参数面板确认“Artwork format”不是Hollow并把Artwork Output options里的“Suppress shape fill”取消勾选。问题2孔盘偏移之前做过一块四层板CAM350叠层后过孔焊盘中心和钻孔中心差了5mil肉眼都看得出来。查了半天原因是NC Drill输出的坐标原点用了板子中心而Artwork用的是左下角两边坐标系不一致。解决方法是去NC Drill参数面板的“Output origin”里勾选“Use artwork origin”让钻孔和光绘共用一个参考原点。问题3圆弧变成多边形出Gerber时如果精度选的3:3圆弧光绘会呈明显的多边形锯齿CAM350放大后惨不忍睹。生产虽然大概率没问题但BGA焊盘间的圆弧走线被板厂误判为错误来回确认浪费时间。所以我的底线是线性尺寸分辨率低于0.5mil不签字至少2:5。问题4板厂反馈“读不到钻孔图例”这个属于合作流程度问题。Allegro里如果只生成Drill Legend的.art但没把它放进任何一张底片板厂在光绘文件夹里找不到是正常的。解决方法是上面5.2步骤提到的把Manufacturing/Nclegend映射到BOARD_OUTLINE底片让钻孔图例跟着板框一起输出。6.3 一个更省事的检查思路Valor NPI如果你所在公司装了Valor NPI华莱王那它可以直接把Allegro的.brd文件转成ODB然后做自动化的制造可行性分析比如间距、孔环、丝印、阻焊桥、最小线宽等检查项。这比手工在CAM350逐层看要高效得多适合复杂板子。不过Valor NPI学习成本不低前期还是先把CAM350流程吃透比较现实。7. 收尾心得与扩展小技巧按上面这套流程走完基本能保证交付给板厂的Gerber包是干净、完整、可生产的。操作熟练后从打开PCB文件到Gerber打包完成一块普通双层板十分钟内能全部搞定四层板也不超过半小时。有几个我自己反复验证过的小习惯顺带分享给板厂发文件前自己先当一次“板厂”。把打包好的zip解压到一个全新目录用CAM350重新导入一遍如果导入过程有报错或不识别立即排查不要指望板厂替你查。把Artwork的Film配置导出成参数文件Artwork面板右上角Save下次新项目直接Load省得每个工程重新配置底片叠层尤其当公司里多块板子层叠结构相近时效率提升非常明显。每次改版后重新生成Gerber时务必先更新Database Check。我见过不止一次旧版DRC错误没清干净导致新版Gerber夹杂了废铜板厂做出来才发现短路白白浪费一轮打样周期。最后提醒一句Gerber文件出来只是流程节点不是终点。板厂拿到文件后如果提出工艺疑问比如“阻焊桥过小”“孔环不足”不要觉得对方事多这些问题恰恰是你在设计阶段就该考虑的。如果你能在设计阶段就把制造工艺参数线宽线距、孔环、铜厚消化进规则约束里Gerber环节的问题至少能少一半。这套流程我用了快五年出问题的次数屈指可数核心秘诀就四个字规范前置。