Question
Inventorの言語設定に依存せずにInventorのAPIでBOMのソート列を指定する方法はありますか?
Answer
InventorのAPIでは、BOMViewをソートする際に列名を指定する必要があります。
指定する列名は、実行中のInventorの言語設定により同じ項目でも名前が変わる(例 日本語名:”項目”、英語名:”Item”)ため、同じ列でソートする場合においても実行中のInventorの言語設定により、APIに指定する項目名を変える必要があります。
このため、複数言語での利用を想定する場合、以下のサンプルコード(日・英でのサンプル)のように、実行環境の言語に合わせてソート項目名を指定する必要があります。
Dim bv As BOMView
Set bv = ThisDocument.ComponentDefinition.BOM.BOMViews(2)
Select Case ThisApplication.LanguageCode
Case "en-US"
Call bv.Sort2("Item")
Case "ja-JP"
Call bv.Sort2("項目")
End Select
なお、Inventor2020以前のバージョンの場合、日本語環境のInventorにて保存したデータを、英語環境のInventorで開いた場合には、上述のサンプルコードのCall bv.Sort2("Item")の実行でエラーが発生します。
この挙動については、Inventor 2021で修正対応がされています。
記事全体を表示