在原理图和 PCB 上使用类
概览
- 了解支持哪些类类型、每种类型可以在哪里定义,以及自动生成的类与用户自定义类有何不同。
- 了解如何在原理图中使用参数、参数集指令和覆盖区域指令创建元件类和网络类。
- 了解 Constraint Manager 和项目同步设置如何影响哪些类会被创建并传递到 PCB。
类是一组具有名称的对象。除了帮助设计人员在浏览设计时选择所需对象之外,类还可用于将设计要求应用于该组(或类)中的 所有对象。
类可以根据设计的结构特征生成,例如同一图纸上的网络或元件,或同一总线中的 网络。这些由软件根据结构自动生成的类包括: 元件类、网络类、设计通道类和结构类。
也可以创建用户自定义类;如果您倾向于通过定义设计要求来进行设计,可以使用 Constraint Manager;如果您更倾向于基于设计规则的方法,则可以使用原理图参数和 PCB 类。

类是管理元件和网络逻辑分组的有效方式。此处在约束管理器中将布线要求应用于 LEDS 类。
支持的类及其定义位置
类定义功能最初通过 Object Class Explorer 引入 PCB 编辑器。随后,原理图编辑器也增加了对最常用类(即元件类和网络类)的定义支持。通过为元件添加 ClassName 参数,可以将元件加入某个类;通过附加包含 Net Class Name 参数的参数集指令,可以将网络加入某个类。在设计同步过程中,这些类定义会被识别并传输到 PCB。
Constraint Manager 的引入,使类以及其他设计物理要求和电气要求的定义变得更加简单、更有条理。约束属于项目级设置,可随时从原理图编辑器或 PCB 编辑器中进行编辑,但仍必须通过 ECO 系统进行同步。
如果同时存在 基于参数的网络类定义和约束管理器中的网络类,则不会应用基于参数的定义。 下方可折叠部分中的表格详细列出了 所有支持的类类型及其可定义的位置。
可用的类类型
| Class Type | Software-created based on structure |
Schematic Editor parameters |
PCB Editor Object Class Explorer |
|
| 网络 | ✓ |
🗸 |
✓ | ✓ |
| 元件 | ✓ |
🗸 |
✗ | ✓ |
| 层 | ✗ | ✗ | ✗ | ✓ |
| 焊盘 | ✗ | ✗ | ✗ | ✓ |
| 起点-终点 | ✗ | ✗ | ✗ | ✓ |
| 差分对 | ✗ | ✗ |
✓ | ✓ |
| xNet | ✗ | ✗ | ✓ | ✗ |
| xSignal | ✗ | ✗ | ✓ | ✓ |
| 设计通道 | ✓ |
✗ | ✗ | ✓ |
| 多边形铺铜 | ✗ | ✗ | ✗ | ✓ |
| 结构 | ✓ |
✗ | ✗ | ✓ |
使用原理图参数定义类
通过为相应元件或网络添加或附加参数,可以创建用户自定义元件类和网络类。如果在 Options for Project 对话框的 Class Generation 选项卡中启用了相应的 User-Defined Classes 复选框,则会创建 PCB 元件类和网络类。了解有关配置这些选项的更多信息。
用户自定义元件类
要将元件添加到元件类中, 请为元件添加一个参数,将参数的 Name 字符串设置为 ClassName,并将参数的 Value 字符串设置为类的名称。必须为每个要纳入该类的元件添加此参数。您可以先选中所有元件,然后在 Properties 面板中添加参数,通过一次编辑操作完成此步骤。或者,如果这些元件位于同一区域,可以使用 Blanket 指令,并为其附加一个参数集指令。
用户自定义网络类
要通过参数将某个网络(或总线、信号线束中的网络)添加到 PCB 网络类中,需要为该网络/总线/线束附加一个参数。您可以放置一个参数集指令,使其端点接触该网络/总线/线束,然后为该指令添加 Net Class Name 参数,以此将参数附加到网络。
可以将此参数集指令复制并粘贴到原理图的不同位置,从而将多个独立网络添加到同一个 PCB 网络类中。也可以使用 Blanket 指令。
使用 Blanket 将指令应用于多个网络
您也可以放置一个覆盖所有目标网络的 Blanket 指令,将多个网络添加到 PCB 网络类中。Blanket 的作用是将指令应用于其覆盖范围内的所有网络(这些网络可以通过 Blanket 范围内的网络标识符来识别,例如网络标签或电源端口;也可以是至少有一个端点位于 Blanket 范围内的网络)。
放置参数集指令时,不要使其接触导线,而应使其接触 Blanket 的边缘,如下图所示。请注意,定义 PCB 网络类名称的是参数集对象中参数的值,而不是参数集对象的显示名称。在下方示例图中,参数集还用于定义布线宽度设计规则。

使用 Blanket 指令将其覆盖的所有网络归入名为 Power 的 PCB 网络类。请注意,参数集指令的名称不用于命名该类,仅作为视觉参考。
在项目约束管理器中定义类
类是使用 Constraint Manager 时的一项关键功能,可方便地对多个网络应用和调整设计约束。在 Constraint Manager 中,可以使用上下文右键菜单中的命令添加、编辑和删除类,如下面的视频所示。在将网络添加到类之前,可以逐个选择网络,也可以使用标准 Windows 操作方式选择多个网络。
可以使用 Constraint Manager Object Class Explorer 查看和编辑整个项目中的所有类。在 Constraint Manager 中定义的所有类都会在设计同步期间传输到 PCB,不受 Options for Project 对话框中 Class Generation 选项卡上的选项配置影响。
在约束管理器中创建网络类的简单演示。
了解有关 约束管理器 的更多信息。
设计传输期间生成的类
自动生成的类以及根据原理图参数派生的类,其创建方式在 Options for Project 对话框的 Class Generation 选项卡中配置。
-
Automatically generated classes - 根据项目结构派生,可包括总线/线束(网络类)、图纸内容(元件类)和项目结构(结构类)。这些类在设计从原理图传输到 PCB 时生成,无论选择哪种方式管理设计约束(Constraint Manager 或 Design Rules),都可以使用这些类。在原理图设计期间,这些类在原理图编辑器中不可用,例如无法在 Navigator 面板中浏览。
-
User-defined classes - 根据添加到元件或网络的设计参数派生。请注意,在 Constraint Manager 中定义的类不受这些选项管理。
这些类的生成方式在 Options for Project 对话框的 Class Generation(类生成)选项卡 中配置。请注意,最终同步到 PCB 的类由 Comparator 选项卡中的选项控制,请确保按需配置这些选项。

使用 Class Generation 选项卡中的选项,配置设计同步期间派生类和用户定义类的生成方式。
自动生成的类
| Generate Net Classes for Buses | 为设计中的每条命名总线自动生成一个网络类。该类的成员为该总线中的网络。 |
| Generate Net Classes for Components | 为设计中的每个元件自动生成一个网络类。该类的成员为连接到该元件引脚的网络。 网络类使用元件的位号命名,格式为 <ComponentDesignator>_Nets。 |
| Generate Separate Net Classes for Bus Sections | 为每个总线分段自动生成一个独立的网络类。通过指定某条较大总线的一部分来创建总线分段,例如,总线 A[15..0] 中的 A[2..0]。 |
| Generate Net Classes for Named Signal Harnesses | 为设计中的每条命名信号线束自动生成一个网络类。该类的成员为命名信号线束所汇集的信号所关联的网络。 命名信号线束上附有网络标签,生成的网络类使用该标签的名称。 |
| Schematic Sheet | 对话框的表格区域列出了项目中的所有图纸。对于每张图纸,可以选择性地生成: 元件类、PCB Room、网络类和结构类。 |
| Sheet Name/Full Path | 原理图图纸的名称和位置。 |
| Component Classes | 复选框列。 启用后,将创建一个包含该图纸上所有元件的元件类,其名称与图纸符号名称相同。 |
| Generate Rooms | 复选框列。 启用后,将自动为该原理图图纸创建一个 Room(仅在启用 Component Class 复选框时可用)。相关元件类会被分配给该 PCB Room。首次设计同步时,Room 会放置在 PCB 的左下方。了解有关使用 Room 的更多信息。 |
| Net Classes Scope | 使用这些选项确定是否为该原理图图纸中的网络生成一个类(类名称与图纸符号名称相同)。
|
| Structure Classes | 启用后生成结构类。结构类的成员包括已启用的元件类和网络类。 在 PCB 编辑器中编辑结构类,可添加其他网络类、元件类或结构类。使用 PCB 面板的 Structure 模式可定位该结构类中的元件和网络。 |
用户定义的类
| Generate Component Classes | 启用后生成用户定义的元件类。要将元件添加到用户定义的元件类中,请为该元件添加 |
| Generate Rooms for Component Classes | 启用此选项后,将为每个生成的用户定义元件类生成一个 PCB 放置 Room,并将该元件类分配给该 Room。放置 Room 的名称与元件类名称相同。 |
| Generate Net Classes | 启用后生成用户定义的网络类。 要向网络添加参数,请将一个 parameter set 对象附加到该网络,然后向该参数集添加一个 如果项目使用 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 中添加、编辑和删除类。
-
要访问和编辑 PCB 编辑器中所有可用类型的类,请从 PCB 编辑器菜单中选择 Design » Classes,打开 Object Class Explorer。
-
约束管理器的 Object Class Explorer 也可用于编辑能够在原理图和 PCB 之间同步的类。 要访问它,请在约束管理器中右键单击,然后从上下文菜单中选择 Classes » Class Explorer。
对象类浏览器(PCB 编辑器)
| Class Types and Classes | 对话框左侧面板中的树形结构用于浏览 PCB 中所有可用的对象类。 点击树形结构顶部的 Object Classes 图标,可显示设计中当前定义的所有类的列表( |
| Non-Members | 在对话框左侧的树形结构中选中某个类时,中间一列会列出当前不属于所选类的所有对象。使用标准 Windows 选择操作选中要添加到当前类的非成员,然后使用“非成员”和“成员”面板之间的控件,将所选对象添加到该类( )。 |
| Members | 在对话框左侧的树形结构中选中某个类时, 右侧一列会列出当前属于所选类的所有对象。 使用标准 Windows 选择操作选中类中的成员,然后使用“非成员”和“成员”面板之间的控件,将所选成员从该类中移除( )。 |
| |
将所有非成员添加到成员列表。 |
| |
将当前选中的非成员添加到成员列表。 |
| |
从列表中移除当前选中的成员。 |
| |
从列表中移除所有成员。 |
| |
将设计空间中当前选中的对象添加到成员列表。仅当可以在设计空间中预先选中对象时,此控件才可用。 |
| |
从列表中移除设计空间中当前选中的对象。 仅当可以在设计空间中预先选中对象时,此控件才可用。 |
| |
Component Class Generator 按钮仅在创建或编辑元件类时可用。点击该按钮会打开 Component Class Generator 对话框,可根据定义的搜索条件快速生成元件类的成员列表。 |
跨编辑器选择
在不同编辑器之间协同工作的一项关键功能是 Cross Select Mode,它使您在一个编辑器中选中的每个元件或网络,也会在其他编辑器中被选中。 可通过任何支持此功能的编辑器中的 Tools 菜单启用 Cross Select Mode(或按 Shift+Ctrl+X 快捷键)。在一个编辑器中点击元件或网络对象时,该对象会自动在其他已打开的编辑器中被选中。
要跨原理图中的逻辑连接进行选择(通过网络标签、端口等连接的网络),请在原理图编辑器中按住 Alt 并点击网络。这会选中项目各图纸上的整个网络、总线或线束,并缩放视图以显示所选网络对象。目标页面上选择结果的显示方式由 Preferences 对话框(
)的 系统 – 导航页面上的 Cross Select Mode 和 Highlight Methods 选项控制。
启用交叉选择模式,以便在编辑器之间浏览。
在 PCB 编辑器中使用类
类是由设计者定义的逻辑分组,可有效帮助设计者组织、分析和审查设计。
浏览类
PCB 面板支持以多种模式浏览 PCB,例如按网络或元件浏览。对于支持类的对象,还可以按对象类进行浏览。支持按类浏览的模式包括: 元件、网络、差分对、xSignals、多边形以及结构类。
在面板顶部选择浏览模式后,面板的上部区域将列出所有可用的类,如下方示例所示。如果启用了交叉选择模式,在适用的情况下,这些对象也会在原理图中被选中。
根据所选对象创建类
您可以根据 PCB 编辑器中当前选中的一组对象创建类,包括网络、元件和多边形。
| Net class | 在设计空间中,为每个网络至少选择一个对象,或者在 PCB 面板中选择网络。然后,从主菜单的 Design » Netlist 子菜单( |
| 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。
元件类生成器对话框
| Search/Filter Criteria | 对话框左侧的各个字段共同定义搜索/筛选条件,用于确定要添加为元件类成员的元件。Designator、Comment 和 Footprint 字段包含预填充的列表,您也可以输入条目 (支持通配符)。其他字段包含可用选项的列表,选择 Any 可将该字段排除在选择过程之外。 |
| Add Matching | 单击可将符合所定义搜索/筛选条件的所有元件添加到 Class Membership 区域。 |
| Clear Selected | 单击可从类中移除 Class Membership 区域中当前选中的所有元件。 |
| Class Name | 对话框右上方的字段显示类的当前名称。可根据需要编辑此字段。 |
| Class Membership | Class Name 下方的区域是 Class Membership,按位号列出所有已选定为元件类成员的元件。 可以使用标准的多选操作方式选择类成员列表中的元件:Ctrl+click、Shift+click 和 Click+drag。 |
使用结构类
Altium Designer 支持在将设计从原理图传输到 PCB 时自动生成网络类和元件类。此外,它还支持定义类的层次结构。实际上,这使您能够在原理图页级别,将元件类和/或网络类分组到由该页生成的父类中。 此类还可以作为上一级父类的子类,逐级向上,直至设计的顶层原理图页。
每个生成的父类都称为 Structure Class。结构类可在 PCB 中重现原理图文档结构,非常适合高级导航。它们还可用于逻辑查询,例如限定设计规则的作用范围,或筛选 PCB 设计空间中的对象。
结构类的概念
结构类是一种特殊类型的类,其成员可以是任何类型的类,包括: 网络类、元件类、层类、焊盘类、起点终点类、差分对类、设计通道类、多边形类以及其他结构类。 将设计传输到 PCB 时,通过为工程中包含元件和/或网络的每张原理图页自动生成结构类,可以在 PCB 端准确呈现工程的结构。
工程层次结构可以通过结构类来表示,每个类代表一张原理图页,并包含由其成员元件和/或网络生成的子类。
结构类反映了原理图页所构建的层次化设计。对于各个结构类中的元件类和网络类,其成员取决于从源原理图页生成元件类和网络类时指定的选项。
自动生成结构类
从项目原理图页自动生成结构类的设置位于 Options for Project 对话框(Project » Project Options)的 Class Generation 选项卡中。要从项目中的源原理图页生成结构类,请启用 Structure Classes 列中对应的 Generate 复选框。如果还启用了该原理图页的 Component Class 复选框和 Net Class Scope 选项,相应的元件类和网络类也会成为该结构类的成员。

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

在 PCB 编辑器的对象类浏览器对话框中,像处理其他类型的类一样创建和管理结构类。
浏览类结构层次
在 PCB 面板的 Structure Classes模式下,三个主要区域包含:
-
PCB 文档中当前定义的所有 Structure Classes 的列表; 包括从原理图页自动生成的类,以及在 PCB 本身中定义的类。
-
所选结构类中定义为成员的所有 Classes。
-
所选类中的各个 Class Members(元件、网络等)。

将 PCB 面板的模式设置为“结构类”,即可浏览 PCB 文档的整体类层次结构。
结构类模式 |
|
| Structure Classes region | 面板顶部区域列出了 PCB 文档中当前定义的所有结构类。其中包括从 PCB 项目的源原理图文档自动生成的结构类(以 |
| Classes region | 面板中间区域列出了上方区域当前所选结构类的所有成员类。单击可缩放并筛选显示内容,双击可编辑成员类。 |
| Class Members | 面板底部区域列出了上方区域当前所选类的所有成员。单击可缩放至某个成员,双击可编辑该成员的属性。 |
在逻辑查询中使用结构类
逻辑查询是定位 PCB 设计中对象的基本方法。它们可用于定义设计规则的作用范围,以特定方式约束设计,也可用于筛选设计空间中的对象。查询语言支持在构建逻辑查询表达式时使用结构类。PCB Functions – Membership Checks 部分提供了以下关键字:
InStructureClass – 检查对象类是否属于指定的结构类。
创建用于筛选表达式的逻辑查询时,也可以使用此关键字,以快速筛选指定结构类下属的所有底层成员对象。









);点击下方的某个类类型图标,可显示当前定义的该类型的类(
); 或者点击某个类的图标,列出该类的成员(
)。
)。
);从约束管理器访问时显示的对话框则不包含这些按钮(
)。有关此对话框中控件的说明,请参阅 




)或右键上下文菜单的 Net Actions 子菜单(
)中运行 Create NetClass from Selected Nets 命令。 或者,如果已在 PCB 面板的 Nets 模式中选中网络,可在面板的 Classes 区域中右键单击,以访问 Add Class 命令,如上方幻灯片所示。 了解有关
)和 ECO 生成(
)选项。

