螺钉 单元体螺钉孔 · 螺钉孔

在型材立柱上生成螺钉过孔 + 工艺孔,使用点投影定位
📂 LK → Hole 📄 ScrewHole.cs 🔘 按钮 🎛️ 右键菜单 📐 动态参数

📖 功能概述

在型材立柱的指定基准点处,通过投影到参考面 + 沿法向生成管状实体的方式,生成螺钉连接的过孔(VH)和工艺孔(PH)

支持两种模式:规格查表模式(使用标准螺钉孔径)和手动半径模式(自定义孔径)。组件内置 正向/反向按钮,可翻转孔道的生成方向。

💡 核心特性:
  • 点投影定位 — 将基点通过 Transform 和投影转换到参考面,确保孔位准确贴合型材表面
  • 双孔输出 — 同时生成过孔(GK) 和 工艺孔(GYK),分别使用 GKR 和 GYKR 标准孔径
  • 正向/反向按钮 — 内置按钮控制孔道的生成方向,适应不同的型材朝向
  • 动态参数 — 可添加半径/孔长度表/圆孔长度三个可选输入

🔘 内置按钮操作

组件使用 RighrClick_ButtonComponent 基类,提供了一个两态按钮:

按钮状态显示文字效果
状态 1(默认)反向孔方向翻转:当 btnState1 = true 时,所有偏移量乘以 -1
状态 2正向标准方向:孔沿投影向量正向延伸
⚠️ 注意:按钮状态决定 Len 列表中的偏移量正负。反转按钮等同于反转孔道的延伸方向,而非常见的方向向量取反。

📥 输入参数

名称类型必填说明
螺钉基点 (P) Point 必需 型材位置上的螺钉基点(默认隐藏)。此点需经过 Transform 转换才能到达实际空间位置。
基点转换 (X) Transform 必需 将基点的局部坐标转换到世界坐标的变换矩阵(默认隐藏)。G.Transform(TS)
投影向量 (V) Vector 必需 基点转换后投影到参考面的方向向量(默认隐藏)。
投影面 (B) Brep 必需 螺钉定位参考面(默认隐藏),用于确定孔在三维空间中的实际位置。
半径 (R) Number 可选 手动半径。连接后覆盖规格查表,仅输出过孔(端口0)。
孔长度表 (D) Number 可选 3 个数字的列表,默认 [-150, 130, 150],控制 3 段偏移量→定义两个孔段的长度和分界。
圆孔长度 (L) Number 可选 手动半径模式下的圆孔长度(默认 40)。

📤 输出参数

名称类型说明
过孔 (Via Hole) (VH) Brep 螺钉贯穿的通孔段。使用 GKR[规格]/2 半径。在规格模式下始终输出。
工艺孔 (Process Hole) (PH) Brep 加工工艺孔段。使用 GYKR[规格]/2 半径。仅在规格模式下输出;手动半径模式不输出。

🧠 核心算法流程

1
Transform
基点 → 世界坐标
2
点投影到
参考面 Brep
3
规格查表/手动
确定半径
4
计算3段偏移
→ 2条轴向线
5
CreatePipe
输出结果

🔍 步骤 4 详细:偏移与分界

从投影点出发,沿 V 方向按 Len 列表的 3 个值偏移出 3 个点:

偏移值含义
Len[0](默认 -150)起点偏移(负值表示反方向延伸)
Len[1](默认 130)过孔到工艺孔的分界点偏移
Len[2](默认 150)终点偏移

由此构造两条线段:

💡 孔段设计思路:工艺孔(GYK)通常比过孔(GK)略靠近内部,用于加工定位。两个孔段使用不同半径标准。如果手动输入半径 R,则仅生成过孔段,使用自定义半径。

🔧 几何构造:CreatePipe

两段孔分别使用 Brep.CreatePipe(curve, radius, true, PipeCapMode.Round, true, 0.1, 0.1) 生成,与 PointToHole_UI5 相同管线方法。

每个孔段都通过 HoleInfo.SetHoleInfo() 附着元数据(类型="圆孔"、规格名称、半径)。

🔄 反向按钮对偏移的影响

btnState1 = true(显示"反向"时),Vt = Vt * -1,所有偏移量取反:

正向:pts = [投影点 + 150V, 投影点 - 130V, 投影点 - 150V]

反向:pts = [投影点 - 150V, 投影点 + 130V, 投影点 + 150V]

🧪 典型使用场景

⚠️ 注意事项

📋 组件信息

名称单元体螺钉孔
英文名螺钉孔 (ScrewHole)
分类LK → Hole
基类RighrClick_ButtonComponent + IGH_VariableParameterComponent
特色按钮(正向/反向)、右键菜单(规格)、动态参数、双孔输出
GUID{9E51B2F5-A730-484F-8EEA-3CD0F96AD793}

更新日期:2026-06-29