iLogic のルールおよびフォーム

iLogic ブラウザは、iLogic ルール、フォーム、グローバル フォームおよび外部ルールを一覧表示します。

iLogic ブラウザでは、ルールは 2 つのタブに分類されています。

フォームは 2 つのタブに分類されています。

iLogic のルール

ルールは、小さな Visual Basic (VB.NET)プログラムで、他の Inventor パラメータ、フィーチャ、またはコンポーネントをモニタしたりコントロールしたりできます。

iLogic では、ルールをオブジェクトとして、パーツ、アセンブリ、および図面ドキュメントに直接埋め込みます。ルールは、デザイン パラメータや属性値を決定したり、駆動したりします。これらの値をコントロールすることで、モデルの属性、フィーチャ、およびコンポーネントの特性を定義できます。

ジオメトリ設計要素の保存方法と同様に、情報を直接ドキュメントに保存します。

ルールのパラメータ

ルール内では、Visual Basic 変数と同様に、標準の Inventor パラメータ名を使用することができます。ルールを実行するとき、パラメータの値が変数に割り当てられます。数値パラメータの場合、[ツール] [ドキュメント設定]で指定されたドキュメント単位の実数になります。テキスト パラメータは、ルール内では文字列変数になります。真/偽のパラメータは、ブール変数になります。

パラメータは 2 種類の方法で表示できます。

  • 数値または非数値パラメータにリンクされた VB.NET 変数。変数が青色で強調表示されます。

    ルールの実行が開始されると、ルール内のモデルからこれらのパラメータの値が読み取られます。ルールの実行が終了すると、変更された値をモデルに保存します。

    ルールの実行が終了する前に値を保存するには、RuleParametersOutput 関数を使用します。モデルを即座に変更する場合には、この関数が便利です。

  • パラメータは、Parameter 関数を使用してアクセスします。次の例を参照してください。

    この方法で値を割り当てると、ルールの次の行が実行される前に、値がモデルに即座に保存されます。Parameter 関数を使用して値を読み取ると、Inventor モデルから即座に読み取られます。

ルール内の既定のエンティティ名

ルール内の次のいずれかの Autodesk Inventor エンティティ名を使用する前に、作成時に既定の名前が割り当てられている場合には、その名前を変更する必要があります。

  • フィーチャ
  • スケッチ
  • 作業フィーチャ
  • パターン
  • 拘束
  • iMate

意味のある名前を付けてください。名前を変更すると、実行しているルールの内容を容易に把握できます。

また、既定の名前を変更するもう 1 つの理由に、移植性を向上することがあります。Autodesk Inventor のローカライズ バージョンでは、既定の項目名はそのバージョンの言語に翻訳されます。モデル ブラウザでは、名前が自動的に変更されますが、iLogic ルールでは変更されません。したがって、既定の名前を使用している場合、ルールで項目を検出できない場合があります。他のユーザが Inventor の別の言語バージョンでモデルを使用する場合、既定の名前を変更する必要があります。この推奨事項は、ルールから名前によって呼び出される項目のみが該当します。たとえば、計測関数では、作業フィーチャ名を使用する場合があります。作業フィーチャがあり、計測関数では使用しない場合は、名前を変更する必要はありません。この推奨事項の例外の 1 つに、埋め込み Excel スプレッドシートがあります。この場合は名前を変更しないでください。

Autodesk Inventor の非英語バージョンでは、ルール内で英語名を使用します。次の例を参照してください。

"3rd Party:Embedding 1"
注: iMate などの一部のエンティティは、作成時に名前を指定できます。

ルールが実行される場合

パラメータが直接ルールの変数として使用されている場合、通常は、パラメータ値が変更されたときに自動的にルールが実行されます。また、ルールはイベントによってトリガすることができます。

ルールは、省略されていない限り、編集するとその直後に実行されます。ルールが実行されると、モデルでは、ルールの実行が終わるまでパラメータの変更は更新されません。必要な場合には、次のいずれかを使用して、即座にパラメータの変更が反映されるように強制することができます。

  • Parameter 関数
  • ルール内の RuleParametersOutput() 関数

ルールの順序

  • ルールは、iLogicVb.RunRule("ruleName") 関数を記述して順序を指定しない限り、ブラウザに表示される順序で実行されます。
  • 変更されたパラメータを複数のルールが参照している場合、一覧に最初表示されているルールが、最初に実行されます。パラメータの変更方法に関係なく、このとおり実行されます。
  • イベント トリガ コマンドを使用することで、メインの iLogic ブラウザのリストに関係なく、ドキュメント イベントに関連付けられた一覧の順序で、ルールを変更できます。

ルールの処理方法

ルールを作成または編集するとき、ルールのテキストは有効な VB.NET コードに変換されて、コンパイルされます。一部の Inventor パラメータ名は、VB.NET の変数名として有効ではありません。すべての Inventor パラメータ名を使用できるようにするために、iLogic では、Inventor パラメータの新しい変数名を内部的に置換します。

パラメータ名として使用するキーワード

Visual Basic のキーワードはパラメータ名として使用できますが、新しいドキュメントで使用することはお勧めできません。ただし、ルールを既存のドキュメントに追加するときには、多くの場合パラメータ名を変更する必要はありません。ある名前がキーワードと同一で、そのキーワードがルール内で必要な場合には、次の方法で対処できます。

  • 可能な場合には Inventor パラメータ名を変更します(推奨)。
  • ルールでは、別の文字を大文字にしてキーワードを使用します。たとえば、Inventor パラメータの名前が class の場合は Class を使用するなどです。Inventor のパラメータ名は大文字と小文字が区別されますが、VB では区別されません。例では、VB でコードが読み取られる前に class が他の名前で置換されますが、Class は変更されずに残されます。

ルールの内部変換

ルール テキストは内部で有効な VB.NET コードに変換されます。このコードは非表示で、ルールと一緒に保存されます。この保存方法の場合、ルールを実行するたびに iLogic によってコードを生成する必要がありません。コードは、ルールを編集したときにのみ変更されます。

VB コンパイラのエラー メッセージは、実際にはこの内部コードを参照しています。まれに、一部の複雑なコードで、ルールのコードに対応しないエラーが通知される場合があります。このような状況が生じた場合には、コードを単純化してください。必要に応じて、Sub Main() および End Sub ステートメントが記述されていることを確認してください。

コンパイルの際、ルールが有効な VB.NET コードへ変換されるとき、変換係数によって単位が置き換えられます。

ルール内の単位

Inventor の単位は、標準の Inventor パラメータの計算式と同様に、ルール内で使用することができます。

  • ルールでは単位は必要ありません。たとえば、数値が、単位のないパラメータに割り当てられ、式には単位が指定されていない場合を仮定します。この場合、iLogic では、パラメータに一致するドキュメント単位が数値に使用されるものと仮定されます。この仮定は、mi/hr などの複合単位にも適用されます。ドキュメント単位は、Inventor の[ツール] [ドキュメント設定] [単位]で設定します。
  • 単位名は、ルール テキスト内の数値の直後でのみ使用可能です。パラメータ、変数、式の後で使用することはできません。

例 - ドキュメント単位

この例では、パーツ ファイルでドキュメント単位にインチが使用されています。

d0 = 4.5 in
d18 = 7.2 in
sum = d0 + d18MessageBox.Show(sum,”Document Units - Inches”)

特に指定がない限り、iLogic では、数値の単位がドキュメント単位として定義されているものと仮定されます。この場合は、合計が 11.7 になります。メッセージ ボックスに値が表示され、ドキュメント単位がインチで表現されていることが示されます。

パラメータ d18 に値として 7.2 in ではなく 7.2 mm を割り当てるには、d18 をミリメートルで表現するように指定します。

d0 = 4.5 in
d18 = 7.2 mm
sum = d0 + d18
MessageBox.Show(sum,”Document Units - Inches”)

この場合は、合計が 4.78346456692913 になります。メッセージ ボックスに値が表示され、ドキュメント単位がインチで表現されていることが示されます。

前の計算をドキュメント単位がミリメートルのパーツ ファイルに対して実行するには、インチで表現されたパラメータにインチ単位を指定します(例、d0 = 4.5 in)。

最後に、ステートメントで長さの単位を省略した場合には、ドキュメント単位の値が使用されます。

例 - ドキュメント単位の混在

この例では、パーツ ファイルでドキュメント単位にインチが使用されています。iLogic パラメータ エディタで次のように指定されています。

  • x パラメータは 1 in に設定されています。
  • y パラメータは 12.5 mm に設定されています。

ルールは次のように記述されています。

result = x + y
MessageBox.Show(result,“Mixed Units Defined in Parameter Editor”)

加算計算時、y パラメータの値を 12.5 mm から .4921 インチに変換します。メッセージ ボックスに 1.49212598425197 の値が表示され、パラメータ エディタで単位が混在して定義されていることが示されます。

逆に、ドキュメント単位がミリメートルで定義されている場合、iLogic によって x パラメータの値が 1 in から 25.4 mm に変換されます。メッセージ ボックスに 37.9 の値が表示され、パラメータ エディタで単位が混在して定義されていることが示されます。

単位名

単位の指定は、他の数値演算が実行される前に適用され、他のすべての演算子よりも優先されます。単位名は次の点に注意して使用してください。

  • ルール テキスト内の数値の直後のみで使用できます。
  • パラメータ、変数、式の後で使用することはできません。
  • 数値と単位の間には、スペースを入れる必要があります。

次の例は、単位名の有効な使用方法を示しています。

12 in
144 in
144 in^2
125.2 mm
60 mi/hr

ルール内では単位の混在指定が可能です。単位の混在指定には、Inventor の形式を使用します。複雑な単位指定をルールに導入するには、[パラメータ]ダイアログ ボックスで計算式を作成します。次に、ルール エディタで、そのパラメータに[現在の状態を取り込む]を使用します。

外部ルール

外部ルールは、iLogic ルールか、手動で実行する小さなプログラム(VBA マクロなど)として使用することができます。これらはテキストまたは VB ファイルとして Inventor ドキュメント(パーツ、アセンブリ、または図面)の外部に保存します。これらは手動で実行するか、他のルールから実行できます。

外部ルールの一覧を iLogic ブラウザで表示するとき、開いているドキュメントに関係なく一覧の内容は同じになります。個別のドキュメントには、関連付けられていません。

また、外部ルールは、イベント駆動ルールとして実行することもできます。

ウィザード

iLogic にはいくつかのウィザードが用意されており、特定のタスクについて高度なルールを作成するために使用することができます。これらのウィザードは、[ルールの編集]ダイアログ ボックスの[ウィザード]タブにあります。

  • ダイアログのルールを作成 - カスタムのダイアログ ボックスを使用してパラメータ値を駆動します。
  • 現在のビューを取り込む - ビューの向きとズーム表示の値を取り込みます。
  • メッセージ ボックス - Windows メッセージ ボックスを表示するルールを作成します。
  • パラメータの制限 - パラメータの最小値と最大値を設定します。

フォーム

カスタム ユーザ インタフェースを作成し、Inventor のパーツ、アセンブリ、または図面ドキュメントのパラメータ、プロパティ、およびルールに接続します。

ドラッグ アンド ドロップにより、プログラミングを行わずにユーザ インタフェースを設計します。コントロールを使用して、既存の設計への変更を行うことができます。フォームの定義はドキュメント固有に設定でき、設計ドキュメントとして保存、または複数のドキュメントで使用するために保管できます。

注: フォームの作成に、ルールは必要ありません。