高级主题
配置和自定义
Pcbnew 有各种偏好设置,可以通过偏好设置对话框进行配置。与 KiCad 的所有部分一样,Pcbnew 的偏好设置存储在用户配置目录中,并且在 KiCad 次要版本之间相互独立,从而允许多个版本与独立的偏好设置并行运行。
偏好设置对话框的第一部分 (通用、鼠标和触摸板以及快捷键) 在所有 KiCad 程序之间共享。KiCad 手册中“通用偏好设置”部分详细介绍了这些部分。请注意,尽管快捷键部分在所有程序之间共享,但有许多特定于 Pcbnew 的快捷键只有在 Pcbnew 运行时才会出现在列表中。
显示选项
渲染引擎: 控制是否使用硬件加速图形或软件加速图形。
网格样式: 控制如何绘制路线网格。
网格厚度: 控制网格线或网格点的粗细。
最小网格间距: 控制两条网格线之间的最小距离 (以像素为单位)。无论当前的栅格设置如何,都不会绘制违反此最小间距的栅格线。
捕捉到网格: 控制何时将绘制和编辑操作捕捉到活动网格上的坐标。 “始终”将启用对齐,即使网格处于隐藏状态; “当网格显示时”将仅在网格可见时启用对齐。
按住 Ctrl 可以暂时禁用网格捕捉。 |
光标形状: 控制编辑光标是绘制为小十字准线还是全屏十字准线 (覆盖整个绘图画布的一组线)。 编辑光标显示下一个绘图或编辑操作将发生的位置,如果启用了捕捉,则会捕捉到栅格位置。
始终显示十字准线: 控制是始终显示编辑光标, 还是仅在编辑或绘图工具处于活动状态时才显示编辑光标。
网络名称: 控制是否在铜对象上绘制网络名称标签。 这些标签仅作为编辑指南,不会出现在制造输出中。
显示焊盘编号:控制是否在封装焊盘上绘制焊盘编号标签。
显示焊盘 <无网络> 指示器: 控制是否用特殊标记指示没有 网络的焊盘。
布线间隙: 控制是否显示布线和过孔周围的间隙轮廓。 间隙轮廓显示为对象周围的细长形状,表示与其他对象之间的最小间隙, 如约束和设计规则所定义。
显示焊盘间隙: 控制是否显示焊盘周围的间隙轮廓。
交叉探测项的居中视图: 当 Eesschema 和 Pcbnew 都在运行时, 控制点击 Eesschema 中的元件或引脚是否会使 Pcbnew 视图在相应的封装或焊盘上居中。
缩放以适合交叉探测项: 控制是否缩放视图以显示交叉探测 封装或焊盘。
高亮显示交叉探测网络: 控制当在两个工具中激活高亮显示工具时, 是否在 Pcbnew 中高亮显示 Eesschema 中高亮显示的网络。
编辑选项
翻转电路板项目 L/R: 控制在顶层和底层之间移动电路板项目时翻转的方向。 选中时,项目从左向右翻转(围绕垂直轴); 取消选中时,项目从上向下翻转(围绕水平轴)。
旋转命令的步长: 控制每次使用旋转命令时选定对象将旋转多远。
允许自由焊盘: 控制封装焊盘是否可以解锁并与封装分开编辑或移动。
吸附点: 此部分控制对象捕捉,也称为吸附点。启用时,对象捕捉优先于栅格捕捉。 对象捕捉仅适用于活动图层上的对象。 按住 Shift 可暂时关闭对象捕捉。
捕捉焊盘: 控制编辑光标何时捕捉焊盘原点。
捕捉到布线: 控制编辑光标何时捕捉到布线端点。
对齐图形: 控制编辑光标何时对齐图形形状点。
始终显示选定的飞线:启用后,即使全局飞线被隐藏, 选定封装外形的飞线也将始终显示。
用曲线显示飞线:控制飞线是直线绘制还是曲线绘制。
鼠标拖动布线行为: 控制使用鼠标拖动布线段时将发生的操作:”移动” 将独立于任何其他布线段移动布线。 “拖动(45 度模式)” 将调用推挤式布线器拖动布线,遵守设计规则并保持其他布线段的连接。 “拖动(自由角度)” 将移动布线段最近的角点,高亮显示与其他对象的碰撞,但不会将其移开。
将图形线条限制为 H、V 和45度: 控制使用图形绘制工具绘制的布线是否可以采用任何角度。 请注意,这仅影响绘制新的布线:可以编辑布线以采用任何角度。
显示页面限制: 控制页面边界是否绘制为矩形。
覆铜属性后重新填充覆铜对话框: 控制编辑任何覆铜的属性后是否自动重新填充覆铜。 可以在复杂的设计或速度较慢的计算机上禁用此功能,以提高响应速度。
颜色
Pcbnew 支持在不同的颜色主题之间切换,以符合您的喜好。Kicad 6.0 有两个内置的颜色主题:”KiCad 默认” 是一个新主题,设计用于大多数情况下具有良好的对比度和平衡度,并且是新安装的默认主题。”KiCad 经典版” 是 KiCad 5.1 及更早版本的默认主题。这两个内置主题都不能修改,但您可以创建新主题来自定义 Pcbnew 的外观,也可以安装其他用户制作的主题。
颜色主题存储在位于 KiCad 配置目录的 Colors
子目录中的 JSON 文件中。“打开主题文件夹”按钮将在您的系统文件管理器中打开此位置,使您可以轻松地管理已安装的主题。要安装新主题,请将其放在此文件夹中,然后重新启动 KiCad。如果文件是有效的颜色主题文件,则新主题将从颜色主题下拉列表中提供。
要创建一个新的颜色主题,从颜色主题的下拉列表中选择新主题…。 为你的主题输入一个名称,然后开始编辑颜色。 新主题中的颜色将从你创建新主题之前选择的任何主题中复制。
要更改颜色,请双击或中键单击列表中的色样。“重置为默认值”按钮会将该颜色重置为“KiCad 默认”颜色主题中的相应条目。
颜色主题会自动保存;当您关闭偏好设置对话框时,所有更改都会立即反映出来。对话框右侧的窗口显示所选主题外观的预览。
操作插件
KiCad PCB 编辑器支持用 Python 编写的插件,可以对正在编辑的电路板进行操作。 这些插件可以使用内置的插件和内容管理器来安装(详见 KiCad 章节),或者将插件文件放在用户的插件目录中。 详见下面的脚本部分。
每个被检测到的插件都会在这个偏好设置上显示一排。 插件可以在 PCB 编辑器的顶部工具栏上显示一个按钮。 如果一个插件的 “显示按钮” 控制没有被选中,它仍然可以从 “工具” > “外部插件” 菜单中访问。
列表底部的箭头控制允许改变插件在工具栏和菜单中的显示顺序。 文件夹按钮将启动一个文件资源管理器到插件文件夹,以使安装新的插件更容易。 刷新按钮将扫描插件文件夹中的任何新的或删除的插件,并更新列表。
原点和轴
显示原点: 决定在编辑画布中坐标显示使用哪个坐标原点。 页面原点固定在页面的角落。 用户可以移动钻取/放置文件原点和栅格原点。
X 轴: 控制 X 坐标向右还是向左增加。
Y 轴: 控制 Y 坐标是向上还是向下增加。
自定义设计规则
KiCad 的自定义设计规则系统允许创建比电路板设置对话框的构造页面中提供的通用规则更具体的设计规则。自定义设计规则有很多应用,但通常它们用于将某些规则应用于电路板的一部分,例如特定的网络或网络类、特定的区域或特定的封装。
自定义设计规则存储在一个扩展名为 kicad_dra
的单独文件中。当您开始向项目添加自定义规则时,会自动创建此文件。如果您在项目中使用自定义规则,请在备份或提交到版本控制系统时,确保将 kicad_dra
文件与 kicad_pcb
和 kicad_pro
文件一起保存。
kicad_dra 文件由 KiCad 自动管理,不应使用外部文本编辑器进行编辑。 始终使用电路板设置对话框的自定义规则页面编辑自定义设计规则。 |
自定义规则编辑器
自定义规则编辑器位于电路板设置对话框中,它提供了一个用于输入自定义规则的文本编辑器,一个语法检查器将测试你的自定义规则并指出任何错误,还有一个语法帮助对话框,其中包含了对自定义规则语言的快速参考和一些规则示例。
最好在编辑自定义规则后使用 检查规则语法 按钮,以确保没有语法错误。自定义规则中的任何错误都将阻止设计规则检查器运行。
自定义规则语法
自定义设计规则语言基于 s 表达式,允许您创建使用内置约束无法实现的设计约束。每条设计规则通常包含一个定义匹配哪些对象的 条件,以及一个定义要应用于匹配对象的规则的 约束。
该语言使用圆括号 ((
和 )
) 来定义相关标记和值的子句。括号必须始终匹配:对于每个 (
必须有匹配的 )
。在子句中,标记和值之间用空格分隔。按照惯例,使用单个空格,但是可以在标记之间使用任意数量的空格字符。在文本字符串有效的地方,没有任何空格的字符串可以用 "
或 '
引起来,也可以不加引号。包含空格的字符串必须始终用引号引起来。在需要嵌套引号的地方,可以使用 "
作为外引号字符,使用 '
作为内引号字符 (反之亦然),从而实现单层嵌套。换行符不是必需的,但为清楚起见,通常在示例中使用。
在下面的语法描述中,< 尖括号 >
中的项表示必须存在的标记,[ 方括号 ]
中的项表示可选或仅有时需要的标记。
自定义规则文件必须以定义规则语言的版本头开始。 从 KiCad 6.0 开始,版本是 1
。 版本头的语法是 (version<number>)
。因此,在 KiCad 6.0 中,标题应该是这样的:
(version 1)
在版本标题之后,您可以输入任意数量的规则。规则以相反的顺序计算,这意味着首先检查文件中的最后一个规则。一旦找到正在测试的给定集合对象的匹配规则,将不再检查其他规则。实际上,这意味着更具体的规则应该在文件的后面,以便在评估更一般的规则之前对其进行评估。
例如,如果您创建一条规则来限制网络 HV
中的布线与任何其他网络中的布线之间的最小间距,以及第二条规则来限制特定规则区域内所有对象的最小间距,请确保第一条规则在自定义规则文件中的出现时间比第二条规则晚,否则,如果 HV
网络中的布线落在规则区域内,可能会有错误的间距。
每条规则必须有一个名称和一个或多个 约束 (constraint)
子句。该名称可以是任何字符串,用于在 DRC 报告中引用该规则。约束 (constraint)
定义了规则的行为。规则还可以有一个 条件 (condition)
子句,决定哪些对象应该应用该规则,以及一个可选的 层 (layer)
子句,指定该规则适用于哪些板层。
(rule <name>
[(layer <layer_name>)]
[(condition <expression>)]
(constraint <constraint_type> [constraint_arguments]))
定制规则文件还可以包括描述规则的注释。注释由任何以 #
字符开头的行表示 (不包括空格)。
# Clearance for 400V nets to anything else
# 400V 网络与任何其他网络之间的净空
(rule HV
(condition "A.NetClass == 'HV'")
(constraint clearance (min 1.5mm))))
图层子句
层 (layer)
子句确定规则将对哪些层起作用。虽然对象层可以在下面介绍的 约束 (constraint)
子句中进行测试,但是使用 层 (layer)
子句效率更高。
层 (layer)
子句的值可以是任何线路板层名,也可以是与顶底铜层 ( F.Cu
和 B.Cu
) 匹配的快捷方式 外 (outer)
,以及与任何内部铜层匹配的快捷键 内 (inner)
。
如果省略 层 (layer)
子句,则该规则将适用于所有层。
下面是一些示例:
# Do not allow footprints on back layer (no condition clause means this rule always applies)
# 不允许在底层上留下封装 (无条件子句表示此规则始终适用)
(rule "Top side footprints only"
(layer B.Cu)
(constraint disallow footprint))
# This rule does the same thing, but is less efficient
# 此规则执行相同的操作,但效率较低
(rule "Top side footprints only"
(condition "A.Layer == 'B.Cu'")
(constraint disallow footprint))
# Larger clearance on outer layers (inner layer clearance set by board minimum clearance)
# 外层间隙较大 (内层间隙由电路板最小间隙设置)
(rule "clearance_outer"
(layer outer)
(constraint clearance (min 0.25mm)))
条件子句
规则 条件 是一个包含在文本字符串中的表达式(因此通常用引号包围,以便允许留出空白,使之更清晰)。 该表达式是针对设计规则检查器正在测试的每一对对象进行评估的。 例如,当检查铜对象之间的间隙时,每个网络上的每个铜对象(布线段、焊盘、通孔等)都要与其他网络上的其他铜对象进行检查。 如果存在一个自定义规则,其表达式与两个给定的铜对象相匹配,并且约束条件定义了铜的间隙,那么这个自定义规则可以用来确定这两个对象之间所需的间隙。
被测对象在表达式语言中称为 A
和 B
。这两个对象的顺序并不重要,因为设计规则检查器将测试这两种可能的顺序。例如,您可以编写一条规则,假设 A
为布线,B
为过孔。 有一些表达式函数可以同时测试这两个对象;这些表达式函数使用 AB
作为对象名。
条件中的表达式必须解析为布尔值 ( 真 (true
或 false
)。如果表达式解析为 true
,则规则应用于给定的对象。
每个被测对象都有可以比较的 属性,以及可以执行特定测试的 函数。属性和函数的使用语法分别为 <object>.<property>
和 <object>.<function>([arguments])
。译者注: <对象>.<属性>
和 <对象>.<函数>([参数])
。
当您在文本编辑器 ( A. 、B. 或 AB. ) 中键入 <对象 (object)>. 时,会出现一个自动完成列表。将打开包含所有可使用的对象属性的。 |
使用 布尔运算符 比较对象属性和函数,得到布尔表达式。布尔运算符基于 C/C++ 语法,并支持以下运算符:
| 等于 |
| 不等于 |
| 大于、大于或等于 |
| 小于、小于或等于 |
| 和 |
| 或 |
例如,A.NetClass == 'HV'
将适用于任何属于 “HV” 网类的对象,A.NetClass != B.NetClass
将适用于任何属于不同网类的对象。圆括号可以用来澄清复杂表达式中的操作顺序,但并不是必须的。
有些属性表示物理测量,比如尺寸、角度、长度、位置等等。 在这些属性上,单位后缀 可以在自定义规则语言中使用,以指定使用什么单位。 如果没有使用单位后缀,属性的内部表示将被使用(距离为纳米,大多数角度为度)。 支持以下后缀:
| 毫米 |
| 千分之一英寸 (mils) |
| 英寸 |
| 度 |
| 弧度 |
自定义设计规则中使用的单位独立于 PCB 编辑器中的显示单位。 |
约束
规则的 约束 子句定义了规则在条件匹配的对象上的行为。每个约束子句都有一个 约束类型 和一个或多个设置约束行为的参数。单个规则可以有多个约束子句,以便为符合相同规则条件的对象设置多个约束 (如 间隙 (clearance)
、布线宽度 (trace_width)
)。
许多约束条件的参数指定了一个物理测量或数量。 这些约束条件支持最小值、最优值和最大值说明(缩写为 “min/opt/max”)。 最小 和 最大 值用于设计规则检查:如果实际值小于约束条件中的最小值或大于最大值,将产生一个 DRC 错误。 最优 值仅用于某些约束,并通知 KiCad 默认使用的 “最优” 值。 例如,最优的 diff_pair_gap
是由布线器在放置新的差分对时使用的。 如果后来修改了差分对,使得差分对之间的间隙与最佳值不同,只要间隙在最小值和最大值之间(如果这些值被指定),就不会产生错误。 在所有接受最小/最大/最优值的情况下,可以指定任何或全部的最小值、最优值和最大值。
最小/最优/最大值被指定为 (min<value>)
, (opt<value>)
, 和 (max<value>)
。例如,布线宽度约束可以写成 (constraint track_width (min 0.5mm) (opt 0.5mm) (max 1.0mm))
,如果只约束最小宽度,可以简单写成 `(constraint track_width (min 0.5mm))。
约束类型 | 参数类型 | 描述 |
---|---|---|
| min/opt/max | 检查过孔环的宽度。 |
| min | 检查不同网络的铜对象之间的间隙。 KiCad 的设计规则系统目前不允许在同一网络上的对象之间限制间隙 要允许铜对象重叠 (碰撞),请创建 |
| min | 检查封装和外框之间的间距,如果有任何两个外框形状比 |
| min/opt/max | 检查差分对中耦合布线之间的间隙。 耦合布线是彼此平行的区段。 不会在差分对的未耦合部分 (例如,元件的扇出) 上测试差分对间隙。 |
| max | 检查差分对布线从该对中的另一个极性布线解耦的距离 (例如,该对从一个元件散开,或变为解耦以绕过另一个对象 (如过孔) )。 |
|
| 指定一个或多个不允许的对象类型,用空格分隔。 例如, |
| min/opt/max | 检查 |
| min/max | 检查符合规则条件的网络的总布线长度,并为小于约束的 |
| min/max | 检查焊盘或过孔中钻孔的大小 (直径)。 对于椭圆形通孔,较小的 (小) 直径将对照 |
| min | 检查焊盘或过孔中的钻孔与不同网络上的铜对象之间的间隙。 间隙是从孔的直径测量的,而不是从孔的中心测量的。 |
| min | 检查焊盘和通孔中机械钻孔之间的间隙。 间隙是在孔的直径之间测量的,而不是在它们的中心之间测量的。 HDI 孔 (微孔、盲孔和埋孔) 不受此约束的测试。 |
| min/opt/max | 检查丝网网层上的对象与其他对象之间的间隙。 |
| max | 检查符合规则条件的网络的总偏差,即每个网络的长度与规则匹配的每个网络 的所有长度的平均值之间的差。如果该平均值与任何一个网络的长度之间 的差值高于约束 |
| min/opt/max | 检查布线和弧段的宽度。宽度小于 |
| max | 统计与规则条件匹配的每个网络上的过孔数量。 如果该数字超过任何匹配网络上的约束 |
对象属性和函数参考
可以在自定义规则表达式中测试以下属性:
常见属性
这些属性适用于所有 PCB 对象。
属性 | 数据类型 | 描述 |
---|---|---|
| string | 对象所在的板层。对于存在于多个层上的对象, 该属性将返回第一层 (例如,对于大多数通孔焊盘/通孔,返回 |
| boolean | 如果对象已锁定,则为 True。 |
| string | 返回此对象的父对象的唯一标识符。 |
| dimension | 对象原点在 X 轴上的位置。请注意,对象的原点并不总是与对象边界框的中心相同。 例如,封装的原点是封装编辑器中该封装的 (0, 0) 坐标的位置, 但是封装的设计可能使此位置不在外框形状的中心。 |
| dimension | 对象原点在 Y 轴上的位置。请注意,KiCad 始终在内部使用从屏幕顶部到底部递增的 Y 坐标, 即使您已将设置配置为显示从底部到顶部递增的 Y 坐标。 |
| string | “封装 (Footprint)”, “焊盘 (Pad)”, “图形形状 (Graphic Shape)”, “电路板文本 (Board Text)”, “封装文本 (Footprint Text)”, “敷铜 (Zone)”, “布线 (Track)”, “过孔 (Via)”, “敷铜 (Zone)”, 或 “组合 (Group)” 之一. |
连接的对象属性
这些属性适用于可以分配网的铜对象(焊盘、过孔、覆铜、布线)。
属性 | 数据类型 | 描述 |
---|---|---|
| integer | 铜对象的网络码。 请注意,不能依赖网络码来保持不变:如果您需要在规则中引用特定的网络,请使用 |
| string | 铜对象的网络类的名称。 |
| string | 铜对象的网络名称。 |
封装属性
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 为封装设置的铜间隙覆盖。 |
| double | 封装的方向 (旋转) (单位:度)。 |
| string | 封装的位号。 |
| dimension | 为封装设置的焊膏边缘覆盖。 |
| dimension | 为封装设置的焊膏余量比率覆盖。 |
| dimension | 为封转设置的散热间隙。 |
| dimension | 为封装设置的散热连接宽度。 |
| string | 封装的 “值” 字段的内容。 |
焊盘属性
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 为焊盘设置的铜间隙覆盖。 |
| string | “无”、”BGA 焊盘”、”基准, 全局到电路板”、”基准, 本地到封装”、”测试点焊盘”、 “散热片焊盘”、”蜂窝状焊盘” 之一。 |
| dimension | 焊盘在 X 轴上的通孔/槽的大小。 |
| dimension | 焊盘在 Y 轴上的通孔/槽的大小。 |
| double | 焊盘的方向 (旋转) (单位:度)。 |
| string | 焊盘的 “编号”,可以是字符串 (例如,BGA 中的 “A1”)。 |
| dimension | 焊盘的 “焊盘到芯片长度” 属性的值,它是在计算网络时添加到焊盘的网络的附加长度。 |
| string | “通孔”、”贴片”、”板边连接器” 或 “非导通孔,机械” 之一。 |
| string | 焊盘的名称 (通常是原理图中相应接点的名称)。 |
| string | 焊盘的电气类型 (通常取自原理图中相应的引脚)。 “输入”、”输出”、”双向”、”三态”、”无源”、”自由”、”未指定”、 “电源输入”、”电源输出”、”集电极开路”、”发射器开路” 或 “未连接” 之一。 |
| double | 对于圆形矩形焊盘,为半径与矩形大小的比率。 |
| string | “圆形”、”矩形”、”椭圆形”、”梯形”、”圆角矩形”、”倒角矩形” 或 “自定义” 之一。 |
| dimension | 焊盘在 X 轴上的大小。 |
| dimension | 焊盘在 Y 轴上的大小。 |
| dimension | 为焊盘设置的阻焊边距覆盖。 |
| dimension | 为焊盘设置的焊膏边距覆盖。 |
| dimension | 为焊盘设置的焊膏边距比率覆盖。 |
| dimension | 为焊盘设置的散热间隙。 |
| dimension | 为焊盘设置的散热连接宽度。 |
布线和圆弧属性
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 起点的 X 坐标。 |
| dimension | 起点的 Y 坐标。 |
| dimension | 终点的 X 坐标。 |
| dimension | 终点的 Y 坐标。 |
| dimension | 布线或圆弧的宽度。 |
过孔属性
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 过孔焊盘的直径。 |
| dimension | 过孔成品通孔的直径。 |
| string | 过孔压层中的最后一层。 |
| string | 过孔压层中的第一层。 |
| string | “通孔”、”盲孔/埋孔” 或 “微孔” 之一。 |
覆铜和规则区域属性
这些属性适用于铜区和非铜区,以及规则区(以前称为禁止布线区)。
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 为覆铜设置的铜间隙覆盖。 |
| dimension | 覆铜中允许的填充区域的最小宽度。 |
| string | 用户指定的名称 (默认情况下为空)。 |
| string | “继承”、”无”、”焊盘散热孔”、”实心”、”导通的散热孔” 之一 |
| int | 覆铜的优先级别。 |
| dimension | 为覆铜设置的散热间隙。 |
| dimension | 为覆铜设置的散热连接宽度。 |
图形形状属性
这些属性适用于图形线、圆弧、圆、矩形和多边形。
属性 | 数据类型 | 描述 |
---|---|---|
| dimension | 终点的 X 坐标。 |
| dimension | 终点的 Y 坐标。 |
| dimension | 形状画笔的粗细。 |
文本属性
这些属性适用于文本对象(封装字段、自由文本标签等)。
属性 | 数据类型 | 描述 |
---|---|---|
| boolean | 如果文本为粗体,则为 |
| dimension | 字体中字符的高度。 |
| string | 水平文本对齐 (对齐):”向左对齐”、”居中对齐” 或 “向右对齐” 之一。 |
| boolean | 如果文本为斜体,则为 |
| boolean | 如果文本为镜像,则为 |
| string | 文本对象的内容。 |
| dimension | 字体笔划的粗细。 |
| dimension | 字体中字符的宽度。 |
| string | 垂直文本对齐方式:”向上对齐”、”居中对齐” 或 “向下对齐” 之一。 |
| boolean | 如果文本对象可见 (显示),则为 |
表达式函数
可以对自定义规则表达式中的对象调用以下函数:
函数 | 对象 | 描述 |
---|---|---|
|
| 如果对象存在于给定的板层上,则返回 |
|
| 如果对象存在于给定焊盘之间的铜层路径上,则返回 |
|
| 如果对象是差分对的一部分,并且该对的基本名称与给定的参数 |
|
| 如果对象完全位于命名规则区域或覆铜内,则返回 |
|
| 如果对象完全位于给定封装位号的外框内,则返回 |
|
| 如果对象是盲孔/埋孔,则返回 |
|
| 如果正在测试的两个对象属于同一差分对,但极性相反,则返回 |
|
| 如果对象是微孔,则返回 |
|
| 如果对象是导通孔 (在焊盘或过孔中),则返回 |
|
| 如果对象是命名组合 |
自定义设计规则示例
(rule RF_width
(layer outer)
(condition "A.NetClass == 'RF'")
(constraint track_width (min 0.35mm) (max 0.35mm)))
(rule "BGA neckdown"
(constraint track_width (min 0.2mm) (opt 0.25mm))
(constraint clearance (min 0.05mm) (opt 0.08mm))
(condition "A.insideCourtyard('U3')"))
(rule "Distance between Vias of Different Nets"
(constraint hole_to_hole (min 0.25mm))
(condition "A.Type =='Via' && B.Type =='Via' && A.Net != B.Net"))
(rule "Distance between test points"
(constraint courtyard_clearance (min 1.5mm))
(condition "A.Reference =='TP*' && B.Reference == 'TP*"))
# This assumes that there is a cutout with 1mm thick lines
# 这假设有一个带有 1mm 粗细的打断
(rule "Clearance to cutout"
(constraint clearance (min 0.8mm))
(condition "A.Layer=='Edge.Cuts' && A.Thickness == 1.0mm"))
(rule "Max Drill Hole Size Mechanical"
(constraint hole (max 6.3mm))
(condition "A.Pad_Type == 'NPTH, mechanical'"))
(rule "Max Drill Hole Size PTH"
(constraint hole (max 6.35mm))
(condition "A.Pad_Type == 'Through-hole'"))
# Specify an optimal gap for a particular differential pair
# 指定特定差分对的最佳间隙
(rule "Clock gap"
(condition "A.inDiffPair('CLK') && AB.isCoupledDiffPair()")
(constraint diff_pair_gap (opt 0.8mm)))
# Specify a larger clearance between differential pairs and anything else
# 指定差分对之间的较大间隙和任何其他间隙
(rule "Differential pair clearance"
(condition "A.inDiffPair('*') && !AB.isCoupledDiffPair()")
(constraint clearance (min 1.5mm)))
脚本
脚本允许您使用 Python 语言自动执行 KiCad 中的任务。可以通过 Python “操作插件” 向 KiCad 添加功能,这些插件可以添加到顶部工具栏。也可以编写与 KiCad 文件交互的独立脚本,例如,从电路板文件自动生成制造输出。
本手册涵盖了一般脚本编写概念。希望编写或修改脚本的用户还应使用 https://docs.kicad.org/doxygen-python/namespaces.html 上的 Doxygen 文档。
KiCad 6 或更新版本需要 Python 3 来支持脚本。Python 2 已不再被支持。
Python 脚本位置
PCB 编辑器的插件脚本可以通过插件和内容管理器(PCM)自动安装,也可以通过手动将插件复制到一个文件夹中。 每个插件都应该在 plugins
文件夹内有自己的文件夹。 plugins
文件夹的位置默认为:
平台 | 路径 |
---|---|
Linx |
|
macOS |
|
Windows |
|
操作插件
TODO:编写本部分 (如何安装新的操作插件) |
封装向导
封装向导是可以从封装编辑器访问的 Python 脚本的集合。 如果调用封装对话框,则选择一个给定的向导,该向导允许您查看渲染的封装,并且您可以编辑一些参数。
如果插件未正确分发到您的系统软件包,您可以在 KiCad 源代码树中的链接中找到最新版本:https://gitlab.com/kicad/code/kicad/tree/master/pcbnew/python/plugins\[gitlab\]。
使用脚本控制台
Pcbnew 附带一个内置的 Python 控制台,可用于检查电路板并与其交互。要启动控制台,请使用顶部工具栏中的 图标。Pcbnew Python API 不会自动加载,需要在控制台输入 import pcbnew
即可加载。然后,命令 pcbnew.GetBoard()
将返回对 Pcbnew 中当前加载的电路板的引用,可以通过控制台查看和修改该电路板。
TODO:记录其他有用的 PyAlaMode 函数 |
编写外部脚本
TODO:写下这一节 |
编写操作插件
TODO:写下这一节 |