Autodesk Inventor iLogic チュートリアル Part 2 Excel スプレッドシートと

Autodesk Inventor 2010
Inventor iLogic Extension
Autodesk Inventor
iLogic チュートリアル Part 2
Excel スプレッドシートと関連付けたルール作成
これは、3 つの章に分かれたチュートリアルの Part 2 です。Part 1 では、iLogic でルールを作成・実行して、
パーツドキュメントのパラメータ値を外部からコントロールする方法を学習します。Part 2 では、iLogic で
Excel スプレッドシートと関連付けたルールを作成・実行して、Excel スプレッドシートを参照して、パーツドキュ
メントのパラメータ値を外部からコントロールする方法を学習します。Part 3 では、iLogic でルールを作成・実
行して、アセンブリおよびコンポーネントのパラメータ値を外部からコントロールする方法を学習します。
iLogic チュートリアルでの学習は、Part 1 から順番に進めるようにしてください。
チュートリアル Part 2 のカリキュラムは、次のとおりです。
z
パラメータの作成:パラメータエディタを使用して、ルールの作成に使用するパラメータやパラメータ値のリ
ストを作成します。
z
ルールの作成:ルールエディタを使用して、ルールを作成します。
z
Excel スプレッドシートとの関連付け:Excel スプレッドシートを参照するルールを作成します。
z
ルールのテスト:ルールを実行して、パーツの各形状の変化や部品番号の変化を確認します。
z
ルールの順番の変更:ツリーエディタを使用して、ルールを実行する順番を変更します。
1 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
チュートリアル Part 2 の概要
チュートリアル Part 2 では、サンプルデータのマニホールドブロックを使用して、iLogic で Excel スプレッドシ
ートと関連付けて、マニホールドブロックの各形状や部品番号に関するルールを作成・実行して、iLogic のル
ールに基づいて、Excel スプレッドシートを参照して、パーツドキュメントのパラメータ値を外部からコントロー
ルする方法を学習していきます。
サンプルデータのロード
チュートリアル Part 2 で使用するサンプルデータをロードします。
1. Autodesk Inventor を起動し、アプリケーション メニューから[管理][プロジェクト]を選択して、[プロジェク
ト]ダイアログを表示します。または[スタートアップ]タブから[プロジェクト]を選択して、[プロジェクト]ダイア
ログを表示します。
2. プロジェクトリストで Inventor プロジェクト[iLogic 2010 Tutorial]をアクティブにして、 [完了]ボタンをクリッ
クします。
3. [リボン] メニューの [開く] を選択して [開く] ダイアログを表示し、、パーツドキュメントファイル
「manifold_block_no_rules.ipt」を開きます。
4. [アプリケーションメニュー] の [名前を付けて保存] を選択して [名前を付けて保存] ダイアログを表示し、
ファイル名「manifold_block.ipt」を入力して保存します。
2 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
これで、チュートリアル Part 2 で使用するサンプルデータのロードが完了しました。
パラメータを作成する
これからパラメータエディタを使用して、ルールのプログラム作成に使用するパラメータ
z
[port_a_size]パラメータ
z
[port_b_size]パラメータ
z
[port_c_size]パラメータ
z
[block]パラメータ
z
[component_type]パラメータ
を作成していきます。
[port_a_size]パラメータの作成
1. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックします。これで、パラメータエディ
タが起動し、[Parameter Editor]ダイアログが表示されます。
2. パラメータリストの一番下の行、[Name]列のセルをクリックして、パラメータ名「port_a_size」を入力します。
3. [port_a_size]行の[Type]列のセルをクリックしてドロップダウンリストを表示し、[User]を選択します。
4. [port_a_size]行の[Unit]列のセルをクリックしてドロップダウンリストを表示し、[in]を選択します。
5. [port_a_size]行の適当な空白セルを右クリックしてメニューを表示し、[Make Multi-Value]を選択して、
[Value List Editer]ダイアログを表示します。
3 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
6. [Add New Item(s)]フィールドにパラメータ値「0.5」、「0.75」、「1.00」、「1.25」、「1.50」、「2.00」、「2.50」、
「3.00」を入力し、[Add]ボタンをクリックして[Value]リストに追加します。
7. [OK]ボタンをクリックして、ダイアログを閉じます。
8. [part_a_size]行の[Key]列にチェックを入れて、キーパラメータに設定します。
[port_b_size]、[port_c_size]パラメータの作成
[port_a_size]パラメータと同じ内容で、[port_b_size]、[port_c_size]パラメータを作成します。
[block]パラメータの作成
1. パラメータリストの一番下の行、[Name]列のセルをクリックして、パラメータ名「block」を入力します。
2. [block]行の[Type]列のセルをクリックしてドロップダウンリストを表示し、[String]を選択します。
3. [block]行の[Unit]列のセルをクリックして空白にします。
4. [block]行の適当な空白セルを右クリックしてメニューを表示し、[Make Multi-Value]を選択して、[Value
List Editer]ダイアログを表示します。
5. [Add New Item(s)]フィールドにパラメータ値「tee」、「elbow」を入力し、[Add]ボタンをクリックして[Value]
リストに追加します。
6. [OK]ボタンをクリックして、[Value List Editer]ダイアログを閉じます。
7. [block]行の[Key]列にチェックを入れて、キーパラメータに設定します。
[component_type]パラメータの作成
1. パラメータリストの一番下の行、[Name]列のセルをクリックして、パラメータ名「component_type」を入力
します。
2. [component_type]行の[Type]列のセルをクリックしてドロップダウンリストを表示し、[String]を選択します。
3. [component_type]行の[Unit]列のセルをクリックして空白にします。
4. [component_type]行の適当な空白セルを右クリックしてメニューを表示し、[Make Multi-Value]を選択し
て、[Value List Editer]ダイアログを表示します。
5. [Add New Item(s)]フィールドにパラメータ値「standard」、「custom」を入力し、[Add]ボタンをクリックして
[Value]リストに追加します。
4 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
6. [OK]ボタンをクリックして、[Value List Editer]ダイアログを閉じます。
7. [component_type]行の[Key]列にチェックを入れて、キーパラメータに設定します。
8. [Done]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。
これで、ルールのプログラム作成に使用するパラメータの作成は、すべて完了しました。
ルールを作成する
これから、ルールエディタを使用して、ブロックの各形状や部品番号のパラメータ値をコントロールするための
ルール
z
ブロックの回路のルール
z
ポートのサイズのルール
z
ブロックのサイズのルール
z
ポートのサイズ構成のルール
z
部品番号のルール
のプログラムを作成していきます。
ブロックの回路のルール
ブロックには、ポートをつなぐ回路が設けられています。
パラメータの作成段階では、[block]パラメータを作成して、パラメータ値[tee]、[elbow]を割り当てました。これ
から、このパラメータとパラメータ値を構文に使用して、ブロックの回路のルールのプログラムを作成します。
パラメータエディタの[Multi-Value]リストでパラメータ値を選択すると、ブロックの回路をティータイプまたはエ
ルボタイプに変更する、そんな動作のルールを実行できるようにします。
5 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
ルールのプログラムの作成
ブロックの回路のルールのプログラムを作成していきます。
パラメータ値が[tee]のときに実行するパート
まず、パラメータ値が[tee]のときに実行するパートを作成します。
1. [管理]タブの[iLogic]パネルの[Add Rule]ツールをクリックして、[Rule Name]ダイアログを表示します。
2. [Name]フィールドにルール名「block_shape_rule」を入力し、[OK]ボタンをクリックして、[Edit Rule]ダイア
ログを表示します。
3. [Model]タブをクリックして内容を表示し、テキストフィールドに「If」を入力するか、[If]ボタンをクリックして挿
入します。
4. モデルツリーフィールドの[iLogic Parameters]をクリックして、[Parameters]タブにパラメータをリスト表示
します。
5. [block]パラメータをダブルクリックして、テキストフィールドに挿入します。
6. 「="tee"」を入力します。
7. [Then]ボタンをクリックして、テキストフィールドに挿入します。
If block = "tee" Then
8. [Rule Syntax]タブをクリックして、内容を表示します。
9. [Categories]フィールドの[Component/Feature]をクリックし、[Functions]フィールドの
[Feature.IsActive(featurename”)]をダブルクリックして、テキストフィールドに挿入します。
10. [Model]タブをクリックして、内容を表示します。
11. モデルツリーフィールドの[Port_B]をクリックして、[Names]タブにパラメータをリスト表示します。
12. 括弧内の構文「featurename」を選択した状態で、[Names]タブの[Port_B]をダブルクリックして、テキスト
フィールドに挿入します。
13. ("Port_B")の後に「=True」を入力します。
14. [Rule Syntax]タブをクリックして、内容を表示します。
15. [Categories]フィールドの[Component/Feature]をクリックし、[Function]フィールドの
[Feature.IsActive(featurename”)]をダブルクリックして、テキストフィールドに挿入します。
16. [Model]タブをクリックして、内容を表示します。
17. モデルツリーフィールドの[Port_B_Threads]をクリックして、[Names]タブにパラメータをリスト表示します。
18. 括弧内の構文「featurename」を選択した状態で、[Names]タブの[Port_B_Threads]をダブルクリックして、
テキストフィールドに挿入します。
19. ("Port_B_Threads")の後に「=True」を入力します。
Feature.IsActive("Port_B") = True
Feature.IsActive("Port_B_Threads") = True
6 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
ここでは、[block]パラメータのパラメータ値が[tee]のときは、[Port_B]フィーチャと[Port_B_threads]フィーチャ
のアクティブ化を有効にすることを指定しています。
パラメータ値が[elbow]のときに実行するパート
次に、パラメータ値が[elbow]のときに実行するパートを作成します。
1. テキストフィールドに「ElseIf」を入力するか、[ElseIf]ボタンをクリックして挿入します。
2. モデルツリーフィールドの[iLogic Parameters]をクリックして、[Parameters]タブにパラメータをリスト表示
します。
3. [block]パラメータをダブルクリックして、テキストフィールドに挿入します。
4. 「="elbow"」を入力します。
5. [Then]ボタンをクリックして、テキストフィールドに挿入します。
ElseIf block = "elbow" Then
6. 先に作成したパラメータ値[tee]のパートの構文をコピー&ペーストし、「True」の箇所を「False」に修正しま
す。
Feature.IsActive("Port_B") = False
Feature.IsActive("Port_B_Threads") = False
ここでは、[block]パラメータのパラメータ値が[elbow]のときは、[Port_B]フィーチャと[Port_B_threads]フィーチ
ャのアクティブ化を無効にすることを指定しています。
7. テキストフィールドに「EndIf」を入力するか、[EndIf]ボタンをクリックして挿入します。
End If
8.
[OK]ボタンをクリックして、ダイアログを閉じます。
これで、ブロックの回路のルールのプログラム作成は完了しました。
ルールのテスト
ブロックの回路のルールを実行して、意図した通りに動作するかテストを行います。
1. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックして、[Parameter Editor]ダイア
ログを表示します。
7 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
2. [block]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[tee]を選択します。パラメー
タ値[tee]を選択すると、ブロックのポート B が作成され、回路がティータイプに変更されることを確認してく
ださい。
3. [block]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[elbow]を選択します。パラ
メータ値[elbow]を選択すると、ブロックのポート B が省略され、回路がエルボタイプに変更されることを確
認してください。
8 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
4. [Done]ボタンをクリックして、ダイアログを閉じます。
これで、ブロックの回路のルールのテストは完了しました。
ポートのサイズのルール
ブロックには、ポートとタップ穴が設けられています。
パラメータの作成段階では、[port_a_size]、[port_b_size]、[port_c_size]パラメータを作成して、パラメータ値
を割り当てました。これから、これらのパラメータとパラメータ値を構文に使用して、ポートのサイズのルールの
プログラムを作成します。
パラメータエディタの[Multi-Value]リストでパラメータ値を選択すると、Excel スプレッドシートを参照して、ポー
トのサイズとタップ穴を変更する、そんな動作のルールを実行できるようにします。
ルールのプログラムの作成
ポートのサイズのルールのプログラムを作成していきます。
パラメータ値が[port_a_size]のときに実行するパート
まず、パラメータ値が[port_a_size]のときに実行するパートを作成します。
1. [モデル]ブラウザの[サードパーティ]を展開し、[Embedding 1]を右クリックしてメニューを表示し、[編集]を
選択して、パーツドキュメントに埋め込まれた Excel スプレッドシートを表示します。Excel スプレッドシー
トの各列にブロックの各形状のモデルパラメータに対応するパラメータとパラメータ値が記載されているこ
とに注目してください。
2. [iLogic]パネルの[Add Rule]ツールをクリックして、[Rule Name]ダイアログを表示します。
3. [Name]フィールドにルール名「port_size_rule」を入力し、[OK]ボタンをクリックして、[Edit Rule]ダイアロ
グを表示します。
9 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
4. [Rule Syntax]タブをクリックして、内容を表示します。
5. [Categories]フィールドの[Data Links]をクリックして、[Functions]フィールドに構文をリスト表示します。
6. [Functions]フィールドの[i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", columnName",
"<=", 0.2, "columnName", "<=", 4.1)]をダブルクリックして、構文をテキストフィールドに挿入します。
7. 挿入した構文を次の通りに修正します。
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_a_size)
8. [Functions]フィールドの[= GoExcel.CurrentRowValue]をダブルクリックして、構文をテキストフィールド
に挿入します。
9. 挿入した構文を次の通りに修正します。
port_a_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
10. 先に作成したパートの構文のコピー&ペーストと修正を繰り返して、次の通りにします。
port_a_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_a_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_A_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
ここでは、[port_a_size]パラメータに対応する Excel スプレッドシートの列と、ポート A とタップ穴のパラメータ
値を参照する Excel スプレッドシートの列を指定しています。青色表示のパラメータは、すべてパーツドキュメ
ント「manifold_block.ipt」のパラメータです。
11. [Categories]フィールドの[Component/Feature]をクリックして、[Functions]フィールドに構文をリスト表示
します。
12. [Functions]フィールドの[Feature.ThreadDesignation(“featurename”)= “3/8-16 UNC”]をダブルクリック
して、構文をテキストフィールドに挿入します。
13. 挿入した構文を次の通りに修正します。
Feature.ThreadDesignation("Port_A_Threads") = GoExcel.CurrentRowValue("tap_dim")
ここでは、ポート A のタップ穴、[Port_A_Threads]フィーチャのパラメータ値を参照する Excel スプレッドシー
10 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
トの列を指定しています。
パラメータ値が[port_b_size]のときに実行するパート
次に、パラメータ値が[port_b_size]のときに実行するパートを作成します。
1. 先に作成したパラメータ値[port_a_size]のパートの構文をコピー&ペーストします。
2. 「port_a」の箇所を、すべて「port_b」に修正します。
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_b_size)
port_b_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
port_b_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_b_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_B_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
Feature.ThreadDesignation("Port_B_Threads") = GoExcel.CurrentRowValue("tap_dim")
パラメータ値が[port_c_size]のときに実行するパート
最後に、パラメータ値が[port_b_size]のときに実行するパートを作成します。
1. 先に作成したパラメータ値[port_a_size]のパートの構文をコピー&ペーストします。
2. 「port_a」の箇所を、すべて「port_c」に修正します。
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_c_size)
port_c_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
port_c_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_c_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_C_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
Feature.ThreadDesignation("Port_C_Threads") = GoExcel.CurrentRowValue("tap_dim")
3. [OK]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。
これで、ポートのサイズのルールのプログラム作成は完了しました。
ルールのテスト
ポートのサイズのルールを実行して、意図した通りに動作するかテストを行います。
1. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックして、[Parameter Editor]ダイア
ログを表示します。
11 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
2. [port_a_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[1.50]を選択してか
ら適当な空白セルをクリックします。パラメータ値[1.50]を選択すると、ポート A のサイズが 1.5 インチに
変更され、それに合わせてタップ穴が変更されることを確認してください。
3. [Done]ボタンをクリックして、ダイアログを閉じます。
これで、ポートのサイズのルールのテストは完了しました。
ブロックのサイズのルール
現状のままでは、ポートのサイズのルールを実行してポートのサイズを変更しても、ブロックは元のサイズの
ままです。ポートのサイズの変更にブロックのサイズを対応させるために、これから、ブロックのサイズのルー
ルのプログラムを作成していきます。
ポートのサイズを変更すると、Excel スプレッドシートを参照して、最大サイズのポートに合わせてブロックの
サイズを変更する、そんな動作のルールを実行できるようにします。
ルールのプログラムの作成
ブロックのサイズのルールのプログラムを作成していきます。
12 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
1. [iLogic]パネルの[Add Rule]ツールをクリックして、[Rule Name]ダイアログを表示します。
2. [Name]フィールドにルール名「block_size」を入力し、[OK]ボタンをクリックして、[Edit Rule]ダイアログを
表示します。
3. テキストフィールドに「If block = "tee" Then」を入力します。
4.
[Rule Syntax]タブをクリックして内容を表示し、[Categories]フィールドの[Math]をクリックします。
5. [Functions]フィールドの[MaxOfMany(,,,,)]をダブルクリックして、構文をテキストフィールドに挿入します。
6. 挿入した構文を「port = MaxOfMany(port_a_size,port_b_size,port_c_size)」に修正します。
7. テキストフィールドに「ElseIf block = "elbow" Then」を入力します。
8. [Functions]フィールドの[MaxOfMany(,,,,)]をダブルクリックして、構文をテキストフィールドに挿入します。
9. 挿入した構文を「port = MaxOfMany(port_a_size,port_c_size)」に修正します。
10. テキストフィールドに「EndIf」を入力するか、[EndIf]ボタンをクリックして挿入します。
If block = "tee" Then
port = MaxOfMany(port_a_size,port_b_size,port_c_size)
ElseIf block = "elbow" Then
port = MaxOfMany(port_a_size,port_c_size)
End If
ここでは、[block]パラメータのパラメータ値が[tee]のときには、[port_a_size]、[port_b_size]、[port_c_size]パ
ラメータの中でパラメータ値が最大のものを[port]パラメータとする、パラメータ値が[elbow]のときには、
[port_a_size]、[port_c_size]パラメータの中でパラメータ値が最大のものを[port]パラメータとすることを指示
しています。
11. テキストフィールドに、次の通りに構文を入力します。
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port)
block_depth = GoExcel.CurrentRowValue("block_depth")
port_c_depth_from_front = GoExcel.CurrentRowValue("port_c_depth_from_front")
block_width = GoExcel.CurrentRowValue("block_width")
port_a_hor_offset = GoExcel.CurrentRowValue("hor_offset")
port_b_hor_offset = GoExcel.CurrentRowValue("hor_offset")
port_c_hor_offset = GoExcel.CurrentRowValue("hor_offset")
ここでは、[port]パラメータのパラメータ値に対応する Excel スプレッドシートの列と、ブロックのパラメータ値が
参照する Excel スプレッドシートの列を指定しています。
12. テキストフィールドに、次のとおりに構文を入力します。
If block = "tee" Then
13 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
porta = MaxOfMany(port_a_size, port_b_size)
ElseIf block = "elbow"
porta = port_a_size
End If
ここでは、[block]パラメータのパラメータ値が[tee]のときには、[port_a_size]、[port_b_size]パラメータの中で
パラメータ値が最大のものを[porta]パラメータとする、パラメータ値が[elbow]のときには、[port_a_size]パラメ
ータを[porta]パラメータとすることを指示しています。
13. テキストフィールドに、次の通りに構文を入力します。
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
ここでは、[porta]パラメータのパラメータ値に対応する Excel スプレッドシートの列と、ブロックのパラメータ値
が参照する Excel スプレッドシートの列を指定しています。
14. テキストフィールドに、次の通りに構文を入力します。
If block = "elbow" Then
port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset") +
(GoExcel.CurrentRowValue("port_dia")/4)
Else
port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset")
End If
ここでは、[block]パラメータのパラメータ値が[elbow]のときには、Excel スプレッドシートを参照して
[Vertoffset]+[port_dia]/4 のパラメータ値を[port_c_vert_offset]パラメータに出力する、パラメータ値が
[elbow]以外のときには、Excel スプレッドシートの[Vertoffset]列のパラメータ値を[port_c_vert_offset]パラメ
ータに出力することを指示しています。
15. テキストフィールドに、次の通りに構文を入力します。
block_height = GoExcel.CurrentRowValue("block_height")
ここでは、Excel スプレッドシートの[block_height]列のパラメータ値を、[block_height]パラメータに出力する
ことを指示しています。
14 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
16. [OK]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。
これで、ブロックのサイズのルールのプログラム作成は完了しました。
ルールのテスト
ブロックのサイズのルールを実行して、意図した通りに動作するかテストを行います。
1. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックして、[Parameter Editor]ダイア
ログを表示します。
2. パラメータフィルタの左フィールドを[All]に、右フィールドを[Key]に設定して、パラメータリストをフィルタリン
グします。
3. [port_a_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[3.00]を選択してか
ら適当な空白セルをクリックします。パラメータ値[3.00]を選択すると、ポート A のサイズが 3 インチに変
更されるのに合わせて、ブロックのサイズが変更されることを確認してください。
4. [Done]ボタンをクリックして、ダイアログを閉じます。
これで、ブロックのサイズのルールのテストは完了しました。
ポートのサイズ構成のルール
パラメータの作成段階では、[component_type]パラメータを作成して、パラメータ値[standard]、[custom]を割
り当てました。
これから、このパラメータとパラメータ値を構文に使用して、ポートのサイズ構成のルールのプログラムを作成
します。
パラメータエディタの[Multi-Value]リストでパラメータ値[standard]を選択すると、他のポートをポート A と同じ
サイズに強制的に変更する、そんな動作のルールを実行できるようにします。
ルールのプログラムの作成
ポートのサイズ構成のルールのプログラムを作成していきます。
1. [iLogic]パネルの[Add Rule]ツールをクリックして、[Rule Name]ダイアログを表示します。
2. [Name]フィールドにルール名「component_type_rule」を入力し、[OK]ボタンをクリックして、[Edit Rule]ダ
イアログを表示します。
3. テキストフィールドに、次の通りに構文を入力します。
If component_type = "standard" Then
15 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
port_b_size = port_a_size
port_c_size = port_a_size
End If
4. [OK]ボタンをクリックしてダイアログを閉じます。
これで、ポートのサイズ構成のルールのプログラム作成は完了しました。
ルールの順番の変更
iLogic でルールを実行する順番は、ツリーエディタでルールの配列を入れ替えることで変更できます。これか
ら、ポートのサイズ構成のルールを一番先に実行できるように、ルールの順番を変更します。
1. [iLogic]パネルの[edit iLogic Tree]ツールをクリックして、[iLogic Tree]ダイアログを表示します。
2. [In Document]タブの[component_type_rule]をツリーの一番上にドラッグ&ドロップして、ルールの実行
の順番を入れ替えます。
3. [OK]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。
これで、ルールの順番の変更は完了しました。
ルールのテスト
ポートのサイズ構成のルールを実行して、意図した通りに動作するかテストを行います。
1. [iLogic]パネルの[Parameters]ツールをクリックして、[Parameter Editor]ダイアログを表示します。
ここで、[port_b_size]、[port_c_size]行の[Driving Rule]列のセルに注目してください。どちらのセルにも
ルール名がハイライト表示されています。これは、[port_b_size]、[port_c_size]パラメータのパラメータ値
は、ポートの構成のルールに基づいていることを示しています。
16 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
2. [component_type]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[standard]を選
択します。
3. [port_a_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[0.75]を選択します。
パラメータ値[standard]、[0.75]を選択すると、ポート A が 0.75 インチに変更されるのに合わせて、他の
ポートがポート A と同じ 0.75 インチに強制的に変更されることを確認してください。
4. [component_type]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[custum]を選
択します。
5. [port_c_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[3.00]を選択します。
パラメータ値[custum]、[3.00]を選択すると、ポート C のみ 3 インチに変更され、他のポートは変更されな
いことを確認してください。
6. [Done]ボタンをクリックして、ダイアログを閉じます。
これで、ポートのサイズ構成のルールのテストは完了しました。
部品番号のルール
最後に、部品番号のルールのプログラムを作成します。
パラメータエディタで、ポートのサイズのパラメータ値を変更すると、Excel のスプレッドシートを参照して i
Property の部品番号を更新する、そんな動作のルールを実行できるようにします。
ルールのプログラムの作成
部品番号のルールのプログラムを作成していきます。
1. [iLogic]パネルの[Add Rule]ツールをクリックして、[Rule Name]ダイアログを表示します。
2. [Name]フィールドにルール名「part_number_rule」を入力し、[OK]ボタンをクリックして、[Edit Rule]ダイア
ログを表示します。
3. テキストフィールドに、次の通りに構文を入力します。
17 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
If component_type = "standard" Then
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_a_size)
4. [Rule Syntax]タブをクリックして、内容を表示します。
5. [Categories]フィールドの[i Properties]をクリックして、[Functions]フィールドに構文をリスト表示します。
6. [Functions]フィールドの[iProperties.Value("Project", "Part Number")]をダブルクリックして、構文をテキ
ストフィールドに挿入します。
7. [Categories]フィールドの[Data Links]をクリックして、[Functions]フィールドに構文をリスト表示します。
8. [Functions]フィールドの[= GoExcel.CurrentRowValue("column_Name")]をダブルクリックして、構文を
テキストフィールドに挿入します。
9. 挿入した構文を次の通りに修正します。
iProperties.Value("Project", "Part Number") = GoExcel.CurrentRowValue("model_code")
ここでは、Excel スプレッドシートの[model_code]列のパラメータ値を i Property の部品番号に出力すること
を指定しています。
10. テキストフィールドに、次の通りに構文を入力します。
Else
iProperties.Value("Project", "Part Number") = "HomeMade"
End If
ここでは、パラメータ値が[standard]以外のときは、i Property の部品番号にパラメータ値[HomeMade]を出
力することを指定しています。
11. [OK]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。
これで、部品番号のルールのプログラム作成は完了しました。
ルールのテスト
部品番号のルールを実行して、意図した通りに動作するかテストを行います。
1. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックして、[Parameter Editor]ダイア
ログを表示します。
2. [component_type]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[standard]を選
択します。
18 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
3. [port_a_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[1.50]を選択します。
4. [Done]ボタンをクリックして、[Parameter Editor]ダイアログを閉じます。
5. [アプリケーション メニュー]の[i Property]を選択して[i Property]ダイアログを表示し、[プロジェクト]タブを
クリックして内容を表示します。パラメータ値[standard]、[1.50]を選択すると、Excel のスプレッドシートを
参照して、[i Property]ダイアログの[部品番号]フィールドに、部品番号[MAN-150]が入力されていること
を確認してください。
6. [閉じる]ボタンをクリックして、[i Property]ダイアログを閉じます。
7. [管理]タブの[パラメータ]パネルから[iLogic Parameters]ツールをクリックして、[Parameter Editor]ダイア
ログを表示します。
8. [component_type]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[custom]を選
択します。
9. [Done]ボタンをクリックして、[Parameter Editor]ダイアログを閉じます。
10. [アプリケーション メニュー]の[i Property]を選択して[i Property]ダイアログを表示し、[プロジェクト]タブを
クリックして内容を表示します。パラメータ値[custum]、[1.50]を選択すると、[i Property]ダイアログの[部
品番号]フィールドに、部品番号「HomeMade」が入力されていることを確認してください。
19 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
11. [閉じる]ボタンをクリックして、[i Property]ダイアログを閉じます。
これで、部品番号のルールのテストは完了しました。
これをもって、iLogic チュートリアル Part2 のカリキュラムはすべて完了しました。
最後に、パーツドキュメントを保存して閉じます。
iLogic チュートリアル Part2 は終了です。Part3 へ進んでください。
付録 ルールのプログラム全文
ブロックの回路のルール
If block = "tee" Then
Feature.IsActive("Port_B") = True
Feature.IsActive("Port_B_Threads") = True
ElseIf block = "elbow" Then
Feature.IsActive("Port_B") = False
Feature.IsActive("Port_B_Threads") = False
End If
ポートのサイズのルール
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_a_size)
port_a_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
20 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
port_a_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_a_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_A_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
Feature.ThreadDesignation("Port_A_Threads") = GoExcel.CurrentRowValue("tap_dim")
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_b_size)
port_b_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
port_b_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_b_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_B_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
Feature.ThreadDesignation("Port_B_Threads") = GoExcel.CurrentRowValue("tap_dim")
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_c_size)
port_c_y_dist_between_screw
= GoExcel.CurrentRowValue("y_dist_between_screw")
port_c_x_dist_between_screw
= GoExcel.CurrentRowValue("x_dist_between_screw")
port_c_port_dia = GoExcel.CurrentRowValue("port_dia")
Port_C_Drill_Depth = GoExcel.CurrentRowValue("tap_drill_depth")
Feature.ThreadDesignation("Port_C_Threads") = GoExcel.CurrentRowValue("tap_dim")
ブロックのサイズのルール
If block = "tee" Then
port = MaxOfMany(port_a_size,port_b_size,port_c_size)
ElseIf block = "elbow" Then
port = MaxOfMany(port_a_size,port_c_size)
End If
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port)
block_depth = GoExcel.CurrentRowValue("block_depth")
port_c_depth_from_front = GoExcel.CurrentRowValue("port_c_depth_from_front")
block_width = GoExcel.CurrentRowValue("block_width")
port_a_hor_offset = GoExcel.CurrentRowValue("hor_offset")
port_b_hor_offset = GoExcel.CurrentRowValue("hor_offset")
port_c_hor_offset = GoExcel.CurrentRowValue("hor_offset")
If block = "tee" Then
porta = MaxOfMany(port_a_size, port_b_size)
ElseIf block = "elbow"
porta = port_a_size
21 / 22
Autodesk Inventor 2010
Inventor iLogic Extension
End If
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
If block = "elbow" Then
port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset") +
(GoExcel.CurrentRowValue("port_dia")/4)
Else
port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset")
End If
block_height = GoExcel.CurrentRowValue("block_height")
ポートのサイズ構成のルール
If component_type = "standard" Then
port_b_size = port_a_size
port_c_size = port_a_size
End If
部品番号のルール
If component_type = "standard" Then
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port_a_size)
iProperties.Value("Project", "Part Number") = GoExcel.CurrentRowValue("model_code")
Else
iProperties.Value("Project", "Part Number") = "HomeMade"
End If
Autodesk Inventor は、米国 Autodesk, Inc.の米国およびその他の国における商標または登録商
標です。その他記載の会社名、ブランド名および商品名は、各社の商標または登録商標です。
記載事項は、予告なく変更することがございます。予めご了承ください。
©2009 Autodesk, Inc. All rights reserved.
22 / 22