クラスは、コンポーネントのグループやネットのグループなど、オブジェクトタイプのサブセットに対してさまざまなコマンドを操作できるように提供されます。オブジェクトは複数のクラスに属することができます。
クラスは以下のために作成できます:
- ネット
- コンポーネント
- レイヤー
- パッド
- フロム-トゥ
- 差動ペア
- デザインチャネル
- ポリゴン
- xシグナル
また、構造クラスを作成することができます。構造クラスは、そのメンバーとして任意のタイプのクラスを保持できる特別なタイプのクラスです。
回路図からのクラスの生成と同期
回路図からPCBへの設計を移行する際、Altium Designerはコンポーネントとネットクラスの生成をサポートしています。PCB領域に移行する前にクラスを設定しておくことで、PCBスペースでの作業時間を大幅に節約できるだけでなく、回路図が設計情報の真の参照であることを保証します。
回路図から生成され、PCBに同期されるクラスには2種類あります:
- 自動クラス - バス/ハーネス、コンポーネント、またはシートの内容から派生します。
- ユーザー定義クラス - 設計者によって配置された設計指示から派生します。
これらの生成は、プロジェクトのオプションダイアログのクラス生成タブで設定されます(同期はコンパレータタブのオプションによって制御されます)。
デザイン同期中に自動生成されるクラスを設定し、ユーザー定義クラスを作成したい場合は、クラス生成タブのオプションを使用します。
制約マネージャー機能を使用する際には、パラメータセットディレクティブを使用して定義された自動生成されたネットクラスは、回路図からPCBを更新する際に検出されず、転送されないことに注意してください。定義されたネットクラスのみが制約マネージャーから転送されます。
回路図に配置されたディレクティブからルール、ネットクラス、差動ペア、差動ペアクラスをインポートするには、回路図からアクセスした際の制約マネージャーの物理ビューまたは電気ビューの右クリックメニューからディレクティブからのインポートコマンドを使用します。-詳細を学ぶ。
自動生成されたネットクラス
以下のネットのグループに対して、ネットクラスは自動的に生成されます:
-
バス用ネットクラスの生成 - このオプションをチェックすると、設計内の各バスに対して自動的にネットクラスが生成されます。クラスのメンバーは、そのクラスが生成されたバスの個々の構成ネットになります。
生成されたネットクラスは、バスの名前を使用して命名されます。
-
コンポーネント用ネットクラスの生成 - このオプションをチェックすると、設計内の各コンポーネントに対して自動的にネットクラスが生成されます。クラスのメンバーは、そのクラスが生成されたコンポーネントのピンに接続されている関連ネットになります。
生成されたネットクラスは、コンポーネントの指定子を使用して、フォーマット<ComponentDesignator>_Netsで命名されます。
- バスセクション用に別のネットクラスを生成 - このオプションをチェックすると、各バスセクションに対して別のネットクラスが自動的に生成されます。バスセクションは、実際にはより大きなバスの一部であるバスを指定することによって作成されます。例えば、バス
D[15..0]
からです。
-
名前付きシグナルハーネス用ネットクラスの生成 - このオプションを有効にすると、設計内の各名前付きシグナルハーネスに対して自動的にネットクラスが生成されます。クラスのメンバーは、そのクラスが生成された名前付きシグナルハーネスによって集められたシグナルに関連するネットになります。
名前付きシグナルハーネスにはネットラベルが添付されています。生成されたネットクラスは、シグナルハーネスに添付されたネットラベルの名前を使用して命名されます。
- シートレベルクラス生成グリッド - この領域では、個々の回路図シートレベルでのコンポーネントおよび/またはネットクラスの自動生成を制御できます。プロジェクトのすべてのソース回路図シートがリストされ、各シートについて以下の情報が提示されます:
- シート名 - 回路図ドキュメントの名前。
- フルパス - ドキュメントが存在するフォルダへの絶対パス。
- コンポーネントクラス - このオプションをオンにすると、シートのコンポーネントクラスが生成されます。
- ネットクラスの範囲 - このシートにネットクラスを生成するかどうか、および生成する場合の範囲を決定するためにこのフィールドを使用します。フィールドのドロップダウンには、以下の選択肢が提供されます:
- None - このシートにネットクラスを生成しない。
- Local Nets Only - このシートにネットクラスを生成するが、シートにローカルなメンバーネットのみを含む。
- All Nets - このシートにネットクラスを生成し、シートに関連するすべてのメンバーネット(ローカルおよび他の場所に行くもの)を含む。
- 構造クラス生成構造 - このシートに構造クラスを生成するためにこのオプションをチェックします。
列の右クリックコンテキストメニューから利用可能なコマンドを使用して、コンポーネントクラスの生成を有効/無効にするか、ネットクラスの生成の範囲を設定します。標準の複数選択方法(Ctrl+click, Shift+click, click&drag)を使用して、複数のシートエントリを選択できます。
トップシートのコンポーネントおよび/またはネットについては、それぞれのコンポーネントおよび/またはネットクラスは、回路図ドキュメント名を使用して命名されます。子シートのコンポーネントおよび/またはネットについては、それぞれのコンポーネントおよび/またはネットクラスは、シートシンボルの指定子を使用して命名されます。
この領域の下部にあるテキストは、選択に基づいて動的に変更され、どのクラスが自動的に生成されるかの概要を提供します。
自動生成されるコンポーネントクラス
回路図プロジェクトが複数のシートにわたって構成され、各シートが全体設計の論理ブロックを表すことは一般的です。これをサポートするために、プロジェクト内の各回路図シートに対して、そのシート上のすべてのコンポーネントを含むコンポーネントクラスを自動的に生成することができます。これは、適切なコンポーネントクラスチェックボックスを有効にすることで行えます。PCBコンポーネントクラスは、その回路図シートを参照するシートシンボルの指定子と同じ名前になります。シートにコンポーネントが含まれていない場合、コンポーネントクラスは作成されません。
自動生成されるルーム
ルームは、コンポーネントの配置を補助する多角形のオブジェクトです。ルーム生成チェックボックスが有効になっている各回路図シートに対して、ルームが自動的に作成されます。
プロジェクト オプションダイアログのクラス生成タブにあるルームの生成オプションは、新しいPCB設計プロジェクトの回路図シートではデフォルトで無効になっています。
自動生成される構造クラス
構造クラスには、ネットクラス、コンポーネントクラス、および下位階層の構造クラスがメンバーとして含まれます。このオプションが有効にされた各シートに対して構造クラスが作成され、そのシートに対して有効にされている場合はシートレベルのコンポーネントおよびネットクラスも含まれます。PCBエディタで構造クラスを編集し、他のネット/コンポーネント/構造クラスを追加します。PCBパネルの構造モードを使用して、その構造クラス内のコンポーネントとネットを特定します。
ユーザー定義クラスの作成
関連するコンポーネントやネットにパラメータを添付することで、ユーザー定義のコンポーネントクラスやネットクラスも作成できます。適切なユーザー定義クラスのチェックボックスがクラス生成タブのプロジェクトのオプションダイアログで有効になっている場合、PCBコンポーネントとネットクラスが作成されます。
ユーザー定義ネットクラス
オブジェクトページ: パラメータセット
PCBネットクラスにネット(またはバスやシグナルハーネス内のネット)を追加するには、そのネット/バス/ハーネスにパラメータを添付する必要があります。これは、下の画像に示されているように、ネット/バス/ハーネスに接触するようにパラメータセットオブジェクトを配置することで行います(配置 » ディレクティブ » パラメータセットコマンド)。
パネルのクラスセクションに、下の画像に示されているように、ネットクラスの名前を入力します。
複数のパラメータセットオブジェクトを回路図の異なる場所に配置して、複数の個別のネットを同じPCBネットクラスに追加することができます。
PCBネットクラスにネットを追加するには、回路図ネットにパラメータセットオブジェクトを添付し、そのパラメータセットオブジェクトにクラス定義を追加します。
ユーザー定義コンポーネントクラス
回路図で、コンポーネントが回路図とPCBが同期されたときにPCBコンポーネントクラスに追加されるよう指定できます。
それを行うには、コンポーネントにパラメータを追加し、名前文字列をClassName
に設定し、値文字列を必要な値に設定します。
ブランケットを使用して複数のネットにディレクティブを適用する
オブジェクトページ: ブランケット
また、ブランケットディレクティブを配置して、PCBネットクラスに複数のネットを追加することもできます。ブランケットの機能は、ブランケットの下にあるすべてのネット(ブランケットの下にあるネット識別子、たとえばネットラベルやパワーポート、またはブランケット内に終端頂点を持つネットによって識別される)にディレクティブを適用できるようにすることです。
パラメータセットディレクティブをワイヤに触れるように配置する代わりに、下の画像に示すように、ブランケットの端に触れるように配置します。パラメータセットオブジェクト内のパラメータの値がPCBネットクラス名を定義するものであり、パラメータセットオブジェクトの表示名ではないことに注意してください。以下の画像例では、パラメータ セットを使用してルーティング幅の設計ルールを定義しています。
Blanket Directiveを使用して、その下にあるすべてのネットをPowerというPCBネットクラスにまとめる方法。パラメータセットオブジェクト名は命名には使用されず、視覚的な参照のみです。
PCB上でのクラスの扱い方
アクティブなPCBドキュメントのオブジェクトクラスは、2つの主要な場所から閲覧および管理できます:
- クラス領域は、PCBパネルの関連モードにあります。ここから新しいユーザー定義クラスを追加(右クリックしてクラスを追加を選択)、または既存のユーザー定義クラスのメンバーシップを編集(ダブルクリックまたは右クリックしてプロパティを選択)できます。クラスの名前とそのメンバーは、対応するクラスを編集ダイアログで定義されます。
ユーザー定義クラスのみを追加および編集できます。デフォルトのシステムクラスは編集できません。
既存のユーザー定義コンポーネントクラスのプロパティにアクセスする例、PCBパネルから(コンポーネントモードで設定されています)。
編集クラスダイアログのオプションとコントロール
- オブジェクトクラスエクスプローラーダイアログはPCBエディターのメインデザインメニューでクラスコマンドを選択することでアクセスできます。
オブジェクトクラスエクスプローラーダイアログ
既存のユーザー定義クラスをクリックすると、そのメンバーが表示され、必要に応じて修正できます。新しいユーザー定義クラスを追加するには、作成したいクラスのカテゴリ内で右クリックし、コンテキストメニューからクラスの追加を選択します。新しいクラスがデフォルト名新規クラスでリストに表示されます。クラス名をクリックして、そのメンバーにアクセスし定義します。クラスの名前を変更するには、クラス名をクリックしてからもう一度クリックして編集用にフォーカスするか、または右クリックしてクラス名の変更を選択します。
選択したオブジェクトに対して転送ボタンがあることに注意してください。設計スペースで最初にオブジェクトを選択し、それからこれらの選択したオブジェクトを転送するボタンを使用してクラスを構築する方が簡単な場合がよくあります。類似オブジェクトを探すダイアログ、PCBパネル、リストパネルなどを使用して事前に選択を作成していた場合、以下の画像に示されているボタンが利用可能になるはずです。このボタンを押すと、選択が非メンバー列からメンバー列に移動します。
選択したオブジェクトからクラスを作成する
PCBエディタの一部のオブジェクトについては、エディタの特定のコントロールを使用して、これらのオブジェクトのクラスを作成できます:
オブジェクトクラス名ダイアログ
コンポーネントクラスジェネレータ
コンポーネントクラスを追加または編集する際、定義された検索基準に基づいてそのメンバーシップを迅速に生成することができます。これは、コンポーネントクラスジェネレーターダイアログを使用して行われ、クラスジェネレーターボタン(コンポーネントクラス編集ダイアログの左下)またはコンポーネントクラスジェネレーターボタン(オブジェクトクラスエクスプローラーダイアログの左下)をクリックすることでアクセスできます。クラスメンバーとして追加したいコンポーネントを効果的に「捕捉」するために使用できる属性には、Designator、Comment、およびFootprintが含まれます。ボタンをクリックするだけで、検索基準に一致するすべてのコンポーネントがクラスに追加されます。
構造クラスの扱い方
Altium Designerは、回路図からPCBへの設計転送時にクラス(コンポーネントおよびネット)の生成をサポートする高品質で堅牢なサポートを既に提供していました。このサポートは、PCBドキュメント内で階層構造のクラスの生成を定義できる機能により、次のレベルに引き上げられます。本質的に、これにより、シートレベルで、コンポーネントおよび/またはネットのクラスを親クラスにまとめることができ、その親クラスは上位の親クラスの子供となり、設計の最上位シートまで全てが連なります。この最上位シートは、最上位の生成された親クラス(または「スーパークラス」)のソースであり、クラス構造階層の先頭です。これらの生成された親クラスは構造クラスとして参照されます。構造クラスは、PCB領域内での回路図ドキュメント構造の再現を可能にするだけでなく、デザインルールの範囲指定やフィルタリングなど、論理クエリで使用することもできます。
構造クラスの概念
構造クラスは、特別なタイプのクラスであり、そのメンバーとしてあらゆるタイプのクラスを保持できます:
- ネットクラス
- コンポーネントクラス
- レイヤークラス
- パッドクラス
- フロムトゥクラス
- 差動ペアクラス
- デザインチャネルクラス
- ポリゴンクラス
- その他の構造クラス
プロジェクトの各回路図シートから構造クラスを自動的に生成することにより、コンポーネントやネットを含む場合でも、設計をPCBに転送する際に、プロジェクトの構造をPCB側で忠実に表現することができます。
回路図シートのコンポーネントとネットを基本的に「区分け」するための整然とした手段であるStructure Classオブジェクトは、PCB内の階層的クラス構造の背後にある原動力です。Structure Classesを使用することで、任意の深さの階層を構築できます。主に構造は回路図ソースドキュメントの階層的な性質によって定義されますが、希望すればPCB側で直接Structure Classesを追加、管理、削除することもできます。
PCBにクラス階層を導入すること - ストラクチャクラスの概念は、プロジェクト階層を忠実に再現し、各ストラクチャクラスが基本的に1枚の回路図シートを表し、そこに生成されたメンバーコンポーネントやネットのサブクラスを持つことを可能にします。
ストラクチャクラスは、回路図シート自体の設計階層を反映しています。コンポーネントとネットクラスの観点から、特定のストラクチャクラス内のメンバーシップは、もちろん、ソース回路図シートからコンポーネントとネットクラスを生成する際に指定されたオプションに依存します。
構造クラスのメンバーシップを、必要に応じてカスタマイズしてください。プロジェクト階層は自動的に移行できますが、初期メンバーシップはコンポーネントクラス、ネットクラス、またはその他の構造クラスになります。既存の構造クラスを使用するか、または必要に応じてPCBドキュメントの他のクラスタイプを整理するために、全体の階層内で新しいものを作成してください。
構造クラスの自動生成
PCB設計プロジェクトの回路図シートから構造クラスを自動生成する設定は、プロジェクトオプションダイアログのクラス生成タブ(プロジェクト » プロジェクトオプション)で定義されます。プロジェクト内のソース回路図シートから構造クラスを生成するには、構造クラス列の関連する生成オプションを有効にするだけです。
設計がPCBドキュメントと同期されるときに、どの回路図シートから構造クラスを生成するかを指定します。
自動的に生成される各構造クラスは、対応する回路図サブシートを参照するシートシンボル/デバイスシートシンボルの指定子を使用して命名されます。この例外はトップシートで、その構造クラスはそのシートのファイル名を使用して命名されます。
コンパレータとECO生成のサポート
ソースの回路図ドキュメントとPCB間の同期は、Altium Designerの比較エンジンを通じて可能となり、検出された違いは、エンジニアリング変更命令(ECO)を通じて実施される修正によって対処されます。Structure Classesをサポートするために、ComparatorとECOジェネレーターがそれに応じて強化されました。
Structure Classesに関連する違いの検出のために、Comparatorタブのプロジェクトオプションダイアログに新しいセクションが追加されました - Structure Classesに関連する違い
。
Structure Classesに対する追加の比較テスト。
変更指示を同期させるために必要な変更指示に対応するため、ECO生成タブのプロジェクトオプションダイアログに新しいセクション「構造クラスに関連する変更
」が追加されました。
構造クラスの追加変更タイプ - ソースの回路図とPCB間の同期を維持するために適用される変更指示を生成するために使用されます。PCBへの構造クラスの追加を示すECOの例が示されています。
構造クラスの手動定義
PCBドキュメントの他のクラスタイプと同様に、PCBドキュメント内で直接、Structure Classes(構造クラス)を手動で作成および管理することができます。これは、PCBパネルから、クラス構造階層をブラウズしながら、またはオブジェクトクラスエクスプローラーダイアログ(設計 » クラス)から行うことができます。後者について考えると、Structure ClassesはStructure Classes
フォルダーの下に定義されており、必要に応じて追加、名前の変更、またはコマンドの削除を行うための右クリックメニューに馴染みのあるコマンドがあります。新規または既存のStructure Classについては、必要に応じてそのメンバーを定義します。これらは、PCB設計で使用されるサポートされているクラスタイプのいずれかで構成することができます。
他のクラスと同様に、PCB内で直接オブジェクトクラスエクスプローラーダイアログから構造クラスを作成・管理します。
クラス構造階層の閲覧
PCBパネルの構造クラスモードでは、その3つの主要な領域が次のように変更されます(上から順に):
- PCBドキュメントに現在定義されている構造クラスのすべてのリスト;回路図シートから自動生成されたものと、PCB自体で定義されたものの両方。
- その選択された構造クラスの定義済みメンバーであるすべてのクラス。
- 各クラスを構成するクラスメンバー(コンポーネント、ネットなど)。
PCBパネルのモードを構造クラスに設定して、PCBドキュメントの全体的なクラス階層を閲覧します。パネルのさまざまな領域でエントリ(または複数のエントリ)をクリックすると、メインデザインウィンドウの表示が適用されたフィルタリングを反映して変更されます。
構造クラス領域
パネルの上部には、PCBドキュメントで現在定義されているすべての構造クラスがリストされています。これには、PCBプロジェクトのソース回路図ドキュメントから自動的に生成されたもの( アイコンで示される)と、PCBドキュメント自体で手動で定義されたもの( アイコンで示される)が含まれます。構造クラスの隣にある矢印アイコンをクリックすると、そのクラスから派生する構造クラス階層が表示されます。トップレベルの構造クラスを展開すると、完全な階層を確認できます。
PCB例の構造クラス 構造クラスエントリーをダブルクリックすると、クラスの名前を変更し、必要に応じてそのメンバー(クラスタイプのいずれか)を再定義できる構造クラス編集ダイアログにアクセスできます。
構造クラスに必要に応じて変更を加えるための身近な編集ダイアログ。
この領域の右クリックメニューでは、以下のコマンドが提供されます:
- すべて選択 - 現在の階層のすべての構造クラスエントリを選択します。
- フィルター解除 - 設計スペースでのフィルタリングをクリアします。
- レポート - 定義されたすべての構造クラスのフラットリストを提示するレポートを生成します。レポートはレポートプレビューダイアログでプレビューが開きます。
- プロパティ - 現在選択されている(そしてフォーカスされている)構造クラスの構造クラス編集ダイアログにアクセスします。このコマンドは、エントリを直接ダブルクリックするのと同じです。
- クラス追加 - 新しい構造クラスを追加します。定義(名前とメンバーシップ)は構造クラス編集ダイアログから行われます。
- クラス削除 - 選択された構造クラスを削除します。
クラス領域
パネルの中央領域には、上部の領域で選択された構造クラスのすべてのクラスメンバーがリストされています。
選択された構造クラスのクラスメンバー例。
クラスエントリーをダブルクリックすると、関連する編集ダイアログにアクセスできます。そこから、クラスの名前を変更したり、必要に応じてメンバーを再定義したりできます。
コンポーネントクラスエントリの関連編集ダイアログ。
この領域の右クリックコンテキストメニューは、以下のコマンドを提供します:
- すべて選択 – 領域内のすべてのクラスエントリを選択します。
- フィルタ解除 – デザインスペース内のフィルタリングをクリアします。
- レポート – 領域内のすべてのクラスのリストを提示するレポートを生成します。レポートはレポートプレビューダイアログでプレビューが開きます。
- プロパティ – 現在選択されている(そしてフォーカスされている)クラスの関連編集ダイアログにアクセスします。このコマンドは、エントリ上で直接ダブルクリックするのと同じです。
クラスメンバー
パネルの下部領域には、上部の領域で現在選択されているクラスのすべてのメンバーがリストされます。
選択されたクラスのメンバー例。
クラスメンバー項目をダブルクリックすると、クラスの名前を変更し、必要に応じてそのメンバーを再定義できるプロパティパネルの関連モードにアクセスできます。
この領域の右クリックメニューには、以下のコマンドが提供されています:
- すべて選択 – 領域内のすべてのクラスメンバーエントリを選択します。
- フィルター解除 – デザインスペースのフィルタリングをクリアします。
- レポート – 領域内のすべてのクラスメンバーのリストを表示するレポートを生成します。レポートはレポートプレビューダイアログでプレビューが開きます。
- プロパティ – 現在選択されている(そしてフォーカスされている)クラスメンバーの関連プロパティ/編集ダイアログにアクセスします。このコマンドは、エントリ上で直接ダブルクリックするのと同じです。
- 選択したものをズーム – これはプリミティブオブジェクトエントリにのみ利用可能です。デザインスペースは、定義されたズームレベルに従って、そのオブジェクトにズームインします。パネルのハイライトコントロールの一部としてズームオプションが有効になっている場合、このコマンドは効果がありません。
論理クエリでの構造クラスの使用
論理クエリは、設計内のオブジェクトをターゲットにする際の基本的な推進力です。これらは、設計を特定の(必要な)方法で制約するために設計ルールの範囲を指定する際や、設計ワークスペース内のオブジェクトをフィルタリングする際に使用できます。クエリ言語は、論理クエリ式を構築する際に構造クラスの使用に対応するように強化されました。以下のキーワードがPCB機能 - メンバーシップチェックセクションに追加されました:
InStructureClass
- オブジェクトクラスが指定された構造クラス内にあるかどうかをチェックします。
このキーワードは、設計ルールの範囲を指定するクエリを構築する際にも使用できます。これは、クエリヘルパーダイアログとクエリビルダーダイアログの両方で使用することがサポートされています。
異なる構造クラス内に含まれるメンバーオブジェクト間のクリアランスルールの例。
フィルター式で使用する論理クエリを作成する際に、このキーワードを使用してください。これにより、指定された構造クラス内から派生するすべての低レベルメンバーオブジェクトを迅速にフィルタリングできます。
設計空間内の特定の構造クラスに属するすべてのオブジェクトを迅速にフィルタリングします。