
1. 从一块不听话的铜皮说起画PCB的朋友大概率都遇到过这种场景板子功能调试得差不多了突然发现某个连接器、某个测试点、或者某个大功率器件的散热焊盘需要在阻焊层上开一个特定形状的窗口让锡膏能直接吃到铜面上或者让结构件能直接压到裸铜上。这时候你打开阻焊层一看发现那里正好铺着一大块动态铺铜Polygon而阻焊开窗的形状又跟这块铜皮的轮廓不完全一致——要么大一圈要么小一圈要么干脆是个异形。新手的第一反应通常是在阻焊层上直接画一个Region或者Fill不就行了画是能画但问题在于动态铺铜在重新铺铜Repour之后边界会跟着规则变化而你在阻焊层上画的图形是死的两者一旦对不上开窗就会偏。更麻烦的是有些板厂的工程审核会检查阻焊开窗与铜皮的关系如果开窗区域超出了铜皮边界或者开窗形状与铜皮轮廓差异过大轻则被EQ问询重则直接按最小开窗处理你的设计意图就废了。所以真正稳妥的做法是把动态铺铜Polygon转换成静态的Region然后把这个Region放到阻焊层上作为开窗图形。这样做的好处是Region是静态的、可精确编辑的它的形状完全由你控制不受铺铜规则和Repour的影响同时由于它来源于原来的Polygon形状天然与铜皮一致开窗精度有保证。这个操作在Altium Designer后面统一叫AD里并不复杂但里面有几个关键细节如果没注意到转换出来的Region要么位置偏了要么层放错了要么把铜皮本身给删了。我前后踩过三四次坑才把这套流程理顺。下面就把整个思路、操作步骤、参数设置和避坑经验完整地拆一遍不管你是刚接触AD的新手还是画了几年板子的老手都能直接照着复现。2. 为什么非得用Region直接画开窗不行吗2.1 动态铺铜和静态Region的本质区别先把这个核心概念说清楚不然后面的操作逻辑你理解不了。AD里的Polygon铺铜是动态的它依附于网络、依附于规则。你画一个Polygon指定它连到GND然后RepourAD会根据当前的安全间距规则、铜皮连接方式热焊盘还是直连、以及周围走线和焊盘的分布自动计算出铜皮的实际填充形状。也就是说Polygon的最终形状是AD算出来的不是你画出来的。你画的只是它的外轮廓内部填充是动态生成的。而Region区域是静态的它就是一个多边形填充画成什么样就是什么样不依附于任何网络不参与规则检查中的铺铜重算。你可以把它理解成一块死的铜皮或者一块死的阻焊开窗。这两者的差异决定了如果你直接在阻焊层上画一个Region来做开窗形状是你手画的跟铜皮轮廓没有必然联系但如果你把Polygon转成Region再把这个Region放到阻焊层那开窗形状就完全等于铜皮形状精度和一致性都有保障。2.2 阻焊开窗的常见需求场景阻焊开窗不是随便开的通常有这么几类需求焊接开窗比如连接器的接地焊盘、大电流走线的加锡区域需要阻焊开窗让锡能直接吃到铜上增加载流能力或焊接强度。散热开窗功率器件底部的散热焊盘有时候需要开窗让导热硅脂或结构件直接接触铜面提高散热效率。测试点开窗测试点如果被阻焊盖住探针就扎不到铜必须开窗露铜。结构避让开窗某些结构件比如屏蔽罩、金属支架需要直接压在裸铜上做接地这时候开窗形状要跟结构件接触面匹配。异形开窗有些射频器件或者传感器需要特定形状的露铜区域不是简单的矩形或圆形。这些场景里如果开窗区域正好落在一块动态铺铜上那用Polygon转Region的方法就是最优解。2.3 直接画Region开窗的三大坑我最早就是直接在阻焊层上画Region结果踩了三个坑第一个坑形状对不上。手画的Region跟铜皮轮廓总有偏差尤其是异形铜皮你根本画不准。板厂工程审核的时候一看开窗比铜皮大了一圈直接问你是否确认开窗超出铜面你还得解释半天。第二个坑Repour之后铜皮变了。动态铺铜在后续修改走线或调整规则后Repour一下形状就变了但你阻焊层的Region没变结果开窗位置偏了。这种问题在后期改板的时候特别容易出而且不容易发现。第三个坑层放错。AD的层管理有时候会让人迷糊尤其是从其他层复制粘贴的时候一不小心就把Region放到了信号层而不是阻焊层或者放到了阻焊层但没设置正确的极性Top Solder还是Bottom Solder。这种错误在3D视图里看不出来只有出Gerber的时候才会暴露。所以用Polygon转Region的方法本质上是用形状来源可靠来解决第一个坑用静态Region不参与Repour来解决第二个坑用明确的层转换操作来解决第三个坑。3. 核心操作Polygon转Region的完整流程3.1 前置检查确认Polygon的状态在动手转换之前先做三件事第一确认目标Polygon已经Repour到最终状态。因为转换之后Region的形状就固定了如果Polygon还没铺到最终形状转出来的Region也是错的。操作方法是Tools菜单里找到Polygon Pours先Repour All或者对着目标Polygon右键Repour。确认铜皮形状符合预期。第二确认目标Polygon的网络属性。转换后的Region会继承Polygon的网络属性如果有的话但放到阻焊层之后网络属性其实就不重要了因为阻焊层不参与电气连接。不过为了后续管理方便建议还是记一下原来的网络名。第三确认目标Polygon的层。通常Polygon是在Top Layer或Bottom Layer转换后的Region默认也会在同一个层。但我们的目标是要把它放到阻焊层Top Solder或Bottom Solder所以转换之后还需要改层。这一点后面会详细说。3.2 关键步骤用Create Region from PolygonAD里把Polygon转成Region最直接的方法是使用Tools菜单下的Convert功能。具体路径是Tools - Convert - Create Region from Polygon注意这个菜单项只有在选中了一个Polygon的情况下才会激活。如果你选中的是其他对象比如走线、焊盘、Fill这个选项是灰的。操作步骤在PCB编辑器中单击选中目标Polygon。选中的标志是Polygon边缘出现控制点并且属性面板里显示的是Polygon属性。打开Tools菜单找到Convert子菜单点击Create Region from Polygon。AD会弹出一个确认对话框提示你转换后原Polygon将被删除是否继续。这里要注意转换是不可逆的原Polygon会被删除取而代之的是一个Region。如果你还想保留原Polygon建议先复制一份备份。点击Yes确认转换完成。此时原来Polygon的位置会出现一个Region形状与Polygon的填充形状完全一致。这里有一个细节转换出来的Region它的形状是Polygon的实际填充形状而不是Polygon的外轮廓。也就是说如果Polygon内部有避让走线的空洞转换后的Region也会包含这些空洞。这一点非常重要因为阻焊开窗通常不需要避让走线如果Region带了空洞开窗就会不完整。3.3 处理转换后的空洞问题如果你发现转换后的Region内部有空洞通常是因为Polygon避让了某些走线或焊盘有两种处理方式方式一手动编辑Region顶点。选中Region在属性面板里找到Vertices顶点编辑手动删除空洞的顶点把Region变成一个实心多边形。这种方式适合空洞比较少、形状比较简单的情况。方式二用Union操作合并。如果空洞很多手动删顶点太累可以先把Region复制一份然后用Place - Region重新画一个覆盖整个区域的大Region再用Tools - Convert - Create Union把两个Region合并。不过这种方式操作起来也不轻松。方式三回到Polygon阶段处理。更聪明的做法是在转换之前先把Polygon的避让规则改一下让它不避让那些不需要避让的对象。比如如果Polygon避让了某条走线但阻焊开窗不需要避让那就在Polygon属性里把该走线的避让去掉Repour之后再转换。这样转换出来的Region就是实心的。我个人的经验是尽量在Polygon阶段把形状调好再转换因为Region的顶点编辑远不如Polygon灵活。3.4 把Region放到阻焊层转换完成后Region还在原来的信号层比如Top Layer。接下来要把它放到阻焊层选中转换后的Region。在属性面板里找到Layer下拉框把层从Top Layer改为Top Solder如果是底层就改为Bottom Solder。确认Region的极性设置。在AD里阻焊层的Region默认是开窗即负片显示有Region的地方就是开窗区域。如果你发现3D视图里开窗区域反了检查一下Region的属性里是否有Negative之类的选项。这里有一个容易忽略的点阻焊层的Region不需要网络属性。转换后的Region可能还带着原来的网络名放到阻焊层之后建议把网络属性清空避免后续DRC报错。4. 参数设置与精度控制4.1 阻焊开窗的尺寸补偿阻焊开窗通常要比铜皮实际区域大一点这个大一点的量叫开窗补偿Solder Mask Expansion。在AD里这个补偿通常是在焊盘属性里设置的但对于Region形式的开窗你需要手动控制Region的尺寸。常见的补偿值是0.05mm到0.1mm单边具体取决于板厂的工艺能力。如果你的板厂支持更小的阻焊桥补偿可以小一点如果板厂工艺一般补偿就要大一点避免阻焊残留。操作方法是选中阻焊层的Region在属性面板里找到Vertices编辑或者用快捷键M - SMove Selection来整体缩放Region。不过AD的Region缩放功能不太好用更精确的做法是手动调整顶点坐标。4.2 Region的顶点精度设置AD的PCB编辑器有网格设置GridRegion的顶点会吸附到网格上。为了保证开窗精度建议在编辑Region顶点之前把网格设小一点比如0.01mm或者1mil。操作路径是View - Grids - Set Global Snap Grid或者用快捷键G快速切换。提示网格设得太小会导致顶点难以对齐设得太大又会影响精度。我的习惯是在画Region的时候用0.1mm网格在微调顶点的时候切到0.01mm网格。4.3 层叠与Gerber输出验证Region放到阻焊层之后一定要在Gerber输出里验证一下。操作步骤打开File - Fabrication Outputs - Gerber Files。在Layers选项卡里确认Top Solder和Bottom Solder层被勾选。生成Gerber后用Gerber查看器比如CAM350或者AD自带的Gerber Viewer打开确认阻焊开窗的形状和位置正确。特别要注意阻焊层在Gerber里通常是负片也就是说有Region的地方在Gerber里是空的表示开窗没有Region的地方是实的表示盖阻焊。如果你看到的结果反了说明Region的极性设置有问题。5. 常见问题与排查技巧实录5.1 转换后Region不见了现象点击Create Region from Polygon之后原Polygon消失了但Region也没看到。原因Region可能被放到了其他层或者被其他对象遮挡了。AD在转换时Region默认会放在原Polygon所在的层但如果原Polygon是在内层比如Internal Plane转换后的Region可能被放到了内层而当前视图只显示了顶层和底层。解决打开View - Panels - PCB在Layers区域里把所有层都打开或者用快捷键L打开层设置确认Region所在的层是否可见。另外可以用Edit - Find Similar Objects来搜索Region对象快速定位。5.2 转换后Region形状不对现象转换后的Region形状跟Polygon的填充形状不一致比如少了某一块或者多了某个凸起。原因通常是因为Polygon在转换时还没有Repour到最终状态或者Polygon内部有复杂的避让关系转换时AD没有正确处理。解决先撤销转换CtrlZ然后对Polygon执行Repour All确认形状正确后再重新转换。如果问题依旧尝试把Polygon的避让规则简化或者手动编辑Polygon的顶点把复杂形状拆成多个简单Polygon分别转换。5.3 阻焊开窗在3D视图里看不到现象Region已经放到阻焊层了但在3D视图里看不到开窗效果。原因AD的3D视图默认可能不显示阻焊层的开窗效果或者需要手动开启。解决在3D视图里按快捷键L打开View Configuration在General Settings里确认Show Solder Mask之类的选项被勾选。另外3D视图的显示效果跟显卡驱动有关如果一直看不到可以尝试切换到2D视图用Gerber预览来验证。5.4 DRC报错Region on Solder Mask现象Region放到阻焊层后DRC检查报错提示阻焊层上有Region。原因AD的DRC规则里默认可能不允许在阻焊层上放置Region或者Region的网络属性与规则冲突。解决在Design - Rules - Manufacturing里找到Solder Mask Expansion相关的规则确认是否有限制。另外把Region的网络属性清空避免与电气规则冲突。如果DRC仍然报错可以在规则里添加一个例外允许阻焊层上的Region。5.5 常见问题速查表问题现象可能原因解决方法转换后Region不见了Region被放到其他层或被遮挡打开所有层显示用Find Similar Objects定位Region形状不对Polygon未Repour到最终状态先Repour All再重新转换3D视图看不到开窗3D显示设置未开启检查View Configuration里的Solder Mask选项DRC报错规则限制或网络属性冲突清空网络属性调整Manufacturing规则Gerber里开窗反了Region极性设置错误检查Region属性里的Negative选项开窗尺寸偏小未做补偿手动调整Region顶点单边补偿0.05-0.1mm6. 进阶技巧批量转换与脚本自动化6.1 批量转换多个Polygon如果你板子上有多个Polygon需要转成阻焊开窗一个一个手动转效率太低。AD支持批量操作按住Shift键依次选中所有目标Polygon。打开Tools - Convert - Create Region from Polygon。AD会依次转换每个Polygon但注意转换后的Region会分散在原Polygon所在的层需要手动逐个改层。如果Polygon数量很多建议写一个简单的脚本来自动化。AD支持DelphiScript和VBScript可以遍历所有选中的Polygon执行转换并自动改层。6.2 用脚本自动改层下面是一个简单的DelphiScript示例功能是把选中的Region从当前层移到Top Solder层Procedure MoveSelectedRegionsToTopSolder; Var Board : IPCB_Board; Region : IPCB_Region; Iterator : IPCB_GroupIterator; Begin Board : PCBServer.GetCurrentPCBBoard; If Board Nil Then Exit; Iterator : Board.GroupIterator_Create; Iterator.AddFilter_ObjectSet(MkSet(eRegionObject)); Region : Iterator.FirstPCBObject; While Region Nil Do Begin If Region.Selected Then Begin Region.Layer : eTopSolderLayer; End; Region : Iterator.NextPCBObject; End; Board.GroupIterator_Destroy(Iterator); Board.ViewManager_FullUpdate; End;这个脚本的逻辑很简单遍历当前PCB上所有选中的Region把它们的层设置为Top Solder。你可以根据需要改成Bottom Solder或者加上尺寸补偿的逻辑。注意AD的脚本编辑器在DXP - Run Script里打开脚本文件后缀是.pasDelphiScript或.vbsVBScript。运行脚本之前建议先保存PCB文件避免意外修改无法撤销。6.3 用Union合并多个Region如果多个Region需要合并成一个大的开窗区域可以用Tools - Convert - Create Union from Selected Objects。这个功能会把选中的多个Region合并成一个UnionUnion在Gerber输出时会被当作一个整体处理。不过要注意Union合并后的形状是各个Region的并集如果Region之间有重叠合并后重叠部分不会重复计算。这个特性在制作复杂开窗形状时很有用。7. 实操心得与避坑清单7.1 转换前一定要备份Create Region from Polygon是不可逆操作原Polygon会被删除。如果你对转换结果不满意想回到Polygon状态只能撤销CtrlZ但如果撤销栈已经满了或者你保存了文件那就回不去了。所以我的习惯是在转换之前先把PCB文件另存一份或者把目标Polygon复制一份放到旁边作为备份。7.2 注意Polygon的网络属性转换后的Region会继承Polygon的网络属性。如果原Polygon是GND网络转换后的Region也会是GND网络。放到阻焊层之后这个网络属性其实没有电气意义但可能会导致DRC报错。建议在改层的同时把网络属性清空。7.3 阻焊开窗的补偿要适度补偿太小板厂可能因为工艺偏差导致阻焊残留开窗不完整补偿太大可能导致相邻开窗之间的阻焊桥太窄甚至断桥。一般来说0.05mm到0.1mm的单边补偿是比较安全的范围。如果你的板子密度很高阻焊桥很窄建议跟板厂确认一下他们的最小阻焊桥宽度。7.4 Gerber输出前一定要预览Gerber输出是最后一道关一定要用Gerber查看器预览阻焊层的开窗效果。重点检查开窗位置是否正确、开窗形状是否与铜皮一致、开窗尺寸是否合适、相邻开窗之间是否有足够的阻焊桥。7.5 3D视图是辅助不是最终依据AD的3D视图可以直观地看到开窗效果但3D视图的渲染跟实际Gerber可能有差异尤其是阻焊层的显示。所以3D视图只能作为辅助验证最终还是要以Gerber预览为准。7.6 避坑清单转换前先Repour All确保Polygon形状正确。转换前备份PCB文件防止不可逆操作。转换后检查Region是否有空洞必要时手动编辑。改层时确认是Top Solder还是Bottom Solder别搞反。清空Region的网络属性避免DRC报错。做尺寸补偿单边0.05-0.1mm。Gerber输出后一定要预览确认开窗效果。3D视图只能辅助不能替代Gerber验证。8. 一个实际案例大电流连接器开窗前段时间做了一个电机驱动板上面有一个大电流连接器每个引脚需要过10A电流。连接器的焊盘是通孔焊盘但为了增加载流能力我在焊盘周围铺了一块Polygon连到电源网络然后在阻焊层上开了窗让锡能直接吃到铜皮上。具体操作流程在Top Layer上画了一个Polygon覆盖连接器所有引脚周围的区域网络设为VCC。Repour All确认Polygon填充形状正确没有避让异常。选中Polygon执行Tools - Convert - Create Region from Polygon。把转换后的Region层改为Top Solder。清空Region的网络属性。手动调整Region顶点单边外扩0.08mm作为开窗补偿。生成Gerber用CAM350预览确认开窗形状和位置正确。发给板厂备注阻焊开窗区域需露铜建议采用沉金工艺。板厂反馈说开窗形状很规整没有EQ问询一次通过。这个案例说明用Polygon转Region的方法做阻焊开窗精度和一致性都比手画Region好得多尤其是对于形状复杂或者需要与铜皮精确对齐的开窗区域。9. 与其他EDA工具的对比虽然这篇主要讲AD但顺便提一下其他工具里的类似操作方便大家迁移经验。KiCad里没有直接的Polygon转Region功能但可以通过Convert to Zone或者手动绘制F.Mask层的图形来实现类似效果。KiCad的Zone是动态的但F.Mask层的图形是静态的逻辑跟AD类似。Cadence Allegro里动态铺铜叫Shape静态铺铜叫Static Shape。Allegro支持把动态Shape转成静态Shape然后可以把静态Shape放到阻焊层Solder Mask层。操作路径是Shape - Change Shape Type然后手动改层。PADS里铺铜叫Copper Pour阻焊开窗通常用Copper或者2D Line在Solder Mask层绘制。PADS没有直接的转换功能需要手动描边。总的来说AD的Polygon转Region功能在易用性和精度上都是比较优秀的尤其是对于需要精确对齐铜皮的开窗场景。10. 最后分享几个小技巧第一个技巧如果你经常需要做Polygon转Region的操作可以把Tools - Convert - Create Region from Polygon这个菜单项添加到自定义工具栏里省得每次翻菜单。AD支持自定义工具栏在View - Toolbars - Customize里可以拖拽菜单项到工具栏。第二个技巧转换后的Region如果形状比较复杂可以用Tools - Convert - Create Region from Selected Primitives来进一步编辑。这个功能可以把多个选中的图元比如Line、Arc合并成一个Region适合手动绘制异形开窗。第三个技巧在Gerber输出时可以单独输出阻焊层的预览图发给板厂确认。AD支持在Gerber Setup里选择Preview模式生成一个PDF或者图片格式的预览比Gerber文件更直观。第四个技巧如果你用的是AD 21或更高版本阻焊层的Region支持Smart Mask功能可以自动根据铜皮形状生成开窗不需要手动转换。不过这个功能对复杂形状的支持还不够完美我一般还是用手动转换的方法。第五个技巧在团队协作中建议把Polygon转Region的操作步骤写成文档统一规范。因为不同人画板子的习惯不同有的人喜欢直接画Region有的人喜欢用Polygon转如果不统一后期改板的时候容易乱。