ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Cadence Allegro 8层板光绘设置模板化指南:Gerber导出不再返工

Cadence Allegro 8层板光绘设置模板化指南:Gerber导出不再返工 Cadence Allegro的光绘设置应该是我见过最多人每次画板都要重来一遍的活儿。尤其是8层板层多、film多、钻孔文件多稍微漏一个Subclass板厂就会把邮件甩回来要么说缺文件要么说层顺序不对要么说钻孔偏移。我最早做第一块八层板的时候导完Gerber用CAM350一看内层铜皮只有一圈轮廓线当时差点把电脑砸了。后来我把整套光绘配置整理成模板配合Script录制重放现在导出8层板全套Gerber加钻孔基本上两三分钟搞定而且极少返工。这篇文章就围绕一件事怎么把8层板的光绘设置做成一套可复用的模板下次新建板子时直接套用以及当Gerber文件异常时按照什么顺序排查。内容基于Cadence Allegro 16.6到17.4的常见操作路径如果你用17.2、17.4或更新的X版本菜单位置可能略有差别但原理完全一致。1. 为什么8层板的光绘设置这么容易翻车先搞懂板厂到底需要什么1.1 一套完整的光绘文件包含哪些内容很多工程师提到出光绘就以为是把每一层的铜导出来其实板厂拿到的是一整套PCB加工用的图形文件。常规8层板至少需要这些顶层走线层Top Copper内层L2到L7的走线或平面层注意是每一层单独一个文件底层走线层Bottom Copper顶层阻焊Solder Mask Top底层阻焊Solder Mask Bottom顶层丝印Silkscreen Top底层丝印Silkscreen Bottom顶层和底层助焊/钢网Paste Top、Paste Bottom做SMT时需要钻孔文件NC Drill钻孔图Drill Drawing和钻孔图例表这还不算完。所有文件的单位、格式、精度、原点必须一致否则板厂做CAM处理时层与层对不齐轻则板厂帮你修一下重则整个批次的孔位和铜箔对不上板子直接报废。1.2 8层板在光绘输出上的特殊之处8层板的麻烦在于内层多。内层里既有走线层也有完整的电源和地平面。平面层通常面积很大如果处理成一块完整的实心铜皮光绘数据量会非常大于是很多工程师习惯用负片Negative输出只画没有铜的区域文件尺寸小得多。但这种正负混用的模式一旦在film设置里搞错输出结果就是地层图形整体反掉或者铜皮区域出现莫名其妙的空白。除此之外8层板还常见埋盲孔结构。一个埋孔文件和一个盲孔文件导出顺序、命名规则都影响板厂识别。如果只丢一个NC Drill出去板厂默认按通孔处理生产出来的板子孔洞全错。有HDI结构的板子这步尤其要小心。1.3 为什么默认设置直接导出不行我见过不少新手直接点Manufacture - Artwork发现弹出来的Film Control里只预置了少数几个film甚至有些是空的。Allegro自带的默认光绘配置是为了让软件能跑通不是为了让你直接交给板厂。默认参数里单位可能是当前设计单位但格式精度不一定是板厂要求的Subclass映射不一定全钻孔输出又是另一套参数各搞各的。更关键的是如果每个项目都从头点一遍配置漏配置的概率非常高。人的记忆不可靠但模板文件可靠。就算你这次一个参数一个参数地设对了下次换个叠层、换个版本又得重来一遍。与其这样反复消耗时间和精力不如花半小时把模板搭好一劳永逸。2. 搭建可复用的8层板Gerber模板格式、层映射与关键参数2.1 全局参数单位、格式、精度和原点打开Manufacture - Artwork后先点General Parameters按钮。这里面有几个参数直接决定Gerber是否可用Device Type选Gerber RS-274X。这是现代EDA和板厂的主流格式D码内嵌在文件中不需要额外提供光圈表。Format指整数位和小数位。我习惯用英制单位InchesFormat设3:5也就是最小分辨率0.00001英寸。大多数常规板子3:5足够如果板上有极细的间距或高密度BGA建议直接上3:6文件大小差别不大但CAM处理时更稳。Units必须和NC Drill保持一致。我建议全流程统一用Inches除非板厂明确要求公制。Leading/Trailing Zero Suppression通常用前导零抑制。这个选项要和NC Drill里保持一致前后零抑制不一致会直接导致钻孔文件解析错乱。一个小技巧把Film Size Limits的宽度和高度设大一点比如32x32英寸避免某些板框超出默认光绘范围导致图形被裁掉。这个参数在板子特别大或者板框坐标有偏移时是排查光绘缺边的重要检查点。2.2 正片还是负片内层电源地平面的选择这是最容易纠结的地方。老工程师以前喜欢把整层内电地层设成负片因为早期光绘机的数据处理能力有限负片文件小、绘图快。但现在计算机处理Gerber毫无压力我个人更推荐全部用正片输出理由有三正片直观用CAM350打开看到什么就是什么排查问题容易负片要求Thermal Relief、Flash符号等定义完全正确一旦某个引脚的热焊盘符号没做对光绘里就会出现孤立铜皮或缺失连接板厂CAM处理正片几乎零门槛负片反而容易在导入时产生误解。如果你的公司内部规范强制要求内层负片那在Film Control里把该层的Film类型选为Negative并且务必检查所有引脚是否定义了正确的Flash。这一步没有捷径只能逐项核对。从我自己处理过的板子来看负片导致的返工率比正片高不少能用正片就别用负片。2.3 每一层film的Subclass映射清单别漏了Class和Subclass在Artwork的Film Control里选中一个film点Subclasses弹出的窗口就是这层光绘要包含的所有Class和Subclass。很多Gerber丢东西问题都出在这里。比如丝印层只勾了Board Geometry/Silkscreen_Top忘了勾Ref Des/Silkscreen_Top结果板上的位号全部消失阻焊层忘了勾Pin/Top和Via/Top结果焊盘被阻焊盖住贴片根本没法焊。我给自己定的8层板标准映射清单大致如下Film名称需要包含的主要Class/Subclass正负片说明ART_TOPETCH/TOP, PIN/TOP, VIA/TOP, BOARD GEOMETRY/OUTLINE正片顶层走线ART_GND02ETCH/L2, PIN/L2, VIA/L2正片/负片内层L2ART_SIG03ETCH/L3, PIN/L3, VIA/L3正片内层L3ART_SIG04ETCH/L4, PIN/L4, VIA/L4正片内层L4ART_SIG05ETCH/L5, PIN/L5, VIA/L5正片内层L5ART_SIG06ETCH/L6, PIN/L6, VIA/L6正片内层L6ART_GND07ETCH/L7, PIN/L7, VIA/L7正片/负片内层L7ART_BOTETCH/BOTTOM, PIN/BOTTOM, VIA/BOTTOM, BOARD GEOMETRY/OUTLINE正片底层走线ART_SOLD_TOPBOARD GEOMETRY/SOLDERMASK_TOP, PIN/TOP, VIA/TOP正片顶层阻焊ART_SOLD_BOTBOARD GEOMETRY/SOLDERMASK_BOTTOM, PIN/BOTTOM, VIA/BOTTOM正片底层阻焊ART_SILK_TOPBOARD GEOMETRY/SILKSCREEN_TOP, REF DES/SILKSCREEN_TOP正片顶层丝印ART_SILK_BOTBOARD GEOMETRY/SILKSCREEN_BOTTOM, REF DES/SILKSCREEN_BOTTOM正片底层丝印这里把活动类和子类的概念说清楚Allegro的Class是大的对象分类比如ETCH、PIN、VIA、BOARD GEOMETRYSubclass是同一类对象在不同层的归属比如ETCH下面有TOP、L2、L3直到BOTTOM。你在Artwork里勾选Subclass时实际上是在告诉光绘机这一层film要画哪些对象。如果某个对象的Class和Subclass没被任何film包含它就不会出现在任何Gerber里。很多工程师在PCB界面里看到某个层的器件、位号都显示正常就以为Gerber里也会有其实不对。光绘只看film里勾选的SubclassPCB显示只是你的查看状态和最终输出没有直接关系。所以每次Load模板后一定要逐个film点开Subclasses确认一遍。2.4 钻孔文件和钻孔图别等板厂来问你要Gerber是图形钻孔是坐标和孔径表必须单独输出。路径在Manufacture - NC - NC Drill。参数设置里同样要确认单位与Artwork一致我统一用Inches格式里选择与Artwork相同的精度比如3:5输出文件命名建议用板名加-drill后缀比如board-drill.tap原点选择强烈建议用Absolute origin和Artwork中设置的原点保持一致否则板厂导入后每层板的坐标基准不同结果整个钻孔阵列偏移。通孔一个文件就够有埋孔、盲孔时Allegro会按照Via结构拆分出多个NC Drill文件命名上通常带后缀区分。导出后务必逐个确认数量是否和你的Via结构一致。钻孔图Drill Legend则是把孔径符号表放到PCB图上用Manufacture - NC - Drill Legend生成记得把它放到Board Geometry/DrillLegend子类再在丝印层的film中把该子类加进去或者单独输出一个Drill Drawing层。2.5 保存模板一个不显眼但救命的功能所有film配置完成后在Film Control界面下方有Save和Load按钮。Save会把当前所有film的列表、每个film的Subclass映射、正负片、Mirror、Undefined line width、Film Size Limits等参数全部写进一个.art文件。建新项目时打开Artwork后点Load选中这个art文件所有配置瞬间恢复。这里我要多说一句Save时不要保存在项目目录项目目录会被清理、会被归档时间一长就忘了。我习惯在D盘根目录建一个allegro_templates文件夹里面按板层分类放好。每次换电脑第一件事就是把整个模板文件夹拷过来然后逐个版本验证一遍。模板只有集中管理才有意义散落在各个项目里过半年你自己都找不到。还有钻孔参数NC Drill设置并不保存在art文件中它保存在板子的参数里。所以模板只解决光绘图形的复用钻孔参数需要在每个新项目里确认一次。这也是为什么我推荐用Script录制把钻孔导出动作也录进去因为Script把参数设置过程也固化下来了。3. 一键导出的实现方式Script录制、模板加载到Skill自动化3.1 一套完整的模板化操作流程既然art文件已经把光绘配置固化了完整流程其实可以固定成四步打开叠层完整的8层板brd进入Manufacture - Artwork点Load加载8L_standard.art核对Film Control里所有film是否勾选完整确定无误后右键或点击Create Artwork进入Manufacture - NC - NC Drill核对钻孔参数确认原点、单位、精度输出钻孔文件。在以上四步里真正需要人为判断的只有第3步的核对和第4步的参数确认。如果每一步都靠手动点出错的概率还是存在。所以Script录制才是真正意义上的一键。3.2 Script录制重放最简单可靠的一键方案Allegro的Script功能在File - Script它能记录你在界面上的所有操作保存成.scr文本文件。具体做法打开一个配置好模板的板子File - Script输入脚本文件名比如export_8l_gerber.scr开始录制依次执行一次完整的导出Manufacture - Artwork - 在Film Control里确认所有film勾选齐全 - 点Create Artwork再Manufacture - NC - NC Drill - 点Drill如果有Drill Legend也做一遍停止录制。以后任何8层板只要打开brdFile - Script选择这个scr文件回车Allegro就会自动把全套Gerber和钻孔文件吐出来。整个过程两三分钟。这里面有几个坑要注意。第一Script录制的操作如果涉及弹窗确认不同版本弹窗可能不一样重放时可能出现卡住不动最好在录制时尽量用快捷键或纯命令操作减少对鼠标点位置的依赖。第二输出文件名默认取板子名这个没问题但如果你在录制时手动改了输出路径每次重放都会往那个路径写。我建议录制成输出到当前brd所在目录的gerber子目录这样最不容易出乱子。提示Script文件本身是文本文件可以用记事本打开查看。你不需要手写它但看懂里面的命令遇到重放失败时会更容易定位是哪个菜单操作出了问题。3.3 Skill脚本再进一步把重放动作变成菜单或快捷键如果你对Skill略懂可以在Script重放基础上再套一层。比如在allegro.ilinit里写一段defun(Export_8L_Gerber () axlShell(replay export_8l_gerber.scr) ) axlRegisterAction(export_8l_gerber Export_8L_Gerber)这样在Allegro命令框里输入export_8l_gerber就等于执行一次完整的Gerber导出。还可以把axlRegisterAction绑到自定义菜单上连命令都不用敲。底层原理不复杂Script重放实际上是让Allegro执行一遍你录制的GUI操作Skill的作用只是把打开Script文件、回车这个动作再封装一次。相比直接写API遍历film用Script重放的好处是它对版本差异不敏感换到17.4或更新的版本重新录制一次新脚本就能继续用不需要去适配不同版本的Skill API。3.4 导出后必做的完整性自检脚本跑完不等于万事大吉。我强烈建议养成一个5分钟自检习惯打开输出目录确认文件数量8层铜箔8个、阻焊2个、丝印2个、可能还有助焊2个、NC Drill若干再加上一个Drill Legend至少十几个文件用CAM350或免费Gerber Viewer逐个打开主要看三件事板框是否完整、铜箔是否有实心填充、丝印文字是否可读把Top层和Bottom层的丝印叠在一起看确认Bottom没有反字把钻孔文件加载到CAM350中和Top层比对孔位是否一一对应。这几分钟能拦截掉90%的交付事故。反正我见过太多时间来不及了先发板厂再说的结果基本都是第二天加急改图反而更慢。4. 常见错误与完整排查链路从现象到根因4.1 铜皮只有轮廓Shape fill设置和铜皮优先级这个坑我在文章开头就提过也是网上被问烂的allegro铜皮只有轮廓问题。现象是Gerber文件放到CAM350里铜皮区域只有一个空心的框中间什么都没有。排查顺序先看是不是只在Gerber里这样、在Allegro界面里是正常的。如果是问题几乎都在Artwork的General Parameters里打开Manufacture - Artwork - General Parameters找到Shape fill选项里面有No shape fill、Lines/arcs、Filled shapes三个值如果选了Lines/arcs光绘就只输出铜皮轮廓线改成Filled shapes重新生成Gerber问题解决。顺便说一句有的朋友会遇到某些铜皮被另一块铜皮吃掉一部分生成的光绘有异常缺口这块和铜皮优先级Shape Priority有关。Allegro里动态铜皮之间通过优先级来决定重叠区域的归属和避让关系优先级设置不当会导致不同网络的铜皮重叠或互相掏空出奇怪的形状。如果你发现某块地铜和电源铜重叠处出现诡异形状先别急着怀疑光绘设置回到PCB里检查两块Dynamic Shape的优先级和Void行为。光绘只是如实反映铜皮的几何图形PCB里是什么样导出来就是什么样。4.2 钻孔文件与Gerber对不上原点、单位、格式不一致另一个高频投诉是钻孔整体偏移或钻孔镜像。这通常是NC Drill和Gerber的坐标系基准不一致。举个例子Gerber Artwork里用的原点是绝对原点也就是图纸左下角或板框原点而NC Drill设置里如果选了Relative origin恰好又设置过相对原点那么钻孔坐标会从另一个基准开始算结果就是所有孔相对铜箔整体位移一段距离。排查链路用CAM350同时加载Top层Gerber和NC Drill文件看孔位和焊盘是否对齐如果有一致的偏移量回Allegro检查Manufacture - NC - NC Drill参数把原点改回Absolute单位改回Inches精度改成和Artwork一致重新导出再叠一次确认没有偏移后才发板厂。这个坑最阴险的地方在于单看Gerber是正常的单看钻孔文件也是正常的唯独两个叠在一起就出问题。所以自检阶段千万别只看单独一层。4.3 Bottom层丝印镜像Mirror设置乌龙底层文字反了是丝印层最常见的翻车方式。很多人直觉认为底层从背面看所以要镜像然后在Artwork的Film Control里把Bottom丝印的Mirror勾上结果板厂从正面看Gerber时文字确实反了。真相是Allegro的Bottom丝印SubclassBOARD GEOMETRY/SILKSCREEN_BOTTOM里面存放的文本本来就是以从底面往上看的视角定义的光绘时不需要额外Mirror。如果你在Artwork里再勾一遍Mirror相当于把已经反好的东西又翻了一次输出到CAM里就是反的。排查方式很简单生成Gerber后用CAM350查看能直接读出位号文字说明方向正确读起来像天书检查Mirror选项。同理Bottom层铜箔和阻焊也不要画蛇添足地去勾Mirror除非你做的是复合层film且明确知道为什么要镜像。4.4 D码光圈表缺失导致异形焊盘丢失或变形如果你的Artwork里还是传统274D格式那必须单独提供D码文件。D码就是光圈表每个数字对应一个形状。只要表不匹配椭圆焊盘会变成方焊盘圆孔会变成菱形板厂看到这种文件基本直接退回。解决办法是把Device Type改成RS-274X。274X把D码定义直接写进Gerber文件里板厂导入时不需要额外找光圈表几乎不会出现D码错乱。这也是我在2.1里建议用274X的原因。如果你的异形焊盘或者花焊盘在274X下仍然丢失那多半是封装里Flash符号Thermal Relief没有正确赋给引脚或负片层里引脚的Thermal Pin没有选择Flash。这种情况在正片输出下几乎不会遇到所以还是那句话能用正片就不用负片能上274X就不上274D。4.5 模板在另一台电脑或另一个版本失效Subclass映射全没了模板art文件在A电脑上用了半年没问题拷到B电脑上一LoadFilm里一片空白。这类问题我碰到过原因基本有两个。一是art文件里保存的Subclass名称和当前板子的Class/Subclass名称不完全一致。比如你录制模板时用的板子里有一层叫ETCH/GND02而新板子的内层叫ETCH/L2名称对不上film自然加载不出内容。这种情况不是模板坏了而是项目层叠命名不统一。解决思路是团队内部统一层叠命名规范或者Load模板后逐层核对Subclass。二是版本差异。Allegro从16.6到17.4不少内部命令和菜单路径变了但art文件的格式大体兼容。不过17.4之后在Subclass命名上也有一些调整最稳妥的做法是在新版本里打开模板重新Save一份作为新版本的专用模板而不是跨版本硬套。5. 模板复用之外的一些经验让Gerber交付更省心5.1 按叠层结构分类维护多个模板8层板不止一种叠层。常规8层板、含埋盲孔的8层板、HDI一阶或二阶的8层板每一类的内层Subclass和钻孔文件数量都不一样。放在同一个art文件里虽然也能用但每次都要手动勾选不同的孔结构等于没有完全复用。我自己的做法是按叠层孔结构建目录8L_std常规通孔8层板8L_HDI_1一阶HDI 8层板8L_HDI_2二阶HDI 8层板每个目录下放一个art模板和对应的Script脚本。新建项目时先确认属于哪一类然后直接加载对应模板。模板文件名里要写清楚层叠结构例如8L_std_3-5_inch.art光看文件名就知道单位、精度和用途。5.2 从16.6迁移到17.4要注意什么很多公司现在还在用16.6但新电脑或新项目可能上了17.4甚至更新的版本。我迁移的时候踩过几个小坑Artwork菜单在16.6和17.4里都在Manufacture菜单下名字没变但General Parameters界面里某些下拉项的位置变了17.4默认对Gerber输出做了些增强比如支持更精细的圆弧插补导出的文件大小比16.6大一些属正常现象老版本录制的scr脚本在新版本里重放时偶尔会因为弹窗按钮文字变化而卡住建议在新版本里重新录制一遍脚本不要指望老脚本永远好用。总之模板可以跨版本迁移但迁移后一定要在新版本里完整走一遍导出并用CAM查看不能想当然。5.3 团队标准化与板厂沟通模板复用的最大受益者是团队。如果整个PCB组都使用同一套Gerber模板、同一套文件命名规范那么每个人交付给板厂的文件结构都一样板厂也省心审单也快。文件名我建议统一为项目名_层名_v版本比如ProjectX_TOP_V1.0.gbr、ProjectX_NCDRILL_V1.0.tap避免出现最终版2_final_真的最终版这种命名灾难。和板厂沟通时主动发送一份光绘输出说明把你使用的单位、格式、精度、正负片、原点写在邮件里。正规板厂都会按这个参数导入CAM提前说明能省掉至少一轮确认的来回。设计师最容易犯的错误是想当然地以为板厂能自动识别所有Gerber实际上Gerber只是图形数据单位、精度不知道人家一样要猜。5.4 如果客户只要PADS或Allegro原档怎么办标题聊的是Gerber但实际工作中总有客户或下游厂商说你直接给我PADS格式。Allegro不能直接把brd另存为PADS格式通常需要用转换工具或中间格式处理。这里我多说一句不管最终要不要转PADSGerber模板该复用还是要复用。因为转PADS主要影响的是可编辑性而板厂加工用的还是Gerber即使客户要PADS最终交付制造时也建议配套一份Gerber方便双方核对。最后再分享一个小技巧。很多人把模板配置好就再也不管了但板厂的工艺能力是变化的从普通FR4到高速材料从常规线宽到激光钻孔光绘参数不一定一成不变。我每年会抽时间把手头所有模板重新在最新版本里跑一遍用CAM350做一次完整检查确认没有异常后再发布给团队使用。这样的模板才是真正能让你一键导出且睡得着觉的模板。
返回列表