Altium Designer死铜清理全攻略:从判定逻辑到实战排查
2026/9/19 4:03:17 网站建设 项目流程

Altium Designer里处理铺铜(Copper Pour)时的死铜(Dead Copper),是我这几年做PCB Layout时见过最会“装死”的一类对象。你明明在属性里勾选了Remove Dead Copper,也执行了Repour All,但打开Gerber一看,内层电源层边缘还是孤零零立着几块铜。一开始我以为是软件坏了,后来发现,问题往往出在你对AD“生死观”的理解上——它对“死”的判定、对重铺时机的把握、对连接方式的取舍,都有自己的一套逻辑。这篇就围绕“死铜为什么总清除不干净”,把判定机制、操作误区、规则陷阱和一次完整排查过程讲清楚,适合正在被铺铜问题折磨的PCB工程师,也适合刚学Altium Designer、还不熟悉铺铜设置的新手朋友。

1. 死铜为什么会被“认”死:AD的判定逻辑

1.1 铺铜不是手画的,是“倒进容器里的水”

很多刚从旧版本走过来的工程师,可能还习惯把铺铜理解成用多边形工具画一块实心铜皮。实际上Copper Pour是一个参数化对象:你定义好边界、所在层、网络、间距规则,然后AD根据这些条件实时“填”出铜皮。填出来的结果和边界内部的对象(焊盘、过孔、走线、Keepout)有关,还和当前所有电气规则(Clearance、Polygon Connect Style、Board Outline等)有关。

这种参数化带来的好处是修改规则后重铺就能自动适配,但也带来一个副作用:它不会在你改完参数后立刻自动更新,必须手动触发重铺(Repour)。我观察过不少朋友在铺铜上遇到“死铜删不掉”的第一个卡点,其实就是改了参数但没重铺。放置铺铜的快捷键是P G N,放置后在Properties面板里能看到网络、层、填充模式、Remove Dead Copper等一堆选项,但那只是定义了“水要倒进什么容器”,真正的成型动作是后面的Repour。

类比一下:铺铜就像把水倒进一个由规则围起来的容器里,焊盘、过孔、Keepout是容器里的隔板。死铜,就是被这些隔板切出去、失去了与主水域连通的小水洼。

1.2 “死”的判定标准是电气连通性

AD在完成铺铜计算后,会做一次连通性分析。它会找出当前铺铜区域内、与铺铜属性中所设网络没有电气连接的所有环形铜皮,并把它们标记为死铜。这里的“没有电气连接”是重点——哪怕只有一条极细的铜丝把孤岛和主铜皮连起来,AD也会认为这块铜是“活着”的,于是它不会出现在死铜列表里。

这也就解释了一个常见现象:你总觉得死铜清不干净,实际上是有些明明看着像孤岛的铜皮,其实通过某个不易察觉的细脖子和主铜皮连着。AD的判定只要“电气上连通”,不会去判断这条铜丝能不能稳定制造、符不符合工艺要求。所以,死铜清除不干净的真相之一,恰恰是AD认为它不该被清除。

死铜不能随它去,原因不是强迫症。孤岛铜皮在射频和高速电路里可能成为无意中的天线,产生EMI问题;在制造端,浮铜会导致电镀不均匀,有些板厂甚至会主动发邮件问你“这些小块铜皮我帮你删掉还是保留”。我见过一块板子因为内层死铜太多,在3C认证预测试里高频辐射超标,最后查出来是几个电源层死铜在“广播噪声”。所以,死铜清理不只是美观问题,直接关系产品能不能过认证。

1.3 No Net状态的铺铜没有“生死”之分

还有个容易忽略的点:如果把铺铜的网络设成No Net(无网络),AD在做连通性分析时根本没有比较基准,因为整个铺铜区域自己就是孤岛。我在一些初学者板子上见过,他们为了“先铺一片看看效果”,把网络留空,然后提出“为什么这里一大片铜皮删不掉”——其实那不是死铜,而是No Net铜皮,AD根本不会对它执行死铜清除逻辑。

正确的做法是一开始就给铺铜指定正确的网络(比如GND),而不是图方便留空。如果一定要用No Net,那就要接受它连死铜清除也不会帮忙处理。另外,No Net铜皮在DRC里也不会报告未连接问题,这会让很多电气错误被隐藏掉。所以我在公司里带新人时,第一条规定就是:铺铜必须设置网络,哪怕最后改,也不要留No Net过夜。

2. 操作层面的坑:勾了没重铺、网络没设对、规则没刷新

2.1 Remove Dead Copper这个开关,真想让它生效没那么简单

AD的铺铜属性面板里有个“Remove Dead Copper”(移除死铜)选项,位置在Net设置下方。很多人以为勾上它就万事大吉,实际上它只在重铺(Repour)的时候才会被读取。换句话说:你一定先勾选该选项,再执行重铺,死铜才会被清理;如果勾选后没有重铺,那屏幕上显示的依然还是旧铺铜结果。

我见过最典型的一个案例:同事把整板铺铜的Remove Dead Copper都勾上了,却没执行Repour All,然后问我“AD是不是有bug”。实际上操作顺序反了,勾上开关不等于立即触发删除,它只是一个“允许删除”的授权,删除动作本身必须由Repour来完成。

具体来说,在较新的AD版本里,选择铺铜后再回到Properties面板,Remove Dead Copper复选框位于Net和Layer附近的区域。如果只想快速清理单个铺铜,可以勾选后选中该铺铜,按右键执行Polygon Actions → Repour Polygon,或者用菜单Tools → Polygon Pour → Repour Selected。实测下来,单块重铺比全板重铺快不少,适合只改了一小块区域时使用。

2.2 Repour All和Repour Selected,别再搞混了

在Altium Designer中,重铺铜的入口比较集中:

操作菜单路径快捷键
全板重铺所有铜皮Tools → Polygon Pour → Repour AllT G A
只重铺选中铜皮Tools → Polygon Pour → Repour SelectedT G S(部分版本不同)
隐藏/显示铺铜View Configuration → Polygon显示开关Ctrl+D后设置,或Shift+P
刷新视图View → RefreshEnd

我的建议是:一旦涉及死铜清理,优先做全板Repour All,因为死铜的判定是基于全板连通性的,单块重铺有时因为相邻铺铜还没更新,会留下意外的空白或碎片。多次实测下来,Repour All之后如果死铜还是没消失,再单独选中可疑区域Repour Selected,两步配合基本能把绝大多数“显得没清干净”的问题解决掉。

2.3 改间距规则后没重铺,旧规则残留被当成死铜

这类情况在改版时特别常见:你在Rule Manager里把某个网络的Clearance从0.2mm改成0.3mm,或者调整了某条网络的线宽,然后直接去看铜皮,发现边缘出现了很多细小的“毛刺”或缺口。这些不是死铜,而是旧铺铜结果没有跟着新规则刷新。

AD不会在规则变化后自动重算所有铺铜,必须手动Repour。尤其是当你动过Clearance、Polygon Connect Style这些和铺铜强相关的规则时,一定要记着把相关铺铜区域重铺一遍。有一个小技巧:改完规则后,随便选中一块铺铜,打开Properties,把Remove Dead Copper取消勾选再重新勾选,再执行Repour All。这个动作能强制AD把这块铺铜当“新铺铜”重新算一遍,避免旧运算残留。

3. 被规则和对象“设计”出来的死铜:真正的潜藏陷阱

3.1 间距规则里的细丝:AD说它活着,制造端不认

这是我最想强调的一个点。之前提到AD的死铜判定只看电气连通性,那么问题来了:一条宽0.1mm、长5mm的铜丝,在电气角度确实把两个大铜皮连在一起,AD不会认为它们是死铜。但在制造端,这样的细脖子在大面积铜皮中间异常脆弱,制板过程中很容易被蚀刻断掉,结果就是你拿到实物板之后发现:这块铜怎么变成孤岛了。

所以,检查死铜时不能只看AD有没有清掉,还要人工判断是否有“细脖子”。我一般会把铜皮的显示切到半透明(Ctrl+D,然后在View Configuration里把Polygon的透明度调到70%左右),仔细观察大铜皮之间有没有不符合制造工艺的窄连接带。板厂常规工艺一般要求最小铜皮宽度不低于0.2mm,如果细脖子低于这个值,就算AD认它活着,我也不会让它活着——我会手动加一块小铜皮把它加宽,或者在Rule里调大间距规则,让它重铺后干脆断开,再让AD清除掉。

3.2 Thermal Relief热焊盘,制造死铜的高发区域

再看一个跟规则设计直接相关的场景:铺铜与器件焊盘、过孔的连接方式里有个Polygon Connect Style。当连接方式设为Thermal Relief(热焊盘)时,铜皮会通过几根细辐条(Spoke)与焊盘连接,目的是方便焊接和散热控制。但在高密度板子上,这些Spoke经常会被其他规则“误伤”。

连接方式主要有三种,区别我整理在下面:

连接方式铜皮与焊盘/过孔的连接适用场景死铜风险
Solid(实心连接)整圈连接,铜皮完全贴住焊盘电源层、地层大面积铺铜
Thermal Relief(热焊盘)通过4根细辐条连接插件器件过波峰焊、需要控制散热
No Connect(不连接)完全不连接,焊盘周围自动挖空特定隔离要求

我遇到过的情况是这样:一个功率MOS管的散热焊盘(thermal pad)周围被一圈地过孔包围,每个过孔与该层铜皮的连接方式都是Thermal Relief。由于过孔和散热焊盘之间、过孔和过孔之间的间距规则值设置得偏小,重铺后部分Spoke被割断,散热焊盘周围的一大圈铜皮失去了与主GND铜皮的连接,瞬间变成了环状死铜。AD试图清除它们,但因为碎片太小、边缘太复杂,Repour后依然能看得到一些残留的小块。

处理方式通常有两种:

  • 把该层焊盘/过孔的Polygon Connect Style从Thermal Relief改为Solid,再Repour。
  • 或者保留Thermal Relief,但把Clearance规则调大,确保Spoke有足够宽度连接主铜皮。

具体怎么选,取决于波峰焊需求和你的散热策略。我个人的经验是:数字电路里的电源层、地层铺铜,绝大多数情况直接用Solid连接更稳,性能问题反而少;只有对过波峰焊的插件器件,才需要认真考虑Thermal Relief。

3.3 Keepout、板框和开窗区域的“切口”把铜皮切成碎块

Keepout区域会把铺铜“挖空”。如果Keepout边界正好设计在一些敏感的拐角处,挖完之后剩下的铜皮很容易被切成一个个小孤岛。我见过一块板的设计文件,在板子角落放了一个Keepout形状复杂的结构框,铺铜之后整个角落碎成七八块微型死铜。当时也是怎么Repour都清不干净,后来把Keepout边界修成规整的矩形,问题立刻消失。

和“铺铜开窗”相关的还有一种场景:为了散热或者天线净空,有些人会在铜皮上开一排槽孔(Board Cutout或Slot),开槽区域的边缘会产生不规则的锯齿形边界,边角处的铜皮也可能变成孤岛。开窗本身不会直接生成死铜,但开窗/开槽的边界越复杂,越容易在角落留下微型碎片。建议在满足设计需求的前提下,尽量把开窗区域做成矩形或规则多边形,不要随手画N个螺丝孔状的Keepout堆在一起。工程师里有个说法:复杂的Keepout边界就像用剪刀剪纸,剪出来的纸屑越多,你后面收拾的时间就越长。

3.4 同层多块重叠铺铜:优先级扣空后的残留

同一层上如果画了两块重叠的铺铜,AD会按铺铜优先级(Polygon Priority)来处理:优先级高的铺铜保留,优先级低的铺铜在与高优先级铺铜重叠的区域被扣空。扣空操作是在多边形运算层面完成的,运算边界一旦出现极小角度、极窄区域,就有可能在两个铺铜交界处留下细碎铜皮。

解决重叠铺铜的推荐方案是尽量别让同层铺铜重叠。如果一定要做电源分割,可以使用内层(Internal Plane)的Split Plane,或者在同一层把两个铺铜区域在几何上严格分开,不要留重叠边界。我见过有人在信号层上画了三块彼此重叠的GND铜皮,结果交叠处每次重铺都会冒出新死铜,到最后只能全部删除重画,白白浪费半天时间。

4. 一次真实排查:四层板电源层多出来的13块死铜

4.1 现象复现:Repour之后的“幽灵铜皮”

背景是一块四层板,第二层本来是完整GND平面,后来因改版需要把第二层改成电源分割层,被切成了VCC、3V3、GND三块。改完规则后,我执行了Repour All,但查图时发现整个层上依然散落着13处小铜皮。第一感觉是AD出现了死铜清除bug,后来通过一步步排查,发现真正的原因在“规则 + 热焊盘连接方式”的叠加。

排查开始前,我先用PCB面板过滤功能把所有铺铜列出来,确认这13处确实是被识别成Polygon对象的铜皮,而不是普通的线段残留。然后又用PCB Filter输入IsPolygon=True,批量选中所有铺铜,直接在Properties面板里查看它们各自的网络和Remove Dead Copper状态。初步确认所有主铺铜的Remove Dead Copper都已勾选,GND网络也没设错,这才把方向转向“为什么这些铜皮会被判定为活着或没被清掉”。

4.2 逐层拆解:从怀疑软件bug到锁定连接规则

排查过程的第1步:先确认不是显示缓存问题。我在View Configuration(Ctrl+D)里把Polygon Layers的透明度调高,又在单层模式下(Shift+S)逐个区域看了一遍。有些“看起来是死铜”的东西其实只是旧显示缓存,按End刷新之后就消失了。结果排除缓存问题后,还剩13处是真实存在的孤立铜皮。

第2步:查死铜的网络归属。逐个点击这些孤岛,Properties里显示Net仍然写着GND。这很关键:既然网络是GND,但物理上和主GND铜皮断开,那就说明是某种对象切断了连接,而不是网络设置错误。

第3步:框选孤岛周围区域,放大到局部。发现几乎所有孤岛都出现在功率MOS散热焊盘附近。散热焊盘四周有一圈地过孔,而这圈过孔与散热焊盘的距离很密,导致过孔之间形成的铜皮边界相互挤占。规则里,过孔和散热焊盘都设置了Thermal Relief连接方式,跑出来的Spoke宽度非常有限,在最小间距规则约束下,部分Spoke被完全裁掉。

第4步:验证方案。我先把散热焊盘所在的Polygon Connect Style改成Solid连接,对附近那片铺铜执行Repour Selected,立刻看到13处孤岛消失了9处。剩下的4处分布在几个靠近板边的开槽位置,属于开槽边界切出来的碎片。我调整了开槽的几何边界,再Repour All,全部清干净。这次排错前后花了大概一个下午。如果一开始不查连接方式,而是盲目地反复Repour,大概率一整天都找不到根因。

5. 暴力清除的手段与长期预防:哪些做法值得用

5.1 三板斧:从强制重算到删除重画

如果确认不是显示缓存、也调整过规则后死铜依然顽固,我一般会用三招按顺序尝试。

第一招,强制重算:选中铺铜,在Properties里先取消勾选Remove Dead Copper,再重新勾上,然后T G A全板重铺。这能强制AD对这块铺铜做一次完整的重新建模。这个办法对大多数“参数没刷新”引起的残留有效。

第二招,试探网络归属:把铺铜网络暂时改成No Net,再改回原来的网络,再执行Repour All。改网络会让AD抛弃原来的连通性分析结果,重新计算一次。相当于让软件“失忆再恢复”。这个招数看起来有点土,但对新版AD偶尔出现的铺铜引擎状态错乱很管用。

第三招,删除重画:选中所有异常铺铜,按Delete删除,然后用快捷键P G N重新画一块,重新设置网络、间距、Remove Dead Copper,再铺一次。虽然麻烦,但这是对付新引擎偶发异常最彻底的办法。

注意:千万不要用Explode Polygon把铺铜拆成普通线条,这会彻底破坏铺铜的参数化属性。之后你没法再通过规则重铺,修改板子时只能手工去删线、画线,隐患非常大。

5.2 快速定位死铜:面板、透明度和选择过滤

排查死铜时,不要一个个去点。AD的PCB面板可以过滤出所有Polygons对象,具体操作是:右下角面板按钮 → PCB → 在层级里选择Polygons,能在面板里看到一个铺铜列表,逐一选择可以快速定位每一块铜皮。

另外可以配合View Configuration把Polygon透明度调到半透明,查看铜皮下面的走线和焊盘分布。这一步很关键,因为死铜往往被其他层的对象遮住,单层模式(Shift+S)也可以用来隔开其它层。如果想用选择过滤器,可以在PCB Filter面板输入IsPolygon=True,直接选中所有铺铜对象,再配合Properties面板批量检查参数。隐藏铺铜后再单独打开某一层,也是判断铜皮是否为孤岛的常用办法——把其他铜皮全藏起来,死铜就藏不住了。

5.3 一个土办法:清理缓存和重启工程,往往能“治好”假死铜

AD偶尔会出现铺铜显示异常:Repour All之后实际数据已经更新,但屏幕仍显示旧的死铜。这种时候不要急着改设计,先按End刷新,或者保存工程后重启AD再打开。

如果重启还不行,可以清理一下AD的缓存。不同版本路径略有不同,一般可以在Preferences → Data Management → Cache里找到缓存目录,手动删除临时文件前一定先备份工程。这类“土办法”我实测对大工程尤其有效,能解决大概一半“死铜删不掉”的伪现象。有一次我处理一块16层服务器主板,整板重铺后还有几百个“死铜”的DRC报错,但删缓存重启后报错瞬间清零,当时办公室里几个人都松了口气。

5.4 从设计习惯上减少死铜:比事后清理更省事

最后说点预防。与其纠结死铜清不干净,不如在设计阶段减少生成死铜的可能性。

  • 板框画规范:铺铜边界尽量沿板框内缩,不要让铜皮漫到板框外再靠AD去裁剪。建议在规则里设置板框到铺铜的间距,或者直接在铺铜的边界多边形上多花一点精力。
  • 分割层用正规手段:内层电源分割用Split Plane一次性完成,不要在信号层手动画多块重叠铺铜。Split Plane在生成时就会考虑板框和分割线,死铜问题要少得多。
  • 焊盘连接方式:大面积电源/地平面优先用Solid,少用Thermal Relief,尤其在高密度板型上。Thermal Relief是死铜产生的“主力”,没有特殊工艺需求就别用它。
  • 开槽和Keepout简化:形状越规则,越不容易把铜皮切成孤立碎片。
  • 最后出图前做一次全板检查:用OutJob输出Gerber和渲染图,再用支持AD格式的查看器做最终确认,和直接看板子一样直观,能避免不少返工。尤其是发给板厂前,自己先在Gerber Viewer里把每一层翻一遍,比收到板厂“这里有孤铜你确认一下”的邮件要体面得多。

这些年处理死铜问题的过程中,我养成了一个固定的排查顺序:先刷显示,再查网络归属,再检查Thermal Relief和Clearance,最后才考虑删铜重铺。按照这个顺序,绝大多数“死铜清不干净”其实都能在半小时内定位到根因。如果你现在正对着Altium Designer里那块删不掉的铜皮发火,不妨从“AD到底把什么当作死铜”这个角度重新想一遍,大概率会有豁然开朗的感觉。

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

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

立即咨询