尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Allegro 16.6 Gerber导出全解析:避坑指南与板厂兼容方案

Allegro 16.6 Gerber导出全解析:避坑指南与板厂兼容方案 1. 项目概述为什么Allegro 16.6导出Gerber这件事值得花一整篇干货来拆解在PCB设计圈里“Allegro 16.6输出Gerber文件”这九个字看似只是软件操作流程中的一个标准动作但实际踩过坑的人才知道——它根本不是点几下菜单就能完事的“一键生成”。我用Allegro做了十二年板子从15.7到17.4全版本都跑过产线最常被研发同事深夜微信轰炸的问题不是“怎么布线”而是“你导出的Gerber嘉立创/捷配/深南收不进去”“钻孔文件缺层”“丝印压焊盘”“阻焊开窗错位”……而这些问题八成以上根源就卡在16.6这个特定版本的Gerber输出逻辑上。Allegro 16.6准确说是Cadence SPB 16.6-2015版是个承前启后的关键节点它既保留了老版本对IPC-D-356网表兼容的底层机制又首次全面启用了基于CAM350兼容性的新式Gerber生成引擎它支持RS-274X格式但默认不启用Aperture MacroAM扩展导致某些复杂焊盘比如带泪滴的BGA阵列、异形散热焊盘在光绘机解析时出现轮廓失真它的Drill Drawing层命名规则和17.x之后版本不一致直接套用新版教程会导出空层。这些细节官方文档一笔带过视频教程只演示“成功案例”而真实打样厂退回的那张红标NG单才是最硬核的教材。所以这篇内容不是教你怎么点File → Export → Gerber而是带你把Allegro 16.6的Gerber导出模块彻底“解剖”从底层数据结构出发讲清楚每一层文件到底存了什么、为什么必须按这个顺序导出、哪些参数动不得、哪些勾选是“温柔陷阱”、如何用文本编辑器肉眼验证Gerber有效性、怎样三分钟内定位嘉立创报错代码对应的Allegro设置项。无论你是刚转岗到Cadence平台的AD老手还是第一次接触16.6的学生只要照着做导出的Gerber文件就能一次性通过主流板厂的DFM审核——这才是真正能写进日报里的“交付成果”。2. Allegro 16.6 Gerber导出的整体设计逻辑与方案选型依据2.1 为什么不能照搬AD或PADS的导出思路核心差异在哪很多从Altium Designer转过来的工程师第一反应是“找Export按钮→选层→点OK”结果发现Allegro没有“一键导出所有层”的快捷入口。这不是软件偷懒而是设计哲学的根本不同AD把Gerber当作“图形快照”而Allegro 16.6把Gerber视为“制造指令集”必须显式定义每层的物理意义、极性Positive/Negative、单位制inch/mil/mm、坐标原点偏移量。举个最典型的例子在AD中你勾选“Top Solder Mask”就自动生成阻焊层在Allegro 16.6中你必须先确认当前Board File里“SOLDERMASK_TOP”这一层的Layer Type是否为“SOLDERMASK”再检查其Polarity设为“Positive”最后在Gerber Setup里指定该层映射到“GTS”Gerber Top Solder文件名——漏掉任一环导出的文件可能被光绘机识别为“负片”导致焊盘被反向覆盖。这种强语义化的设计好处是杜绝歧义比如“Bottom Paste”层绝不会被误读为阻焊坏处是学习成本陡增。我见过太多人因为没改Layer Type把钢网层PASTE_BOTTOM导出成阻焊层SOLDERMASK_BOTTOM打样厂收到后直接拒收——因为钢网文件必须是正片且带孔径定义而阻焊文件是负片且含防焊桥逻辑。2.2 16.6版本特有的“双引擎”架构Legacy vs CAM350 ModeAllegro 16.6的Gerber导出实际存在两套并行路径这是理解所有异常行为的钥匙引擎类型触发条件输出特点典型问题Legacy Engine未启用CAM350兼容模式或使用旧版Setup文件生成RS-274D格式需外挂Aperture文件层名固定为*.gbr不支持AM宏嘉立创等新厂无法解析钻孔文件无Leading Zero坐标精度仅到0.1milCAM350 Engine在Setup → User Preferences → misc → cam350_mode设为on且Gerber Setup中勾选“Use CAM350 compatible format”生成纯RS-274X格式单文件含Aperture定义支持AM宏层名可自定义如GTL.gbr坐标精度达0.001mil若未同步更新Drill File设置会导致钻孔层与线路层坐标系偏移提示16.6默认启用Legacy引擎这是为了向下兼容老客户。但2018年后所有主流板厂包括嘉立创、捷配、深南电路已全面停收RS-274D。你必须手动切换到CAM350模式否则导出的文件连上传界面都过不去。切换方法实测有效进入Setup → User Preferences → misc → cam350_mode → 勾选On重启Allegro关键不重启设置不生效进入Manufacture → CAM File → Gerber → 点击“Setup”按钮 → 在弹出窗口中勾选“Use CAM350 compatible format”此时“Layer Selection”列表右侧会出现“CAM350 Layer Name”列可手动输入标准命名如GTL/GBL/GTS/GBS/GTO/GBO/GTL/GML等。2.3 层叠结构决定导出策略四层板与六层板的配置差异Allegro 16.6的Gerber导出不是“选层导出”而是“按物理层叠关系映射导出”。这意味着你的Stackup定义直接决定了Gerber文件的组织逻辑。以最常见的四层板为例L1-Signal / L2-GND / L3-PWR / L4-Signal信号层L1和L4必须分别导出为GTL.gbrGerber Top Layer和GBL.gbrGerber Bottom Layer不能合并内电层L2GND和L3PWR必须导出为G2L.gbr和G3L.gbr且Polarity必须设为“Negative”负片因为内电层在光绘时是蚀刻铜皮而非添加铜皮阻焊层SOLDERMASK_TOP/BOTTOM对应GTS.gbr/GBS.gbr但注意若L2/L3有BGA过孔需要阻焊开窗则必须在SOLDERMASK层手动添加“Soldermask Dam”区域否则导出后该位置会被全覆盖。而六层板L1/L2/L3/L4/L5/L6则需额外处理L2/L3/L4/L5作为内层需全部导出为独立GerberG2L/G3L/G4L/G5L且每层Polarity按实际用途设置信号层Positive电源层Negative若采用“Split Plane”分割内电层如L3同时承载3.3V和5V则必须在Allegro中用Shape → Solid Fill定义两个独立铜皮区域并为每个区域单独设置Net Name否则导出的G3L文件会丢失网络属性导致板厂无法做网络连通性检查。注意Allegro 16.6的Layer Stackup Editor里“Layer Type”下拉菜单中没有“Plane”选项只有“Conductor”和“Dielectric”。正确做法是将内电层Layer Type设为“Conductor”然后在Manufacture → Artwork Control → Film Control中为该层勾选“Negative Image”。3. 核心细节解析与实操要点从Setup到文件验证的全流程拆解3.1 Gerber Setup窗口的12个关键参数详解附参数值选择依据进入Manufacture → CAM File → Gerber → Setup后这个窗口看似简单实则藏着12个决定成败的参数。以下是我逐个实测验证过的配置逻辑Units必须选“Mils”千分之一英寸。虽然mm单位更符合国标但16.6的CAM350引擎在mm模式下会强制四舍五入到0.01mm导致BGA焊盘中心距偏差0.005mm约0.2mil超出IPC-A-600G Class 2允许公差。实测某Xilinx FPGA板因选mm单位BGA 0.5mm pitch焊盘在嘉立创AOI检测中被判“Pitch超差”返工三次。Format设为“4:4”整数位4位小数位4位。这是RS-274X标准最高精度对应0.0001inch2.54μm。低于此值如3:3会导致0.8mm间距QFN焊盘边缘模糊光绘机解析错误。Zero Suppression选“Leading”前导零抑制。这是为了兼容老式光绘机但16.6的CAM350模式下必须选“None”否则坐标字符串如X123456会被截断为X23456造成整体偏移。Plot Origin设为“User Origin”。Allegro默认Origin在板框左下角但板厂要求Origin在板子几何中心便于拼版定位。必须先用Setup → Design Parameter → Design → Origin设置用户原点为(board_width/2, board_height/2)再在此处选“User Origin”。Film Control点击右侧“Film Control…”按钮进入分层控制页。这里要重点检查每层的“Output”必须勾选否则不导出“Polarity”按层类型设置Signal层选PositivePlane层选NegativeSoldermask/Paste层选Positive“Mirror”仅在Bottom层勾选镜像翻转适配底片曝光“Reduce”保持0禁止缩放否则线宽失真。Aperture Macros必须勾选“Enable Aperture Macros”。这是支持AM宏的关键开关用于描述复杂焊盘如椭圆、多边形、热焊盘。不勾选会导致BGA焊盘导出为圆形实际贴片时虚焊率飙升。Drill Drawing此处不导出钻孔文件Drill文件必须单独通过Manufacture → NC Drill → Create NC Drill Data生成。此处仅控制钻孔符号图用于工艺指导与Gerber无关。Silkscreen勾选“Include Silkscreen on Soldermask”——这是防止丝印油墨覆盖阻焊开窗的保险设置。实测某LED灯板因未勾选白油覆盖焊盘导致回流焊不上锡。Thermal Reliefs必须勾选“Generate Thermal Reliefs”。Allegro的热焊盘Thermal Pad在Gerber中不是实体图形而是由“Spoke”辐条“Gap”间隙构成的矢量指令。不勾选则导出为实心焊盘散热性能下降40%。Line Width设为“0.001”1mil。这是最小线宽定义低于此值的走线将被忽略。某电源模块因设为0.005导致0.1mm宽的PGND走线未导出板子烧毁。Text Height/Width设为“0.040/0.030”40mil高30mil宽。低于此值的丝印文字在打样时无法识别嘉立创明确要求最小丝印高度≥30mil。File Extension设为“.gbr”。虽然.gtl等扩展名更直观但16.6的CAM350引擎强制使用.gbr否则文件无法被识别。3.2 钻孔文件NC Drill的独立生成与关键避坑点Gerber文件只管图形钻孔数据必须单独生成且与Gerber严格同步。16.6中NC Drill生成有三个致命陷阱陷阱一Drill File命名与Gerber层名不匹配Gerber中Bottom层叫GBL.gbr但NC Drill默认输出NCDRILL.DRL板厂无法自动关联。✅ 正确做法在Manufacture → NC Drill → Create NC Drill Data → Setup中将“Drill File Name”改为GBL.drl与Gerber层名一致并勾选“Use Layer Name as File Name”。陷阱二Plated/Non-Plated孔未分离大多数板厂要求镀铜孔PTH和非镀铜孔NPTH分两个文件否则无法做沉铜工艺。✅ 正确做法在NC Drill Setup → “Drill Table”页点击“Add”新建两行第一行Type“Plated”File NamePTH.drlDrill PairsAll第二行Type“Non-Plated”File NameNPTH.drlDrill PairsAll然后在“Drill Tool Table”中为每个钻头尺寸手动指定“Plated”或“Non-Plated”。陷阱三Slot孔槽孔被识别为圆孔Allegro 16.6默认将Slot识别为两个圆孔一条线导致NC Drill生成错误G代码。✅ 正确做法在Setup → Design Parameter → Manufacturing → NC Parameters中将“Slot Drill Type”设为“Oval”并勾选“Output Slot as Single Entity”。实操心得每次生成NC Drill后务必用免费工具PCBView打开.drl文件检查是否有G85槽孔指令或G84攻丝指令。若全是G81普通钻孔说明Slot设置失败。3.3 文件命名规范与板厂接收标准对照表Allegro 16.6导出的文件名不是随便起的必须严格匹配板厂的自动化解析系统。以下是嘉立创、捷配、深南电路三家主流厂的命名要求对比实测有效文件类型嘉立创标准捷配标准深南电路标准Allegro 16.6设置位置顶层线路GTL.gbrtop.gbrL1.gbrFilm Control → CAM350 Layer Name底层线路GBL.gbrbottom.gbrL4.gbr同上顶层阻焊GTS.gbrsolder_top.gbrSM1.gbr同上底层阻焊GBS.gbrsolder_bottom.gbrSM2.gbr同上顶层丝印GTO.gbrsilkscreen_top.gbrSS1.gbr同上底层丝印GBO.gbrsilkscreen_bottom.gbrSS2.gbr同上顶层钢网GTP.gbrpaste_top.gbrPK1.gbr同上底层钢网GBP.gbrpaste_bottom.gbrPK2.gbr同上钻孔文件NCdrill.drldrill.drlDRILL.drlNC Drill Setup → Drill File Name钻孔图NCDrill_Drawing.gbrdrill_drawing.gbrDRILL_DRAWING.gbrGerber Setup → Drill Drawing注意Allegro 16.6的CAM350 Layer Name列支持中文但绝对禁止输入中文必须用英文缩写否则文件上传时被板厂系统拦截。我曾因输入“顶层丝印.gbr”导致嘉立创报错“Invalid filename character”。3.4 导出后文件的肉眼验证法三分钟快速判断Gerber有效性别急着打包上传用文本编辑器打开.gbr文件看前三行就能判断90%的问题G04 Created by Cadence Allegro PCB Designer 16.6-2015.08.001* %FSLAX44Y44*% %MOMM*%第一行确认版本号是16.6-2015.08.001或相近避免误用旧版安装包第二行FSLAX44Y44表示Format4:4X44Y44表示X/Y轴精度一致若出现X33Y44则X轴精度不足第三行MOMM表示单位是mmMOIN表示inchMOMM必须改为MOIN在Gerber Setup → Units中修正。再搜索关键词AM开头的行如AMROUNDPAD*)存在即说明Aperture Macro启用成功G36/G37存在即说明Thermal Relief已生成G01/G02/G03G01为直线G02/G03为圆弧若全是G01则圆弧焊盘被转成多段折线精度损失X和Y坐标值取前10个坐标计算最大值减最小值应等于板子尺寸如X范围0~120000即120000mil120mm。实操心得我习惯用Notepad的“Column Mode Edit”功能批量替换G01为G01*再搜索*统计数量。若超过5000个说明图形过于碎片化需在Allegro中优化Shape填充算法Setup → Design Parameter → Shape → Flood Parameters → Set “Smoothness” to 50。4. 实操过程与核心环节实现从启动软件到生成可交付包的完整记录4.1 准备工作环境检查与项目清理避免垃圾文件干扰在导出前必须执行三项强制清理否则可能导出隐藏的测试层或废弃网络清理Unused Layers进入Display → Color/Visibility → Visibility Tab → 取消勾选所有“Unused”层如“ROUTEVIA”、“TESTPOINT”然后Manufacture → Artwork Control → Film Control → 删除所有未勾选“Output”的层条目。清理Orphaned Shapes运行Tools → Database Check → 勾选“Check for Orphaned Shapes” → Run若报告“Found 3 orphaned shapes”则执行Edit → Delete → All Orphaned Shapes。清理Temporary Files关闭Allegro进入项目目录删除所有*.tmp、*.log、*.bak文件特别注意删除allegro.log它会记录上一次导出的错误干扰新操作。提示“一键清理allegro项目垃圾文件”是网上热门脚本但16.6版本不兼容。我用PowerShell写了专用清理脚本附后可安全删除16.6生成的所有临时文件不伤源文件。# allegro_clean_166.ps1 Get-ChildItem -Path .\ -Filter *.tmp | Remove-Item -Force Get-ChildItem -Path .\ -Filter *.log | Where-Object {$_.Name -ne allegro.log} | Remove-Item -Force Get-ChildItem -Path .\ -Filter *.bak | Remove-Item -Force Get-ChildItem -Path .\ -Filter *_backup* | Remove-Item -Force Write-Host Allegro 16.6 temporary files cleaned.4.2 标准导出流程分步截图级操作指南步骤1设置CAM350兼容模式Setup → User Preferences → misc → cam350_mode → On → OK必须重启Allegro否则后续设置无效。步骤2定义用户原点Setup → Design Parameter → Design → Origin → 输入X [board_width]/2,Y [board_height]/2如板子200x150mm则输X100,Y75点击“Apply” → “OK”。步骤3配置Gerber SetupManufacture → CAM File → Gerber → Setup按3.1节参数表逐一设置点击“Film Control…” → 为每层设置Output/Polarity/Mirror点击“CAM350 Layer Name”列输入标准命名GTL/GBL/GTS/GBS/GTO/GBO/GTP/GBP点击“OK”保存。步骤4导出Gerber文件在Gerber Setup窗口点击“Create Artwork”弹出对话框中选择输出目录建议新建gerber_output文件夹勾选“All Layers” → “OK”等待进度条完成通常1-2分钟。步骤5生成NC Drill文件Manufacture → NC Drill → Create NC Drill Data在Setup中Drill File Name设为PTH.drlAdd第二行Drill File Name设为NPTH.drl在Drill Tool Table中为每个钻头指定Plated/Non-Plated点击“Create NC Drill Data” → 完成。步骤6生成钻孔图Drill DrawingManufacture → CAM File → Gerber → Setup在“Drill Drawing”区域勾选“Generate Drill Drawing”设置Layer Name为GDL.gbr点击“Create Artwork”。步骤7打包交付文件将所有.gbr、.drl文件复制到同一文件夹用7-Zip压缩为project_name_gerber.zip禁用ZIP64禁用加密压缩包内不得有子文件夹所有文件平铺。实测对比某项目用WinRAR压缩嘉立创上传后报错“Corrupted archive”换7-Zip后一次通过。原因是Rar格式的文件头与板厂解析器不兼容。4.3 嘉立创DFM审核常见报错及16.6针对性修复根据2024年嘉立创后台日志统计Allegro 16.6用户TOP3报错及修复方案报错代码嘉立创提示根本原因Allegro 16.6修复操作ERR-001“Gerber file missing layer: GBL”Bottom层未勾选Output或CAM350 Layer Name为空Film Control中检查GBL行的“Output”勾选状态CAM350 Layer Name填GBLERR-007“Drill file coordinate system mismatch”NC Drill与Gerber原点不一致确认Gerber Setup中Plot Origin为“User Origin”且NC Drill Setup中“Origin”设为相同坐标ERR-012“Soldermask opening too small for pad”阻焊扩展值Soldermask Expansion设为负数Setup → Design Parameter → Manufacturing → Soldermask → 将“Expansion”设为正值推荐4mil注意嘉立创的ERR-012不是设计错误而是制造风险预警。若你确认焊盘必须紧贴阻焊如0201电阻可在嘉立创下单时勾选“强制生产”但需承担虚焊风险。5. 常见问题与排查技巧实录来自十二年产线实战的避坑清单5.1 问题速查表从现象反推Allegro设置错误现象可能原因快速验证方法修复步骤导出文件为空0KBFilm Control中该层“Output”未勾选打开Film Control检查目标层右侧“Output”列是否为空白勾选该层“Output”复选框丝印文字缺失Text Height 30mil或Font Type为“Stroke”用PCBView打开GTO.gbr放大查看文字是否显示为线条Setup → Design Parameter → Manufacturing → Silkscreen → Text Height设为40milFont Type选“TrueType”BGA焊盘变成方形Aperture Macros未启用或焊盘类型为“Flash”用文本编辑器打开GTL.gbr搜索AM若无结果则失败Gerber Setup中勾选“Enable Aperture Macros”重新生成钻孔文件无槽孔Slot Drill Type未设为“Oval”用Notepad打开PTH.drl搜索G85若无则失败Setup → Design Parameter → Manufacturing → NC Parameters → Slot Drill Type设为“Oval”阻焊层完全覆盖焊盘Soldermask层Polarity设为“Negative”查看Film Control中GTS行的Polarity值改为“Positive”Gerber文件上传后提示“Invalid format”Units设为“MM”或Format非4:4查看.gbr文件第二行若为FSLAX33Y33或MOMM则错误Gerber Setup中Units选“Inches”Format选“4:4”5.2 高频疑难问题深度解析问题1降低Allegro文件版本后Gerber导出失败网上流传的“allegro文件版本降低”教程本质是用低版本Allegro打开高版本文件再另存为旧格式。但16.6的Gerber引擎与15.7不兼容15.7不支持CAM350模式强行降版会导致Aperture Macro丢失。✅ 正确解法不降版改设置。在16.6中关闭CAM350模式cam350_modeoff启用Legacy引擎然后在Gerber Setup中将Format改为“3:3”Units设为“Inches”即可生成15.7兼容文件。代价是精度下降仅适用于原型验证。问题2Allegro 16.6 Free View能否查看Gerber不能。Free View是只读Viewer不包含Gerber解析模块。它只能打开.brd文件无法加载.gbr。✅ 替代方案用免费工具GerbvLinux/Windows或在线工具PCBWay Gerber Viewer上传.gbr即可预览。问题3如何导出“任意形状PCB板的边框”Allegro中板框Board Outline必须是闭合的Shape且Layer Type设为“BOARD GEOMETRY/OUTLINE”。导出时在Film Control中勾选该层并将其CAM350 Layer Name设为GKO.gbrGerber Keep-Out。注意不能用Line绘制边框必须用Shape → Polygon否则导出为不闭合线段板厂无法识别。问题4Allegro 16.6导出DRL文件为何比AD多出“G84”指令G84是攻丝指令Allegro默认为所有大于Φ3.0mm的孔添加攻丝标记。若不需要进入Manufacture → NC Drill → Setup → “Drill Table” → 找到大孔尺寸行 → 将“Tap”列设为“No”。5.3 我踩过的三个最深的坑附血泪教训坑1热焊盘Thermal Pad导出后散热失效现象电源芯片下方热焊盘在Gerber中显示正常但打样回来后温升超标20℃。根因Allegro 16.6的Thermal Pad在Gerber中由“Spoke”和“Gap”构成但默认Gap值为8mil而实际PCB工艺最小Gap为6mil导致光绘机将Gap识别为“短路”自动填充铜皮。✅ 修复Setup → Design Parameter → Manufacturing → Thermal Relief → 将“Gap”设为6mil“Spoke Width”设为12mil确保与板厂能力匹配。坑2钢网文件Paste Mask与阻焊文件错位0.1mm现象贴片后锡膏偏移QFP引脚连锡。根因Paste层和Soldermask层的Origin设置不一致。Allegro允许为每层单独设置Origin但Gerber导出时只读取全局Origin。✅ 修复统一Origin。Setup → Design Parameter → Design → Origin设为板子中心然后在Film Control中为GTP和GTS层均取消“Use Layer Origin”强制使用全局Origin。坑3Gerber文件上传嘉立创后“丝印层消失”现象上传成功但预览时GTO层空白。根因丝印层被阻焊层覆盖。Allegro默认将Silkscreen绘制在Soldermask之上但Gerber是分层叠加若GTO.gbr生成在GTS.gbr之后会被后者遮挡。✅ 修复调整导出顺序。在Gerber Setup中将GTO层拖到GTS层上方Film Control列表中位置越靠上导出顺序越靠前确保丝印层最后绘制。最后分享一个小技巧每次导出后用7-Zip右键“测试压缩包”确认无损坏再用PCBView打开所有.gbr文件快速扫视各层图形是否完整。这两步加起来不到一分钟却能避免90%的返工。全文共计5820字
返回列表