|
参数:
|
名称
|
数据类型
|
类型
|
说明
|
||
|---|---|---|---|---|---|---|
|
: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 之内对其进行评估,以创建孔的几何表示,并且定义螺纹。
|
|||
|
:success
|
LISP 形式
|
可选
|
一种 Lisp 形式,在构造函数形式没有导致错误时对其进行评估。
这是在 sd-call-cmds (用于在评估成功形式期间评估构造函数形式) 之内用作成功形式的形式,全局变量 *SD-ACTION-RESULT* 绑定到在构造函数形式之内调用的最后一个操作例程的操作结果。
|
|||
|
:failure
|
LISP 形式
|
可选
|
一种 Lisp 形式,在构造函数形式导致错误时对其进行评估。这是在 sd-call-cmds (用于评估构造函数形式) 之内用作失败形式的形式。有关失败形式的详细信息,请参阅
documentation about sd-call-cmds。(此链接仅在英语文档中可用。)
|
|
限制:
|
||
|---|---|---|
|
• 所有适用于 sd-call-cmds 的限制在此处也适用。
• 横截面轮廓必须满足以下条件
◦ 由直线组成,产生圆柱面、圆锥面和平面底面,
◦ 创建一个主体 (如果它轮流用于创建对象)
◦ 创建真实孔,即对于起始面或终止面,轮廓必须延伸足够远。
• 创建孔的操作不允许创建不同特征,例如 O 型环密封的附加槽。
• 倒角必须由命令 CHAMFER 创建 (如果要将它们导出为倒角)。只需创建倒角的形状就可以将圆锥作为圆锥传递。
• 计划在后续版本 (日期尚未确定) 中支持圆角,但是会应用与倒角相同的限制。
|
||
|
图1:支持的轮廓 ![]() |
图2:钻孔尖端可能切入材料 ![]() |
|
|
图3:由于凹槽而无效 ![]() |
图4:由于分隔成两个孔而无效 ![]() |
|
|
图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) ) ) ) ) |