拡張モジュール > Creo Elements/Direct Sheet Metal > Creo Elements/Direct Sheet Metal のカスタマイズ > 穴開け
  
穴開け
この章では次のトピックについて説明します。
パラメトリック穴開けツール
既存のタイプに対するパラメトリック穴開けツールの追加
パラメトリック穴開けツールタイプ
パラメトリック穴開けツールタイプ定義の構造
パラメトリック穴開けツールの例
パラメトリック穴開けツールタイプの追加
非パラメトリック穴開けツールタイプ
非パラメトリック穴開けツールとタイプエントリの追加
穴開け工程について、Creo Elements/Direct Sheet Metal のショップ定義ファイルは以下の項目を含みます。
穴開けツールタイプ ("鍵穴凹" など) を指定する "穴開けタイプ" テーブル。
ツールテーブルのセット。各テーブルで、ある穴開けツールタイプについて個々のツールの寸法などの工程パラメータを指定します。たとえば、"鍵穴凹" テーブルは鍵穴凹ツールごとに別の行を含みます。ある穴開けツールタイプに 1 つの穴開けツールしかない場合、関連ツールテーブルには 1 つのパラメータレコードしかありません (1 行のテーブル値)。
Creo Elements/Direct Sheet Metal の穴開けツールは、適用対象のパーツに対して Creo Elements/Direct Modeling のミル操作を実行します。
パラメトリック穴開けツール
CoCreate Sheet Metal リビジョン 4.5 の時点で、sha_demoshop.lsp サンプルショップ定義ファイルで指定された穴開けツールタイプはすべて "パラメトリックツール" です。これは、実行時にユーザが選択リストで適切なツール寸法を選択することを意味します。TDB でユーザ (または TDB 管理者) は行 (追加のパラメータレコード) を関連付けられたツールテーブルに追加することで、その他のツールサイズを指定できます。
既存のタイプに対するパラメトリック穴開けツールの追加
既存のタイプにパラメトリック穴開けツールを追加するには、該当する穴開けツールテーブルに新しい穴開けツール指定 (追加の行) を追加する必要があります。テクノロジーデータベース一覧を使用するか ( 穴開けツールの追加を参照)、TDB テーブルを手作業で編集します。
たとえば、"rnd" というタイプの穴開けツールを追加する場合は、以下の手順に従います。
1. ショップ定義ファイル (たとえば、sha_demoshop.lsp ファイルの作業コピー) を開きます。
2. ショップ定義ファイルの "Round" テーブルを表示します。このテーブルを下に示します。
(sha-define-shop-table "rnd"
:TABLE-TITLE "Round"
:COLUMNS
(:DIA :TOOL_ID :DESCR :MIN_THICK :MAX_THICK :PREFERENCE :ADVICE )
:COLUMN-NAMES
( "Dia" "Tool Id" "Descr" "Min Thick" "Max Thick" "Pref" "Advice")
:UNITS
( :mm nil nil :mm :mm nil nil)
:CONTENTS
(
(1.10 "01004" "RW" 0 100 :PREF "-")
(2.00 "01012" "CN" 0 100 :NONPREF "-")
(3.00 "01024" "NE" 0 100 :PREF "-")
(4.00 "01042" "EM" 0 100 :PREF "-")
(8.00 "01116" "TAQ" 0 100 :NONPREF "-")
(10.00 "01136" "TAU" 0 100 :PREF "-")
(12.70 "01158" "TAV" 0 100 :PREF "-")
(20.00 "01190" "TBQ" 0 100 :NONPREF "-")
)
:KEY (:DIA )
:DISPLAY (:DIA :PREFERENCE :ADVICE)
:FLAT-TEXT (:TOOL_ID)
:HELP "sha_rnd"
; unique, not displayable column entries
:PROF_FNC sha-rnd-profile
)
3. :CONTENTS の下に、追加の穴開けツールを指定する行を追加します。デモショップでは、それぞれの "丸穴" 穴開けツールの仕様は次の列のエントリで構成されます。
:DIA
ツールの直径。
:TOOL_ID
ツール ID 番号。
:DESCR
ツールの説明的な名前。
:MIN_THICK
ツールの設計上の最小材質厚さ。
:MAX_THICK
ツールの設計上の最大材質厚さ。
:PREFERENCE
優先ステータス: 優先ツールの場合は ":PREF"、非優先ツールの場合は ":NONPREF"。
:ADVICE
この列には、:MAX_THICK と :MIN_THICK (存在する場合) をチェックした結果に応じて、Creo Elements/Direct Sheet Metal によって値が設定されます。
:FLAT-TEXT
「ショップテーブルの一般的構造」と同じです。
以下のパラメータレコード (ツールテーブル行) は追加の丸穴穴開けツール指定の例です。
(6.00 "01042" "EM" 0 1.5 ":NONPREF" "-")
この新しい穴開けツールが生み出す穴の直径は 6.00 mm です。ID 番号は 01042 です。名前は EM です。非優先ツールで、設計上の最大厚さは 1.5 mm です。"-" エントリは :ADVICE 列のデフォルトエントリです。実行時、このツールがツール選択テーブルにリストされていれば、:ADVICE 列の "-" エントリはツールチェックの結果で直接置き換わります。
パラメトリック穴開けツールタイプ
各パラメトリック穴開けツールタイプは、特殊な C++ または LISP ベースの関数を通じて定義されます。この関数は、必要な穴開けプロファイルを特殊なワークプレーンに作成する一連の Creo Elements/Direct Modeling 2D コマンドを定義します。ワークプレーン上の穴開けツールの位置決めを容易にするために、基準点が用意されます。
英語版では、パラメトリック穴開けツールを定義する LISP ベースの関数は、次のファイルに含まれています。
$INSTALLDIR/personality/sd_customize/SheetAdvisor/punch_fncs/sha_punch_functions.lsp
その他すべての言語版では、関数は次のファイルに含まれています。
$INSTALLDIR/personality/<言語>/sd_customize/SheetAdvisor/punch_fncs/sha_punch_functions.lsp
独自のパラメトリック穴開けツール用にカスタマイズした関数を作成する場合は、このファイルの作業コピーを作成します。このファイルには my_punch_func.lsp のような名前を付けます。
ツールの :PROF_FNC 列で、ツールを定義する適切な関数を参照している必要があります。Creo Elements/Direct Sheet Metal は、この関数に対する入力を、選択したツールタイプのすべてのツールテーブルエントリという形で渡します。ほかに、シートの厚さ、および、現在の Creo Elements/Direct Modeling の解像度も渡します。関数は、穴開けツールのワークプレーンで作成されたプロファイルという形で出力を返します。
Creo Elements/Direct Sheet Metal はこのデータを使用して、距離チェックゾーンを作成して穴開けツールの回りに表示してから、板金パーツ上に穴開けツールを配置します。ユーザがツールの位置を決めると、Creo Elements/Direct Sheet Metal はプロファイルを使用して、選択された板金パーツをミル加工します。ミルの深さは通常、板金の厚さと同じです。Creo Elements/Direct Sheet Metal は作成されたカットアウトを使用して、穴開け集合体情報を構築します。
* 
LISP 関数ファイルでは大文字小文字が区別されないことに注意してください。
パラメトリック穴開けツールタイプ定義の構造
Creo Elements/Direct Sheet Metal 穴開けツールの構造は、LISP パッケージ定義と穴開けツール関数に基づいて構築されます。
LISP パッケージの定義
Creo Elements/Direct Sheet Metal に付属のサンプル sha_punch_functions.lsp ファイルには、sheet-advisor パッケージ用の関数があります。Creo Elements/Direct Modeling の Open-Lisp-Interface (oli) パッケージで提供されるその他の関数を使用します。
(in-package :sheet-advisor)
(use-package :oli)
関数
sha_punch_functions.lsp ファイルで各穴開けツール用に定義した関数は、その属するツールテーブルの :PROF_FNC 列で指定する必要があります。規則により、関数名は sha- で始まって -profile で終わり、ツールプロファイルを集めた Creo Elements/Direct Sheet Metal (sha) パッケージで関数が識別されます。
defun sha-<function_name>-profile
関数名を宣言した後、この関数で使用するツールパラメータを定義します。パラメータ名は、ツールテーブルで指定した列名、または標準のパラメータである :THICKNESS (シートの厚さ) または :RESOLUTION (現在のシステムの精度) と一致する必要があります。これらのパラメータで使用するデータは、関連付けられている TDB テーブルの列から取得します。たとえば、parameter_1slot_length と定義した場合、関連付けられているツールテーブルの slot_length 列から適用可能な寸法を取得します。&allow-other-keys ステートメントは、この関数で使用されないほかのパラメータを処理します。
(
parameter_1
parameter_2
...
parameter_n
thickness
resolution
次のブロック (let で始まる) により、次の標準ローカル変数が定義されます。
result
戻り値として使用されます。
tool-wp
穴開けプロファイルを作成するワークプレーンの名前。実際の名前は sha-tool-wp 関数によって付けられます。tool-wp ステートメントは、穴開けツールプロファイルを配置するワークプレーンの名前を用意します。
(let ((result nil)
(tool-wp (sha-tool-wp)
(local-variable1 local-value1)
(... ...)
)
次のブロックは、穴開けプロファイルを作成するワークプレーンを生成します。
(create_workplane :new
:name tool-wp
)
次のブロックは、通常の Creo Elements/Direct Modeling コマンドでツールプロファイルを作成します。次に例を示します。
(POLYGON
(gpnt2d ...)
(gpnt2d ...)
...
(gpnt2d ...))
(ARC :CEN_RAD_ANG
(gpnt2d ...)
radius
angle
)
次のブロックは基準点を作成します。中央の基準点は原点 (0,0) に位置する必要があります。ほかの基準点は中央の基準点の回りに配置されます。
(C_POINT
0,0
(gpnt2d x1 y1)
(gpnt2d x2 y2)
(gpnt2d x3 y3)
(gpnt2d .. ..)
(gpnt2d xn yn)
)
作成されたプロファイルが、特殊な Creo Elements/Direct Sheet Metal 関数を使用してワークプレーンから抽出されます。
(setq result (sha-profile-of-wp tool-wp_(PPP
ツールワークプレーンが削除されます。
(delete_3d (sha-absolute-name tool-wp))
結果には最後の LISP 値 (戻り値になります) が設定されます。
result
)
)
パラメトリック穴開けツールの例
次のセクションは、Creo Elements/Direct Sheet Metal に付属のサンプル sha_punch_functions.lsp ファイルからの抜粋です。前のセクションで説明した関数構文の使用方法について説明しています。このサンプルセクションでは、コネクタ穴開けツールの関数を定義します。
;=================================================
;
; CONNECTOR
;
;=================================================
(defun sha-con
(
out_length
out_width
in_length
in_width
radius
n_rad
(resolution 0.000001)
)
(let ((result nil)
(tool-wp (sha-tool-wp))
)
(create_workplane :new
:name tool-wp
)
;********* create Profile *******
(POLYGON
(gpnt2d 0 (/ out_width 2))
(gpnt2d (/ in_length 2) (/ out_width 2))
(gpnt2d (/ in_length 2) (/ in_width 2))
(gpnt2d (/ out_length 2) (/ in_width 2))
(gpnt2d (/ out_length 2) 0)
)
(when (> n_rad resolution)
(FILLET :CREATE
:FILLET_RADIUS n_rad
(gpnt2d (/ in_length 2) (/ out_width 2))
)
)
(when (> radius resolution)
(FILLET :CREATE
:FILLET_RADIUS radius
(gpnt2d (/ out_length 2) (/ in_width 2))
)
)
(MIRROR_2D
:SELECT :all_2d
:HORIZONTAL
0,0
)
(MIRROR_2D
:SELECT :all_2d
:VERTICAL
0,0
)
;******** create Adjustpoints ******
(C_POINT
0,0
; (gpnt2d dist 0)
; (gpnt2d (- dist) 0)
; (gpnt2d 0 (* (cos (deg-to-rad 30)) (- dist)))
; (gpnt2d dist (* (cos (deg-to-rad 30)) (- dist)))
; (gpnt2d (- dist) (* (cos (deg-to-rad 30)) (- dist)))
; (gpnt2d 0 (* (cos (deg-to-rad 30)) dist))
; (gpnt2d dist (* (cos (deg-to-rad 30)) dist))
; (gpnt2d (- dist) (* (cos (deg-to-rad 30)) dist))
)
(setq result (sha-profile-of-wp tool-wp))
(delete_3d (sha-absolute-name tool-wp))
result
)
)
パラメトリック穴開けツールタイプの追加
先のセクションで示したサンプルをテンプレートとして、独自のカスタム穴開けツールタイプをすばやく作成できます。以下のガイド付き練習問題は、三角穴開けツールタイプを作成し実装する方法を示しています。
このガイド付き練習問題は、次のステージから構成されています。
1. ステージ 1: ワークプレーン、プロファイル、基準点の作成
2. ステージ 2: 穴開けタイプテーブルで新しい穴開けツールタイプの宣言
3. ステージ 3: 新しい穴開けツールタイプ用ツールテーブルの追加
4. ステージ 4: sha_customize ファイルでの新しいツール関数の指定
5. ステージ 5: 新しい穴開けツールタイプのテスト
ステージ 1: ワークプレーン、プロファイル、基準点の作成
次の操作を行います。
1. sha_punch_functions.lsp ファイルの作業コピー (my_punch_func.lsp など) に、新しいツールタイプエントリを作成します。以下のサンプルは、三角穴開けツールのワークプレーン、プロファイル、基準点を生成します。
;=====================================================
;
; TRIANGLES
;
;
;=====================================================
(defun sha-tri-profile
(
size
)
(let ((result nil)
(tool-wp (sha-tool-wp))
)
(create_workplane :new
:name tool-wp
)
;********* create Profile *******
(POLYGON
(gpnt2d (- (/ size 2)) (- (/ size 3)))
(gpnt2d (/ size 2) (- (/ size 3)))
(gpnt2d 0 (* (/ size 3) 2))
(gpnt2d (- (/ size 2)) (- (/ size 3)))
)
;********* create Adjustpoints *******
(C_POINT
0,0
(gpnt2d (/ size 2) (* (/ size 3) 2))
(gpnt2d (- (/ size 2)) (* (/ size 3) 2))
(gpnt2d 0 (- (/ size 3)))
)
(setq result (sha-profile-of-wp tool-wp))
(delete_3d (sha-absolute-name tool-wp))
result
)
)
2. このファイルを保存します。
* 
カットアウト定義が、関連付けられた絞りツールと互換性があることを確認します。
新しいツール定義を完全に別のファイルに保存する場合は、ファイルの先頭に以下のパッケージステートメントを含めてください。
(in-package :sheet-advisor)
(use-package :oli)
ステージ 2: 穴開けタイプテーブルで新しい穴開けツールタイプの宣言
次の操作を行います。
1. ショップ定義ファイル (sha_demoshop.lsp ファイルの作業コピー、例: my_shop.lsp) を開きます。
2. スクロールして "穴開けタイプ" テーブルを表示します。
3. 新しい tri 穴開けツールタイプの名前を追加します。結果として作成された "穴開けタイプ" テーブルを下に示します。
:TABLE-TITLE "Punch Types"
:COLUMNS
( :TOOL_TYPE :DESCRIPTION ) ; The :TOOL_TYPE column must exist
:COLUMN-NAMES
("Tool Type" "Description")
:UNITS
( nil nil )
:CONTENTS
(
; v localizable name
("tri" "Triangle")
("rnd" "Round")
("rect_sharp" "Rectangle Sharp")
("rect_rnded" "Rectangle Rounded")
...
ステージ 3: 新しい穴開けツールタイプ用ツールテーブルの追加
次の操作を行います。
1. 新しいツールテーブルを追加するショップ定義ファイル (my_shop.lsp など) を開きます。
2. ショップ定義ファイルに既存のツールテーブルをコピーするか、新しいツールテーブルを作成します。
3. このテーブルで、新しいツールタイプのパラメータレコード (寸法、ID、適用マーカーなど) を指定します。
4. :PROF_FNC 行で、新しい穴開けツール関数の名前を指定します。
5. 新しいツールテーブルに :PROF_WP ステートメントがないことを確認します。:PROF_WP は非パラメトリックツール用です。
新しい tri ツールタイプ用のツールテーブルの例を以下に示します。
(sha-define-shop-table "tri"
:TABLE-TITLE "Triangle"
:COLUMNS
(:SIZE :TOOL_ID
:DESCR :MIN_THICK
:MAX_THICK :PREFERENCE :ADVICE
)
:COLUMN-NAMES
( "Size" "Tool Id" "Descr" "Min Thick" "Max Thick" "Pref"
"Advice")
:UNITS
( :mm nil
nil :mm
:mm nil
nil)
:CONTENTS
(
(6.10 "01004"
"TRA" 0
1 :PREF
"-")
(7.00 "01012"
"RVX" 0
1.6 :NONPREF
"-")
(8.00 "01024"
"GL2" 0
2.0 :PREF
"-")
(10.00 "01136"
"OLN" 0
2.0 :PREF
"-")
)
:KEY (:SIZE )
:DISPLAY (:SIZE :PREFERENCE :ADVICE)
:FLAT-TEXT (:TOOL_ID)
; unique, not displayable column entries
:PROF_FNC sha-tri-profile
)
ステージ 4: sha_customize ファイルでの新しいツール関数の指定
Creo Elements/Direct Sheet Metal の起動時に常に新しいツール関数が自動でロードされるようにするには、sha_customize ファイルでツール関数を指定する必要があります。
たとえば、カスタマイズしたツール関数ファイルの名前が my_punch_func.lsp である場合、sha_customize ファイルの末尾に次の行を追加する必要があります。
sha-tdb-load "my_punch_func.lsp"
* 
カスタマイズしたショップファイルは必ず sha_customize ファイルで指定します。詳細については、 カスタマイズした TDB ファイルの導入を参照してください。
ステージ 5: 新しい穴開けツールタイプのテスト
以下の手順を実行して、新しい穴開けツールタイプをテストします。
1. 以下の方法のいずれかを使用して、Creo Elements/Direct Sheet Metal に新しい穴開けツールタイプをロードします。
Creo Elements/Direct Sheet Metal の再起動
または、
Creo Elements/Direct Sheet Metal がすでに実行中の場合、Creo Elements/Direct Sheet Metal ウィンドウの最下部のコマンド行をクリックし、次のコマンドを入力してショップ定義ファイルをロードします。
(sha-tdb-load "my_shop.lsp")
2. 「穴開け」メニューで、「三角形」を選択します。
3. 「ツール」をクリックします。新しい三角穴開けツールが別の選択リストに表示されます。
4. 好みの三角穴開けツールを選択して適用します。この操作の結果は、次の例のようになります。
図 189. 図 3. 三角穴開け集合体
5. 作成された穴開け集合体を調べます。
非パラメトリック穴開けツールタイプ
パラメトリック穴開けツールタイプのほかに、ユーザが自由に使える非パラメトリック穴開けツールタイプがいくつか提供されています。非パラメトリックツールは単一のパラメータレコードで定義されます。これは、そのようなツールは単一サイズでしか使用できないということです。
このような定義済みの非パラメトリック穴開けツールを使用する場合は、ショップ定義ファイルの "穴開けタイプ" テーブルで、使用するツールタイプを宣言します。その後、関連付けられたツールテーブルをショップ定義ファイルに追加します。次の 非パラメトリック穴開けツールとタイプエントリの追加に、方法の例を示します。
別の方法として、独自の非パラメトリック穴開けツールをゼロから作成することもできます。その方法は、以下のセクションで説明します。
非パラメトリック穴開けツールとタイプエントリの追加
非パラメトリック穴開けツールタイプを TDB に追加する場合は、以下の手順を実行します。
1. Creo Elements/Direct Modeling の「2D 作成」コマンドまたは関連マクロコマンドを使用して、新しい穴開けツールのプロファイルを作成します。このプロファイルに基準点として使用する点を追加します。
2. ワークプレーンとプロファイルを「3D データ」形式で保存します。
3. ショップ定義ファイルに新しい穴開けツールを追加します。
たとえば、"snap-in slot" という名前の新しいタイプの非パラメトリック穴開けツールを追加する場合は、以下の手順に従います。
1. 下図のサンプルのようなツールプロファイルを作成します。プロファイルの中心がワークプレーンの原点 (0,0) であることを確認します。
図 190. 図 4. 非パラメトリック穴開けツールのサンプルプロファイル
2. 基準点の役割を果たす点を追加します。便利な基準点の位置については、既存の穴開けツールを参照してください。
3. Creo Elements/Direct Sheet Metal の穴開けツールのデフォルトディレクトリまたは独自の穴開けツールディレクトリに新しいツールを保存します。デフォルトディレクトリは次のとおりです。
$INSTALLDIR/personality/SheetAdvisor/punch
* 
Creo Elements/Direct Modeling は、サーチディレクトリとして指定されたディレクトリからワークプレーンとパーツの情報をロードします。サーチディレクトリにディレクトリを追加するには、
(SEARCH_DIRECTORIES :append "$INSTALLDIR/personality/SheetAdvisor/punch")
という構文を使用します。
ツールが簡単に識別できるファイル名を指定します (例: snap_slot.sdw)。「ファイル」メニューの「トップレベルのインスタンスファイル」ボタンがオフの場合、関連付けられた .sdwc ファイルと .sdw ファイルが Creo Elements/Direct Modeling によって自動的に作成されます。このボタンがオンの場合、単一のファイル (.sdwc) のみが生成されます。いずれかの方法を使用できます。
別の方法として、新しい穴開けツールのワークプレーンとプロファイルを保存するファイルのフルパス名を指定します。たとえば、ユーザの名前が Jane で新しいツールファイルをホームディレクトリに保存する場合は、次のようなパス名とファイル名を指定します。
/users/jane/snap_slot.sdw
4. ショップ定義ファイルの "Punch Types" セクションで、TDB に追加する新しい穴開けツールタイプの定義文字列 ("Triangle" など) を追加します。
5. ショップ定義ファイルの "穴開けツール" セクションの末尾に、新しい穴開けツールの定義テーブルを追加します。このテーブルをゼロから作成することも、既存の穴開けツールテーブルをコピーして編集することもできます。サンプルテーブルを以下に示します。このテーブルは、先の手順で述べたホームディレクトリのパスを含んでいます。
(sha-define-shop-table "snap_slot"
:TABLE-TITLE "Snap-in Slot"
:COLUMNS
(:IN_DIA :OUT_DIA :WIDTH :DEPTH :ANGLE :TOOL_ID :DESCR
:MIN_THICK :MAX_THICK :PREFERENCE :ADVICE :PROF_WP)
:COLUMN-NAMES
("Up Rad" "Lo Rad" "Width" "Depth" "Angle" "Tool Id" "Descr"
"Min Thick" "Max Thick" "Pref" "Advice" "Prof WP")
:UNITS
(:mm :mm :mm :deg nil nil nil
:mm :mm nil nil nil)
:CONTENTS (
(10.0 6.0 6.0 10 -12 "SHS7" ""
1 1.7 :PREF "-" "/users/jane/snap_slot.sdw")
)
:KEY (:IN_DIA :OUT_DIA :SLOT_WIDTH :ANGLE :NR_SLOTS)
:DISPLAY (:IN_DIA :OUT_DIA :SLOT_WIDTH :ANGLE :NR_SLOTS :PREFERENCE :ADVICE)
:FLAT-TEXT (:TOOL_ID)
:HELP "/users/name/snap"
)
非パラメトリックツールで使用できるサイズは 1 つだけであるため、このテーブルは 1 列につき 1 つの値を指定しています。
* 
カスタマイズしたショップファイルは必ず sha_customize ファイルで指定します。詳細については、 カスタマイズした TDB ファイルの導入を参照してください。
* 
Prof WP 列の /users/jane/snap_slot.sdw ステートメントは、新しいワークプレーンとプロファイルを保存したファイルのパス名の例にすぎません。
6. 新しいツールファイルを保存するディレクトリが sha_customize ファイルで指定されていることを確認します。新しいツールをデフォルトの穴開けツールディレクトリに保存する場合は、フルパスを指定する必要はありません。
7. 必要に応じて、新しい非パラメトリック穴開けツールをテストできます。一般的な手順は、 ステージ 5: 新しい穴開けツールタイプのテストで説明されている手順と同じです。