☰
Allegro铜皮挖空全攻略:从原理到版本差异与实战避坑
2026/10/7 12:53:37 网站建设 项目流程

1. 从"铺铜铺了个寂寞"说起:为什么铜皮挖空比铺铜本身更考验功力

做PCB设计这些年,我见过太多新手甚至是有几年经验的设计师,在铺铜阶段挥洒自如,一到铜皮挖空就手足无措。说起来也挺有意思——铺铜是把铜填进去,谁都会;但该把铜"抠"出来的时候,很多人反而不知道从哪儿下手、抠多大、用什么指令、抠完怎么验证。

先把这个概念说清楚。所谓Allegro铜皮挖空,就是指在已经铺好的动态或静态铜皮上,人为地创建一个或多个"空洞"区域,让铜箔在这些区域不覆盖、不连接,从而实现电气隔离、阻抗控制、结构避让等目的。英文术语里对应的是Shape Void,也有叫Shape Cutout或者直接叫Route Keepout的,容易搞混的就是这几个概念。

这篇东西解决什么问题?三个层次:第一,给你一套完整的铜皮挖空操作全流程,从选择命令到画边界到最终成型,每一步都讲透;第二,把Allegro 17.4、22.1和最新的24.1这几个版本之间的操作差异摆出来,别让你拿着老版本的肌肉记忆去新版本里抓瞎;第三,把我这些年踩过的坑、总结出的验证方法、以及"什么时候该用挖空、什么时候不该用"的工程判断,一并倒给你。

说实话,铜皮挖空这件事,看起来就是个"画个圈把铜切掉"的简单操作,但实际项目里翻车率极高。我见过有人把电源芯片底下的散热焊盘周围铜皮全挖空了,芯片一上电直接过热保护;也见过有人在高速信号线旁边该挖空隔离的地方没挖,导致串扰超标、EMI测试不过。所以这绝对不是一个"会点鼠标就行"的活儿,背后牵扯到对信号完整性、电源完整性、散热设计、制造工艺的综合理解。

先提醒一句:这篇文章默认你用的是Allegro PCB Designer,不管你是17.4、22.1还是24.1,基本逻辑是相通的,但菜单位置和交互方式有差异,这些差异我会专门拿出一章来讲。如果你用的是其他EDA工具,操作指令可能不一样,但设计思路完全可以直接迁移。

2. 挖空前必须想明白的三件事:为什么挖、挖哪里、挖完会怎样

2.1 为什么挖:挖空的工程目的决定了操作方式

铜皮挖空不是装饰性操作,每一个挖空区域背后都对应着一个明确的工程诉求。我梳理了一下,常见的挖空目的大概有这么几类。

第一类是阻抗控制需要。微带线、带状线的阻抗主要由线宽、介质厚度和参考平面决定,但如果铜皮离走线太近,会导致阻抗偏低。这时候在走线两侧对应的铜皮上挖出一条"隔离带",就能把有效介质环境固定下来,让阻抗更接近计算值。典型场景是射频走线、USB差分对、HDMI等高速接口的阻抗控制。

第二类是电气隔离需求。不同网络之间需要保持安全间距,尤其是在高压区域。比如大功率电源板上,初级侧和次级侧之间、交流输入端和直流输出端之间,安规要求爬电距离和电气间隙,这时候在铜皮上挖空是满足安规距离的重要手段。还有模拟地和数字地的分割、敏感模拟信号区域的铜皮去除,这些都是为了减少干扰耦合。

第三类是结构避让与装配需求。比如板子上有定位孔、螺丝孔、卡扣槽,或者某些结构件需要穿过PCB,这些区域的铜皮如果不挖掉,安装时可能短路,或者结构件直接压坏铜皮。另外,板边、拼板工艺边、V-cut区域附近通常也需要挖空,避免分板时铜皮被撕裂、起翘。

第四类是天线净空区。板载天线、蓝牙天线、Wi-Fi天线周围往往要求铜皮净空,否则天线辐射特性会严重劣化。这时候需要在天线周围的铜皮上挖出一个特定形状的禁布区。这一条在IoT产品里几乎每天都遇到。

还有一个容易被忽略的场景——调试与测试。有些信号测试点附近如果大面积铺铜,探头一搭上去就可能短路,或者测量值受铜皮寄生参数影响。预留挖空区可以给调试留出干净的测量环境。

你发现了没有,光是"为什么挖"就已经有五个完全不同的方向。而每个方向对应的挖空边界画法、间距设置、验证方式都不一样。所以我强烈建议你在动手之前,先在纸上或者文档里把挖空的目的写清楚。别笑,我见过太多的案例是"我也不知道当初为什么挖,反正就挖了",等到改版的时候,这些莫名其妙的空洞成了巨大的坑。

2.2 挖哪里:边界位置和形状尺寸怎么定才算专业

确定挖空位置,说穿了就是一句话——以你要保护或隔离的对象为中心,给它让出足够的安全空间。但这个"足够"到底是多少,就有讲究了。

以高速差分线的阻抗控制挖空为例,假设你走的是100Ω差分对,线宽6mil,线间距8mil,介质厚度4mil,叠层结构是L1信号层、L2完整地平面。如果你在L1层走线两侧铺了铜,且铜皮边缘距离走线小于等于20mil,那么阻抗会受到明显影响,实测可能掉到85Ω甚至更低。这时候正确的做法是:在差分对两侧各挖出至少一个"包络"区域,让走线两侧的铜皮边界往后退,退到距离走线中心至少3倍线宽以上的地方。也就是说,挖空边界距离走线中心大约18到20mil起步,如果空间允许,我一般会留到30mil以上,效果更稳。

再比如安规爬电距离的挖空,这就要看你的产品适用什么标准。以IEC 60950-1(现在很多被IEC 62368-1取代)为例,220V交流输入初级侧和次级侧之间,基本绝缘要求的爬电距离一般在6.3mm以上(具体取决于污染等级和材料组别)。这里的"爬电距离"是指沿着绝缘表面测量的最短路径,所以你在铜皮上挖空,实际上是在物理上切断这条由铜皮提供的"便捷通路"——把焊盘与焊盘之间的大面积铜皮挖掉,表面绝缘路径就变成了直线距离,反而更容易满足。这种情况下挖空的边界,要让两个不同网络的最短表面距离不小于规定值,同时还要考虑制造公差,我一般会多留15%到20%的余量。

天线净空的挖空就更有意思了,它不是一个简单的矩形或者圆形,而是要根据天线的辐射方向图来设计净空区域的形状。全向天线的话,净空区通常是天线周围一个特定半径的圆;定向天线或者PIFA天线,则要根据天线走线方向预留特定的多边形区域。这种挖空往往要反复仿真验证,不是一次就能定下来的。

总的来说,挖空边界确定的原则可以归纳为三条:

  • 以被保护对象为中心,把该对象周围的铜皮让开,让出距离遵循相应设计规则(阻抗线宽倍数、安规距离、天线净空半径等);
  • 挖空边界尽量平滑,避免尖锐的内角,因为尖锐角在蚀刻时容易出现铜皮残留或过度腐蚀,也会造成电场集中;
  • 挖空区域之间留够间隔,避免挖得太多导致大面积的铜皮被切成孤岛,尤其是电源平面的碎块化容易引发直流压降和回流路径问题。

2.3 挖完会怎样:先预测影响,再动手操作

这一步很多人会忽略,但恰恰是资深工程师和普通工程师的分水岭。

挖空对电气性能的影响是多方面的。首先是回流路径问题。高速信号的回流电流总是沿着阻抗最小的路径走,也就是尽可能贴着信号走线的下方或者旁边。如果你在信号走线的回流层上挖了个大洞,回流电流就得绕道,绕道的代价就是回流路径面积增大、回路电感增大、串扰和辐射随之增加。所以如果你在L2层(参考地平面层)挖空来避让结构件,但L1层正好有高速信号跨过这个挖空区域,那等于人为给高速信号挖了个"回流断崖",信号质量必然恶化。这种情况下,要么调整挖空位置,要么在信号跨过挖空区域的旁边加一个回流地过孔,帮助回流电流"跳过"空洞。

其次是散热问题。铜皮的导热性能很好,大面积铜皮本身就是一种散热通道。如果你把功率器件正下方和周围的铜皮都挖空了,散热路径就断了,器件温升会明显增大。我之前做过一个DC-DC电源模块,刚开始为了追求焊盘间的电气隔离,把电感底下的铜皮挖得干干净净,结果整板实测温度直接比仿真高了12℃,后来在电感下方保留了一块经过计算的地铜皮,并打了阵列过孔辅助导热,温度才回到正常范围。所以,功率器件底下的挖空一定要和散热设计一起评估,别闷头挖。

再次是制造工艺问题。铜皮挖空后,会形成一些细长的铜皮条带或者孤立的铜皮岛。在PCB制造过程中,孤立铜皮如果没有连接到任何网络,在蚀刻时容易出现侧蚀过度,导致铜皮翘起或脱落。这个时候解决方案不是不挖,而是在挖空的同时,在某些小铜皮岛上加一些"工艺连接筋"(teardrops或者支撑铜条)来固定它。当然,如果是真正的死铜,还是要删除或者通过过孔连接到地网络。

最后是电磁兼容问题。合理的挖空可以用来隔离干扰源和敏感电路。比如晶振下方对应的地层挖空,可以减少晶振的寄生电容耦合,起振更容易、频率更准。又比如在某些高频开关节点下方的铜皮挖空,可以减少开关噪声对邻近敏感走线的容性耦合。但挖空位置不当,比如在滤波电容底下挖空,反而会破坏高频回流路径,让滤波效果变差。

所以我的习惯是:在Allegro里动手挖空之前,先花五分钟在脑子里过一遍——这个区域下面和周围的信号层是什么?有没有高速线跨过?这个区域有没有功率器件需要散热?挖完之后,回流路径从哪里走?这五个问题想清楚了,再打开软件操作,效率高且不容易返工。

3. 逐步拆解:Allegro铜皮挖空操作全流程

3.1 操作前的准备工作:层叠确认、开关状态与文件保存

正式操作之前,有几件事必须做,否则操作过程中容易出错或者被卡住。

第一件事,确认当前工作的层。看起来是废话,但翻车率极高。挖空操作通常是针对特定层面的铜皮,你必须在Options面板的Active Layer里选对层(比如你要挖TOP层的铜皮,当前层就得是TOP),否则可能把铜皮挖到了隔壁层。Allegro的Shape编辑命令是层敏感的,选错层虽然也能操作,但结果完全不在你预期的地方,而且这种错误在出Gerber之前很难发现。

第二件事,确认铜皮类型是静态还是动态。动态铜皮(Dynamic Copper)会在你编辑完边界后自动避让、自动重铺,操作体验好很多;静态铜皮(Static Copper)不会自动更新,需要你手动重新填充(或者直接删除重建)。建议设计过程中尽量使用动态铜皮,只在出Gerber前或者特殊情况下用静态铜皮。关于静态和动态的取舍,后面我会专门讲。

第三件事,把无关的显示层关掉或者调暗。如果板子上器件多、走线密,全显示状态下去画挖空边界,一方面容易看花眼,另一方面鼠标捕捉时容易误抓到无关的元素。我一般会只打开当前层和相邻参考层的显示,把器件位号、丝印、装配层全部关掉,保持视野干净。

第四件事,另存一个备份文件。铜皮编辑操作虽然可以Undo,但Shape编辑的Undo有时候不太可靠——特别是你连续执行了多个编辑操作、中间又夹杂了其他命令的时候,Undo很容易只回退一部分,留下一个诡异的中间状态。所以我每次做批量挖空之前,都会先File > Save As存一个带日期的备份,比如board_20250105_before_void.brd。这个习惯救过我太多次了。

3.2 动态铜皮挖空:最常用、最灵活的操作路线

对于动态铜皮,Allegro提供了非常顺手的交互式编辑工具。操作路径是这样:

  1. 选择菜单Shape > Manual Void > Create,或者在命令行输入快捷命令**void**;
  2. 此时光标旁边会出现一个十字准星,单击选中你要编辑的动态铜皮区域。注意这一步是选中铜皮,不是直接开始画挖空区域。选中后,铜皮会高亮显示;
  3. 选中之后,命令栏会继续提示你绘制挖空的边界。你可以在Options面板里选择绘制方式——矩形、圆形、多边形(Polygon)或者通过路径(Path);
  4. 在铜皮上依次点击绘制挖空区域的顶点。画完最后一点后右键选择Done,或者直接敲回车,挖空区域就成形了;
  5. 这时Allegro会自动重铺这块动态铜皮,你能立刻看到被挖空后的效果,铜皮会在挖空边界处自动让开,形成干净的隔离区域。

这个流程的关键点在第三步和第四步之间的交互逻辑。很多新手在选中铜皮之后,不知道下一步该干嘛,以为要重新去菜单里调指令,实际上命令栏已经"挂起"等你去绘制了。你只要直接在画布上点击、绘制边界就行,不需要也不应该再去点菜单。

画边界的时候,有几个细节值得注意:

  • 捕捉设置(Snap):如果你希望挖空边界对齐到某个器件焊盘的边缘、线宽边界或者板框边缘,一定要先在Options面板里选好捕捉类型,比如Snap to Segment Vertex、Snap to Pin等。默认的Snap to Grid在画粗略矩形时没问题,但对齐精密边界时就力不从心了;
  • 绘制方向:Allegro支持顺时针和逆时针绘制挖空多边形,不强制方向。但如果你后面要把挖空区域导出成DXF或者用来做规则检查,统一的方向会让后续操作省不少事;
  • 绘制完成后微调:如果画完发现某个顶点位置不对,不需要删除重画。右键选择Edit Boundary,或者用Shape > Manual Void > Edit命令,然后拖动顶点微调。对于动态铜皮,每一次编辑都会触发自动避让重算,实时看到结果。

这个操作最舒服的地方在于:动态铜皮的挖空是完全参数化的、可反复编辑的。你改了挖空边界,铜皮自动重铺,不需要手动删除旧铜皮再重新铺。这在工程项目里太重要了——当你还在反复调整天线净空区位置时,每次改完立刻能看到新的电气效果,效率拉满。

3.3 静态铜皮的挖空:先转动态,还是直接挖

静态铜皮没有动态避让和自动重铺机制,所以在Allegro里直接对静态铜皮执行Manual Void操作会受限,实际上传统版本的Allegro并不支持对静态铜皮直接做Manual Void。如果你面对的是一块静态铜皮,想在上面挖空,有两条路可走。

第一条路:转成动态铜皮再挖。操作方式是选中静态铜皮,在右键菜单里选择Change Shape Type,把类型从Static改成Dynamic。之后按3.2节的流程操作。如果需要最终输出静态铜皮(有些公司的设计规范要求出Gerber前所有铜皮都是静态的),可以在挖空完成之后,再把铜皮从Dynamic改回Static。记得转换完之后检查一下整体避让效果,因为动态转静态的过程中,Allegro会按照当前的避让规则"冻结"出结果,如果规则设置有问题,转出来的静态铜皮可能出现不该有的连接或间隙。

第二条路:编辑Shape的边界几何。这招适合小范围、边界简单的场景。你用Shape > Edit Boundary直接编辑静态铜皮的外轮廓,把需要挖空的部分在轮廓上"绕过去"——本质上你是在重新画一个带凹陷的铜皮边界,而不是在铜皮内部挖洞。这个方法要求你对外轮廓的重画有十足的把握,因为静态铜皮边界一旦改错,重铺结果很难预测。我没记错的话,这个方法在17.4和22.1上交互差别不小,新版本对顶点编辑更友好,老版本则相对生硬。

我的建议是:永远优先走第一条路,把静态转动态,挖完再转回去。这样既保留了对挖空区域的参数化控制,又满足了最终输出规范。静态铜皮直接改边界的方法,只适合那种"临时切一小块"的场景——比如确认一个测试点附近铜皮必须去掉,而且形状非常简单,矩形就能搞定的时候。

3.4 挖空成型后的精修:修改边界、合并挖空与删除挖空

挖空不是一次性操作,项目迭代过程中,你大概率需要反复修改挖空的边界和位置。Allegro在这个环节给了一组非常成熟的编辑命令,我按使用频率从高到低给你梳理一遍。

修改边界:菜单**Shape > Manual Void > Edit**,点选你要修改的挖空边界,此时边界上的顶点会变成可拖拽的状态(白色小方块),你可以拖动单个顶点,也可以在边界上右键选择Add Vertex增加新的顶点、Delete Vertex删除已有顶点。修改完成后右键Done,铜皮重新避让并显示新效果。注意,这里的顶点编辑遵循Alllegro的常规交互,你在拖动顶点前,可以按F6或者用右键的Vertex菜单来切换不同的编辑模式。

重新绘制区域:如果形状变化太大,与其慢慢拖顶点,不如直接删掉重画。选中挖空边界后按Delete删除,或者用**Shape > Manual Void > Delete**命令点击该挖空区域即可。删除后,原来的铜皮会自动"愈合"——也就是重新铺满之前挖空的区域,这时候如果你还想挖,用Create命令重画就行。

合并多个挖空:有时候你会在同一块铜皮上画了好几个相邻的矩形挖空,后面发现它们之间隔得太近,不如合并成一个整体。Allegro本身没有一个叫"Merge Void"的命令,最直接的方式是把中间隔着的铜皮边界删掉——也就是编辑挖空边界,拖动中间那根隔断的边,让两个区域连通。操作路径就是Edit边界、删除隔断边上的顶点、再调整形状,让它们变成一个多边形。这么做之后,铜皮的重铺逻辑会按新边界重新计算,效果等同于两个挖空的并集。

一个很实用的操作习惯:挖空边界编辑完成后,养成一个习惯——执行一次Check(菜单 Display > Status,或者快捷键F6)。Check会实时报告DRC错误数量和类型,铜皮相关的常见错误包括Shape to Shape Spacing违规、Shape Void Spacing设置不满足等。确保检查结果干净或者只有你已知且接受的可控警告,再继续下一步。

3.5 参数细节:这些设置不改,挖空会给你制造意外

Allegro里跟挖空相关的参数设置,分布在不同菜单里,很容易被忽略,但它们决定了挖空的实际效果和制造成果。

先说Shape Void Spacing——这可能是挖空中最核心的一个参数。它的含义是:动态铜皮边界(或挖空边界)与铜皮上的走线、焊盘、过孔等元素之间,需要保持的最小间距。如果该值设得太小,挖空后铜皮与走线之间可能出现接近甚至违反制造能力的情况;设得太大,铜皮被"让开"得太远,又会让隔离效果或者散热效果不达预期。一般默认值是0.508mm(20mil),如果你的产品用的是高密度设计,可以压到0.254mm(10mil),但不要低于板厂的制造极限。这个参数在Setup > Design Constraints > Constraints里可以全局设置,也可以针对特定网络或特定铜皮单独设置。

其次是Shape Void 的显示与渲染。如果你发现挖空之后,屏幕上看到的铜皮状态跟预期不符——比如该空的地方还是显示有铜——多半是显示设置的问题。在Display > Color/Visibility里把Shapes的Poutline(边界轮廓)和填充模式都打开,同时检查Display > OpenGL的渲染设置是否开启了形状填充。另一个常见情况是,你改完挖空后,动态铜皮没有自动重铺,这通常是动态铺铜被手动暂停了——如果屏幕右下角有"Dynamic Shapes Disabled"提示,打开Shape > Dynamic Copper > Enable恢复自动重铺即可。

还有Boundary Trim(边界裁剪)选项。在做挖空时,如果你勾选了Options面板里的Trim by Rectangle或者Trim by Polygon选项,那么你画出来的挖空区域只有落在矩形/多边形范围内的部分生效。这个功能在你想精准控制"只挖某一段"的场景下非常有用。举个例子:你有一块大面积铺铜,想在上面沿一条走线方向挖一个长条形的隔离槽,但你不想手动画出长条形的所有顶点,你可以先画一个覆盖该区域的矩形,再勾选Trim by Rectangle,拖动矩形框住那段需要挖掉的区域,快速生成挖空边界。这个技巧节省了大量琐碎的顶点点击。

最后是网络规则。如果你的挖空区域跨越了两个不同的网络区域(比较少见,但有可能,比如挖空边界穿过了安全间距检查区域),Allegro在动态重铺时会执行网络间距规则检查,违反规则会直接报DRC错误。这种情况下需要你回到设计规则里,确认这两个网络之间的间距规则是否设置正确。如果设计的意图本就是让它们通过挖空区域隔离,就要确保规则允许。

4. 版本差异破解:17.4、22.1、24.1到底哪里不一样

4.1 为什么Allegro版本升级总让人头疼

Cadence的版本迭代,说实话,功能是在增强的,但UI和交互逻辑经常大动干戈,让老用户叫苦不迭。对于铜皮挖空这个操作,不同版本之间的差异主要体现在三个方面:菜单入口位置、命令交互细节、以及底座引擎的渲染和避让计算方式。很多从17.4迁移到22.1的用户,最崩溃的不是找不到命令,而是找到了命令但操作手感完全不对——鼠标点哪里、右键出什么菜单、选项面板里有什么,全都不一样。

这一章我会把三个主要版本线的差异摊开来说。还是先强调一句:设计逻辑是通用的,操作路径是版本相关的。你掌握了设计逻辑,不管什么版本都是"找入口"的问题;但如果只背了操作路径,版本一换就抓瞎。

4.2 17.4:经典时代,命令路径清晰但交互略显繁琐

Allegro 17.4(以及之前的16.6等版本)是很多工程师入门的版本,也是网上教程最多、老工程师肌肉记忆最深的版本。在17.4里,铜皮挖空的操作是:

  • 动态铜皮挖空:Shape > Manual Void > Create,然后点选铜皮,在画布上绘制挖空区域,右键Done完成;
  • 编辑挖空:Shape > Manual Void > Edit;
  • 删除挖空:Shape > Manual Void > Delete。

看起来是不是跟前面3.2节讲的差不多?对,因为17.4的菜单组织非常直白,所有跟形状相关的操作都集中在Shape菜单下。"Manual Void"的意思就是"手动挖空",对比的是"Automatic Void"——但在实际使用中,动态铜皮会自动避让走线、焊盘,而你要主动挖空的区域几乎都是靠手动绘制,所以Automatic Void在工程里的使用频率反而不高。

17.4的交互有一个特点:选中铜皮后,命令会直接进入"等待绘制边界"的状态,不需要你再确认任何选项,直接在画布上画就行。选项面板里的捕捉设置、绘制类型选择,在绘制过程中随时可以切换。这个"无打扰式"的交互其实挺舒服的,后面22.1反而改复杂了。

17.4时代的坑在于:如果你操作之前没有把当前层设置正确,选中铜皮时会选中到别的层的铜皮,而且因为没有层的颜色高亮区分,新手很容易在多层板中选错目标。这个版本里,你需要养成先看底部状态栏当前层显示的习惯。

4.3 22.1:UI重构的分水岭,菜单换了马甲但逻辑没变

到了22.1,Cadence对界面做了一轮比较大的调整,很多人调侃它"越来越像Windows 11和Altium的混血"。具体到铜皮挖空,变化最大的地方在于:很多Shape相关的命令被整合进了Ribbon风格的面板里,默认菜单结构跟17.4有明显区别。

在22.1里,铜皮挖空的操作入口通常是:

  • 顶部菜单Shape > Manual Void > Create/Edit/Delete依然存在,但你还可以通过Home > Shape Edit区域的Interactive Void按钮快速进入;
  • 右键菜单也变了:选中铜皮后右键,直接有Create Void / Edit Void / Delete Void等上下文相关命令。这个改变其实很友好,不用再跑到顶部菜单去点两步了;
  • 选项面板的布局发生了调整,绘制类型切换按钮从下拉列表变成了图标按钮,第一次用会有点懵,但习惯了之后鼠标移动距离反而更短。

功能层面,22.1有一个很实质的改进:动态铜皮的重铺计算速度明显更快,尤其在挖空边界复杂、多边形顶点多的情况下,不再像17.4那样需要长时间等待。我自己对比过,同样是一块带12个挖空区域的地铜皮,移动其中一个挖空边界的顶点,17.4需要等近10秒重铺,22.1基本是即时的。这个体验差异,在大板、高密度板上尤其明显。

另一个22.1带来的小变化是:Shape Void的顶点编辑更灵敏了,鼠标靠近边界会自动高亮顶点位置,捕捉起来比17.4轻松很多。这看似是小改进,但对频繁调整天线净空区的RF设计来说,省下的时间相当可观。

4.4 24.1:最新版的交互升级与操作习惯再适应

24.1是目前Cadence较新的版本线(实际项目中我见过用23.1的也不少,这里以24.1为例)。这一代最大的变化是引入了更现代的渲染引擎和更智能的编辑提示。说实话,第一次打开24.1做铜皮挖空的时候,我一度以为自己打开的不是Allegro,因为整个画布的高亮、阴影、边界提示都变了。

核心变化有这么几个:

变化一:命令入口继续向上下文式演进。24.1里,选中一块铜皮后,右键菜单里不仅会出现Create Void等命令,还会根据你当前鼠标所在位置动态显示"在这里创建挖空""编辑这个边界"等智能提示。本质上这是把以前"先选命令、再选对象"的逻辑颠倒过来,变成"先选对象、再出可用命令"。你不需要记住命令在哪个菜单里了,选中铜皮后自然就能看到下一步能做什么。

变化二:绘制边界时的实时预览效果大幅增强。在17.4里,你得画完整个挖空边界,然后Done,才能看到铜皮重铺后的效果。24.1里,你每画一个顶点,都会实时看到挖空区域与周围铜皮的动态避让效果,相当于"边画边预览"。这对设计精确度是实打实的帮助——你画到第三个顶点时发现这个区域太小、不足以实现隔离,立刻就能停下来调整,而不是等到整个边界画完再返工。

变化三:挖空的约束管理更严格。24.1对挖空相关的间距约束检查更加细化,如果你设置的Shape Void Spacing与全局设计规则冲突,系统会给出更明确的提示,而不是默默地按某个默认值执行。这从设计规范的角度看是好事,但对老用户来说,意味着升级后第一次跑Check时,可能会爆出一堆之前在旧版本里"不存在的DRC"。别慌,这不一定是你板子真的有问题,很可能是新版本暴露了之前被默认值掩盖的不合理设置,逐个排查、修正规则即可。

变化四:对触摸屏和高分屏的适配明显好了。如果你在用高分辨率笔记本或者外接4K屏,17.4在缩放160%以上时的图标模糊、选项面板错位问题,24.1基本解决了。这个跟操作本身没直接关系,但直接影响工作效率,值得提一嘴。

说实话,这三个版本的差异,我用一张表帮你总结一下,方便你快速对照:

对比维度17.4(经典)22.1(重构过渡)24.1(最新)
命令入口Shape菜单集中管理Shape菜单+Ribbon+右键菜单右键上下文智能菜单为主
绘制实时预览无,画完才重铺基本无有,边画边预览
顶点编辑基础可用更灵敏的自动高亮智能提示+高亮增强
重铺速度大板明显等待显著加快进一步优化
动态铜皮自动重铺运行正常默认开启但可暂停智能化程度更高
约束检查严格度按静态规则局部增强更细化,DRC提示更明确

4.5 一处就是一处:版本差异要死记,设计原理要活学

分别讲完三个版本之后,我再总结一下通用性的东西。不管哪个版本,铜皮挖空的设计原理是一致的:你画一个封闭多边形,告诉Allegro"这块区域不要铜",然后动态铜皮自动避让。版本差异只是入口和交互不同,不是原理不同。

所以我的建议是:版本升级后,先花一个小时把菜单走一遍,别急着在项目上直接开工。具体来说,打开一个测试板(或者复制一份当前项目文件),把挖空相关的Create、Edit、Delete各操作做三遍,感受一下网格捕捉、右键菜单、选项面板的变化。等你重新找回节奏了,再在正式项目上操作。这个"热身"过程看着浪费时间,但实际上能帮你避开大量因为操作不熟悉引发的低级错误——比如该编辑A挖空结果点到B挖空上、或者选了当前层以外铜皮这种致命误操作。

另外,有一个跨版本的通用技巧值得你记住:无论哪个版本,Alias命令(也就是快捷键命令)在很大程度上是稳定不变的。比如void命令在17.4、22.1、24.1上基本都可以直接输入调用。如果你习惯了命令行操作,甚至可以不关心菜单长什么样,直接在Command栏敲void,然后按老流程走。这算是对抗版本UI变化的最强底牌。

5. 实操案例:从天线净空到高压隔离,三个场景的完整演示

5.1 场景一:2.4G天线净空区挖空

这是一个典型的IoT模块设计。板子尺寸不大,六层板,板载2.4G PCB天线放在板边一角。天线厂家给出的设计要求是:天线正上方和周围至少要有X方向的净空区(具体尺寸根据天线规格书),净空区内顶层铜皮必须完全去除。但板子空间极其紧张,天线的左侧是射频匹配电路,右侧有USB座的金属外壳,下方走了一组I2C信号。

我的操作思路是这样的:

第一步,先把天线走线、匹配电路的边界和板框全部显示出来,关闭无关层。然后用Shape > Manual Void > Create,选择天线所在的TOP层动态铜皮;

第二步,根据天线规格书,在天线周围画一个净空多边形。注意这个多边形要包含天线走线的整个辐射区域,并且要超出天线边缘至少5mm(厂家推荐值)。我把多边形顶点精准对齐到板框边缘和器件边界上,确保挖空后铜皮边界不会侵入天线占用的空间;

第三步,画完边界,右键Done,让Allegro自动重铺。这时候仔细观察天线区域,确认整个天线辐射区都没有铜皮残留,同时检查旁边的射频走线是否因为此次挖空变得裸露——裸露的射频走线如果旁边有其他信号线,可能会引发耦合。如果发现风险,我会在天线和匹配电路之间再加一排接地过孔,形成隔离屏障;

第四步,把挖空后的铜皮边界与天线辐射区的距离实际量一遍,确认符合规格书。量距离用的是Dimension工具或者测距命令,确保每个位置都达标。

这个案例里有一个特别容易踩的坑:天线净空区挖空,不能只挖顶层,如果天线是层叠结构天线或者需要底层净空,你得在多个层上分别执行挖空。我在有些项目里见过只挖了顶层、底层一片铜皮铺得密密麻麻,实际测试天线效率直接掉了一半的案例。所以每次挖完,一定要把所有相关层都检查一遍。

5.2 场景二:开关电源初级次级安规隔离挖空

第二个案例是大功率电源板,输入220V交流,输出12V直流,板子上有高压区和非隔离区。安规要求初级侧和次级侧之间必须保持足够的爬电距离和电气间隙。为了满足这个要求,我在初级侧和次级侧之间的铜皮上做了挖空处理。

操作流程如下:

首先,根据安规标准计算出需要满足的爬电距离。输入电压是220V,正常工作条件下,基本绝缘的爬电距离需要6mm以上,电气间隙需要5mm以上。考虑到产品可能在污染等级2的环境下使用,我决定把挖空后两边的铜皮边界距离做到7.5mm,留足余量;

然后,在Allegro里用挖空命令,沿着初级侧和次级侧的分界线,画出一条宽度约2mm的"隔离槽",把两边的铜皮彻底分开。注意,这里的隔离槽不是把整层铜皮全挖掉,而是沿着分界画出一条带状挖空区,让两边铜皮的最近距离达到7.5mm;

重点来了:挖空完成后,还要检查这条隔离槽有没有被任何走线、铜皮引线"桥接"过去。因为Allegro的DRC虽然能检查间距,但不会自动检查"爬电距离"——爬电距离是沿着绝缘表面走的,DRC默认检查的是直线距离和电气间隙。如果走线从挖空槽旁边绕过去了,直线距离可能没有问题,但爬电路径却走了一个"弓背",导致实际爬电距离不达标。这个检查需要工程师手动确认,经验不足的人特别容易漏。

我的检查方法是:在挖空槽的边缘,用测距工具沿着板和铜皮表面模拟爬电路径,逐段测量最短表面路径,把每一段的长度加起来,确认总爬电距离大于7.5mm。如果不够,就把隔离槽加宽,或者通过增加开槽(PCB Board Cutout)来增加表面路径长度。开槽是比铜皮挖空更强力的手段,因为它在PCB基材上物理开一个槽,表面路径直接在空气中走,爬电距离计算方式和沿着板材表面完全不一样。但在很多场景下,先做铜皮挖空已经能解决大部分问题。

5.3 场景三:高速差分线跨层区域的回流面挖空规避

第三个案例比较进阶。一个PCIe Gen4的链路,走线从L1层换到L3层,过孔旁边正好有一个结构件安装孔,需要把L2层(参考地平面)的一块铜皮挖空来避让结构件。但是挖空区域正好位于高速过孔的正下方,如果直接挖,回流电流就要绕着巨大的空洞走一圈,链路阻抗连续性和回流完整性都会受影响。

这种情况怎么处理?我的方案是:先把安装孔对应的L2层铜皮挖空,这是结构需要,无法避免;然后在高速过孔旁边紧贴着加两个回流地过孔(GND via),让回流电流在L1到L3换层时能够通过这两个地过孔直接跨越L2层的空洞。回流地过孔的位置很关键,不能离信号过孔太远——一般控制在30mil以内,最好是对称放置,形成回流电流的"近路"。

挖空操作本身并不复杂,依然是Shape > Manual Void > Create,选中L2层动态地铜皮,画出安装孔周围的净空区域。但难的是挖完之后,你要用仿真或者经验判断回流的路径是否够短、够顺畅。如果条件允许,我会把这一段的S参数仿真结果拉出来对比——挖空并加回流地过孔之前和之后,回损和插损的变化一目了然。实测中,加了回流地过孔后,高速链路的回损能改善3到5dB,效果极其明显。

这个案例想说明的是:铜皮挖空从来不只是"画个圈"这么简单,它牵一发而动全身。你在某一层挖掉的铜皮,可能正好是另一层关键信号的参考平面。所以每挖一次,都要有"全局视野"。

6. 高频翻车现场:挖空操作中常见的五大错误及排查链路

6.1 翻车一:挖完铜皮后,整片铜皮直接消失了

这是最让人头皮发麻的情况。你在动态铜皮上执行完挖空,本来只想开一个小窗口,结果整个铜皮都不见了,屏幕上只剩一个孤零零的铜皮外轮廓框。

出现这个情况,大概率是你在画挖空边界的时候,边界画到了铜皮轮廓之外,或者边界根本没有闭合。Allegro在动态铜皮重铺时,会把你画的挖空区域当作"从原铜皮上减去"的区域。如果你的挖空边界把整个铜皮都包进去了,那减完之后就什么都不剩了。还有一种可能是:你画了一个非常大的挖空区域,大到覆盖了铜皮的大部分面积,剩下的条带太细,小于了动态铺铜的最小条带宽度设置,Allegro直接把这些细条丢弃了。

排查链路:第一步按下Undo,回退到操作前状态;第二步检查Options面板里的Minimum Sliver Width(最小条带宽度)和Void Spacing设置;第三步用Shape > Manual Void > Edit重新查看挖空边界,确认边界是否封闭、范围是否正确;第四步如果边界正确但铜皮依然不显示,检查一下是不是当前层的动态铜皮被冻结了,用Shape > Dynamic Copper > Enable恢复。大部分情况走完前三步就解决了。

6.2 翻车二:想挖掉的地方没挖掉,不想挖的地方被挖了

这种情况在多层板、高密度板上特别常见。你以为你挖的是TOP层的铜皮,结果选中的是内层的;你以为你画了一个矩形挖空在某个走线旁边,结果因为网格捕捉没对齐,实际挖空区域偏移了零点几毫米,正好压到了另一条不该碰的铜皮上。

排查链路:第一,确认选中铜皮时,颜色高亮是否出现在你预期的层上。Allegro默认显示中,不同层的Color/Visibility颜色不同,如果你开了所有层,一定要看高亮颜色属于哪一层;第二,画挖空边界时,把不需要编辑的层全部关闭,只留下当前层,这样捕捉和选择就不会串层;第三,挖空完成后,用Display > Element命令点击挖空边界,查看它的所在层属性、字符串名称等参数,确认它的归属。这个检查虽然多了一步,但能从根源上杜绝"挖错层"。

6.3 翻车三:动态铜皮挖空后避让结果和预想不一样

有时候你画了一个矩形挖空,但Allegro重铺后,挖空边界并不是一个干净的矩形,而是带着各种锯齿、凹陷、突起,看起来像是被什么东西"啃过"一样。

这个现象多数是因为挖空边界和周围的走线、焊盘、过孔之间发生了避让逻辑冲突。动态铜皮在重铺时,会同时执行"避让障碍物"和"遵循挖空边界"两条规则。如果你的挖空边界离某个走线太近,避让逻辑会优先把铜皮拉得更远,于是挖空区域就"膨胀"了;如果你的挖空边界碰到了某个异形焊盘,避让逻辑还会把边界"咬"出一个口子。

排查链路:先确认挖空边界本身是否干净——用Shape > Manual Void > Edit查看编辑状态下的挖空边界线,看看边界线上有没有额外的顶点或者拐点;如果没有,再检查挖空边界周围是否有高度接近的元件或者走线,把它们的间距参数调大一点再重铺一次;最后,如果这些都不是原因,检查是否有Static Shape和Dynamic Shape混在一起。静态铜皮和动态铜皮混用时会互相干扰避让结果,这是很多诡异形状问题的元凶。

6.4 翻车四:DRC报出一堆Shape相关错误

挖空操作之后,DRC报错是家常便饭。但同样是报错,有不同的根源,处理方式完全不同。

最常见的错误是Shape to Shape spacing violation——挖空后的铜皮边界和另一块铜皮边界距离小于规则要求。这个一般是挖空边界画得太激进,和旁边另一块铜皮贴得太近了。解决方案有两种:扩大挖空区域,或者缩小另一块铜皮。优先检查两块铜皮是否属于不同网络,如果是异网络间距问题,必须改到满足规则;如果是同网络,需要确认设计意图是否允许它们贴得那么近。

其次常见的是Line to Shape spacing violation。挖空边界离走线太近,铜皮避让后留的间隙不够。这种情况在细间距BGA出线区域特别多,你需要把挖空边界往远离走线的方向移动一些,或者在走线另一侧留出更大的隔离空间。

还有一个特别容易忽略的错误来源:挖空区域与板框重叠。如果你画挖空边界时越过了板框线,Allegro在重铺时会尝试在板外也执行挖空,结果生成奇怪的极窄铜皮或者错误碎片。很多人遇到"挖空后铜皮变成一堆零散碎片"的情况,根源就在这里。解决方式是让挖空边界始终位于板框内,如果需要板边缘避免铜皮,直接设置板框到铜皮的间距规则更简单。

6.5 翻车五:Gerber输出后挖空区域完全消失

这是最隐蔽的一种问题——在Allegro里看起来一切正常,挖空区域边界清晰、铜皮避让完美,但板厂拿到的Gerber里,那些挖空区域全都不见了,铜皮恢复成完整的一大片。

出现这种情况,基本可以断定问题出在挖空区域所在的铜皮类型和Gerber输出设置的配合上。Allegro在输出Gerber时,如果你用的是静态铜皮,且静态铜皮在输出前没有执行"重新填充"或者"边界更新",Gerber里输出的铜皮图形就是旧的——也就是说,你看到的新挖空形态只存在于Allegro的内存里,但没有被"固化"到静态铜皮的几何数据中。

排查链路:第一步,确认挖空区域的铜皮是静态还是动态。如果是静态铜皮,在输出Gerber前,用Shape > Select Shape or Void/Cavity选中该静态铜皮,然后右键执行Update To Smooth或者Replace Shape,强制刷新几何数据;第二步,打开Gerber预览工具(比如CAM350或者Allegro自带的Gerber Viewer),逐层查看铜皮层,确认挖空区域确实存在;第三步,对比Allegro设计界面和Gerber文件中的铜皮轮廓,如果发现差异,优先排查是不是有其他软件(比如第三方转换工具)在处理过程中丢失了挖空边界。说实话,这一步是我见过的坑里最隐蔽的一个,因为很多人根本不看Gerber预览,直接把文件发板厂,等板子回来才发现问题,返工成本极高。

6.6 翻车六:铜皮挖空引发的散热灾难

最后再提一个电气之外的坑——散热。这个我在第2.3节已经剧透过,但这里用完整的案例再强调一次。

我之前做过一个LED驱动板,LED驱动芯片底部有一个散热焊盘(thermal pad),我的初衷是在散热焊盘周围挖空铜皮,避免散热焊盘和旁边的一些高压走线间距不足。结果挖空之后,散热焊盘周围的铜皮被大幅削减,芯片的散热路径几乎全断了。实测时,满载工作十分钟,芯片表面温度达到了117℃,而正常设计应该是85℃左右。

排查链路其实很快:一摸芯片温度异常,我就意识到是铜皮挖空影响了散热。解决方式是:在保证间距安全的前提下,把挖空边界往远处推回去一些,保留一块足够大的铜皮连接散热焊盘,并且在焊盘正下方打了一排1.0mm的散热过孔阵列,连接到内层大面积地铜皮。改完之后,实测温度降到88℃。

这个案例告诉我们:挖空和散热是互相拉扯的两个需求。在功率器件周围挖空时,不要直接把焊盘周围全部"铲平",而是应该在满足电气间距的前提下,尽量保留散热通道。如果实在无法兼顾,那就应该改叠层或者在器件底下增加额外的散热结构,而不是牺牲电气间距去迁就散热。

7. 高阶技巧与工作流优化:挖空效率翻倍的实操心得

7.1 用Skill脚本批量生成挖空区域

如果你是Allegro的重度用户,一定绕不开Skill——这是Cadence为Allegro定制的脚本语言,本质上就是用代码来驱动设计操作。在铜皮挖空这个场景里,Skill的价值在于批量化和参数化。

举个例子,我有一个项目里需要在二十几处位置做完全相同的矩形挖空,位置坐标是有规律的(按行列排列)。如果手动操作,我需要在每块铜皮上执行Create、画矩形、Done,一套流程下来至少半小时,还容易出错。用Skill就快得多,核心思路是写一个脚本,遍历这些位置坐标,自动创建挖空形状。

Skill脚本的关键在于调用Allegro的Shape编辑函数。一个典型的创建挖空的Skill伪代码思路是这样的:先通过坐标选择目标动态铜皮(axlSelectShape),然后调用axlAddVoid或者等效的API传入挖空的顶点坐标数组,最后刷新显示。不同版本的Skill API函数名有一点差异,但思路完全一致。如果你没有Skill基础,我的建议是从录制宏开始,用Allegro自带的操作录制功能录一遍手动操作,然后查看生成的Skill代码,在此基础上修改坐标参数,算是入门Skill最平缓的方式。

7.2 利用Class和子类(Subclass)层级管理挖空区域

Allegro的层管理允许你在同一个物理层下创建多个不同的子类。比如你可以把铜皮放在TOP层,也可以把特殊的挖空区域放在TOP/CUTOUT_TEST这种自定义子类里。这样做的好处是:你可以针对性地控制显示和输出,挖空区域和正常铜皮互相独立,管理起来更清晰。

但注意,Allegro的挖空操作是针对Shape本身的,不是在子类上做的。我这里的建议是,如果你要在设计里加很多临时性的挖空——比如调试用的测试区域、后期可能要移除的保留区域——可以考虑把这类挖空信息用额外的图形或者标记放在自定义子类里,方便后期识别和移除。而对于正式的挖空区域,还是老老实实用Shape Void功能做在铜皮本身上。这个技巧更多是项目管理层面上的,但它能让你在改版时快速区分"哪些挖空是必须保留的,哪些是后期检查用的",非常实用。

7.3 从Layout到板厂:挖空信息如何正确传递给制造端

铜皮挖空最终要传递到板厂,主要依赖的是Gerber文件和钻孔文件。但板厂实际制造时,他们真正关心的是:每一层铜皮的最终几何形状(包括挖空区域)、层间间距、最小线宽线距、以及板框和开槽信息。如果你的挖空区域同时涉及铜皮和板材开槽,那两者要分别处理:

  • 铜皮上的挖空,随Gerber铜层文件输出即可,板厂会按图蚀刻;
  • 如果需要板材本身开槽,那是Board Outline或者Board Cutout,要单独用机械层文件(通常叫Outline层或者Drill Drawing层)表达,并在钻孔文件里标注开槽尺寸。

很多人把这两个概念混在一起,以为在铜皮上挖空就能让板材也开槽,这是完全错误的。铜皮挖空只是让铜皮上没有铜,基材还是完整的;开槽是在基材上物理掏洞。所以做结构避让时,一定要分清是"铜皮让开"还是"板子开槽",两者表达方式和制造工艺完全不同。

在Gerber输出环节,我的习惯是:把每一层铜皮的Gerber文件用RS-274X格式输出,同时把板框和开槽信息放在专门的机械层输出。输出之前,我会执行一次Artwork检查,用Allegro自带的Manufacture > Artwork打开光绘文件管理器,逐层确认铜皮层的输出内容,挖空区域在预览中应该是清晰可见的。如果预览中看不到挖空区域,说明前面6.5节说的问题,必须停下来排查,不能硬着头皮发板。

7.4 用差分对和区域规则的联动设计避免"挖了又填"

在高速PCB设计中,铜皮挖空经常和差分对设计、区域规则绑定在一起。一个常见的工作流是:在差分对周围设置一个形状(Shape),把这个形状指定为Keepout(禁布区)属性,那么铺铜时Allegro会自动按Keepout避让,效果等同于"手动挖空"。这种方法的优越之处在于:Keepout属于规则层面的定义,你改差分对走线时不需要重新挖空,Keepout区域自动跟随。

具体操作是:先画一个封闭多边形,选中它,然后在右键菜单或属性面板里把它的类型改成Route Keepout或者Shape Keepout。之后在这个Keepout区域内,任何动态铜皮都不会填充。你可以在同一位置既设Shape Keepout又设Route Keepout,实现铜皮和走线的双重禁布。

这个技巧特别适合那些设计还处于高频迭代阶段的位置——比如天线净空区、传感器周围、高压隔离带。你不需要每次修改都重新执行挖空,只要Keepout区域不动,铜皮自动遵守。不过要注意,Keepout的输出和挖空在Gerber里的表达方式不一样——Keepout本身不是铜皮几何的一部分,它只是铺铜时的一个规则边界。如果最终输出的铜皮已经按Keepout避让好了,那Gerber里看到的铜皮形状就是正确的。如果你把铜皮类型从动态改成静态,Keepout的避让结果也会被"固化"下来,和手动挖空效果一致。

7.5 挖空与测试点、调试探针的配合设计

最后分享一个很实用但很容易被忽略的经验:在设计早期,就把调试测试点的挖空需求规划进去。

很多板子在调试阶段会遇到这样的事:明明板上留了测试点,但因为测试点周围铺满了铜皮,万用表探针或者示波器探头搭上去,不是短路就是量出奇怪的数值。等你回头想去挖空,要么已经没空间了,要么不敢动铜皮怕影响性能。

我的做法是:在设计阶段给测试点预留一个"探针安全岛"——即在测试点周围画一个小型的Shape Keepout区域,直径约2到3毫米,让铜皮自动让开,但又不能全部让空——太远了探针反而不容易搭到焊盘上。这个区域的尺寸其实很有讲究,太小了探针头打上去还是可能碰到铜皮,太大了又影响铺铜的连贯性。我自己总结的经验值:圆形Keepout区域的直径比测试焊盘直径大1.5到2倍比较合适。

这个习惯看似微不足道,但真正进入调试阶段时,你会发现省下来的时间非常可观。调试不再战战兢兢地怕短路,示波器探头随便搭,效率翻倍。

8. 写在最后:我踩过几次坑之后的几点实在建议

铜皮挖空这个操作,真要说难度,学会操作可能只要十分钟;但要是想把"什么时候挖、挖多大、怎么验证"这些判断练明白,需要几个项目周期的积累。文章最后,我不做什么总结陈词,就分享几个我自己实实在在的习惯,你拿去就能用。

第一个习惯:每次挖空后,强制自己做一次"三看"检查。一看当前层的铜皮状态,确认挖空区域正确出现、边界平滑;二看相邻层的参考情况,确认没有高速信号跨过挖空区域形成回流断崖;三看Gerber输出预览,确认挖空信息真真切切传到了制造文件里。这三看加起来用不了两分钟,但能挡住八成以上的返工。

第二个习惯:所有临时性的挖空,都用Shape Keepout表达,而不是手动Void。Keepout更灵活、更可逆,改起来代价小。只有设计定了、马上要出带,才把最终的挖空效果固化到铜皮上。这个习惯能让你的设计文件在版本迭代时保持干净、可维护。

第三个习惯:多花十秒钟思考"如果不挖,会不会有问题"。铜皮挖空是有代价的——它牺牲了散热、破坏了回流路径、可能增加制造成本。所以每挖一处,你都要确信"不挖不行"。如果只是因为"别人都这么挖"或者"看着不顺眼",我劝你慎重。设计里的每一块铜皮都是你的资源,资源要用在刀刃上。

Allegro版本在迭代,菜单在变,交互在变,但这个操作背后的工程逻辑——电气隔离、阻抗控制、散热、制造可行性、回流完整性——这些是始终不变的。把逻辑吃透了,工具就永远只是工具,版本变化对你来说也就是换一套快捷键而已。希望这篇文章能帮你在铜皮挖空这条路上少走一些弯路,也欢迎在评论区聊聊你自己遇到的那些"挖空翻车事故"——我猜,咱们踩过的坑大概率是同一个。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询