“ 今天偷个懒,分享一个 Hayden 大佬提供的自定义规则,非常实用。可以在特定区域(如BGA器件范围内)定义特殊的线宽、线距规则。 ”
就是下面这段自定义规则,表示 U10 Courtyard 区域范围内所有对象需要满足的宽度和间隙规则:最小 0.1 mm
(version 1)(rule "渐变线宽"(constraint track_width (min 0.1mm) (opt 0.15mm))(constraint clearance (min 0.1mm) (opt 0.15mm))(condition "A.intersectsCourtyard('U10')"))
这里说明一下用到的函数:intersectsCourtyard('x')。
其中 ‘x’ 有以下几种合法的取值:
1. 器件位号,可以包含通配符 * 和 ?。例如:
intersectsCourtyard('R?') 会匹配所有以 R 开头且后接单个字符的封装符号(如 R1,R2)。
intersectsCourtyard('R*')匹配所有以 R 开头的封装符号(如 R1, R10, RES)。
2. 封装标识符。格式为<封装库名称>:<封装名称>,支持通配符。例如: intersectsCourtyard('Resistor_SMD:*') 会检查 Resistor_SMD 库中的所有封装符号。
3. 元件类(Component Class)
格式为 ${Class:类名}。注意:Class 关键字不区分大小写,但类名区分大小写。例如:${Class:Power} 会匹配所有属于 Power 类的封装符号。 intersectsCourtyard('x')同时检查封装顶层和底层的 Courtyard。如果只需要检查顶层或底层的 Courtyard,则可以使用 intersectsFrontCourtyard('x') 或 intersectsBackCourtyard('x') 函数 还有个函数叫 insideCourtyard('x'),用法与 intersectsCourtyard('x') 完全相同,不过已经过时,将由 intersectsCourtyard('x') 取代。 最后看一下自定义规则在哪里设置,如下图所示:
您也可以点击“语法帮助”,或者自定义规则的详细用法以及示例。 更多关于自定义规则的用法可以参考文档: https://docs.kicad.org/9.0/en/pcbnew/pcbnew.html#custom-design-rules 当然,您也可以看一下以前的推文,深入地进行学习:
KiCad 自定义规则语法与应用
KiCad:自定义规则(Custom Design Rules)在DDR布线时的应用举例
结束语
除了 用 intersectsCourtyard('x') 之外,如果想在一个区域内定义特殊的规则,还可以使用 intersectsArea('x') 函数。留个作业,大家可以自行探索。
注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。
常用合集汇总:
和 Dr Peter 一起学 KiCad
KiCad 8 探秘合集
KiCad 使用经验分享
KiCad 设计项目(Made with KiCad)
常见问题与解决方法
KiCad 开发笔记
插件应用
发布记录
审核编辑 黄宇

全部0条评论
快来发表一下你的评论吧 !