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

描述

 老版本的 KiCad 只有网络类(Net Class),但没有器件类(Component Class),在 KiCad 9 中器件类终于亮相了。结合规则区域,器件类可以在多通道设计及自定义规则中发挥重要的作用。 

DRCDRC

什么是器件类(Component Class)?

器件类本质上是元器件的分组工具。当您在原理图中为符号指定某个器件类后,对应 PCB 中的封装也会自动继承该分类。这种双向绑定特性让它成为:

多通道设计的黄金搭档:快速建立信号通道模板

自定义 DRC 规则的好帮手:批量设置间距/布线规则

元器件管理工具:可视化分类管理复杂设计

如何分配器件类?

有两种方法为器件指定“器件类”:

方法1:在符号内添加“器件类”字段

在原理图符号属性中添加"Component Class"字段,输入类名即可完成绑定。

DRC

如上图所示,为选中的符号中添加了一个“resistor”器件类。可以为更多的符号添加“Component Class”字段,只有数值相同,这些符号都被认为属于同一“器件类”。

就像给元器件贴上电子标签,后续在PCB布局时,相关封装自动归类。

方法2:规则区域+指令标签

KiCad 9 在原理图中增加了规则区域(rule area)以及指令标签(Directives)的支持。可以在放置菜单中找到以下命令:

DRC

首先点击“绘制规则区域”,绘制一个封闭的图形,将需要设置规则的对象包含在内。如下图所示,绘制了一个矩形的规则区域,将7805电路的所有对象包含在内。 DRC 点击“放置指令标签”,可以在弹出的对话框中设置标签的字段,可以是网络类,也可以是器件类。这里我们设置为“器件类”,并赋值为“Power”:

DRC

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

DRC

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

除了可以对子图(Sheet)进行多通道设计,KiCad 9 新增的规则区域和 Component Class 还可以对原理图局部的内容进行多通道设计。这个方式比 AD 更灵活,更好用。我们来看下怎么实现。

我们随意在原理图中复制几个器件,当成 3 个通道:

DRC

点击 放置->规则区域

DRC

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

DRC

点击 “置指令标签”:

DRC

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

DRC

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

DRC

现在可以同步到 PCB 了:

DRC

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

DRC

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

DRC

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

DRC

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

DRC

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

DRC

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

DRC

更多关于多通道设计的应用请参考: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阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分