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
)で、特定のドキュメントデータソースタイプに対してIBomManagerFactory(EDP.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()
IBomComponentList
は IBomComponent
のリストです
行の「オリジナル」コンポーネントを取得する
まず、行(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
のメソッド SetComment
、SetDescription
、SetLineNumber
(または任意のパラメータを設定するための 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()); |