ルールの作成
ルールを作成する前に、ルールで使用するすべてのパラメータを作成します。
- リボンで、
[管理]タブ
[iLogic]パネル
[ルールを追加]
の順にクリックします。
- [ルール名]ダイアログ ボックスで、新しいルールの名前を入力して、[OK] をクリックします
- [ルールを編集]ダイアログ ボックスを使用してルールを定義します。
- パーツまたは図面のドキュメントでは、パラメータ グループをクリックして、右側の[パラメータ]タブにパラメータの一覧を表示します。次に、一覧の中のパラメータをダブルクリックして、ルール テキスト内に名前を挿入します。
アセンブリ ドキュメントの場合は、[3D モデル]タブを選択して、アセンブリ コンポーネントを表示するか、[ファイル ツリー]タブを選択して、サブアセンブリおよびパーツ ファイルを表示します。パーツ ファイル項目を転換して、ファイル内のパラメータとフィーチャを表示します。
注: モデル ツリーで非パラメータ項目をクリックすると、その名前が[名前]タブ([パラメータ]タブの横)に一覧表示されます。この一覧内の項目をダブルクリックして、ルールに名前を挿入することができます。多くの図面スニペットには、ビュー名が必要です。一覧内の適当な項目をダブルクリックすると、現在の図面からビュー名が取得され、ルールに挿入されます。
- 項目を右クリックして、[現在の状態を取り込む]を選択し、項目に値を割り当てるルールへテキストを挿入します。
たとえば、パラメータの現在の状態と現在の値を取り込み、d0 = 4.0 in のようにパラメータを挿入します。
パラメータは、常に指定された単位で取り込まれますが、新しい計算式を記述するときに単位は必要ありません。パラメータ グループを右クリックして、特定の型のすべてのパラメータの状態を取り込むことができます。また、フィーチャやコンポーネントを右クリックして、それらの現在の IsActive の状態(省略または省略解除)を取り込むことができます。
- [スニペット]領域の[システム]および[カスタム]タブの一覧にあるスニペットを使用して、ルール用にカスタマイズ可能な関数を追加できます。ルールに追加するスニペットをダブルクリックします。
- ルールのテキスト領域の上にある編集ツールバーの選択項目は、ルールの表示設定を操作するために使用します。また、この選択項目は、条件ステートメント、キーワード、および演算子を挿入するためにも使用します。
- [OK]をクリックしてルールを保存します。
ルールの編集
- リボンで、
[管理]タブ
[iLogic]パネル
[iLogic ブラウザ]
の順にクリックします(ブラウザが現在表示されていない場合)。
- iLogic ブラウザで、[ルール]タブをクリックして、開かれたドキュメント内のルールを編集します。または、[外部ルール]タブをクリックして、外部ファイル内にあるコンポーネントのルールを編集します。
- ルールをダブルクリックするか、右クリックして、表示されたメニューから[ルールを編集]を選択します。
- [ルールを編集]ダイアログ ボックスを使用してルールを編集します。テキストを入力すると同時に、対応する色コードが適用されて、テキストが見やすくなります。
- 完了したら、[OK]ボタンをクリックしてください。
ルール名の変更
ルールの名前を変更するには、iLogic ブラウザで名前をゆっくりと 2 回クリックして編集可能にし、既存の名前を変更します。
ルール構文の挿入
[ルールを編集]ダイアログ ボックス内のルール テキスト領域の上にあるツールバーのドロップダウン リストを使用することで、構文を手動で入力することなく、構文の文字列をルールに挿入できます。挿入後は、必要に応じて文字列をカスタマイズできます。次の項目を選択できます。
文字列を挿入するには、次の操作を行います。
- ルール内で挿入する位置にカーソルを移動します。
- ドロップダウン リストの 1 つから文字列を選択します。文字列が挿入され、読みやすくするために、対応する色コードで表示されます。
- 必要に応じて、挿入した文字列を編集します。
ルールへのコード スニペットの挿入
[ルールを編集]ダイアログ ボックスの[スニペット]領域の選択肢を使用して、ルール内にコード スニペットを挿入します。必要に応じて、挿入したスニペットを修正できます。
- ルールのテキスト領域の挿入する位置にカーソルを移動します。
- [スニペット]領域で[システム]または[カスタム]タブをクリックして、それらのタブで使用可能なカテゴリを表示します。
- スニペットをダブルクリックして、カーソルの位置に挿入します。条件テキスト、関数、変数のプレースホルダなど、スニペットの各要素は読みやすくするために色コードで表示されます。
- 挿入したスニペットを編集します。
ルール内の折りたたみ可能コード領域の操作
折りたたみ可能コード領域とコメントの作成
ルール テキスト領域の煩雑なコードを整理するために、折りたたみ可能コード領域やコメントを定義します。
コード領域
- 折りたたみ可能コード領域を定義するには、一重引用符と左角括弧を挿入します。一重引用符と右角括弧を使用して、折りたたみ可能領域の終わりを指定します。
- ノード アイコン(-) をクリックして、コードを折りたたみます。
コメント
- 折りたたみ可能コメントとして定義するには、行の先頭に一重引用符を 3 つ挿入します。コメントが複数の行に渡る場合は、各行の先頭に 3 つの一重引用符を挿入します。
- ノード アイコン(-)をクリックして、コメントを折りたたみます。
ルールが自動的に実行されることを防止
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [省略]チェック ボックスをオンにします。
- [OK]をクリックします。
注: 省略されたルールは手動で実行できます。また、ルールは、iLogic ブラウザで省略することもできます。
Inventor のダイアログ ボックスを表示せずにルールを実行
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [サイレント操作]チェック ボックスを選択します。
- [OK]をクリックします。
参照先パラメータの値が変更されたときに即座に従属ルールを実行
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [従属ルールをすぐに実行]と表示されたチェック ボックスをオンにします。
- [OK]をクリックします。
注: 従属ルールを即座に実行することで、パラメータの設定後に、明示的なモデルの更新を組み込むことができます更新の時点で、パラメータは変更され、従属ルールも実行されています。
パラメータの変更時にルールが実行されることを防止
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [自動的に実行しない]と表示されたチェック ボックスをオンにします。
- [OK]をクリックします。
注: このオプションをオンにすると、ルールの実行は手動か、イベント トリガまたは iLogicVB.RunRule によってのみ可能になります。
ルール間でのコードの要求
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [そのままの VB コード]と表示されたチェック ボックスをオンにします。
- [OK]をクリックします。
iLogic では、純粋な VB コードと識別されたルール内のコードは事前処理が行われないため、ルール内では、Inventor パラメータ名は認識されません。ルールには、他のルールから呼び出し可能なクラスやモジュールが含まれている必要があります。このオプションは、ルール間でコードを共有する方法や、コード モジュールを管理する方法として使用します。ただし、共有コードは難易度が高い記述方法であることに注意してください。
ルール エディタのフォントに別のスタイルおよびサイズを選択
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [フォントを選択]をクリックします。
- フォントおよびサイズを選択します。[サンプル]テキスト ボックスに、選択の結果が表示されます。
- [OK]をクリックします。
[現在の状態を取り込む]オプションの構文を選択
このオプションは、[現在の状態を取り込む]をアセンブリ内のコンポーネントのパラメータに使用した場合に、アセンブリのみに影響します。
- ルール エディタでルールを開きます。
- [オプション]タブを選択します。
- [コンポーネント名を使用]チェック ボックスを選択して、構文にコンポーネント名を取り込みます(たとえば、Parameter("PartA:1", "d0") = 5.6 in)。移植性を優先する場合にはこの選択をお勧めします。
または、コンポーネント名を除外するには、このチェック ボックスをオフにします(たとえば、PartA.ipt.d0 = 5.6 in)。
- [OK]をクリックします。
注: アセンブリ レベルでルールを作成している際にパラメータ名をクリックすることで、ルール内にパラメータを挿入できます。後からコンポーネント名を元のファイル名と異なる名前に変更する場合は、パラメータ構文を使用することで、コンポーネントの検索が容易になります。
ルールの実行
ルールを手動で実行するには、iLogic ブラウザ内を右クリックして、表示されたメニューから[ルールを実行]を選択します。
ルール内のパラメータをモデルと同期するには、ルールを実行する前に、右クリック メニューから[ルールを再生成]を選択します。
ルール内から他のルールを明示的に実行するには iLogicVb.RunRule 関数を使用します。
iLogic ブラウザでのツリーの並べ替え
iLogic ブラウザ内のルールは、ドラッグ アンド ドロップすることで、ツリー内の順序を変更できます。ドロップした位置にあるルールやその下のルールは、ツリー内を下方向に移動します。
ルールの再生成
特定のルール内のパラメータとモデルを同期するには、次の操作を行います。
- iLogic ブラウザでルールを選択します。
- 右クリックし、表示されたメニューから[ルールを再生成]を選択します。
このコマンドによってルールが Inventor パラメータに再接続され、ルールが再コンパイルされて実行されます。
現在のドキュメントですべてのルールを再生成
このコマンドは、すべてのルール内のパラメータをモデルを同期するために使用します。
- iLogic ブラウザでドキュメントを選択します。
- 右クリックし、表示されたメニューから[すべてのルールを再生成]を選択します。
または、リボンの[すべてのルールを再生成]コマンドを使用することができます。タイムラインのメニューから、
[管理]タブ
[iLogic]パネル
[すべてのルールを再生成]
の順に選択します 。
ルールの削除
- リボンで、
[管理]タブ
[iLogic]パネル
[iLogic ブラウザ]
の順にクリックします。
- ルールを右クリックし、右クリック メニューから[削除]を選択します。
- 選択内容を確認するように求められたら、[OK]をクリックします。
ドキュメント内のすべてのルールの削除
このコマンドは、モデルの設定が終了し、サンプルの設定を保存またはエクスポートするときに使用します。すべてのルールが削除されます。
注: このコマンドをアセンブリ内で実行すると、サブアセンブリおよびパーツ内のすべてのルールも削除されます。
外部ルールの使用
外部ルールの作成
iLogic ブラウザには、外部ルール用のタブがあります。このタブから、外部ルールのロードや、新しいルールの作成ができます。
既存のルールを外部ルールにするには、次の操作を行います。
- ルールを開きます。
- コードをコピーします。
- 新しい外部ルールを作成し、新しいルールにコードを貼り付けます。
外部ルールを .iLogicVb (この拡張子をお勧めします)、または .vb や .txt として保存します。外部ルールを他のルールから実行するときに参照可能なフォルダへ保存します。iLogic は、外部ルール ファイルを次のフォルダの一覧表示されている順番で検索します。
- 現在の Inventor ドキュメントがあるフォルダ(関連するルールによってモデルをコピー可能なフォルダ)
- 現在の Inventor プロジェクト作業スペース フォルダ
- iLogic 環境設定で設定されたフォルダの一覧(通常は作業グループまたは会社のルールに使用)
iLogic ブラウザでは、最上位ノード(ファイル内の外部ルール)およびツリー内の各ルールで右クリック メニューを使用できます。
外部ルール アイコンの作成
外部ルールのアイコンを取り込んで、iLogic ブラウザに表示できます。.bmp ファイル(16 x 16 のサイズを推奨)をルール ファイルと同じ名前で、同じフォルダ内に作成します。
たとえば、外部ルールが Custom Checks Rule.iLogicVb の場合、アイコン ファイルに Custom Checks Rule.bmp という名前を付けます。
ビットマップ イメージを作成した後で、Autodesk Inventor を再起動し、アイコンを表示します。Autodesk Inventor の実行時は、アイコンを編集することはできません。
外部ルールの編集
外部ルールを編集するには、[ルールを編集]ダイアログ ボックスを開いて、ツリー内のルールをダブルクリックして編集します。
ルールは、メモ帳などの外部プログラムを使用して編集することもできます。保存したら、ツリーの右クリック メニューから[ファイルから再ロード]を選択して、変更を Inventor に反映します。
外部ルールとパラメータ
外部ルールは、特定のパラメータの変更に対応して自動的に実行されることはありません。内部のルールと違って、パラメータ名が自動的にルールの変数として利用可能にはなりません。
たとえば、次のルールのステートメントは機能しません。
d1 = d0 * 0.5
代わりに、次の記述を使用します。
Parameter("d1") = Parameter("d0") * 0.5
このステートメントは、d0 および d1 と命名されたパラメータを持つパーツおよびアセンブリで機能します。このステートメントは、何らかの共通点があるパーツを操作する際に使用することができます。
特殊なルールを作成するウィザードの使用
重要: iLogic フォーム デザイナを使用して、カスタム ユーザ インタフェース フォームを作成します。ユーザ インタフェースには、ルールをトリガ、パラメータ値を変更、および iProperty を設定するコントロールを含めることができます。iLogic フォーム デザイナでは、プログラミングは必要ありません。必要なユーザ インタフェースが iLogic フォーム デザイナの機能を上回る場合は、Visual Basic を使用して、フォームを設計およびプログラムします。
モデル パラメータに基づくダイアログ ボックスのコントロール
- [ルールを編集]ダイアログ ボックスの[ウィザード]タブで[ダイアログのルールを作成]をクリックします。
[Dll ファイルを開く]ダイアログ ボックスで、前に作成した DLL ファイルを含む iLogicAdd フォルダを開きます。
注: iLogicAdd フォルダの作成が必要な場合があります(例: C:¥Program Files¥Autodesk¥Inventor {バージョン}¥Bin¥iLogicAdd)。
- DLL を選択して、[外部 DLL のルール]ダイアログ ボックスを対応するクラスおよび変数名に設定します。
- [OK]をクリックして、コードを生成します。
現在の表示ビューの取り込み
- [ルールを編集]ダイアログ ボックスの[ウィザード]タブで[現在のビューを取り込む]をクリックします。
- [ビューを取り込む]ダイアログ ボックスから[サイズ オプション]を選択します。
- 現在のビュー範囲を保存して復元する - ルールによってビューが取り込まれたときの状態にビューとズームの設定を戻します。
- 復元時にビュー サイズを変更しない - モデルを画面の中心に移動し、方向を設定します。ただし、ズームは変更しません。
- 復元時にモデル範囲にフィット - モデルを画面の中心に移動し、画面一杯に拡大します([全画面表示]と同様)。
- [OK]をクリックして、コードを生成します。
メッセージ ボックスの生成
このウィザードは、メッセージ ボックスを生成するルールを作成するために使用します。
- [ルールを編集]ダイアログ ボックスの[ウィザード]タブで[メッセージ ボックス]をクリックします。
- メッセージ ボックスの上部に表示するタイトルを入力します。
- メッセージ ボックスに表示する一連のボタンを選択します。
- ボタンの選択に従って、ボタンの相対的な配置位置の順番に対応する番号を選択して、既定のボタンを指定します。
たとえば、ボタン スキームに[はい]、[いいえ]、[キャンセル]を選択した場合で、既定のボタンが[いいえ]の場合、2 を選択します。
- メッセージ ボックスに表示するステータス アイコンを選択します。
- メッセージ ボックスに表示するテキストを引用符で囲んで入力します。
- [プレビュー]をクリックして、選択内容に従ったメッセージ ボックスを表示します。
- [OK]をクリックして、コードを生成します。
パラメータ値が指定した範囲を超えたときに診断情報を表示
- [ルールを編集]ダイアログ ボックスの[ウィザード]タブで[パラメータの制限]をクリックします。
- パラメータの名前を入力します。
- 最大および最小値を指定します。
- 最大と最小値の違反を表示するメッセージのタイトルおよびメッセージ テキストを入力します。
- [適用]をクリックしてコードを生成するか、[既定のメッセージ]をクリックして、既定のテキストにメッセージをリセットします。
ルールを使用してダイアログ ボックスを表示
ルールを使用してユーザ入力用のダイアログ ボックスを表示できます。ダイアログ ボックスは、ルール内に含めることができますが、外部 DLL (クラス ライブラリ)に含める方が簡単で柔軟性が向上します。
Visual Studio の 2005 または 2008 のバージョンを使用します。Microsoft から入手可能な無償ダウンロード版の Visual Basic Express も使用できます。
Visual Basic 2008 の使用方法
- Visual Basic 2008 Express がコンピュータにインストールされていない場合は、Microsoft® の Web サイトからダウンロードしてインストールします。このダウンロード プログラムは無料です。
- Visual Basic 2008 Express を開いて、クラス ライブラリ タイプのプロジェクトを作成します。
- プロジェクトの名前を ClassLibrary1 (既定の名前)にして、[OK]をクリックします。入力した正確な名前をメモに書き留めておきます。この名前は、以降の手順で使用するため重要です。
新しいウィンドウが開き、右上にソリューション エクスプローラが表示されます。
- ソリューション エクスプローラで、プロジェクト名を右クリックして、[追加]を選択し、サブメニューから[新しい項目]を選択します。[新規アイテムを追加]ダイアログ ボックスが表示されます。
- [ダイアログ]テンプレートを選択して[追加]をクリックします。
Windows フォーム デザイナに、ダイアログ ボックスのグラフィックス ビューが表示されます。このインタフェースを使用して、ダイアログ ボックスにコントロールを追加できます。
画面の左側のツールボックスに、ダイアログ ボックスへ追加可能なコントロールが一覧表示されます。このプロジェクトの場合は、Inventor の値を表示するテキストボックスを追加して、パラメータを編集できるようにします。
- [ツールボックス]パネルの[コモン コントロール]グループで[TextBox]をクリックして、ダイアログ ボックスの灰色の領域までドラッグし、配置します。必要に応じてダイアログ ボックスのサイズを変更できます。
- テキスト ボックスに Label を追加して、パラメータ名を表示します。
- 背景のダイアログ ボックスをダブルクリックして(ラベルやテキスト ボックスをクリックしないように注意します)、コード エディタを表示します。次のコードが表示されます。
- カーソルをすぐ下の行に移動します。
Public Class Dialog1
- 次の行を追加します。
Public d0 As Double
- サブルーチン OK_Button_Click の最上部の Me.DialogResult... ステートメントの前にカーソルを移動し、[Enter]を押して、新しい行を追加します。
- 新しい行に次のテキストを追加します。
d0 = TextBox1.Text
コードは次のようになります。
- [ファイル] [保存]または[ファイル] [すべて保存]を使用して作業内容を保存します。
これで、プロジェクトを作成する準備はほぼ完了です。ビルドを実行すると、Visual Basic によって DLL ファイルが作成されます。Visual Basic によってこのファイルが作成される場所は、ビルドの出力パスを修正することで指定できます。
- プロジェクトのタイトルが表示されたタブをクリックして、さらに[コンパイル]タブをクリックします。出力パスを次のように指定します。
Program Files¥Autodesk¥Inventor {バージョン}¥Bin¥iLogicAdd¥
- プロジェクトをビルドするには、上部のメニューでビルドをクリックします。ビルドが問題なく終了したら、画面の左下のステータス バーに[ビルド正常終了]のメッセージが表示されます。
- 作業内容を[すべてを保存]で再度保存し、Inventor を開きます。
- [ルールを追加]を使用して、次の内容の Form Rule という名前のルールを作成します。
AddReference "ClassLibrary1"
Sub Main()
dim dlg as new ClassLibrary1.Dialog1
dlg.d0 = d0
i = dlg.ShowDialog()
if (i = vbOK)then
d0 = dlg.d0
end if
End Sub
注: このコードは、[ルールを編集]ダイアログ ボックスの[ウィザード]タブにある[ダイアログのルールを作成]を使用して作成することもできます。
このルールは、Inventor パラメータ d0 の現在の値をダイアログ ボックスに送信し、ダイアログ ボックスを表示します。このダイアログ ボックスを使用するユーザは、ダイアログ内の値を編集できます。[OK]をクリックすると、このダイアログの値が元のパラメータに代入されます。
[作成]ダイアログ ボックス
パラメータ値を表示および修正可能なダイアログ ボックスを作成するには、次の操作を行います。
- Visual Studio を開きます。
- クラス ライブラリ タイプのプロジェクトを作成します。
- ソリューション エクスプローラでプロジェクト名を右クリックして[追加] [新しい項目] [ダイアログ]の順に選択します。
Windows フォーム デザイナに、ダイアログ ボックスのグラフィックス ビューが表示されます。このインタフェースを使用して、ダイアログ ボックスにコントロールを追加できます。
- [表示] [ツールボックス] をクリックして、使用可能なコントロールを表示します。
- Inventor パラメータの値を表示および編集する機能が必要な場合には[TextBox]コントロールを追加します。各テキスト ボックスに Label を追加して、パラメータ名を表示します。
- ダイアログ ボックスの背景をダブルクリックします。
コード エディタが表示され、Dialog1_Load という名前の新しいサブルーチンが表示されます。
- このサブルーチンで、サブルーチンの末尾の手前に次の行を追加します。
TextBox1.Text = d0
- カーソルを次の行の下に移動します。
Public Class Dialog1
- 次の行を追加します。
Public d0 As Double
- OK_Button_Click という名前のサブルーチンの先頭に次の行を追加します。
d0 = TextBox1.Text
コードは次のようになります。
Imports System.Windows.Forms
Public Class Dialog1
Public d0 As Double
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
d0 = TextBox1.Text
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = d0
End Sub
End Class
- プロジェクトをビルドし、[ファイル] [すべてを保存]を使用して保存します。
プロジェクトをビルドすると DLL が作成されます。次のいずれかを行うことができます。
- Autodesk Inventor プログラムの bin フォルダにある iLogicAdd フォルダに DLL をコピーします(通常は C:¥Program Files¥Autodesk¥Inventor {バージョン}¥Bin¥iLogicAdd です)。
- DLL が上記フォルダに自動的に送信されるようにプロジェクトの設定を変更します。[iLogic 環境設定]コマンドを使用して、DLL の検索フォルダを変更します。ルールで DLL ファイルを使用する方法の詳細については「iLogic の機能の拡張」を参照してください。
次のサンプル ルールではダイアログ ボックスを使用しています。
AddReference "ClassLibrary1"
Sub Main()
dim dlg as new ClassLibrary1.Dialog1
dlg.d0 = d0
i = dlg.ShowDialog()
if (i = vbOK) then
d0= dlg.d0
end if
End Sub
このルールは、Inventor パラメータ d0 の現在の値をダイアログ ボックスに送信し、ダイアログ ボックスを表示します。このダイアログ ボックスを使用するユーザは、ダイアログ ボックス内の値を編集できます。[OK]をクリックすると、このダイアログの値が元のパラメータに代入されます。
ダイアログ ボックス用の類似するコードは自動的に生成することができます。[ルールを編集]ダイアログ ボックスで、[ウィザード]タブを選択し、[ダイアログのルールを作成]を選択します。