BOMエンジンインターフェース

 

このテキストはCSS(Cascading Style Sheets)のコードであり、特定のHTML要素にスタイルを適用するために使用されます。このコードは、クラス名「panel」に適用されるスタイルを定義しています。具体的には、背景色を#f5f5f5に設定し、下マージンを20px、パディングを上下に10px、左右に20pxに設定しています。ただし、このテキストは直接的な電子設計、PCB、またはエンジニアリングに関連する内容ではないため、日本語に翻訳する対象としては適切ではありません。

Altium SDKの部品表(BOM)インターフェースは、プロジェクトBOMデータと関連パラメータの作成と管理を可能にします。

BOM 2.0 エンジンはAltium SDK 4.0で利用可能です。その主要なクラスはBOM マネージャーIBomManager)で、特定のドキュメントデータソースタイプに対してIBomManagerFactoryEDP.Utils.GetBomManagerFactory())によって呼び出されます。

Altium Developerのインストールには、BOM 2.0エンジンのサンプルプロジェクトが含まれています。デフォルトのAltium Developerインストールでは、C# (CSharp) BOMPanelのサンプルの場所は:C:\ProgramData\Altium\[ホストAltiumソフトウェア]\Extensions\Altium Developer\SDK4.0\CSharp\Examples\BOMPanelです。

Altium SDKを通じたBOMの使用

開始

Altium SDKを通じてBOM(部品表)を使用するための最初の入り口はIBomManagerFactoryです。

BOMファクトリーのインスタンスを取得するには、EDP.Utils.GetBomManagerFactory()メソッドを使用します。

部品表の取得

部品表オブジェクトは、IBomManager/IActiveBomManagerのインスタンスによって表されます:

  • 任意のドキュメント(SCH / PCB / BOMDOC)をコンポーネントのソースとして:
    IBomManagerFactory.GetManagerForDocument(srcDoc)
  • SCH / BOMDOCをコンポーネントのソースとし、PCBドキュメントをPCBパラメータの追加ソースとして:
    IBomManagerFactory.GetManagerForDocumentPcb(srcDoc, pcbDoc)
  • プロジェクト全体に対して:
    IBomManagerFactory.GetManagerForProject(project)
  • PCBドキュメントをPCBパラメータの追加ソースとしてプロジェクト全体に対して:
    IBomManagerFactory.GetManagerForProjectPcb(project, pcbDoc)

IBomManager / IActiveBomManager

上記のオプションに応じて、EDP.IBomManager または EDP.IActiveBomManager のインスタンスが得られます。

どちらを持っているかを確認するには、インスタンスを IActiveBomManager にキャストします:
var activeBomManager = bomManager as IActiveBomManager;
...そして、結果が null でないかを確認します。

BOMの内容を取得する

行を取得する

IBomComponentList components = bomManager.GetSchema().GetComponents()

IBomComponentListIBomComponent のリストです

行の「オリジナル」コンポーネントを取得する

まず、行(IComponent)が実際にグループであるかどうかを確認します。つまり、1つ以上のコンポーネントを含んでいるかどうか:row.IsGroup()

次に、それをグループにキャストして、そのコンポーネントを取得します:row.AsGroup().GetComponents()

行の列(パラメータ)値を取得する

指定されたIBomComponent行の列パラメータ値を取得します。

行パラメータの辞書を取得します:
IBomParameterDictionary params = row.GetParameters()

...そして、辞書のメソッドを使用します。
bool TryGetParameter(string argName, out IBomParameter argParameter)

...または:
GetStrValue(..), GetIntValue(..);

列のエイリアスを取得する

ActiveBOMドキュメントには、列のエイリアス(カスタム名)を指定できます。

IActiveBomManager(ただのIBomManagerではない)を持っている場合、以下にアクセスできます:
string aliases = activeBomManager.GetOptions().GetColumnsAliases()

この文字列はパースする必要があります - ‘|’文字で分割し、その後‘=’で受け取ったペア

すべての列(パラメータ)のリストを取得する

IBomParameterDefinitionList columns = bomManager.GetSchema().GetParameterDefinitions()

カスタム列のリストを取得する

ActiveBOMドキュメントでは、カスタム列を作成できます。これらは、他の(自動生成された)列とともにIBomParameterDefinitionListに表示されます。何らかの理由で専用のリストが必要な場合は、以下で取得できます:
activeBomManager.GetOptions().GetCustomColumns()

必要なBOMの設定

BOMを設定できるポイントは以下の通りです:
IBomManagerOptions o = bomManager.GetOptions()

...またはActiveBOMの場合:
IActiveBomManagerOptions ao = activeBomManager.GetOptions();

フラットビューモード

1 o.SetAutoGroup(false);
2 o.SetGroupOrder("");
3 ao?.SetMultiVariant(false);

統合ビュー

1 o.SetAutoGroup(true);
2 o.SetGroupOrder("");
3 ao?.SetMultiVariant(true);

ソート

以下のようなものがあるとします:
IList<Tuple<string, ListSortDirection>> sortOrderParams;

ここで、最初の項目はパラメーターの名前、二番目はソート方向です。

...それから、以下の設定をBOMの使用に適用します:

1 o.SortOrder.Set(sortOrderParams);
2 o.AutoSort = sortOrderParams.Count == 0;

Altium Designerの他のBOMに影響を与えないようにする

BOMマネージャーオプションは、変更される前に保存することをお勧めします:

1 IBomManagerOptions options
2 var savedState = options.GetState();

必要なデータがすべて収集されたら、オプションを復元します:
options.RestoreState(savedState);

try-finally節の使用を推奨します。

BOMの内容を変更する

行に行番号を設定する

行番号の設定はActiveBOMのみ可能です:

1 IActiveBomManager activeBomManager = ... // create BomManager for .BomDoc
2 IBomComponent component = ... // find component in BOM schema
3 var catalogId = component.GetParameters().GetStrValue("%CATALOGID%");
4 var catalog = activeBomManager.GetCatalog();
5 var catalogItem = catalog.FindItem(catalogId);
6 catalogItem.SetLineNumber("...");

カタログアイテムの行番号を変更した後にBOMスキーマを更新するには、bomManager.UpdateSchemaを呼び出します(注 - これにより、BOMスキーマ全体が再作成されます)。

カスタム行の追加

ActiveBOMにカスタム行を追加するには:

1 IActiveBomManager activeBomManager = ... // create BomManager for .BomDoc
2 var catalog = activeBomManager.GetCatalog();
3 var catalogItem = catalog.AddCustomRow();

作成したカスタム行のパラメータを設定するには、catalogItem のメソッド SetCommentSetDescriptionSetLineNumber(または任意のパラメータを設定するための GetParameters().SetValue メソッド)を使用します。

カスタム行を作成した後にBOMスキーマを更新するには、bomManager.UpdateSchemaを呼び出します。

ActiveBOMドキュメントを保存する

何か変更を加えた後、ActiveBOMドキュメント(*.BomDoc)を保存したい場合があります。これは以下のように行います:

1 IDocument document = ... // get ActiveBOM document
2 var serverDocument = document.DM_ServerDocument();
3 serverDocument.DoFileSave(document.DM_DocumentKind());
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Content