1 / 22
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 ルールの順番の変更:ツリーエディタを使用して、ルールを実行する順番を変更します。
2 / 22
チュートリアル 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」を入力して保存します。
3 / 22 これで、チュートリアル 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]を選択して、4 / 22
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]リストに追加します。
5 / 22
6. [OK]ボタンをクリックして、[Value List Editer]ダイアログを閉じます。
7. [component_type]行の[Key]列にチェックを入れて、キーパラメータに設定します。 8. [Done]ボタンをクリックしてダイアログを閉じてから、パーツドキュメントを保存します。 これで、ルールのプログラム作成に使用するパラメータの作成は、すべて完了しました。
ルールを作成する
これから、ルールエディタを使用して、ブロックの各形状や部品番号のパラメータ値をコントロールするための ルール z ブロックの回路のルール z ポートのサイズのルール z ブロックのサイズのルール z ポートのサイズ構成のルール z 部品番号のルール のプログラムを作成していきます。ブロックの回路のルール
ブロックには、ポートをつなぐ回路が設けられています。 パラメータの作成段階では、[block]パラメータを作成して、パラメータ値[tee]、[elbow]を割り当てました。これ から、このパラメータとパラメータ値を構文に使用して、ブロックの回路のルールのプログラムを作成します。 パラメータエディタの[Multi-Value]リストでパラメータ値を選択すると、ブロックの回路をティータイプまたはエ ルボタイプに変更する、そんな動作のルールを実行できるようにします。6 / 22
ルールのプログラムの作成
ブロックの回路のルールのプログラムを作成していきます。
パラメータ値が[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
7 / 22 ここでは、[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]ダイア ログを表示します。
8 / 22 2. [block]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[tee]を選択します。パラメー タ値[tee]を選択すると、ブロックのポート B が作成され、回路がティータイプに変更されることを確認してく ださい。 3. [block]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[elbow]を選択します。パラ メータ値[elbow]を選択すると、ブロックのポート B が省略され、回路がエルボタイプに変更されることを確 認してください。
9 / 22 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]ダイアロ グを表示します。
10 / 22 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"
)
11 / 22 トの列を指定しています。
パラメータ値が[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]ダイア ログを表示します。
12 / 22 2. [port_a_size]行の[Multivalue]列のセルをクリックしてドロップダウンリストを表示し、[1.50]を選択してか ら適当な空白セルをクリックします。パラメータ値[1.50]を選択すると、ポート A のサイズが 1.5 インチに 変更され、それに合わせてタップ穴が変更されることを確認してください。 3. [Done]ボタンをクリックして、ダイアログを閉じます。 これで、ポートのサイズのルールのテストは完了しました。
ブロックのサイズのルール
現状のままでは、ポートのサイズのルールを実行してポートのサイズを変更しても、ブロックは元のサイズの ままです。ポートのサイズの変更にブロックのサイズを対応させるために、これから、ブロックのサイズのルー ルのプログラムを作成していきます。 ポートのサイズを変更すると、Excel スプレッドシートを参照して、最大サイズのポートに合わせてブロックの サイズを変更する、そんな動作のルールを実行できるようにします。ルールのプログラムの作成
ブロックのサイズのルールのプログラムを作成していきます。13 / 22
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. テキストフィールドに、次のとおりに構文を入力します。
14 / 22
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]パラメータに出力する ことを指示しています。
15 / 22
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. テキストフィールドに、次の通りに構文を入力します。
16 / 22
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]パラメータのパラメータ値 は、ポートの構成のルールに基づいていることを示しています。17 / 22 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]ダイア ログを表示します。
18 / 22
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]を選 択します。
19 / 22
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」が入力されていることを確認してください。
20 / 22
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
)
21 / 22
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
22 / 22
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.の米国およびその他の国における商標または登録商 標です。その他記載の会社名、ブランド名および商品名は、各社の商標または登録商標です。 記載事項は、予告なく変更することがございます。予めご了承ください。