iLogic ルールを、Inventor のモデルに格納するのではなく、外部ファイルに配置して、外部ルールをインポートまたはエクスポートすることができます。
この保存方法によって、同じルールをさまざまな場所で使用することができます。
iLogic のルールでは、他の .NET アセンブリのコードを使用できます。このような .NET アセンブリがあるフォルダを指定することができます。.NET アセンブリは、Visual Studio などのプログラミング ツールで開発できます。ルールで .NET アセンブリを使用する方法の詳細については、「高度なルール プログラミング」を参照してください。
iLogic の設定を XML ファイルとしてインポートまたはエクスポートして、異なるユーザおよびマシン間で共有できるようにします。設定が完了すると、外部にマッピングされたフォルダが[標準フォルダ]ツリーの下に表示され、内容(サブフォルダとルール)が変化すると即座に更新されます。
外部ルール環境設定は、配置の作成中に利用され、マッピングされます。
グローバル フォームを右クリック オプションで更新して、最新のフォームを反映します。
iLogic ではオートメーション インタフェースが提供されています。このインタフェースを使用して、Inventor から VBA、VB6、.NET などのコードでパラメータやルールにアクセスすることができます。
この機能は、iLogicAutomation クラスによって有効化されます。
このクラスは、VBA や VB プロジェクトでは参照を追加せず、遅延バインディング型(オブジェクトとして宣言)として使用します。完全な COM オブジェクトではないため、このクラスのメソッドを参照することはできません。
iLogic では、パラメータ値の格納に DoubleForEquals というカスタム データ型を使用します。DoubleForEquals では、簡単な数値の比較ができます。このパラメータは、VB.NET の標準の Double 型と似ています。ただし、DoubleForEquals の値が単精度値として比較される点が異なります(15 桁ではなく 7 桁)。既定では、ルール内のパラメータは DoubleForEquals として宣言されます。
DoubleForEquals では、比較で簡単に丸め誤差を無視できます。たとえば、パーツのドキュメントの単位にインチが使用され、13/16 インチの値を持つパラメータがあるとします。ルールでは、パラメータ値がモデルにセンチメートルで格納されるため、このパーツは正確に 13/16 インチになりません。次に、この値は、ルールでの使用のためにインチに変換されます。次の比較について検討します。
if d0 = 13/16 then ...
この例では、d0 が Double 型の場合、比較に失敗します。ただし、d0 が DoubleForEquals 型の場合は、正常に比較が行われます。
DoubleForEquals は、値を Double 型で格納し、すべての計算を倍精度値として実行します。比較のみ単精度で実行されます。
パラメータ値は、必要に応じて CDbl 関数を使用して倍精度値に変換できます。
DoubleForEquals は、VB.NET では構造体です(数値型)。
DoubleForEquals は、特殊な状況で、比較をゼロとして処理します。等価を評価する数値の 1 つが完全なゼロである場合、他の値の絶対値が 0.0000001 以下の場合に評価に成功します。
この比較によって、値がゼロに近い場合の丸め誤差を無視する方法が簡単になります。たとえば、次の比較では、x = 0 の判定が行われます。
angle = PI/2 x = cos(angle) If (x = 0) Then ... End If
DoubleForEquals は、ルールで使用するすべての Inventor パラメータの既定の型です。この設定は次のような状況で無効にすることができます。
Web ブラウザから、VB チュートリアルおよび情報をオンラインで検索してください。
Inventor の配置の一部として iLogic 環境設定オプションを配置することができます。
オプションが C:\Users\[ユーザ名]\AppData\Local\Autodesk\Inventor [バージョン]\iLogicPreferences\iLogicOptions.xml にエクスポートされます。