拡張モジュール > 高度な穴加工 > 穴加工のカスタマイズ > Creo Elements/Direct Modeling - Creo Elements/Direct Machining - Integration Kit - 穴の定義
  
Creo Elements/Direct Modeling - Creo Elements/Direct Machining - Integration Kit - 穴の定義
MACHADV-DEFINE-HOLE (マクロ)
このマシニング モジュールでは、自由にステップされた断面を用いて穴を作成できる LISP マクロが利用できます。穴の図形を作成するコードであり、公差やねじの情報をモデルに添付することもできます。
(cad-cam-link-ui::machadv-define-hole ....)
パラメータ:
名前
データ タイプ
タイプ
説明
:part
SEL_ITEM
必須
穴を開けるパーツです。
* 
現在のパーツ設定は、このマクロによって変更されません。
:axis-start-pos
GPNT3D
必須
穴の開始位置 (軸が開始面と交差する位置) です。
:axis-dir
GPNT3D
必須
穴の軸方向で、通常はボア操作の軸です。
:feature-name
文字列
任意
構造一覧内に表示される集合体の名前です。指定されていない、または NIL に設定されている集合体は名付けられません。
:feature-type
キーワード
必須
現在固定されている、可能な値は NIL および :cad-cam-link-stepped-hole のみです。可能な値のリストは後で示します。
:constructor
LISP フォーム
必須
この LISP フォームは内部の sd-call-cmds で評価され、ねじを定義し、穴の形状を記述します。
このフォームに対する制限事項については、 documentation about sd-call-cmdsを参照してください。このリンクを利用できるのは、英語版の文書のみです。
:success
LISP フォーム
任意
constructor フォームによりエラーが発生しない場合に評価される LISP フォームです。
このフォームは、constructor フォームの評価に使用される sd-call-cmds 内で、success フォームとして用いられます。success フォームの評価の際、グローバル変数 *SD-ACTION-RESULT* が constructor フォーム 内で呼び出された最後のアクションルーチンのアクション結果にバインドされます。
:failure
LISP フォーム
任意
constructor フォームによりエラーが発生する場合に評価される LISP フォームです。このフォームは、constructor フォームの評価に使用される sd-call-cmds 内で、failure フォームとして用いられます。failure フォームの詳細については、 documentation about sd-call-cmdsを参照してください。このリンクを利用できるのは、英語版の文書のみです。
制限事項:
sd-call-cmds に関するすべての制限事項が、ここでも適用されます。
断面の輪郭線は、以下の条件を備えている必要があります。
直線によって構成され、円柱面、円錐面、および平らな底面を形成する。
回転によりオブジェクトを作成する場合には、1 つのボディを作成する。
有効な穴を作成する (つまり、曲がった開始面または終了面の場合には十分に延長されていること)。
穴の作成操作では、O-リング シール用の追加の溝のような異なる形状を作成することはできません。
面取りとしてエクスポートする場合は、面取りを CHAMFER コマンドで作成する必要があります。円錐は、面取りの形状を作成するだけで、円錐として転送されます。
今後のリリースでブレンドのサポートが予定されていますが (時期は未定)、面取りと同じ制限事項が適用されます。
図1 : サポートされている輪郭線
図2 : 材質に切り込むことが可能なドリル先端
図3 : 逃げによる無効
図4 : 2 つの穴への分割による無効
図5 : アンダーカットによる無効
図6 : 追加の溝による無効
図7 : 追加のブレンドによる無効
図8 : 円錐穴による無効
次の例は sd-defdialog の一部です。直径 40、20、40 のステップ穴を作成し、後で 4 回の面取りを行います。
:ok-action

'(let* ((part (sd-inq-curr-part))
(axis-start-pos origin)
(axis-dir 0,0,-1)
(feature-name)
(feature-type)

(poly_points '(0,0 60,0 60,20 50,20 50,10 10,10 10,20 0,20 :close))
)

(cad-cam-link-ui::machadv-define-hole

:part (oli::sd-inq-curr-part)

:axis-start-pos axis-start-pos
:axis-dir axis-dir

:feature-name feature-name

:feature-type feature-type
:constructor
`(let (
(curr-wp (sd-inq-curr-wp))
(geo-mode (sd-inq-geometry-mode))
)

(unless (eq geo-mode :real)
(geometry_mode :real)
)
(create_workplane
:new :pt_dir

:origin ,axis-start-pos

:normal :x :u_dir ,axis-dir
)

(apply #'polygon ',poly_points)

(bore :axis ,axis-dir :turn_angle (* 2.0 pi))

(chamfer :check :dist_angle
(sd-vec-add ,axis-start-pos

20,0,0) :new_angle_dist 1 45
(sd-vec-add ,axis-start-pos

10,0,-10) :new_angle_dist 2 45
(sd-vec-add ,axis-start-pos

10,0,-50) :new_angle_dist 3 45
(sd-vec-add ,axis-start-pos

20,0,-60) :new_angle_dist .5 45
)

(delete_3d (sd-inq-curr-wp))

(when curr-wp (CURRENT_WP curr-wp))

(unless (eq geo-mode :real)
(geometry_mode geo-mode)
)
)
)
)