电子产业一站式赋能平台

PCB联盟网

搜索
查看: 359|回复: 0
收起左侧

KiCad 9 探秘(六):如何用"器件类"玩转多通道设计与自定义DRC规则

[复制链接]
匿名  发表于 2025-2-8 11:08:00 |阅读模式
老版本的 KiCad 只有网络类(Net Class),但没有器件类(Component Class),在 KiCad 9 中器件类终于亮相了。结合规则区域,器件类可以在多通道设计及自定义规则中发挥重要的作用。




什么是器件类(Component Class)?器件类本质上是元器件的分组工具。当您在原理图中为符号指定某个器件类后,对应 PCB 中的封装也会自动继承该分类。这种双向绑定特性让它成为:
  • 多通道设计的黄金搭档:快速建立信号通道模板
  • 自定义 DRC 规则的好帮手:批量设置间距/布线规则
  • 元器件管理工具:可视化分类管理复杂设计
    如何分配器件类?有两种方法为器件指定“器件类”:
    方法1:在符号内添加“器件类”字段
    在原理图符号属性中添加"Component Class"字段,输入类名即可完成绑定。

    如上图所示,为选中的符号中添加了一个“resistor”器件类。可以为更多的符号添加“Component Class”字段,只有数值相同,这些符号都被认为属于同一“器件类”。就像给元器件贴上电子标签,后续在PCB布局时,相关封装自动归类。
    方法2:规则区域+指令标签KiCad 9 在原理图中增加了规则区域(rule area)以及指令标签(Directives)的支持。可以在放置菜单中找到以下命令:

    首先点击“绘制规则区域”,绘制一个封闭的图形,将需要设置规则的对象包含在内。如下图所示,绘制了一个矩形的规则区域,将7805电路的所有对象包含在内。

    点击“放置指令标签”,可以在弹出的对话框中设置标签的字段,可以是网络类,也可以是器件类。这里我们设置为“器件类”,并赋值为“Power”:

    把指令标签放置于规则区域的边缘:

    完成后区域中的所有器件都会成为“Power”器件类的成员。使用这种方式可以更方便高效地管理器件类,且更直观。
    当从原理图同步到 PCB 时,所有这些器件的 Component Class 自动同步:

    “器件类”在多通道设计中的应用除了可以对子图(Sheet)进行多通道设计,KiCad 9 新增的规则区域和 Component Class 还可以对原理图局部的内容进行多通道设计。这个方式比 AD 更灵活,更好用。我们来看下怎么实现。
    我们随意在原理图中复制几个器件,当成 3 个通道:

    点击 放置->规则区域

    为三个通道分别绘制三个规则区域:

    点击 “置指令标签”:

    在 Component Class 这里给规则区域内的器件加一个类:

    分别摆放到规则区域边缘:

    现在可以同步到 PCB 了:


    点击 工具->多通道->生成布置规则区,这次选择元件类:

    确定后可以看到规则区域已经生成(红色细线):

    打开规则区域的属性,是这个样子的:

    随意的找个通道连几根线,在规则区域内增加一个圆形:

    选中参考区域,点击 工具->多通道->复刻布局:

    勾选目标规则区域后确认,效果如下图所示:

    更多关于多通道设计的应用请参考:KiCad 9 探秘(二):多通道设计工具
    “器件类”自定义 DRC 规则
    增加了 Component Class 之后,自定义 DRC 规则增加了以下内容:
  • Footprint 封装属性增加了“Component_Class”:
  • Component_Class 属性只属于封装本体,子对象(如焊盘)不继承该属性
  • 若需判断某子对象(如焊盘、走线)是否属于特定组件类的封装,请使用:memberOfFootprint('${Class:x}') 函数(将x替换为目标器件类名,例如memberOfFootprint('Power'))
  • 示例表达式:(condition "A.ComponentClass == 'CLASS_1,CLASS_2'")
  • 表达式函数增加了“hasComponentClass('x')”:
  • 当目标对象(仅限封装)的组件类集合中包含指定类名x时,返回true。仅封装对象拥有组件类属性,其他对象(如焊盘、走线等)调用此函数将始终返回false
    若需检测非封装对象(如焊盘、走线、过孔等)是否属于某个特定组件类的封装,请使用memberOfFootprint()表达式函数。
    示例表达式:(condition "A.hasComponentClass('CLASS_1')")
    Component Class 可以在以下函数中使用('x'为器件类的值):
  • insideCourtyard('x')
  • insideFrontCourtyard('x')
  • insideBackCourtyard('x')
  • intersectsCourtyard('x')
  • intersectsFrontCourtyard('x')
  • intersectsBackCourtyard('x')
    memberOfFootprint('x')
    结束语
    结合规则区域,器件类可以在多通道设计及自定义规则中发挥重要的作用。最后一个tip,在 KiCad 中,同一个器件可以属于不同的器件类,可以在规则区域中摆放多个指令标签的方式实现。

    注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。
    常用合集汇总:
  • 和 Dr Peter 一起学 KiCad
    KiCad 8 探秘合集
    KiCad 使用经验分享KiCad 设计项目(Made with KiCad)常见问题与解决方法KiCad 开发笔记插件应用
    发布记录
  • 回复

    使用道具

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表