今回は、Inventor 2022のモデル状態について、Inventor以外の関連製品・サービスでのAPIの対応状況について、ご案内をしたいと思います。
Apprentice Server
Inventorの関連製品として、InventorアプリケーションAPIのサブセットを提供するInventor Apprentice Serverがあります。
Inventor Apprentice Serverは、無償のInventor Viewの一部としてインストールされInventorファイルへのアクセス(主に読み取り、一部書き込みが可能)ができるアプリケーションを開発することが出来ます。
Inventor Apprentice Serverで、モデル状態を持つファイルへアクセスした場合の挙動について、確認をしてみたいと思います。
今回の検証でも、前回の記事で用いたiptファイル(Part1をダウンロード)を利用して、iPropertyの「部品番号」の値を取得して動作の確認をします。
このiptファイルは、3つのモデル状態(マスター、モデル状態1、モデル状態2)を持ち、それぞれのモデル状態でiPropertyの「部品番号」と「ストック番号」に異なる値が設定されています。
利用するソースコードは、以下のような内容となります。
Try
Dim invApprentice As InventorApprentice.ApprenticeServerComponent = New InventorApprentice.ApprenticeServerComponent()
Dim oPartDoc As InventorApprentice.ApprenticeServerDocument
oPartDoc = invApprentice.Open("Part1.ipt")
' Get the design tracking property set.
Dim invDesignInfo As InventorApprentice.PropertySet = oPartDoc.PropertySets.Item("Design Tracking Properties")
' Get the part number property.
Dim invPartNumberProperty As InventorApprentice.Property = invDesignInfo.Item("Part Number")
MessageBox.Show("Part Number: " & invPartNumberProperty.Value)
Catch e As Exception
MessageBox.Show(e.Message)
End Try
iptファイルを開き、”マスター” モデル状態をアクティブなモデル状態にしてiptファイルを保存して実行をすると以下のメッセージボックスが表示されます。
次に、”モデル状態1” モデル状態をアクティブなモデル状態にしてiptファイルを保存して実行をすると以下のメッセージボックスが表示されます。
このように、Apprentice Serverで既存のAPIを使用して、モデル状態に依存する内容にアクセスした場合、最後に対象のファイルが保存された際にアクティブなモデル状態の内容にアクセスします。
それでは、Apprentice Serverで任意のモデル状態の内容にアクセスすることや、現在のモデル状態を変更することは出来るのでしょうか?
残念ながら、Apprentice Serverでは任意のモデル状態の内容にアクセスすることや、現在のモデル状態を変更する等のAPIは用意されておりません。これは、Apprentice ServerがInventor ファイルへの読み取りを行うAPIを提供するという製品であるという位置づけから、モデル状態に関するAPIをスコープ外としているためです。
将来的には変更がされる可能性はありますが、現時点ではApprentice Serverからモデル状態にアクセスは出来ない事にご留意ください。
それでは次に、ForgeのModel Derivative APIについてみていきたいと思います。
Forge Model Derivative API
Forge のModel Derivative APIを用いて、モデル状態を持つInventorファイルから、SVF等のViewerファイルを出力した場合どのようになるでしょうか?
結論から申し上げますと、Model Derivative APIでは、Apprentice Serverと同様に最後に対象のファイルが保存された際にアクティブなモデル状態が扱われ、出力されるSVFファイルにも、その状態が反映されます。
このため、全モデル状態を持つSVFファイルを出力したいといった場合には、Design Automationを用いて、モデル状態を切り替えながら、各モデル状態に対応したSVFファイルを出力するといったカスタマイズが必要となります。
このDesign Automationを用いたカスタマイズについては、別途詳細を解説したいと思います。
By Takehiro Kato
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。