在原理图和 PCB 上使用类

概览

本文介绍 Altium Designer 中类的工作原理、用途,以及如何在原理图、PCB 和 Constraint Manager 中定义类。文章详细说明了软件自动生成的类与用户自定义类之间的区别,演示如何通过原理图参数创建元件类和网络类,并阐明在设计同步过程中如何传递这些类。此外,本文还概述了“类生成”和“比较器”等项目设置的作用,帮助您了解类定义如何传递到 PCB,从而更高效地管理网络组和元件组。请继续阅读,了解如何将这些基于类的工作流程融入您的设计过程。

- 了解支持哪些类类型、每种类型可以在哪里定义,以及自动生成的类与用户自定义类有何不同。
- 了解如何在原理图中使用参数、参数集指令和覆盖区域指令创建元件类和网络类。
- 了解 Constraint Manager 和项目同步设置如何影响哪些类会被创建并传递到 PCB。
使用 AI 深入了解:

类是一组具有名称的对象。除了帮助设计人员在浏览设计时选择所需对象之外,类还可用于将设计要求应用于该组(或类)中的 所有对象。

类可以根据设计的结构特征生成,例如同一图纸上的网络或元件,或同一总线中的 网络。这些由软件根据结构自动生成的类包括: 元件类、网络类、设计通道类和结构类。

也可以创建用户自定义类;如果您倾向于通过定义设计要求来进行设计,可以使用 Constraint Manager;如果您更倾向于基于设计规则的方法,则可以使用原理图参数和 PCB 类。

类是管理元件和网络逻辑分组的有效方式。此处在约束管理器中将布线要求应用于 LEDS 类。
类是管理元件和网络逻辑分组的有效方式。此处在约束管理器中将布线要求应用于 LEDS 类。

定义项目设计约束所采用的方法(Constraint Manager 或 Design Rules)在首次创建项目时选择。 是否使用 Constraint Manager 的选项在 Create Project 对话框中设置。了解有关 使用约束管理器定义设计要求的更多信息。如有需要,也可以将原理图参数中的设置导入约束管理器。

支持的类及其定义位置

类定义功能最初通过 Object Class Explorer 引入 PCB 编辑器。随后,原理图编辑器也增加了对最常用类(即元件类和网络类)的定义支持。通过为元件添加 ClassName 参数,可以将元件加入某个类;通过附加包含 Net Class Name 参数的参数集指令,可以将网络加入某个类。在设计同步过程中,这些类定义会被识别并传输到 PCB。

Constraint Manager 的引入,使类以及其他设计物理要求和电气要求的定义变得更加简单、更有条理。约束属于项目级设置,可随时从原理图编辑器或 PCB 编辑器中进行编辑,但仍必须通过 ECO 系统进行同步。

如果同时存在 基于参数的网络类定义和约束管理器中的网络类,则不会应用基于参数的定义。 下方可折叠部分中的表格详细列出了 所有支持的类类型及其可定义的位置。

使用原理图参数定义类

通过为相应元件或网络添加或附加参数,可以创建用户自定义元件类和网络类。如果在 Options for Project 对话框的 Class Generation 选项卡中启用了相应的 User-Defined Classes 复选框,则会创建 PCB 元件类和网络类。了解有关配置这些选项的更多信息。

用户自定义元件类

要将元件添加到元件类中, 请为元件添加一个参数,将参数的 Name 字符串设置为 ClassName,并将参数的 Value 字符串设置为类的名称i。必须为每个要纳入该类的元件添加此参数。您可以先选中所有元件,然后在 Properties 面板中添加参数,通过一次编辑操作完成此步骤。或者,如果这些元件位于同一区域,可以使用 Blanket 指令,并为其附加一个参数集指令。

已选中八个元件,并使用 Properties 面板为所有元件添加了 ClassName 参数。

这八个元件已被 Blanket 指令覆盖,并附加了一个参数集指令,该指令中已添加 Component Class Name 参数。

 

用户自定义网络类

要通过参数将某个网络(或总线、信号线束中的网络)添加到 PCB 网络类中,需要为该网络/总线/线束附加一个参数。您可以放置一个参数集指令,使其端点接触该网络/总线/线束,然后为该指令添加 Net Class Name 参数,以此将参数附加到网络。

可以将此参数集指令复制并粘贴到原理图的不同位置,从而将多个独立网络添加到同一个 PCB 网络类中。也可以使用 Blanket 指令。

已在各个独立网络上放置了七个参数集指令,并使用 Properties 面板为所有指令添加了 Net Class Name 参数。

所有电源网络均已被 Blanket 指令覆盖,并附加了一个参数集指令,该指令中已添加 Net Class Name 参数。

 

使用 Blanket 将指令应用于多个网络

您也可以放置一个覆盖所有目标网络的 Blanket 指令,将多个网络添加到 PCB 网络类中。Blanket 的作用是将指令应用于其覆盖范围内的所有网络(这些网络可以通过 Blanket 范围内的网络标识符来识别,例如网络标签或电源端口;也可以是至少有一个端点位于 Blanket 范围内的网络)。

放置参数集指令时,不要使其接触导线,而应使其接触 Blanket 的边缘,如下图所示。请注意,定义 PCB 网络类名称的是参数集对象中参数的值,而不是参数集对象的显示名称。在下方示例图中,参数集还用于定义布线宽度设计规则。

使用 Blanket 指令将其覆盖的所有网络归入名为 Power 的 PCB 网络类。请注意,参数集指令的名称不用于命名该类,仅作为视觉参考。
使用 Blanket 指令将其覆盖的所有网络归入名为 Power 的 PCB 网络类。请注意,参数集指令的名称不用于命名该类,仅作为视觉参考。

在项目约束管理器中定义类

类是使用 Constraint Manager 时的一项关键功能,可方便地对多个网络应用和调整设计约束。在 Constraint Manager 中,可以使用上下文右键菜单中的命令添加、编辑和删除类,如下面的视频所示。在将网络添加到类之前,可以逐个选择网络,也可以使用标准 Windows 操作方式选择多个网络。

可以使用 Constraint Manager Object Class Explorer 查看和编辑整个项目中的所有类。在 Constraint Manager 中定义的所有类都会在设计同步期间传输到 PCB,不受 Options for Project 对话框中 Class Generation 选项卡上的选项配置影响。

在约束管理器中创建网络类的简单演示。

了解有关 约束管理器 的更多信息。

  • 请注意,无法在 Constraint Manager 中定义元件类,必须使用参数化方式。 

  • 请参阅本节,了解有关 Constraint Manager Object Class Explorer 的更多信息。

设计传输期间生成的类

自动生成的类以及根据原理图参数派生的类,其创建方式在 Options for Project 对话框的 Class Generation 选项卡中配置。

  1. Automatically generated classes - 根据项目结构派生,可包括总线/线束(网络类)、图纸内容(元件类)和项目结构(结构类)。这些类在设计从原理图传输到 PCB 时生成,无论选择哪种方式管理设计约束(Constraint Manager 或 Design Rules),都可以使用这些类。在原理图设计期间,这些类在原理图编辑器中不可用,例如无法在 Navigator 面板中浏览。

  2. User-defined classes - 根据添加到元件或网络的设计参数派生。请注意,在 Constraint Manager 中定义的类不受这些选项管理。

这些类的生成方式在 Options for Project 对话框的 Class Generation(类生成)选项卡 中配置。请注意,最终同步到 PCB 的类由 Comparator 选项卡中的选项控制,请确保按需配置这些选项。

使用 Class Generation 选项卡中的选项,配置设计同步期间派生类和用户定义类的生成方式。
使用 Class Generation 选项卡中的选项,配置设计同步期间派生类和用户定义类的生成方式。

当项目约束在 Constraint Manager:

  • 中定义时仍会生成自动类 are 。

  • 仍会生成基于 ClassName 参数的用户定义元件类 are 。

  • 通过添加 Net Class Name 参数创建的用户定义网络类 are not 生成。对于使用 Constraint Manager 的项目,在设计传输期间,Engineering Change Order 对话框()中会提示存在未导入的指令。要解决此问题,可以点击 Constraint Manager ()中的  按钮,将这些参数集指令中定义的网络类转换为 Constraint Manager 类。随后将显示 Refresh Constraint Manager 对话框,您可以在应用更改之前查看更改的详细信息。指令转换后,其在图纸上的外观会发生变化,表明它们现在是 Constraint Manager 类,不能再作为指令进行编辑()。此后需通过 Constraint Manager 修改这些类。

在 PCB 编辑器中创建类

Altium Designer 的 PCB 编辑器最初是一个以设计规则为核心的编辑器,其中 PCB 要求在 PCB Rules and Constraint Editor 对话框()中定义,设计类则在 PCB 编辑器的 Object Class Explorer ()中定义。这是新项目采用的默认方式。

如果在创建项目时启用了 Constraint Management 选项,则要求将在 Constraint Manager()中配置,而不是在 PCB Rules and Constraint Editor 对话框中配置。在这种情况下,仍可在 PCB 编辑器的 Object Class Explorer 中定义和编辑所有类型的类;其中可在原理图与 PCB 之间双向传递的类类型,也可在约束管理器的 Object Class Explorer()中编辑。

在一个类编辑器中所做的更改保存后,即可在另一个编辑器中使用。

PCB 对象类浏览器

可以在 Object Class Explorer 中添加、编辑和删除类。

  1. 要访问和编辑 PCB 编辑器中所有可用类型的类,请从 PCB 编辑器菜单中选择 Design » Classes,打开 Object Class Explorer。 

  2. 约束管理器的 Object Class Explorer 也可用于编辑能够在原理图和 PCB 之间同步的类。 要访问它,请在约束管理器中右键单击,然后从上下文菜单中选择 Classes » Class Explorer。

PCB 编辑器的对象类浏览器(Design » Classes)可用于访问 PCB 编辑器支持的所有类类型。

约束管理器的对象类浏览器(右键菜单)可用于访问能够同步回原理图项目的所有类类型。

 

Editing a Class Directly

有多种方法可以直接编辑类,而无需通过对象类浏览器访问它,具体方法将在下方的“使用类”部分中介绍。这些方法都使用 Edit <ObjectType> Class 对话框,它实质上是对象类浏览器的精简版本。各种 Edit <ObjectType> Class 对话框有两种形式:从设计空间访问时显示的对话框包含两个 Add/Remove Currently Selected in the Design Space 按钮();从约束管理器访问时显示的对话框则不包含这些按钮()。有关此对话框中控件的说明,请参阅 对象类浏览器 部分。

跨编辑器选择

在不同编辑器之间协同工作的一项关键功能是 Cross Select Mode,它使您在一个编辑器中选中的每个元件或网络,也会在其他编辑器中被选中。 可通过任何支持此功能的编辑器中的 Tools 菜单启用 Cross Select Mode(或按 Shift+Ctrl+X 快捷键)。在一个编辑器中点击元件或网络对象时,该对象会自动在其他已打开的编辑器中被选中。

要跨原理图中的逻辑连接进行选择(通过网络标签、端口等连接的网络),请在原理图编辑器中按住 Alt 并点击网络。这会选中项目各图纸上的整个网络、总线或线束,并缩放视图以显示所选网络对象。目标页面上选择结果的显示方式由 Preferences 对话框()的 系统 – 导航页面上的 Cross Select Mode 和 Highlight Methods 选项控制。

启用交叉选择模式,以便在编辑器之间浏览。

在 PCB 编辑器中使用类

类是由设计者定义的逻辑分组,可有效帮助设计者组织、分析和审查设计。

浏览类

PCB 面板支持以多种模式浏览 PCB,例如按网络或元件浏览。对于支持类的对象,还可以按对象类进行浏览。支持按类浏览的模式包括: 元件、网络、差分对、xSignals、多边形以及结构类。 

在面板顶部选择浏览模式后,面板的上部区域将列出所有可用的类,如下方示例所示。如果启用了交叉选择模式,在适用的情况下,这些对象也会在原理图中被选中。

 

 

使用 PCB 面板浏览板上对象的类。启用交叉选择模式后,这些对象也会在原理图中被选中。

  • PCB 面板顶部的选项用于控制单击对象时显示区域的响应方式i。交叉选择过程中原理图的行为在 Preferences 对话框中配置,具体说明请参阅上一节。

  • 当光标位于面板的某个区域内时,按 F1 可查看该区域的详细信息。

根据所选对象创建类

您可以根据 PCB 编辑器中当前选中的一组对象创建类,包括网络、元件和多边形。

使用 PCB 面板浏览板上对象的类。可将当前选中的网络添加到新类中,方法是在面板的 Classes 区域中右键单击。

在面板或板上选择元件,然后在面板的 Classes 区域中右键单击,将所选元件添加到新类中。 

在 Polygon Pour Manager 中创建多边形类。

 
Net class

在设计空间中,为每个网络至少选择一个对象,或者在 PCB 面板中选择网络。然后,从主菜单的 Design » Netlist 子菜单()或右键上下文菜单的 Net Actions 子菜单()中运行 Create NetClass from Selected Nets 命令。 或者,如果已在 PCB 面板的 Nets 模式中选中网络,可在面板的 Classes 区域中右键单击,以访问 Add Class 命令,如上方幻灯片所示。 了解有关网络类的更多信息。

Component class 在设计空间或 PCB 面板中选择元件。然后,在面板的 Classes 区域中右键单击,以访问 Add Class 命令,如上方幻灯片所示。 或者,选择 Design » Classes 命令打开 Object Class Explorer,在其中创建新类并添加所选元件。
Polygon class 在多边形管理器对话框中选择所需的多边形条目,然后单击 New Polygon Class 按钮。在 Object Class Name 对话框中为新多边形类命名。

元件类生成器

创建元件类的另一种方法是使用 Component Class Generator。用于运行生成器的按钮位于 PCB Object Class Explorer 和 Edit Component Class 对话框中。

运行 Design » Classes 命令打开 PCB Object Class Explorer ,右键单击左侧的元件类列表,然后选择 New Class 命令。在列表中选择新类,然后单击 Component Class Generator 按钮打开 Component Class Generator。 或者,在 PCB 面板(元件模式)的类区域中右键单击,然后选择 Add Class。在 Edit Component Class 对话框中为新类命名,然后单击 Class Generator 按钮打开 Component Class Generator。

使用元件类生成器快速构建要包含在类中的元件列表。 使用元件类生成器快速构建要包含在类中的元件列表。

使用结构类

Altium Designer 支持在将设计从原理图传输到 PCB 时自动生成网络类和元件类。此外,它还支持定义类的层次结构。实际上,这使您能够在原理图页级别,将元件类和/或网络类分组到由该页生成的父类中。 此类还可以作为上一级父类的子类,逐级向上,直至设计的顶层原理图页。

每个生成的父类都称为 Structure Class。结构类可在 PCB 中重现原理图文档结构,非常适合高级导航。它们还可用于逻辑查询,例如限定设计规则的作用范围,或筛选 PCB 设计空间中的对象。

结构类的概念

结构类是一种特殊类型的类,其成员可以是任何类型的类,包括: 网络类、元件类、层类、焊盘类、起点终点类、差分对类、设计通道类、多边形类以及其他结构类。 将设计传输到 PCB 时,通过为工程中包含元件和/或网络的每张原理图页自动生成结构类,可以在 PCB 端准确呈现工程的结构。

工程层次结构可以通过结构类来表示,每个类代表一张原理图页,并包含由其成员元件和/或网络生成的子类。 工程层次结构可以通过结构类来表示,每个类代表一张原理图页,并包含由其成员元件和/或网络生成的子类。

结构类反映了原理图页所构建的层次化设计。对于各个结构类中的元件类和网络类,其成员取决于从源原理图页生成元件类和网络类时指定的选项。

在 PCB 编辑器中,可以将任何现有类添加到结构类中。

自动生成结构类

从项目原理图页自动生成结构类的设置位于 Options for Project 对话框(Project » Project Options)的 Class Generation 选项卡中。要从项目中的源原理图页生成结构类,请启用 Structure Classes 列中对应的 Generate 复选框。如果还启用了该原理图页的 Component Class 复选框和 Net Class Scope 选项,相应的元件类和网络类也会成为该结构类的成员。

指定要从哪些原理图页生成结构类,以及是否包含这些原理图页中的元件和网络。
指定要从哪些原理图页生成结构类,以及是否包含这些原理图页中的元件和网络。

  • 每个自动生成的结构类均使用代表相应子原理图页的图纸符号的标号来命名。顶层原理图页是例外,其结构类使用图纸文件名命名。

  • 确保已启用相应的比较器()和 ECO 生成()选项。

手动定义结构类

与 PCB 文档中的其他类型的类一样,您可以在 PCB 编辑器中手动创建和管理结构类。您可以在浏览类结构层次时通过 PCB 面板执行此操作,也可以通过 对象类浏览器对话框(Design » Classes)执行此操作。在该对话框中,结构类定义在 Structure Classes 文件夹下,右键菜单中提供了常用命令,可根据需要添加、重命名或删除类。结构类可以包含 PCB 设计所支持的任何类型的类。

在 PCB 编辑器的对象类浏览器对话框中,像处理其他类型的类一样创建和管理结构类。
在 PCB 编辑器的对象类浏览器对话框中,像处理其他类型的类一样创建和管理结构类。

浏览类结构层次

在 PCB 面板的 Structure Classes模式下,三个主要区域包含:

  • PCB 文档中当前定义的所有 Structure Classes 的列表; 包括从原理图页自动生成的类,以及在 PCB 本身中定义的类。

  • 所选结构类中定义为成员的所有 Classes。

  • 所选类中的各个 Class Members(元件、网络等)。

将 PCB 面板的模式设置为“结构类”,即可浏览 PCB 文档的整体类层次结构。 
将 PCB 面板的模式设置为“结构类”,即可浏览 PCB 文档的整体类层次结构。 

结构类模式

Structure Classes region

面板顶部区域列出了 PCB 文档中当前定义的所有结构类。其中包括从 PCB 项目的源原理图文档自动生成的结构类(以 图标表示),以及在 PCB 文档本身中手动定义的结构类(以 图标表示)。单击结构类旁边的箭头图标,即可显示该类下属的结构类层次。展开顶层结构类后,您可以查看完整的层次结构。单击可缩放并筛选显示内容(具体取决于面板顶部的选项)。 双击某个类可对其进行编辑,右键单击可 Add 或 Delete 类。

Classes region 面板中间区域列出了上方区域当前所选结构类的所有成员类。单击可缩放并筛选显示内容,双击可编辑成员类。
Class Members

面板底部区域列出了上方区域当前所选类的所有成员。单击可缩放至某个成员,双击可编辑该成员的属性。

在面板的某个区域中右键单击,可打开命令菜单。

在逻辑查询中使用结构类

逻辑查询是定位 PCB 设计中对象的基本方法。它们可用于定义设计规则的作用范围,以特定方式约束设计,也可用于筛选设计空间中的对象。查询语言支持在构建逻辑查询表达式时使用结构类。PCB Functions – Membership Checks 部分提供了以下关键字:

InStructureClass – 检查对象类是否属于指定的结构类。

针对不同结构类所包含的成员对象之间设置的间距规则示例。
针对不同结构类所包含的成员对象之间设置的间距规则示例。

创建用于筛选表达式的逻辑查询时,也可以使用此关键字,以快速筛选指定结构类下属的所有底层成员对象。

在设计空间中快速筛选属于特定结构类的所有对象。
在设计空间中快速筛选属于特定结构类的所有对象。

 

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Contents
功能可用性

您可使用的功能取决于您所采用的 Altium 解决方案——Altium Develop、Altium Agile Teams、Altium Agile Enterprise,或 Altium Designer(在有效订阅期内)。

如果您在实际软件中未看到文档中介绍的某项功能, 请联系 Altium Sales 了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Contents