Parent page: Managing Design Changes between the Schematic & PCB
Classes are provided to enable various commands to operate on subsets of object types, for example, a group of components or a group of nets. An object can belong to more than one class.
Classes can be created for:
Also, Structure Classes can be created. A Structure Class is a special type of class that can hold, as its members, any type of class.
When transferring the design from the schematic to PCB, Altium NEXUS provides support for generation of component and net classes. There are two types of classes that can be generated from the schematic and synchronized to the PCB:
The generation of these are configured in the Class Generation tab of the Options for Project dialog (the synchronization is controlled by options in the Comparator tab).
Net classes can be automatically generated for the following groups of nets:
Generate Net Classes for Buses - check this option to automatically generate a net class for each bus in the design. The members of a class will be the individual constituent nets of the bus (from which that class was generated).
Generate Net Classes for Components - check this option to automatically generate a net class for each component in the design. The members of a class will be the associated nets to which the pins of the component (from which that class was generated) are connected.
D[15..8], from the bus
Generate Net Classes for Named Signal Harnesses - enable this option to automatically generate a net class for each named signal harness in the design. The members of a class will be the nets associated to the signals gathered by the named signal harness (from which the class was generated).
It is common for the schematic project to be structured over multiple sheets, with each sheet representing a logical block of the overall design. Supporting this, you can automatically generate a component class that contains all of the components on that sheet, for each of the schematic sheets in the project, by enabling the appropriate Component Class checkbox. The PCB component class will have the same name as the Designator of the sheet symbol that references that schematic sheet. A component class will not be created if the sheet does not contain any components.
A room is a polygonal-shaped object that is an aid to component placement, these are created automatically for each schematic sheet that has the Generate Rooms checkbox enabled.
A structure class can include net classes, component classes, and lower-hierarchical-level structure classes, as its members. A structure class is created for each sheet that the option is enabled for, and will include the sheet-level component and net classes, if those options are enabled for that sheet. Edit the Structure Class in the PCB editor to add other net / component / structure classes. Use the Structure mode of the PCB panel to locate the components and nets in that structure class.
You can also create user-defined component classes and net classes, by attaching a parameter to the relevant component or net. PCB component and net classes will then be created if the appropriate User-Defined Classes checkboxes are enabled in the Class Generation tab of the Options for Project dialog.
Object page: Parameter Set
To add a net (or the nets in a bus or signal harness) to a PCB net class, you need to attach a parameter to that net/ bus / harness. You do that by placing a Parameter Set object with its end touching the net / bus / harness, as shown in the image below (Place » Directives » Parameter Set command).
In the Classes section of the panel, enter the name of the net class, as shown in the image below.
Multiple Parameter Set objects can be placed in different locations on the schematic, to add multiple individual nets to the same PCB net class.
In the schematic, you can specify that a component be added to a PCB component class when the schematic is synchronized with the PCB.
To do that, you add a parameter to the component, with the parameter Name string set to
ClassName, and the parameter Value string set to the required.
Object page: Blanket
You can also add multiple nets to a PCB net class by placing a Blanket directive that covers all of those nets. The function of a Blanket is to allow you to apply a directive to all of the nets under the blanket (either identified by a net identifier, such as a Net Label or Power Port that is under the blanket, or a net that has an end vertex contained within the Blanket).
Instead of placing the Parameter Set directive so that it touches a wire, you place it so that it touches the edge of the blanket, as shown in the image below. Note that it is the value of the Parameter within the Parameter Set object that defines the PCB net class name, not the display name of the Parameter Set object. In the example image below, the Parameter Set is also used to define a routing width design rule.
You can also browse, and manage, the object classes for the current PCB document using the Object Class Explorer dialog.
Click on the class type of the class you want to create, right-click and select Add Class. A new class will appear in the list with the default name of New Class. Click on the class name to edit the class and add the members, right-click on the class name and select Rename Class to rename it.
Note that there are transfer buttons for selected objects; often it is easier to select the objects in the design space first, then use these transfer selected buttons to build the class. If you have created a selection beforehand using the Find Similar Objects dialog, PCB panel, list panel, etc., then the button shown in the image below should be available. Pressing this button shifts the selection from the non-members column to the members column.
The Edit Component Class dialog includes the Class Generator button, which, when clicked, displays the Component Class Generator dialog. This allows you to quickly create a component class containing components based on selected properties.
Altium NEXUS already provided high-quality, robust support for generation of classes (Component and Net) when transferring the design from the Schematic to PCB. This support is taken to the next level, with the ability to define the generation of a hierarchical structure of classes in the PCB document. Essentially, this enables you to group together, at the sheet-level, classes of components and/or nets into a parent class generated from that sheet, which itself can be a child of the pare nt class above, all the way up to the top-level sheet in your design, which in essence is the source for the top-level generated parent class (or 'super class') – the head of the class structure hierarchy. Each of these generated parent classes is referred to as a Structure Class. Structure Classes not only allow for the reproduction of the schematic document structure within the PCB domain, for advanced navigation, but can also be used in logical queries, for example when scoping design rules, or filtering.
A Structure Class is a special type of class that can hold, as its members, any type of class:
By automatically generating a Structure Class from each schematic sheet in the project – containing components and/or nets – when transferring the design to the PCB, the structure of the project can be faithfully represented on the PCB side.
A tidy means by which to essentially 'compartmentalize' a schematic sheet's-worth of components and nets, the Structure Class object is the driving force behind hierarchical class structuring in the PCB. Using Structure Classes, a hierarchy of any depth can be built. Primarily the structure is defined by the hierarchical nature of the schematic source documents, but you can add, manage and delete Structure Classes directly on the PCB side should you wish.
The Structure Classes reflect the design hierarchy – of the schematic sheets themselves. In terms of component and net classes, membership within a particular Structure Class will of course depend on the options specified when generating Component and Net Classes from the source schematic sheets.
Tailor membership of Structure Classes to suit your needs. Remember that although the project hierarchy can be brought across in an automated fashion, the initial membership will be Component Classes and/or Net Classes and/or other Structure Classes. Use existing Structure Classes, or create new ones within the overall hierarchy, to organize other class types for the PCB document as required.
The automatic generation of Structure Classes from the schematic sheets in a PCB design project is defined on the Class Generation tab of the Options for Project dialog (Project » Project Options). To generate a Structure Class from a source schematic sheet in the project, simply enable its associated Generate option, in the Structure Classes column.
Each automatically generated Structure Class is named using the designator of the Sheet Symbol/Device Sheet Symbol by which the corresponding schematic sub-sheet is referenced. The exception to this is the top-sheet, the corresponding Structure Class of which is named using the filename for that sheet.
Synchronization between the source schematic documents and the PCB is made possible through Altium NEXUS's Comparison engine, with detected differences addressed by performing modifications, implemented through Engineering Change Orders (ECOs). In support of Structure Classes, the Comparator and ECO Generator have been enhanced accordingly.
For detection of differences associated with Structure Classes, a new section has been added to the Comparator tab of the Project Options dialog –
Differences Associated with Structure Classes.
Supporting the change orders required to ensure synchronization, a corresponding new section has been added to the ECO Generation tab of the Project Options dialog –
Modifications Associated with Structure Classes.
As with other types of class in a PCB document, you are able to create and manage Structure Classes in a manual fashion, directly from within the PCB document. This can be done from the PCB panel, while browsing the class structure hierarchy, or from the Object Class Explorer dialog (Design » Classes). Considering the latter here, Structure Classes are defined under the
Structure Classes folder, with familiar commands on the right-click menu to add, rename or delete commands as required. For a new or existing Structure Class, define its members as required. These can consist of any of the class types supported for use in the PCB design.
In the PCB panel’s Structure Classes mode, its three main regions change to reflect the following (in order from the top):
The top region of the panel lists all Structure Classes currently defined for the PCB document. These include those automatically generated from the PCB project's source schematic documents (denoted by the icon), as well as those defined manually in the PCB document itself (denoted by the icon). Clicking on the arrow icon next to a Structure Class will reveal the Structure Class hierarchy descendant from that class. By expanding the top-level Structure Class, you can see the full hierarchy.
Double-click on a Structure Class entry to access the Edit Structure Class dialog in which you can change the name for the class and redefine its members (any of the class types) as required.
The right-click menu for this region provides the following commands:
The middle region of the panel lists all class members for the currently selected Structure Class(es) in the region above.
Double-click on a class entry to access the associated editing dialog, from where you can change the name for the class and redefine its members as required.
The right-click context menu for this region provides the following commands:
The bottom region of the panel lists all members of the currently selected class(es) in the region above.
Double-click on a class member entry to access the associated mode of the Properties panel in which you can change the name for the class and redefine its members as required.
The right-click menu for this region provides the following commands:
Logical queries are the fundamental driving force when targeting objects in a design. They can be used when scoping design rules to constrain the design in a specific (and required) way, or when filtering objects in the design workspace. The Query Language has been enhanced to cater for the use of the Structure Class when building logical query expressions. The following keyword has been added to the PCB Functions – Membership Checks section:
InStructureClass – checks whether the object class is in the specified Structure Class.
This keyword can also be used when constructing a query with which to scope a design rule. It is supported for use in both the Query Helper dialog and the Query Builder dialog.
Use this keyword when creating a logical query to be used in a filter expression – to quickly filter all low-level member objects descending from within the specified Structure Class.