Factory Design 用の API (アプリケーション プログラミング インタフェース)

API を通じて、Factory Design レイアウトを操作します。

Factory Design の In-CAD API (アプリケーション プログラミング インタフェース)は、Factory Design レイアウトをプログラム的にアクセスしたり操作できるように設計されています。API は、Inventor および AutoCAD で使用できます。

Factory Design API は、他のコンピュータ システム上でファクトリ レイアウトを統合することを可能にします。たとえば、製品アセンブリ ワークフローで人間工学に基づいた解析を行うために使用されるカスタム ツールがあり、ワークステーションまたはコンピュータの位置を調整する場合には、このツールの出力をプログラムで使用することで、Factory Design レイアウト内のアセットの位置に影響を与えることができます。

この API を使用するには、CAD のプロセスで実行されている .NET コードを指定する必要があります。プラグインを作成して、CAD のプロセスでコードを実行します。

Microsoft.NET テクノロジを使用して CAD プラグインを作成するには:

  1. ここで提供されるトレーニングを参照してください。
  2. 実行可能な CAD プラグインを準備できたら、Autodesk.Factory.PublicAPI.dll を次の場所で参照できます。

    C:\Program Files\Autodesk\ApplicationPlugins\FactApplication_R22.0.bundle\Contents\x64\ (AutoCAD)、および C:\Program Files\Autodesk\Inventor 2018\Bin\InventorFactory\ (Inventor)
  3. Factory Design API を呼び出すには、Autodesk.Factory.PublicAPI.dll を参照します。
    重要: CAD プラグインに DLL を配置しないでください。

Factory Design In-CAD API は、Inventor と AutoCAD の両方で同じインタフェースを表示し、一度に 1 つのレイアウトに対して動作します(サブレイアウト操作なし)。すべての API メソッドは、実行されるレイアウト ドキュメントを表すレイアウト パラメータを受け入れます。Inventor では、これは AssemblyDocument であり、AutoCAD では、Autodesk.AutoCAD.DatabaseServices.Database です。

API は、4 つのメソッドを提供します。

すべてのメソッドはアセット インスタンス オブジェクトで動作します。

アセットの AssetID を取得するには、family.xml で <Family ID> を参照します。

アセット インスタンスが次の Factory Design データを提供します。

AddAssetInstances

レイアウトに新しいアセット インスタンスを追加するには、この API を使用します。各インスタンスには、インスタンスが配置される位置と、インスタンスを作成するために使用されるライブラリ アセットを指定する必要があります。必要に応じて、このインスタンスの作成に使用するパラメータの値を呼び出しで指定することができます。パラメータが指定されていない場合は、ライブラリの既定値が使用されます。

using APIv2 = Autodesk.Factory.PublicAPI.Objects.v2;
…
var api = Autodesk.Factory.PublicAPI.API.Instance;
APIv2.AssetInstance newInst1 = new APIv2.AssetInstance()
{
AssetID = "41c84844-7b28-4903-bebd-365ca3a6a53c",  //Straight Belt Conveyor
Position = new System.Windows.Media.Media3D.Matrix3D() { OffsetX = 0, OffsetY = 0, OffsetZ = 0 },
};
var insts = api.AddAssetInstances(layout, new PublicAPI.Currency.v2.IAssetInstance[] { newInst1 });
System.Windows.MessageBox.Show(insts.Length.ToString(), "Added instances");

GetAssetInstances

var insts = api.GetAssetInstances(layout);
System.Windows.MessageBox.Show(insts.Length.ToString(), "Get - COUNT");

UpdateAssetInstances

この API は、インスタンスの位置、パラメータ、およびプロパティを変更するために使用されます。

var insts = api.GetAssetInstances(layout);
foreach (var item in insts)
{
var position = item.Position;
position.OffsetX += 200;
item.Position = position;
item.Parameters["Length"] = "400";
}
insts = api.UpdateAssetInstances(layout, insts);
System.Windows.MessageBox.Show("update position done");

DeleteAssetInstances

api.DeleteAssetInstances(layout, new PublicAPI.Currency.v2.IAssetInstance[] { instToDelete });