做PCB设计这几年,我发现自己跟铜皮较劲的时间一点不比画线少。尤其是板子做完电源分割、天线净空、螺丝孔避让的时候,切铜皮几乎是每天都要碰的操作。刚开始我也挺傻的,遇到铜皮不合适就删了重画,后来发现慢不说,还特别容易留下碎铜和尖角,改一版SMT又得返工。真正把Allegro里几种铜皮切割的路数摸清楚之后,效率完全不是一个量级。这篇文章就把我平时最常用的3种切割方式——边界编辑、挖空避让、电源平面分割,连同我在实际项目里踩过的坑一起整理出来,给正在跟铜皮搏斗的朋友做个参考。
这套操作不挑板卡类型,高速数字板、电源板、混合信号板都能用上。如果你现在还在靠“整块删掉再重铺”来改铜皮,那这篇值得花几分钟看完。
1. 动手切铜之前,先把这几件事想明白
切开铜皮从来不是“画个框把铜去一块”这么简单。Allegro里的铜皮是有属性的,动态和静态、正片和负片,操作逻辑完全不同。这些底层概念没搞清,后面用哪个技巧都会觉得别扭,甚至操作成功了自己都没想明白为什么。
1.1 动态铜和静态铜,操作逻辑完全不一样
Allegro的Shape分成两种类型:动态铜(Dynamic Shape)和静态铜(Static Shape)。动态铜的特点是会随着周围的走线、过孔、焊盘实时避让,只要有规则约束在,铜皮会自动挖出走线通道和过孔隔离区。静态铜则是一锤子买卖,你画成什么样就是什么样,周边出现新的走线或过孔,它不会自动让开。
这个区别直接决定你怎么切。拿铜皮上一个过孔来说,动态铜会自动避让出一个隔离圈,你基本不用管;但静态铜就得自己手动挖一个避让区域,否则过孔和铜皮就短路了。所以我的原则很简单:所有需要频繁修改、需要避让功能的铜皮,一律用动态铜;只有那种外形固定、永远不需要自动避让的铜皮,才考虑静态铜。
这跟我下面讲的3种切割技巧关系非常大。Edit Boundary和Manual Void在动态铜上的体验比静态铜好太多,因为你切完之后铜皮会自动重铺、自动避让,Allegro的实时推挤机制会帮你处理掉很多隐患。静态铜切完之后,所有避让、间距、热焊盘都得自己手工处理,稍不注意就会在Gerber里给你露一手。
1.2 正片层和负片层,决定了你选哪种切割方式
很多人被正片、负片绕晕过。简单说,正片层是“画什么就有什么”,你画一块Shape,这里就有铜;负片层是“不画就有铜”,你画一条线,那里是挖空的。Allegro里大部分信号层是正片,而传统的电源层和地层经常做成负片,因为整面铺铜再用反性图形挖掉,数据量小、出Gerber也快。
这个区别对切铜的影响很大。正片层上的平面分割,通常是用Edit > Split Plane Create,或者手动画多个Shape;负片层上的分割,逻辑上是“在默认整面铜的基础上,用Anti Etch线和Shape把某些区域挖空”。如果你在负片层直接画了一个Shape,那这个Shape在电气含义上往往是“无铜区”,而不是“有铜区”,方向搞反了后面全乱套。
所以,动手之前先打开层叠管理看一下当前层是Positive还是Negative。我见过不少新手在负片层忙活半天,画了一个大铜皮,还觉得是把电源铺上了,实际上恰好把电源给挖空了。先确认正负属性,再决定用哪一种切割方式,这一条能帮你省下至少半天的时间。
1.3 先分清需求:改边界、挖洞、做分割
切铜皮这件事,表面看都是“让铜少一块”,但实际需求分三种,对应的操作完全不同。
第一种是改外形边界。比如板框调整了,铜皮跟着缩小;天线净空区要切掉一角;散热铜皮要避让结构件。这种需求的核心是调整Shape的轮廓,对应的是Shape Edit Boundary。
第二种是在铜皮内部挖洞,但外形不变。比如铜皮中间要避开一排过孔、一个螺丝孔、一个定位柱孔,或者做局部净空。这种需求不改变铜皮外边界,只是内部开一个或几个缺口,对应的是Manual Void,也就是手动挖空。
第三种是整层平面分割。比如一个电源层同时走3.3V、1.8V和GND,需要把这层分割成几个互不相连的区域,每个区域属于不同的Net。这时候用Edit Boundary一块块抠也行,但效率极低,应该用Anti Etch加Split Plane的功能来做。
下文按这三种需求,分别展开具体的操作方法和使用场景。
2. 技巧一:用Shape Edit Boundary改边界,剪出异形铜皮
2.1 什么时候该Edit Boundary,什么时候该删了重画
Edit Boundary这个名字很直白:编辑边界。它的作用是把你选中的Shape原来的外边界整体替换成一条新画的外边界,所有内部避让、Void、Net属性都保留,但铜皮形状变成新边界定义的形状。
那什么时候值得用?当你已经在这块铜皮上做了很多避让、打了孔、设好Net,可因为外形变化需要改一下轮廓时,Edit Boundary就是最优解。删了重画意味着所有内部避让规则、Void、Net连接信息全部推倒重来,费时费力还容易漏东西。
但如果铜皮本身很简单,就是一块刚画好的光板,也没什么内部信息,那删掉重画可能反而更快。我的判断标准是:这块铜皮身上的“附加信息”越多,越要用Edit Boundary。编辑边界是“微创手术”,删了重画是“把人回炉重造”,该选哪个心里有数就行。
2.2 实操步骤:把一块满铺铜裁剪成指定外形
以常见的正片动态铜为例,假设要把一块整板铺铜从矩形裁成L形,操作路径如下:
- 执行菜单Shape > Edit Boundary,或者命令行输入
shape edit boundary,回车。 - 在Options面板里确认目标Shape类型是Dynamic Shape还是Static Shape,尤其是多个Shape叠在一起时,这一步能帮你精确选中目标。
- 在画布上点击需要切割的铜皮。此时铜皮外边界进入可编辑状态。
- 用绘图命令(推荐Add Polygon)重新绘制整条外边界。这个边界必须是闭合的、不能自交,并且完全覆盖你希望保留的铜皮范围。
- 画完右键选择Done,铜皮会自动以新边界重新填充,完成切割。
这里有一个新入门的工程师几乎都会掉进去的坑:Edit Boundary是“整条边界替换”,不是“只画需要修改的那一段”。我第一次用的时候以为选中铜皮后只要框选要保留的区域就行,结果Allegro把边界更新成框选那个位置,铜皮变得七零八落。正确做法是把想要的新边界从头到尾重新画完整,而不是只补一个缺口。
2.3 边界编辑时我对静态/动态铜的处理习惯
在实际项目里,我会把Edit Boundary的使用习惯按铜皮类型区分开。
对于动态铜,我放心大胆地用Edit Boundary,因为编辑完成之后,Allegro会重新计算动态Shape的所有避让关系,铜皮会自动根据周边的走线和过孔调整,DRC也基本不用愁。
对于静态铜,我没那么放心。静态铜编辑完边界之后,它不会自动对周边的新走线、新过孔做避让,所以编辑完边界之后我通常会额外加一步自检:把周边5-10mil范围内的走线和过孔逐个看一遍,确认没有短路风险。必要的时候用Manual Void补避让区域。
还有一个经验,就是Edit Boundary命令执行时,Options里的Clearance、Width这些属性不会因为边界变化而重置,它会继承原Shape的属性。所以你不用担心重新画边界之后铜皮到板框的间距变了,这些规则属性都还在,只是外形变了而已。
3. 技巧二:用Manual Void做局部挖空,干净利落地避让过孔和螺丝孔
3.1 三种Void形状怎么选
Manual Void就是在铜皮内部手动开孔。Allegro里提供了三种基础孔形:圆形(Circular Void)、矩形(Rectangular Void)和多边形(Polygon Void)。
这三种不要乱选,我的选择套路是这样的。圆形Void适合避让圆形目标,比如单独一个螺丝孔、一个圆形定位柱,或者一根粗过孔。矩形Void适合避让规则的矩形器件,比如板边的固定座、某些方形结构件。多边形Void是适用性最广的,当你要让开一组排列不规则的过孔、一条斜向走线通道、或者一个L形净空区,就用多边形Void一笔一笔描出来。
从效率上讲,能用圆形和矩形就不要画多边形,因为多边形的编辑点更多,后续改动也更麻烦。但反过来,需要复杂净空时不要凑合,老老实实画多边形。
3.2 实操步骤:在铜皮上挖一个多边形净空区
以动态铜上挖一个多边形净空区为例,完整操作是这样的:
- 执行菜单Shape > Manual Void > Polygon Void,或者在命令行输入
shape manual void polygon。 - 在Options面板里选择要挖空的Shape。如果板上只有一块动态铜,Allegro会自动选中它;如果有多个铜皮,需要手动指定。
- 在铜皮内部用鼠标点出多边形的各个顶点,画出闭合的挖空区域。
- 右键选择Done,动态铜会立即重铺,刚才画的多边形内部变成无铜区,完成挖空。
同样,这里要特别注意一个使用细节:挖空区域的多边形必须闭合,并且不能超出铜皮的外边界。一旦超出,Allegro会认为你试图修改外边界,操作结果就会变得很奇怪。我习惯在画之前把显示缩放调到合适比例,确保每个顶点都落在原铜皮内部,不贴边、不出界。
挖完之后如果想调整这个Void的大小,不要重新挖,直接执行Shape > Manual Void > Select Void,然后选中Void的一个边,拖动编辑顶点就行。
3.3 Void和过孔避让的关系,以及容易出问题的点
动态铜本身就有自动避让过孔的功能,为什么还要手动挖Void?因为自动避让是按规则统一处理的,有时候场景比较特殊,规则满足不了需求。
举个例子,板子上一排高速差分过孔穿过电源铜皮时,默认避让间距可能不够,串扰会影响到电源完整性。这时候我就用一个多边形Void顺着这排过孔拉一个“隔离槽”,把铜皮和过孔群拉开更大距离,效果比改全局规则要精准得多。
容易出的问题主要有两个。
一是在动态铜上挖Void以后,又手动去移动了过孔或走线,Void不会跟着刷新。动态铜的自动避让会更新,但Manual Void不会自动更新,因为它是“手动”的,Allegro默认交给你自己管。所以只要动了影响范围里的东西,记得回去看一眼Void是不是还对得上,别一股脑往下走。
二是把动态铜转成了静态铜,Void会被当成一个独立图形对象。后续如果你再对这块静态铜做其他编辑,Void很容易被误删除或漏掉。我吃过一次亏:一块动态铜带了好几个手动Void,后来用Shape Change Shape Type转成静态,出Gerber时发现其中一个Void里全是铜,就是因为Void的归属关系在转换时出了问题。所以转换之后务必逐个确认Void状态,不要想当然。
4. 技巧三:用Anti Etch做电源平面分割,整层切铜的正确姿势
4.1 为什么电源平面分割不能靠Edit Boundary硬切
如果一个电源层要分成3.3V、1.8V、GND三块,有人可能想:我画三块Shape,每块给一个Net不就行了?逻辑上没错,但实际操作你会被自己逼疯——你手动画三块Shape,必须保证边界严丝合缝,否则就会出现铜皮重叠或间距不足;而且每次调整板框,三个Shape要分别改,非常痛苦。
更麻烦的是,当电源层是负片层时,画Shape的语义反了,你画的每个Shape反而是挖空区,手动切更难搞。
这种场景的正确答案是:用Anti Etch先在整层“画好隔离线”,再让Allegro根据隔离线自动生成多个独立的平面Shape。这就是Edit Split Plane Create这两个命令组合起来做的事情。
4.2 实操步骤:正片电源层用Split Plane分割的完整流程
先把流程走一遍,以正片电源层为例:
- 在需要分割的电源层先铺一整块动态铜。通常情况下,我用Shape > Z-Copy,从板框Outline或者Route Keepin复制边界到这个电源层,生成一整块动态Shape。这一步相当于把整层铺满铜,后面切成几块都从这块大铜皮上分。
- 新建或切换到Anti Etch这个Class,Subclass选择当前电源层。
- 用Add Line(或Add Polygon)在Anti Etch层画出分割线。分割线必须闭合,形成一个分界区域。比如要分成左右两块,就画一条从头到尾贯穿的分割线,然后跟板框构成两个闭合区域。
- 画完分割线后,执行菜单Edit > Split Plane > Create。
- 点击刚才铺好的动态铜大Shape。
- 根据命令行提示,依次点击每个分割区域,为每个区域指定对应的Net,比如3.3V、1.8V、GND。
- 设置完成后右键Done,Allegro会自动把大Shape沿着Anti Etch分割线拆成多个形状,每块独立Net,互不相连。
到这一步,电源平面分割就完成了。你在动态状态检查可以看到,不同区域的铜皮颜色不一样,对应不同Net,且相互之间有明显隔离带。
这里要强调一个常见认知偏差:很多人以为Anti Etch线本身是重要的电气对象,其实不是。Anti Etch只是工程辅助图形,不会出现在最终的电气连接里,它的作用就是告诉Allegro“从这里分开,切开”。真正被切开的,是你在Split Plane Create时分配给各个分区的Net属性。
4.3 负片层分割和正片层分割的区别
正片层分割流程容易理解,因为“画什么有什么”;负片层分割就反过来了,默认整面都是铜,你画Anti Etch分割线的作用,是把默认的铜平面在逻辑上切成几块,然后再给每块分配不同Net。
在Allegro里,负片层的分割操作思路跟正片层是一样的,也是用Anti Etch画闭合分割线,再用Split Plane Create分配Net。区别在于视觉表现上,负片层的Shape显示是反色的,你在屏幕上看到的“颜色填充区域”其实代表无铜区,最终出Gerber时铜皮是反过来的。
所以切负片层电源时,我给自己定了一条死规矩:不看显示反色,只看Artwork输出的Gerber结果。负片层的显示太有迷惑性,你盯着屏幕觉得这块空了一大块,实际Gerber可能刚好相反。养成“分割完成就跑一遍出胶片预览”的习惯,能避免很多低级事故。
5. 避坑指南:这几种切割方式里,我替你踩过的坑
5.1 Edit Boundary之后出现碎铜、尖角和细脖子
Edit Boundary最容易出现的后遗症就是碎铜和尖角。尤其是当你沿着板框或者结构件描边界,边界线不规则时,铜皮很容易出现狭长的尖角或者孤岛。
尖角的危害不只是难看,制造端很容易在尖角处出现铜皮翘起、剥离。细脖子更危险,电流密度集中,热点就是这么来的。
我的处理方法分三层。第一层,编辑边界时尽量让线条圆滑,避免小于90度的锐角;第二层,编辑完用Shape > Delete Islands清理小面积孤岛;第三层,在约束管理器里给铜皮设置最小宽度、最小面积规则,让Allegro从根上拒绝不合理的细长铜。
如果你发现自己做的板子频繁被工厂反馈“铜皮尖角/碎铜”,八成是边界编辑习惯问题。养成“编辑完就跑一遍Delete Islands和Update DRC”的流程化动作,基本能过滤掉80%的问题。
5.2 Void打完之后,一刷新就没了
这个坑我真的踩得很深。当时我在一块动态铜上给螺丝孔挖了一圈Void,看着挺好的,然后我随手执行了一次Shape Fill,Void直接原地消失,螺丝孔周围全是铜,差点就那样出Gerber了。
后来排查发现,原因是那块铜皮被我无意中改成了Static Shape。静态铜上的Manual Void不是永远绑定铜皮的,在某些重铺操作下,它可能被当成一个独立临时对象被清掉。更诡异的是,如果你在铜皮上右键做了一些Shape Fill操作,静态铜的Void确实可能丢失。
解决办法分三步:
- 挖Void之前,先确认Shape属性是Dynamic还是Static,动态铜的Void跟随性最好。
- 挖完Void之后别急着继续操作,立即执行一次Shape > Fill,确认Void还在。
- 一旦发现Void丢失,马上Ctrl+Z撤销,不要做别的操作。
这年头大家板子密度都大,螺丝孔避让Void这种细节特别容易被忽略,我建议在评审检查表里加一条“重点核对所有螺丝孔、定位孔、结构避让区的铜皮Void是否完好”。
5.3 Anti Etch线差1mil没闭合,电源网络直接连一起
Anti Etch分割线最怕的是“看起来闭合了,实际还有一丝缝”。有一次我画一个电源层的分割,两条线的端点目测是连上了,结果输出Gerber后才发现一端的3.3V和另一端的1.8V网络之间有一条极细的铜皮通道,等于是两个网络在电气上没有完全断开。
这个问题的可怕之处在于,屏幕显示的闭合有时是假的,因为Anti Etch线的端点捕捉和图形缩放会导致视觉误差。我的对策是:
- 画线时打开Snap to Connect Point,让线端精确吸附到已有线端或板框上。
- 画完后选中Anti Etch线,用Display > Element查看各段端点的坐标,确认首尾相连。
- 执行分割后,用Check的DRC模式跑一遍短路检查,也可以再用Manufacture > Artwork单独预览这一层的Gerber,放大分割线起点尾点逐一观察。
无论板子多急,这一项检查不能省。电源网络短路的代价可不是重画一块铜皮那么简单,轻则飞线,重则整个版本作废重投。
5.4 分割后热焊盘连接样式不对
电源平面分割完之后,你可能会发现某些区域的焊盘连接样式不对。比如你原本想给电源网络用全连接(Full Contact)增加载流能力,分割完却变成十字花连接(Thermal Relief),或者反过来,该做热焊盘的变成实心连接,焊接时散热太快,虚焊率直线上升。
原因很简单,每个分割出来的Shape是一个独立对象,它的连接样式是各自独立的。你在大Shape上设置的连接属性,分割后不会100%全部继承到每一个子Shape上。
发现这个问题后,我一般会执行以下操作:
- 用Shape > Select Shape or Void/Cavity点选每个分割区域。
- 在属性面板里检查该Shape的连接样式(IsThermalRelief、FullContact等属性)。
- 按网络统一修正,保证同一Net的所有分割区域连接样式一致。
这步操作虽然枯燥,但直接关系到生产良率,尤其是电源模块附近的焊盘,连接样式错了轻则焊接不良,重则载流不足导致温升超标。
6. 几个能提升切铜效率的小习惯
6.1 把三个命令绑定成快捷键
Allegro里不用鼠标点菜单,完全可以用命令别名来提速。我常用的三个切铜命令是shape edit boundary、shape manual void polygon和edit split plane create。
在ENV文件或者命令行里可以直接定义:
funckey 1 "shape edit boundary" funckey 2 "shape manual void polygon" funckey 3 "edit split plane create"设完之后,按1、2、3就分别进入三种切割模式。手指不用离开键盘去点菜单,画板节奏完全不一样。快捷键这种东西,刚开始可能觉得省不了几秒,但一天几十次操作累积下来,效率提升非常明显。
6.2 多板层同时切铜的同步操作
设计师经常需要在多个层上做相同形状的切割,比如板框外围的铜皮避让,TOP层和BOTTOM层都要切同样的形状。
Allegro里没有直接“同步切铜”的命令,但有一个取巧的做法:你在一层上把Edit Boundary做完之后,用Shape > Z-Copy把这条Shape边界复制到其他层。Z-Copy可以从已存在的Shape生成另一个层上的Shape,复制出来的边界和原Shape完全一致,然后再手动调整Net属性即可。
这样既保证了跨层铜皮切割形状一致,又不用每层重新描一遍。注意Z-Copy后目标层的Shape可能和你预期类型(动态/静态)不一致,复制完要根据需要手动改一下Shape Type。
6.3 切铜之后建议做的自检动作
最后说一个我每块板子切铜结束后固定会做的自检清单,豆包虽小,但真的很能挡事:
- 第一步,跑一遍Update DRC,把所有短路、间距问题先暴出来。
- 第二步,用Display > Shape Fill重铺所有动态铜,确认每个Shape填充状态正常。
- 第三步,逐个点选切割后的Shape,检查Net属性是否和设计意图一致,尤其电源层分割后每个区域一个Net,千万不能漏。
- 第四步,针对电源层在Artwork里预览Gerber,肉眼确认分割线位置和隔离带宽度。
- 第五步,检查所有过孔、螺丝孔附近的手动Void是否还健在。
这套动作看起来啰嗦,但执行一遍也就几分钟。铜皮这种东西,一旦出错,在屏幕上看是个小瑕疵,到了工厂就成了整板报废的理由。宁可多花五分钟自检,也别多花五天去等重新打样。
以上这些就是我用Allegro切铜皮三年多来沉淀下来的核心方法和踩坑经验。工具本身不复杂,多数操作在官方手册里都有,但真正值钱的往往是那些“为什么不能这么做”“出问题先查哪里”的细节。希望这篇能帮你少走点弯路,把时间省下来好好调板子。