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
© Copyright 2025 Paperzz