Allegro铜皮挖空全攻略:从动态铜到静态铜的版本操作详解
一块铜皮在板子上不该出现的地方出现了怎么处理才干净利落很多刚接触Allegro的朋友拿到一块铺好铜的板子第一反应是用Delete把整片铜删了重铺。这在简单板子上问题不大但遇到大面积的电源层、屏蔽铜皮或者高速信号下方需要控制参考平面的场景删了重铺往往会把原本调好的避让、热焊盘、散热过孔全打回原形。真正该用的操作是铜皮挖空Void只在不想要的局部区域开一个口子其余铜皮保持原样。这篇文章就把Allegro里铜皮挖空这件事从头到尾聊透包括动态铜和静态铜的操作差异、不同版本之间菜单位置的变化、以及挖完之后最容易踩的几个坑。我最早接触挖空是在做电源模块布线时开关节点下方要保证底层铜皮不开窗防止寄生电容耦合噪声。那时候用的是16.6版本Shape - Manual Void - Create Void用得很熟练。后来换到17.4界面变了菜单被整合进ribbon里一度找不到入口。再后来用23.1和25版本右键菜单和选项面板又做了一轮调整。这中间踩了不少坑也翻了官方文档和论坛帖才把整个操作链路理清楚。这篇文章会把从原理到实操、从老版本到新版本的完整路径写出来想省事的可以直接照着做。1. 挖空到底解决什么问题核心原理与典型场景1.1 铜皮挖空是什么和删除铜皮的根本区别先明确一个概念。Allegro里的铜皮Shape无论是动态铜Dynamic Copper还是静态铜Static Copper本质上是一块连续的导电区域。挖空Void的意思是在这块连续铜皮的内部人为划出一块绝缘区域让铜皮在该区域“断开”但前提是这块铜皮本身还保留着主体的形状和属性。这和直接Delete铜皮有本质区别。删除是移除整个Shape对象会导致该区域完全裸板没有铜也没有避让信息后续如果还要在里面加走线、放过孔得重新铺铜才能连通。而挖空是“局部开窗”铜皮主体还在只是特定位置不覆盖铜避让规则依然生效后续调整铜皮边界时挖空区域会跟着保留或变化。简单说删铜是拆掉整面墙挖空是在墙上开一扇窗。从数据层面上看Allegro中动态铜皮是实时避让的挖空区域被当作Shape内部的一个“孤岛禁布区”。静态铜皮则不同它不会自动避让挖空操作实际是给这个Shape增加了一个负片形状Void Element同样能实现局部开口只是修改方式更繁琐一些。1.2 为什么需要挖空五个最常见的工程场景我在实际项目里遇到过的挖空需求基本可以归为下面几类大家对照自己的板子就能找到对应场景。首先是天线区域。板上要放陶瓷天线或者弹簧天线天线正下方和正上方一定区域内不能有完整的地铜皮否则天线辐射性能会被严重拉低。设计规范里通常会要求天线净空区这个区域就需要在铺铜完成后用挖空来实现。如果用删铜的方式后续改板时天线位置微调删掉的铜皮不会自动跟着变每一次改版都要重新处理非常痛苦。其次是隔离带处理。高压和低压之间、模拟地和数字地之间经常需要开一个物理隔离槽。如果整个地平面先连成一片再切槽用挖空操作比重新分区铺铜快得多而且不会破坏已有的过孔和走线连接。再看高频信号下的参考平面控制。高速差分线或单端信号下方需要保证返回电流路径连续但某些特殊位置比如连接器焊盘下方、晶体焊盘下方需要挖掉铜皮来减小寄生电容。这种“局部开窗”需求用挖空是最合理的因为你只想在特定焊盘下开洞其他区域的参考平面必须保留。还有散热设计。大功率器件底部通常有散热焊盘焊盘下方需要打过孔阵列散热。这时如果整片铜皮都连着热量分布可能不均匀或者焊接时焊料会顺着过孔流到背面。在焊盘周围或特定过孔区域做挖空可以控制焊料的流向。最后是板边和安装孔的间距控制。有些板子会要求在安装孔周围做铜皮避让防止装配时螺丝与铜皮短路。虽然这也可以用规则约束但某些情况下规则设置不好用直接在现场挖空最高效。1.3 动态铜和静态铜的挖空逻辑差异Allegro里铜皮分两种类型挖空操作对它们的处理逻辑完全不同先把这个讲清楚后面操作才不会犯迷糊。动态铜Dynamic Copper是默认推荐的铺铜方式。它会在编辑过程中实时计算避让对象挖空操作也比较灵活直接画一个闭合边界铜皮自动做出避让。更关键的是你对铜皮主体做调整、重新填充Fill或切换为静态铜时挖空区域可以跟着变化。在17.4及之后的版本里动态铜的挖空更是高度智能化右键菜单里直接就有创建、编辑、删除挖空操作的入口。静态铜Static Copper则是一个“死”的铜皮对象它不会自动避让任何东西。在老的流程中静态铜通常用于已经定稿、不需要频繁修改的层。它的挖空操作相对受限需要手动创建Void边界而且后续修改边界时不会自动重新填充得手动执行Update Shapes或者干脆重做。用一句话总结动态铜挖空是“规则驱动”静态铜挖空是“手工雕刻”。我个人的建议是只要不是特殊需求比如要精确控制铜皮面积、或者是要做特殊射频结构一律用动态铜。挖空操作在动态铜上省心太多。2. 全流程实操从创建挖空到修改边界的完整路线2.1 操作前的准备工作层别确认与铜皮状态检查开始挖空之前有几件事必须先确认清楚否则操作到一半才发现铜皮类型不对、视图层开错返工成本很高。第一件事是确认当前激活的层Active Class/Subclass。Allegro中所有绘图操作都是在当前激活层上执行的。如果你铺铜是在ETCH/TOP层激活层却切到了ETCH/BOTTOM画出来的挖空边界就会跑到错误的那一层去。很多人第一次挖空失败十有八九是这个原因。第二件事是确认铜皮的属性。用鼠标点一下目标铜皮看右下角Find面板里的结果或者用Show Element快捷键F6查看。需要确认的点包括铜皮是动态还是静态、所属层别是否正确、有没有被设置为No Shape Fill这种情况铜皮本身就不显示实体只有边框。第三件事是关闭不必要的显示层。如果板上元件、走线、铜皮的显示全部开着画挖空边界时很容易被其他元素干扰特别是捕捉时可能会吸到不该吸的坐标上。建议把Display - Blank Rats打开再适当关闭元件参考位号和元器件丝印层保持画面干净。另一个值得提醒的操作习惯挖空之前先把文件另存为一个副本。铜皮挖空特别是动态铜的操作理论上不会损坏数据但在复杂板子上有时会出现填充异常导致无法恢复的显示问题这时候直接回退到副本会比手动修方便得多。2.2 动态铜挖空完整步骤从菜单到右键的两种路径动态铜挖空的标准操作在16.6到17.4版本里都非常接近核心命令是Shape - Manual Void - Create Void。完整步骤拆开如下第一步菜单路径启动命令。点击顶部菜单Shape下拉选择Manual Void再在弹出的子菜单中选择Create Void。此时光标进入绘图状态命令栏会提示Pick shape to add void to...意思是你需要先选一块铜皮。第二步选择目标铜皮。在画布上点击你希望挖空的那块动态铜皮的边缘。此时Allegro会把该铜皮高亮显示并且提示你开始绘制挖空边界。第三步绘制闭合边界。按照你需要的净空区域形状依次点击边界顶点。可以是矩形、多边形、圆形画圆时用Option面板切换为Circle模式。需要注意边界必须是闭合的最后一点和第一点重合或者按右键选择Done让系统自动闭合。如果边界的某个顶点画错了直接右键选择Oops撤销上一个点。第四步确认挖空。边界闭合后系统会自动计算出挖空区域。在16.6及较老版本中动态铜会自动刷新你会看到铜皮上被“挖”出一个区域该区域内不再显示铜皮填充如果界面没有刷新按F5或者执行Display - Refresh。在17.2及以上版本其实还有一条更快的路径直接用右键菜单。选中目标铜皮后按住鼠标右键在弹出的上下文菜单中选择Create Void同样可以进入挖空绘图状态。这是我在17.4之后最常用的方式比走菜单层数少效率高很多。这里必须补充一个关键点无论是菜单路径还是右键路径挖空边界画完之后千万不要立刻按Esc退出。正确做法是等命令状态显示Done确认Option面板里的“Void boundary”信息已经生成。因为很多人在画完最后一个点后习惯性按Esc结果命令被中断边界没有真正提交表面看起来好像挖空了实际一旦执行重填充或者导出光绘挖空区域就消失了。2.3 修改和删除挖空比创建更常用的操作板上做挖空很少一次画到位。特别是天线净空区或者连接器下方的避让经常需要微调边界。Allegro里修改挖空的操作路径是Shape - Manual Void - Edit Boundary老版本或者右键菜单选择Edit Boundary。进入修改状态后点击挖空边界上的一个顶点即可选中整个边界。你会发现每个顶点都以小方块的形式显示出来拖动顶点可以改变边界形状。对于矩形挖空可以直接拖动边或角对于不规则多边形需要逐点调整。更实用的技巧是整体移动挖空区域。在Edit Boundary状态下选中边界后直接按住鼠标左键拖动整条边界就能把整个挖空区域平移到新位置。这在调整天线净空区位置时非常有用不需要重新画一遍。删除挖空的操作老版本路径是Shape - Manual Void - Delete Void点击挖空边界后确认该挖空即被移除。新版本里删除路径也挪进了右键菜单。动态铜在删除挖空后会自动重新填充该区域恢复为完整铜皮。还有一个容易被忽略的操作是Shape - Manual Void - Move Void。在一些版本中对边界属性定义完整Move操作可以快速平移挖空边界如果版本不支持也可以用Edit Boundary全选拖动达到同样效果。2.4 Fill操作挖空之后的必要善后动态铜的理论优势是实时避让但在某些特定操作比如刚修改完边界、刚导入新的走线、刚切换完设计规则之后铜皮填充并没有第一时间刷新这时候就需要手动触发一次填充Fill。在16.6和17.2里菜单路径是Shape - Fill - All或者仅执行Shape - Fill - Shape来刷新单个铜皮。17.4和25版本中这个命令被整合到Shape面板或者Edit - Shape相关入口具体位置不同版本略有区别但通常带“Fill”字样。踩坑提醒挖空边界修改完成后如果发现铜皮没有任何变化第一时间执行Fill大多数显示问题都能解决。如果Fill之后仍然没有正确避让再检查是否是动态铜类型、边界闭合性、以及是否有孤立岛残留。2.5 静态铜挖空知道但别主动用静态铜在Allegro中的处理比较烦人。老的Cadence版本里静态铜无法使用Manual Void命令直接挖空必须先把它转换成动态铜Shape - Convert Shape Type挖空完成后再转回静态铜。这是因为静态铜没有实时避让数据结构无法存储Void信息。不过从17.4版本开始部分版本已经支持直接对静态铜创建Void但这个功能在不同小版本里表现不稳定我在实际使用中发现有时画完边界后静态铜并不显示挖空效果只有重新灌铜或转动态铜后才生效。因此我的建议仍然是如果必须用静态铜挖空流程不要一步做完而是先转动态铜、画Void、再转回静态铜。这样虽然多了两步操作但每一步的结果都是可预测的。3. 版本差异详解16.6/17.2/17.4/23.1/25怎么操作3.1 各版本菜单入口与命令差异对照这部分是标题里标注的“最新版本操作差异”重点内容。Allegro经过这么多年迭代从经典的菜单栏模式到后来的Ribbon面板模式很多老工程师一开始确实不习惯。这里我把几个常见版本的主路径梳理成一张对照表方便大家快速定位命令。版本创建挖空入口修改挖空入口右键菜单支持备注16.6Shape - Manual Void - Create VoidShape - Manual Void - Edit Boundary不支持经典菜单栏操作稳定但层级深17.2Shape - Manual Void - Create VoidShape - Manual Void - Edit Boundary部分支持右键菜单初版需自己启用17.4Shape - Manual Void - Create VoidShape - Manual Void - Edit Boundary完整支持Ribbon界面右键可直接呼出23.1Shape - Manual Void - Create VoidShape - Manual Void - Edit Boundary完整支持菜单和Ribbon共存菜单路径不变25版本集成在Shape面板/右键菜单中右键菜单 Edit Boundary完整支持传统菜单被深度重构建议用右键这个表只是最核心的入口。实际使用中有个判断技巧如果你用的是Ribbon模式的17.4、23.1或25版本可以先选中铜皮然后直接右键看到菜单里有Create Void/Edit Boundary/Delete Void三项说明当前版本支持先进流程。如果右键菜单没有这些选项说明要么是版本较老要么是视图模式不对切回经典菜单模式找Shape - Manual Void路径即可。3.2 17.4的Ribbon界面调整老手也会迷路的地方17.4是一次比较大的界面升级很多老用户从16.6或17.2直接跳过来第一反应是“菜单怎么没了”实际上17.4默认是Ribbon风格界面顶部是类似Office的选项卡面板传统的下拉菜单被整合到不同的Tab里。铜皮挖空相关的命令在17.4中被整合到Shape选项卡。点击顶部Shape标签可以看到Manual Void相关的按钮组。如果找不到可以点击面板右下角的小箭头展开完整的命令集合。另外17.4中右键菜单功能已经非常完整我更推荐直接右键操作省去在Ribbon里翻找的麻烦。17.4里还有个一个容易被忽略的设置User Preferences中的UI设置项。如果你希望保留传统的下拉菜单模式可以在Setup - User Preferences - UI中关闭Ribbon模式切换回经典菜单栏。不少老工程师会选择这种方式让自己在熟悉的环境下工作。3.3 23.1和25版本的变化界面更智能但别忽略选项面板23.1版本在17.4的基础上做了进一步改进右键菜单更丰富同时对动态铜的填充算法做了一些优化。实际体验中23.1在挖空边界贴合曲线时的表现比17.4更顺滑精度也更高。25版本是目前较新的版本界面变化最大。在这里传统的顶部菜单栏被进一步弱化几乎所有的Shape编辑操作都集中到了右键菜单和Shape侧边面板。创建挖空的入口在选中铜皮后的右键菜单里直接用Create Void。另外25版本引入了更智能的命令预测功能选中一块动态铜皮右键后系统会优先展示你可能要做的操作如创建挖空、编辑边界、填充这算是一个不错的效率提升。25版本里修改挖空边界也变得更直观选中挖空边界后可以直接拖动边界上的控制点系统会实时预览挖空区域的动态变化不需要先进入命令状态再操作。这在调天线净空区时体验特别好。不过要泼一盆冷水25版本目前在企业里的普及率还不高很多人手头还是17.4甚至16.6。我建议大家在升级版本之前先确认好公司内部的项目文件版本兼容性。Allegro可以打开旧版本文件但老版本打不开新版本保存的文件。如果项目要多人协作最好统一版本避免文件格式不兼容导致协作障碍。3.4 版本差异总结我推荐的通用操作路线不管用哪个版本我推荐大家掌握一套“通用原子技能”也就是无论菜单怎么变都适用的核心操作逻辑第一步选中目标铜皮。 第二步通过右键菜单或Shape菜单呼出Create Void命令。 第三步绘制闭合边界。 第四步右键Done完成挖空。 第五步如有必要执行Fill刷新。这套逻辑在不同版本里变化的只是入口位置核心机制不变。只要把这几步练成肌肉记忆换版本只是适应新界面的事不存在“不会用”的问题。4. 高频问题与排查技巧挖空过程中的坑我都替你踩过了4.1 挖空后铜皮没有任何变化先别急着重画这是最让人恼火的情况。费了半天劲画好边界也点了Done屏幕上的铜皮却纹丝不动。我遇到过很多次排查下来通常有三个原因。第一个原因是动态铜没有自动刷新。在16.6及更早版本里挖空完成后铜皮需要手动填充才会更新按F5刷新显示是标准操作。如果刷新后仍然没变化尝试执行Shape - Fill - All强制全局重灌铜皮。第二个原因是挖空边界没有闭合。这是我自己也犯过的错。画边界时最后一条边如果没有和起始点完全重合系统会弹一个警告框但由于很多人在画完最后一个点后马上点了右键Done没有看警告内容。检查方法选中铜皮按F6查看属性看看Void列表里有没有一条未闭合的边界记录。如果有删掉重新画。第三个原因是画挖空时选错了物体。在Find面板里如果你同时勾选了很多类型比如Shapes和Lines鼠标点击时可能选中了普通线段而不是铜皮。这样画出来的边界只是画布上的线段和铜皮没有任何关系。注意观察状态栏提示创建挖空时命令行应该显示的是“Pick shape to add void to...”而不是“Pick line to move...”。4.2 挖空边界画完被“吞掉”了顶点重合陷阱编辑挖空边界时如果要把一个矩形的一条边向内收缩有人习惯先删除原边界再重画。但老版本中删除挖空操作Delete Void会把整个挖空移除铜皮恢复填满状态。如果你原计划是“删掉重画”结果画到一半有事打断铜皮上的挖空区域就丢了。我现在的习惯是能不删就不删尽量用Edit Boundary做顶点调整。就算要删也一定先重新创建好新挖空再删旧挖空。这样万一新挖空画坏了旧的还在不至于从头再来。另一个问题是非正交边的重合精度。比如你要在一块异形铜皮上挖一个多边形净空区边界顶点很多手动点击时很容易出现顶点不在同一水平线上导致边界扭曲。解决办法是用Options面板中的坐标输入功能直接输入各顶点的坐标值确保精度。但这操作比较繁琐我的经验是对于复杂异形挖空先用画图工具在AutoCAD或DXF里画好边界再通过导入DXF的方式把这个轮廓导入Allegro然后转换成Void边界。这种方式精度高、效率也高尤其在射频天线区域的设计中非常实用。4.3 挖空后出现孤立铜岛Copper Island所谓孤立铜岛是指挖空区域把铜皮切成了两块其中一块没有任何网络连接不与任何过孔、焊盘、走线相连。动态铜的默认设置会删除孤立铜皮但如果设置不对或者挖空边界刚好切出一个小尖角就会产生孤立岛。把动态铜的Shape Fill里的Island处理方式设置为Remove可以在填充时自动清理孤立铜。具体路径在Shape - Global Dynamic Shape Parameters打开后找到Island页签选择Remove或Create后按需处理。如果选择Create孤立铜会以特殊填充样式显示方便你识别和手动删除。4.4 挖空和走线、过孔避让的关系谁优先Allegro的避让规则是动态铜会避让所有的走线、焊盘、过孔、文字等对象但挖空区域和避让区域之间是互斥的。如果你在一块已经由铜皮避让开的区域里画挖空挖空边界和避让边界之间可能产生重叠段导致显示异常。一个很常见的例子你在顶层铺了动态地铜在某个焊盘周围铜皮已经自动避让出一个环状区域然后你又在这个环状区域的边缘画了一个铜皮挖空。结果显示挖空后原本整洁的环状避让变得支离破碎。原因是挖空边界避让对象计算时把焊盘的避让区也纳入了挖空点的计算范围。解决办法很简单挖空区域应该画在避让区域之外或者在画完挖空后对铜皮做一次重新填充Fill让系统重新计算避让关系。如果对结果不满意用Edit Boundary微调挖空边界位置即可。4.5 挖空设置和规则Shape Spacing冲突视觉正常但实际异常Allegro中有专门的Shape Spacing规则用于控制铜皮和其他对象之间的间距。挖空边界本身也遵循一定的距离规则。如果动态铜的全局参数里Void Spacing值设置过大挖空区域会比画的边界小很多如果设置过小挖空边界可能和其他铜皮贴得太近在生产上造成加工困难比如铜皮间距不足蚀刻时会产生酸液残留。检查路径在Shape - Global Dynamic Shape Parameters - Clearances找到Minimum void spacing或Void offset相关参数。默认值通常为5-10mil我一般习惯设为与普通Shape间距相同的值确保视觉和实际一致。如果发现问题出在局部规则Region规则里可以在Constraints - Physical - Region查看是否有针对特定区域的特殊设置有的话调整对应的Shape间距参数即可。4.6 导光绘Gerber后挖空效果丢失少了这一步必踩雷这个坑我一定要重点讲。很多人在Allegro界面上看挖空效果显示得清清楚楚但导出Gerber后发现该有铜的区域还是有铜挖空完全没有生效。出现这个问题的原因绝大多数是动态铜没有执行填充操作。Allegro的Gerber导出是基于铜皮的最终填充结果来输出的。如果你在画挖空边界后没有执行Fill系统里记录的挖空数据虽然存在但生成的填充结果没有更新导出的光绘就还是旧的样子。所以我在画完挖空后固定不变的三步先执行Shape - Fill - All整体填充然后按F5刷新显示最后再次用Show Element点击铜皮确认Void信息列表里能看到刚才创建的挖空边界。全部确认无误后再导出光绘。另外提醒一下如果板子是多层设计层叠里铜皮类型设置为“负片”Negative时挖空数据的生成逻辑和正片不一样。负片模式下填充相当于挖空挖空相当于填充这块逻辑很多新手会绕晕。建议导出光绘前用CAM工具预览一下每一层的铜皮状况尤其是做了挖空操作的那一层。5. 进阶技巧与配套操作让挖空效率再上一个台阶5.1 多个挖空批量处理脚本方式实现高效管理当板子上有几十个完全相同的挖空需求时例如多个天线区域的净空区形状一致手工一个个画效率太低。这时候可以用简单的Allegro Skill脚本或者复制操作来实现批量挖空。最简单的复制方式先画好第一个挖空边界然后使用Edit - Copy命令在Find面板里只勾选Void对象选中刚刚画好的挖空边界复制到其他目标位置。如果位置上需要旋转或镜像都支持对应操作。再进阶一点Allegro Skill环境可以直接操作Void对象。通过axlDBGetShapes获取铜皮对象遍历其Void列表用axlDBCreateVoid创建新的挖空边界。这种方式适合有编程基础的工程师可以做到一键完成一整板的天线净空区。不过Skill环境在不同版本里有细微差异脚本语言需要针对版本做适配。5.2 挖空与光绘、DXF的联动操作前面提到过挖空边界可以通过DXF导入。实际操作中我是先在结构软件里把净空区的轮廓画好比如天线的净空区可能是L形或者阶梯形导出DXF然后在Allegro中通过File - Import - DXF导入该轮廓。导入后这些轮廓是线段对象直接用Shape - Manual Void - Create Void在画边界时利用线段对象进行捕捉快速完成挖空绘制。DXF导入时要注意单位对齐Allegro里默认单位是mil如果DXF文件是mm导入后需要统一单位。17.4之后支持导入时自动转换单位但老版本需要手动换算这一步漏了会导致挖空偏大或偏小非常致命。5.3 挖空区域的标识与管理团队协作时的清晰表达挖空区域在PCB上通常是为了特定目的天线净空、隔离槽、禁布区。在多人协作的项目中如果只在铜皮上开个口子不添加任何说明别人打开板子根本不知道这里为什么挖空也不清楚后续能不能动。我的习惯是在挖空区域附近放置一个Board Geometry - Notes层的文字说明写清楚原因和限制条件例如“天线净空区禁止铺铜”“高压隔离槽宽度不少于X mm”之类。这样后续同事接手看到说明就能迅速理解设计意图避免误删或误改挖空边界。5.4 学会正确避让适度用挖空不要滥用挖空操作很强大但它并不是解决所有布板问题的万能钥匙。有些工程师在设计时懒得调规则、懒得做分区直接用挖空来避开各种冲突结果铜皮被挖得千疮百孔。这样的板子在制造时会增加蚀刻难度在射频调试时也可能带来不可预测的谐振问题。更合理的思路是先把规则设置好。铜皮自动避让焊盘、过孔、走线这些常规需求应该交给Allegro的规则引擎去处理挖空只用于那些规则无法表达的净空需求比如天线净空、特殊隔离区域。把挖空当成“局部特判”而不是“常态工具”设计质量和可维护性都会好很多。规则设置可以参考Setup - Constraints - Spacing里面有完善的Shape相关间距选项。写在最后在我做过的板子里挖空操作几乎每个项目都会用上几次从电源板的MOS管散热区域到物联网板的天线净空区再到混合信号板的隔离带。熟练之后这个操作花不了几秒钟但它解决的都是那些“看得到却不好处理”的问题。回想起来从16.6一路用到25版本菜单入口挪来挪去右键功能越来越强但核心逻辑始终没有变先选中铜皮再画闭合边界最后填充确认。把这套流程练成肌肉记忆换什么版本都不慌。最后再提一个小技巧挖空操作完成后养成随手保存的习惯。Allegro偶尔会在复杂板子上出现填充异常或者崩溃一两个小时的修改成果如果没保存重做一遍的滋味真的不太好受。安全的习惯是工具栏上方的保存快捷键每完成一块铜皮的挖空就按一次代价只是一两秒换来的是稳妥和安心。