在PCB设计领域,细节决定成败。一个看似微小的过孔盖油设置不当,可能导致整批产品出现焊接问题或信号干扰。传统的手动盖油方式不仅效率低下,更隐藏着巨大的遗漏风险——你可能花费数小时检查每一处过孔,却在最后添加的几个过孔上功亏一篑。本文将彻底改变这种被动局面,通过AD20规则管理器的深度应用,构建一套"一次设置,终身受用"的智能盖油系统。
PCB工程师们对这样的场景一定不陌生:设计接近尾声时,突然发现需要增加几个过孔,匆忙添加后却忘记设置盖油属性;或是团队协作中,不同成员对盖油标准的理解不一致,导致最终Gerber文件出现混乱。这些问题的根源,都在于依赖人工操作的不可靠性。
手动盖油三大致命伤:
提示:据统计,使用手动盖油方法的设计项目中,约有23%会在首次投板时出现盖油遗漏问题,平均导致3-5天的项目延期。
AD20的规则管理器提供了革命性的解决方案——通过自定义查询(Query)实现条件触发式自动盖油。这种方法的优势在于:
要真正掌握智能盖油技术,必须理解AD20规则引擎的工作原理。规则管理器本质上是一个条件-动作执行系统,当设计元素满足预设条件时,自动应用对应的设计规则。
AD20中的规则遵循分层应用原则:
| 优先级 | 规则类型 | 适用范围 | 典型用例 |
|---|---|---|---|
| 1 | 特定对象规则 | 精确匹配查询条件的对象 | 特定网络的线宽设置 |
| 2 | 类规则 | 同一类别的对象 | 所有电源类网络的过孔尺寸 |
| 3 | 全局规则 | 设计中的所有对象 | 默认安全间距设置 |
过孔盖油规则应当设置为最高优先级(特定对象规则),确保不会被其他规则覆盖。
Query是规则管理器的"智能筛选器",其语法遵循特定的对象属性逻辑。对于过孔盖油,关键是要准确识别Via对象而排除其他类似元素(如通孔焊盘)。
基础查询语句结构示例:
vbnet复制(IsVia) And (OnLayer('TopLayer') Or OnLayer('BottomLayer'))
这条语句表示:"选择所有位于顶层或底层的过孔"。其中的IsVia是识别过孔的核心判断条件。
下面我们分步骤构建一个健壮的自动盖油解决方案,包含防误触机制和实时验证方法。
设计 » 规则Mask » Solder Mask Expansion新建规则Where The Object Matches下拉菜单中选择Custom Query关键配置参数:
IsViavbnet复制IsVia
为避免误将元件焊盘识别为过孔,我们需要增强查询语句的精确性。改进后的查询应排除所有带有元件关联的过孔:
vbnet复制IsVia And Not HasAssociatedFootprint
配置验证方法:
F5刷新规则应用3键)检查盖油效果当规则未按预期生效时,可按以下流程排查:
查询助手 » 检查语法PCB规则和违规 » 规则报告常见问题解决方案:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 部分过孔未盖油 | 被其他规则覆盖 | 调整规则优先级 |
| 焊盘被错误盖油 | 查询条件不精确 | 添加Not HasAssociatedFootprint条件 |
| 新添加过孔不生效 | 规则未保存 | 确认后保存至PCB文件 |
对于复杂设计,可能需要差异化盖油方案。AD20支持基于多种条件的精细化控制。
某些高频信号网络可能需要保留过孔开窗,可通过网络类条件实现:
vbnet复制IsVia And Not InNetClass('HF_Signals')
创建步骤:
HF_Signals类板边过孔常需要加强焊接强度,可设置不盖油:
vbnet复制IsVia And Not WithinBoardOutline(10mil)
对于复杂需求,可建立规则组合:
IsVia(默认盖油)IsVia And InNetClass('HF_Signals')(不盖油)IsVia And OnLayer('MidLayer1')(中间层特殊处理)配置要点:
规则向导功能批量管理多个相关规则在实际项目中应用自动盖油规则时,有几个容易忽视的细节值得注意。首先是新老设计文件的规则迁移问题——当从旧版本升级设计时,原有的手动盖油设置可能与新规则产生冲突。建议的做法是:在导入旧设计后,先清除所有过孔的盖油属性(可通过全局筛选实现),再应用新的自动规则。
另一个常见陷阱是盲埋孔的处理。由于这类过孔的特殊性,常规的IsVia查询可能无法全面覆盖。对于使用HDI技术的设计,查询语句需要扩展为:
vbnet复制(IsVia Or IsBlindVia Or IsBuriedVia) And Not HasAssociatedFootprint
团队协作时,规则管理更显重要。我们团队内部建立了一套规则命名规范,例如:
ZZ_Auto_Via_Tenting(前缀ZZ确保规则排序靠后)XX_NoTenting_HF_Vias(XX表示例外规则)这种命名方式使得任何团队成员打开规则管理器时,都能快速理解规则的组织逻辑。同时,我们将这些标准规则保存为.rul文件,纳入版本控制系统统一管理。
最后分享一个实用技巧:在输出Gerber前,使用工具 » 设计规则检查运行完整验证,特别关注Mask类规则。我习惯在最终检查清单中加入"规则覆盖验证"步骤,随机选择几个新增过孔,右键检查属性,确认阻焊扩展值自动设置为0mil。这个小习惯已经多次帮我捕捉到意外的规则失效情况。