回路図とPCBでクラスを扱う方法

概略

この記事では、Altium Designerにおけるクラスの仕組みと用途、そして回路図、PCB、Constraint Managerでクラスを定義できる場所について説明します。ソフトウェアが生成するクラスとユーザー定義クラスの違いを解説し、回路図のパラメーターを使ってコンポーネントクラスやネットクラスを作成する方法を紹介するとともに、設計の同期時にクラスがどのように転送されるかを明確にします。また、Class GenerationやComparatorオプションなどのプロジェクト設定の役割も説明し、クラス定義がPCBに反映されるまでの流れを理解できるようにします。ネットやコンポーネントのグループをより効率的に扱うために、クラスを活用したワークフローを設計プロセスにどのように組み込めるか、ぜひ読み進めてください。

- サポートされているクラスの種類、各種類を定義できる場所、自動生成クラスとユーザー定義クラスの違いを学びます。
- パラメーター、Parameter Setディレクティブ、Blanketディレクティブを使って、回路図からコンポーネントクラスとネットクラスを作成する方法を確認します。
- Constraint Managerとプロジェクトの同期設定が、どのクラスを作成してPCBに転送するかにどのように影響するかを理解します。
AIでさらに深掘り:

クラスとは、名前を付けたオブジェクトのグループです。クラスは、設計を参照しながら目的のオブジェクトを選択する際に役立つだけでなく、そのグループ、つまりクラスに含まれる すべてのオブジェクトに設計要件を適用するためにも使用できます。

クラスは、同じシート上のネットやコンポーネント、同じバス内のネットなど、設計の構造的な要素に基づいて生成できます。ソフトウェアによって生成されるこれらの構造ベースのクラスには、コンポーネント、ネット、設計チャネル、構造があります。

ユーザー定義クラスも作成できます。設計要件の定義方法として適している場合はConstraint Managerを使用し、デザインルールに基づく方法を使用する場合は回路図パラメーターとPCBクラスを使用します。

クラスは、コンポーネントやネットを論理的なグループとして管理するのに非常に便利です。ここでは、Constraint ManagerでLEDSクラスに配線要件を適用しています。
クラスは、コンポーネントやネットを論理的なグループとして管理するのに非常に便利です。ここでは、Constraint ManagerでLEDSクラスに配線要件を適用しています。

プロジェクトの設計制約を定義する方法(Constraint ManagerまたはDesign Rules)は、プロジェクトの新規作成時に選択します。Constraint Managerを使用するオプションは、Create Projectダイアログで設定します。詳細については、Constraint Managerを使用した設計要件の定義を参照してください。必要に応じて、回路図パラメーターの設定をConstraint Managerにインポートすることもできます。

サポートされるクラスとその定義場所

クラス定義のサポートは、当初、PCBエディターのObject Class Explorerで導入されました。その後、最もよく使用されるクラス、つまりコンポーネントとネットを回路図エディターで定義する機能が追加されました。コンポーネントは、ClassNameパラメーターを追加することでクラスに追加できます。ネットは、Net Class Nameパラメーターを含むParameter Setディレクティブを接続することでクラスに追加できます。これらのクラス定義は、設計の同期時に検出され、PCBに転送されます。

Constraint Managerの導入により、クラスなどの要件を、設計のその他の物理的要件や電気的要件とともに、より簡単かつ体系的に定義できるようになりました。制約はプロジェクトレベルの設定であり、回路図エディターまたはPCBエディターのいずれからでも随時編集できますが、ECOシステムを介した同期は引き続き必要です。

パラメーターによるネットクラス定義とConstraint Managerのネットクラスが両方存在する場合、パラメーターによる定義は適用されません。以下の折りたたみセクションの表に、サポートされるすべてのクラスの種類と、それぞれの定義場所を示します。

回路図パラメーターによるクラスの定義

対象のコンポーネントやネットにパラメーターを追加または接続することで、ユーザー定義のコンポーネントクラスやネットクラスを作成できます。Options for ProjectダイアログのClass Generationタブで、該当するUser-Defined Classesチェックボックスが有効になっていれば、PCBのコンポーネントクラスとネットクラスが作成されます。詳細については、これらのオプションの設定を参照してください。

ユーザー定義コンポーネントクラス

コンポーネントをコンポーネントクラスに追加するには、パラメーターのName文字列をClassNameに、Value文字列をクラス名iに設定したパラメーターをコンポーネントに追加します。このパラメーターは、クラスに含めたいすべてのコンポーネントに追加する必要があります。最初にすべてのコンポーネントを選択し、Propertiesパネルでパラメーターを追加すれば、1回の編集操作で実行できます。また、コンポーネントがまとまって配置されている場合は、BlanketディレクティブにParameter Setディレクティブを接続して使用することもできます。

8個のコンポーネントを選択し、Propertiesパネルを使用して、そのすべてにClassNameパラメーターを追加しています。

8個のコンポーネントをBlanketディレクティブで囲み、Component Class Nameパラメーターを追加したParameter Setディレクティブを接続しています。

 

ユーザー定義ネットクラス

パラメーターを使用してネット(またはバスやシグナルハーネス内のネット)をPCBネットクラスに追加するには、そのネット/バス/ハーネスにパラメーターを接続します。Parameter Setディレクティブの端がネット/バス/ハーネスに接するように配置し、そのディレクティブにNet Class Nameパラメーターを追加することで、ネットにパラメーターを接続できます。

このParameter Setディレクティブをコピーして回路図上の別の場所に貼り付けると、複数の個別ネットを同じPCBネットクラスに追加できます。また、Blanketディレクティブを使用することもできます。

個々のネットに7個のParameter Setディレクティブを配置し、Propertiesパネルを使用して、そのすべてにNet Class Nameパラメーターを追加しています。

すべての電源ネットをBlanketディレクティブで囲み、Net Class Nameパラメーターを追加したParameter Setディレクティブを接続しています。

 

Blanketを使用して複数のネットにディレクティブを適用する

対象のネットをすべて囲むBlanketディレクティブを配置することで、複数のネットをPCBネットクラスに追加することもできます。Blanketは、その範囲内にあるすべてのネットにディレクティブを適用するためのものです。対象となるのは、Blanket内にあるネットラベルや電源ポートなどのネット識別子によって識別されるネット、または少なくとも一方の端点がBlanket内に含まれるネットです。

Parameter Setディレクティブをワイヤに接するように配置する代わりに、下の画像のようにブランケットの端に接するように配置します。PCBネットクラス名を定義するのは、Parameter Setオブジェクトの表示名ではなく、Parameter Setオブジェクト内のパラメーターの値であることに注意してください。下の画像の例では、Parameter Setを使用して配線幅のデザインルールも定義しています。

Blanketディレクティブを使用して、その下にあるすべてのネットをPowerというPCBネットクラスにまとめます。Parameter Setディレクティブの名前はクラスの命名には使用されず、視覚的な目印にすぎないことに注意してください。
Blanketディレクティブを使用して、その下にあるすべてのネットをPowerというPCBネットクラスにまとめます。Parameter Setディレクティブの名前はクラスの命名には使用されず、視覚的な目印にすぎないことに注意してください。

プロジェクトのConstraint Managerでのクラスの定義

クラスは、Constraint Managerを使用する際の主要な機能であり、複数のネットにわたって設計制約を簡単に適用、調整できます。Constraint Managerでは、下の動画に示すように、状況に応じた右クリックメニューのコマンドを使用して、クラスの追加、編集、削除を行います。ネットは個別に追加することも、Windowsの標準的な操作で複数選択してからクラスに追加することもできます。

Constraint Manager Object Class Explorerを使用すると、プロジェクト全体のすべてのクラスを確認、編集できます。Constraint Managerで定義されたすべてのクラスは、Options for ProjectダイアログのClass Generationタブのオプション設定にかかわらず、設計の同期時にPCBへ転送されます。

Constraint Managerでネットのクラスを作成する簡単なデモンストレーション。

Constraint Managerの詳細をご覧ください。

設計の転送時に生成されるクラス

自動生成されるクラスと、回路図のパラメーターから派生するクラスの作成は、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オプションを有効にすると、要件はPCB Rules and Constraint Editorダイアログではなく、Constraint Manager()で設定します。この場合も、PCBエディターのObject Class Explorerですべての種類のクラスを定義、編集できます。また、回路図とPCBの間で相互に受け渡し可能な種類のクラスは、Constraint ManagerのObject Class Explorer()でも編集できます。

一方のクラスエディターで行った変更は、保存すると、もう一方のエディターでも利用できるようになります。

PCB Object Class Explorer

Object Class Explorerでは、クラスを追加、編集、削除できます。

  1. PCBエディターで利用可能なすべての種類のクラスにアクセスして編集するには、PCBエディターのメニューからDesign » Classesを選択して Object Class Explorerを開きます。 

  2. Constraint Managerの Object Class Explorer でも、回路図とPCBの間で同期可能なクラスを編集できます。アクセスするには、Constraint Manager内で右クリックし、コンテキストメニューからClasses » Class Explorerを選択します。

PCBエディターのObject Class Explorer(Design » Classes)では、PCBエディターでサポートされているすべての種類のクラスにアクセスできます。

Constraint ManagerのObject Class Explorer(右クリックメニュー)では、回路図プロジェクトに同期して戻せるすべての種類のクラスにアクセスできます。

 

Editing a Class Directly

Object Class Explorerを経由せずにクラスを直接編集する方法はいくつかあります。これらについては、後述の「クラスの操作」セクションで説明します。いずれの方法でも、Object Class Explorerの簡易版に相当する Edit <ObjectType> Classダイアログを使用します。各 Edit <ObjectType> Classダイアログには2つの形式があります。デザインスペースから開く場合は、2つのAdd/Remove Currently Selected in the Design Spaceボタンを備えた形式()で表示され、Constraint Managerから開く場合は、それらのボタンがない形式()で表示されます。このダイアログのコントロールについては、Object Class Explorerセクションを参照してください。

エディター間での選択

複数のエディターを連携して操作する際の重要な機能が Cross Select Modeです。この機能では、あるエディターで選択したコンポーネントやネットが、他のエディターでも選択されます。 Cross Select Modeは、この機能をサポートするエディターのToolsメニューから有効にできます(またはショートカットキーShift+Ctrl+Xを押します)。あるエディターでコンポーネントやネットオブジェクトをクリックすると、開いている他のエディターでも、そのオブジェクトが自動的に選択されます。

回路図の論理接続(ネットラベルやポートなどで接続されたネット)全体を対象に操作するには、回路図エディターでAltを押しながらネットをクリックして選択します。これにより、プロジェクトの各シート上にあるネット/バス/ハーネス全体が選択され、選択したネットオブジェクトが表示されるようにズームされます。対象ページでの結果の表示方法は、Preferences ダイアログ()の System – NavigationページにあるCross Select ModeおよびHighlight Methodsオプションで制御します。

Cross Selectモードを有効にすると、エディター間を移動して参照できます。

PCBエディターでのクラスの操作

クラスは設計者が定義する論理的なグループであり、設計の構造化、解析、レビューに非常に役立ちます。

クラスの参照

PCBパネルでは、ネット別やコンポーネント別など、さまざまなモードでPCBを参照できます。対応するモードでは、オブジェクトのクラス別に参照することもできます。クラス別の参照に対応するモードには、コンポーネント、ネット、差動ペア、xSignals、ポリゴン、ストラクチャークラスがあります。 

パネル上部で参照モードを選択すると、以下の例のように、使用可能なすべてのクラスがパネルの上部セクションに一覧表示されます。クロスセレクトモードが有効な場合、該当するオブジェクトは回路図シート上でも選択されます。

 

 

PCBパネルを使用して、基板上のオブジェクトのクラスを参照します。クロスセレクトモードが有効な場合、オブジェクトは回路図シート上でも選択されます。

  • PCBパネル上部のオプションは、オブジェクトをクリックしたときの表示の動作を制御しますi。クロスセレクト時の回路図シートの動作は、前のセクションで説明したように、Preferencesダイアログで設定します。

  • パネル内の領域にカーソルを置いてF1を押すと、その領域の詳細情報を確認できます。

選択したオブジェクトからのクラスの作成

PCBエディターで現在選択されているネット、コンポーネント、ポリゴンなどのオブジェクトのセットから、クラスを作成できます。

PCBパネルを使用して、基板上のオブジェクトのクラスを参照します。現在選択されているネットを新しいクラスに追加するには、パネルのClasses領域で右クリックします。

パネル内または基板上でコンポーネントを選択し、パネルのClasses領域で右クリックすると、選択したコンポーネントを新しいクラスに追加できます。 

Polygon Pour Managerでポリゴンのクラスを作成します。

 
Net class

デザインスペース内で各ネットに属するオブジェクトを少なくとも1つ選択するか、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 Polygon Managerダイアログで必要なポリゴンの項目を選択し、 New Polygon Class ボタンをクリックします。 Object Class Nameダイアログで、新しいポリゴンクラスに名前を付けます。

コンポーネントクラスジェネレーター

コンポーネントのクラスを作成するもう1つの方法は、Component Class Generatorを使用することです。ジェネレーターを実行するボタンは、PCB Object Class ExplorerおよびEdit Component Classダイアログにあります。

Design » Classesコマンドを実行して PCB Object Class Explorer を開き、左側のComponent Classesリストを右クリックしてNew Classコマンドを選択します。リスト内の新しいクラスを選択し、 Component Class GeneratorボタンをクリックしてComponent Class Generatorを開きます。 または、PCBパネル(Componentsモード)のClasses領域を右クリックして、Add Classを選択します。Edit Component Classダイアログで新しいクラスに名前を付け、Class Generatorボタンをクリックして Component Class Generatorを開きます。

コンポーネントクラスジェネレーターを使用すると、クラスに含めるコンポーネントのリストをすばやく作成できます。 コンポーネントクラスジェネレーターを使用すると、クラスに含めるコンポーネントのリストをすばやく作成できます。

ストラクチャークラスの操作

Altium Designerは、回路図からPCBに設計を転送する際に、ネットクラスとコンポーネントクラスを自動生成できます。さらに、クラスの階層構造を定義する機能も備えています。これにより、シート単位でコンポーネントクラスやネットクラスを、そのシートから生成される親クラスにまとめることができます。 このクラスをさらに上位の親クラスの子にすることで、設計の最上位シートまで階層を構成できます。

このように生成される各親クラスをStructure Classと呼びます。ストラクチャークラスは回路図ドキュメントの構造をPCB側で再現するため、高度なナビゲーションに最適です。また、デザインルールの適用範囲の指定や、PCBデザインスペース内のオブジェクトのフィルタリングなど、論理クエリにも使用できます。

ストラクチャークラスの概念

ストラクチャークラスは、ネットクラス、コンポーネントクラス、レイヤークラス、パッドクラス、From Toクラス、差動ペアクラス、デザインチャネルクラス、ポリゴンクラス、ほかのストラクチャークラスなど、あらゆる種類のクラスをメンバーとして含めることができる特殊なクラスです。 設計をPCBに転送する際に、コンポーネントやネットを含むプロジェクト内の各回路図シートからストラクチャークラスを自動生成することで、プロジェクトの構造をPCB側に忠実に再現できます。

プロジェクトの階層はストラクチャークラスで表現できます。各クラスは1枚の回路図シートを表し、メンバーのコンポーネントやネットから生成されたサブクラスを含みます。 プロジェクトの階層はストラクチャークラスで表現できます。各クラスは1枚の回路図シートを表し、メンバーのコンポーネントやネットから生成されたサブクラスを含みます。

ストラクチャクラスは、回路図シートによって作成された階層設計を反映します。各ストラクチャクラスに含まれるコンポーネントクラスとネットクラスは、ソース回路図シートからコンポーネントクラスとネットクラスを生成する際に指定したオプションによって決まります。

PCBエディターでは、既存の任意のクラスをストラクチャクラスに追加できます。

ストラクチャクラスの自動生成

プロジェクトの回路図シートからストラクチャクラスを自動生成するには、Options for Projectダイアログ(Project » Project Options)のClass Generationタブで設定します。プロジェクト内のソース回路図シートからストラクチャクラスを生成するには、Structure Classes列にある、そのシートに対応するGenerateチェックボックスを有効にします。その回路図シートのComponent ClassチェックボックスとNet Class Scopeオプションも有効になっている場合、それらのクラスがストラクチャクラスのメンバーになります。

ストラクチャクラスを生成する回路図シートと、そのシートのコンポーネントおよびネットを含めるかどうかを指定します。
ストラクチャクラスを生成する回路図シートと、そのシートのコンポーネントおよびネットを含めるかどうかを指定します。

  • 自動生成される各ストラクチャクラスには、その下位シートを表すシートシンボルのデジグネーターが名前として使用されます。ただし、最上位シートは例外で、シートのファイル名がストラクチャクラスの名前として使用されます。

  • 適切なComparator()オプションとECO Generation()オプションが有効になっていることを確認してください。

ストラクチャクラスの手動定義

PCBドキュメント内のほかの種類のクラスと同様に、PCBエディターでストラクチャクラスを手動で作成、管理できます。これは、クラス構造の階層を参照しながらPCBパネルで行うか、Object Class Explorerダイアログ(Design » Classes)で行えます。このダイアログでは、ストラクチャクラスはStructure Classesフォルダーの下に定義されます。右クリックメニューの使い慣れたコマンドで、必要に応じてクラスを追加、名前変更、削除できます。ストラクチャクラスには、PCB設計で使用できるあらゆる種類のクラスを含めることができます。

Object Class Explorerダイアログで、PCBエディター内のほかの種類のクラスと同じように、ストラクチャクラスを作成、管理できます。
Object Class Explorerダイアログで、PCBエディター内のほかの種類のクラスと同じように、ストラクチャクラスを作成、管理できます。

クラス構造の階層の参照

PCBパネルの Structure Classesモードでは、主な3つの領域に次の内容が表示されます。

  • PCBドキュメントで現在定義されているすべてのStructure Classesのリスト。回路図シートから自動生成されたものと、PCB自体で定義されたものの両方が含まれます。

  • 選択したストラクチャクラスのメンバーとして定義されているすべてのClasses。

  • 選択したクラス内の個々のClass Members(コンポーネント、ネットなど)。

PCBパネルのモードをStructure Classesに設定すると、PCBドキュメントのクラス階層全体を参照できます。 
PCBパネルのモードをStructure Classesに設定すると、PCBドキュメントのクラス階層全体を参照できます。 

Structure Classesモード

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 の旧バージョンのドキュメントは、Other Installers ページの Legacy Documentation の項目をご覧ください。

Contents