沉头孔2 点转沉头孔 · 沉头孔

由点、向量和规格参数生成沉头孔(Counterbored Hole)Brep 几何体
📂 LK → Hole 📄 CounterboredHole2.cs 🎛️ 右键菜单 📐 动态参数

📖 功能概述

根据指定的基准点、参考向量和沉头规格,在空间中生成一个沉头孔 Brep。沉头孔包含上下两段不同半径的圆柱孔段(大径头部 + 小径过孔),通过放样(Loft)+ 封口(Cap)构造。

💡 核心特性:
  • 右键切换规格 — 支持从预设规格列表中选择标准沉头尺寸(螺纹规格 → 自动匹配头径/过孔/沉头深度)
  • 动态参数 — 可从顶部延长 / 底部延长端口微调沉头孔的位置和深度
  • 输入校验 — 对延长尺寸进行上下界检查,超范围时报错并中止求解
  • HoleInfo 元数据附着 — 生成结果自动附加类型和规格信息,供后续统计和 BOM 提取

🎛️ 右键菜单 — 规格选择

右键点击组件,可在 CT_N(国标沉头规格列表)中选择一个标准规格,包括:

M3 — 头径6.0 / 过孔3.2
M4 — 头径7.5 / 过孔4.3
M5 — 头径9.0 / 过孔5.3
M6 — 头径11.0 / 过孔6.4
M8 — 头径14.5 / 过孔8.4
M10 — 头径18.0 / 过孔10.5

规格数据来自 ScrewListClass.CT_N / CT_R1 / CT_R2 / CT_K。选中后组件的 Message 区域会显示当前规格名称。

📥 输入参数

名称类型必填说明
(P) Point 必需 沉头孔的基点位置(默认隐藏,双击组件或在隐藏端口列表中可见)。此点位于沉头孔中轴线上。
向量 (V) Vector 必需 沉头孔的轴向参考向量(默认隐藏)。组件内部会自动单位化此向量。定义中轴线方向。
顶部延长 (T) Number 可选 沉头孔头部向上延长的附加尺寸(默认 0,最小值 -10)。用于微调孔在轴向上的位置。
底部延长 (B) Number 可选 沉头孔底部向下延长的附加尺寸(默认 0,最小值与规格相关)。用于微调过孔深度。
⚠️ 输入约束:
  • 顶部延长不能小于 -10。如果输入值超出此范围,组件会报错 顶部延长不能<-10
  • 底部延长不能小于 -(20 + k),其中 k 是该规格的沉头深度。例如 M6 的 k=6.5,则底部延长最小为 -26.5

📤 输出参数

名称类型说明
沉头孔 (H) Brep 生成的沉头孔封闭实体(单个 Brep)。包含头部大径段和小径过孔段,已封口(Cap)成实体。

🧠 核心算法流程

1
读取输入
P, V, (T, B)
2
查表获取
r1, r2, k
3
计算4个截面
位置 + 半径
4
放样+封口
生成实体
5
输出结果
附着 HoleInfo

📐 截面计算细节(步骤 3)

沿向量 V 方向,组件计算 4 个截面圆的位置和半径,构成沉头孔的轮廓:

截面沿V偏移半径说明
① 顶部-10 - topAddLenr1 沉头大头起点。topAddLen 加大 → 孔头向上延伸
② 头部止点10 + topAddLenr1 沉头大头终点,与顶部形成大径段落差
③ 过孔起点kr2 沉头深度 k 处,切换为过孔(小径),形成锥面过渡
④ 过孔终点20 + bottomAddLen + kr2 过孔贯穿长度可变。bottomAddLen 加大 → 孔底向下延伸
💡 默认尺寸关系:在 T=0, B=0 时,沿 V 方向的跨度为 30 + k。头部段从 -10 到 10(厚度 20),锥度过渡段长度 10,过孔段长度为 20。

🔧 几何构造(步骤 4)

  1. 创建截面圆 — 以 P 偏移后的位置为中心,V 为法向,各截面的半径 r1/r2 分别构造 Circle → ToNurbsCurve
  2. 放样Brep.CreateFromLoft(curves, ..., LoftType.Straight, false),直线放样模式,4 条截面曲线串联
  3. 封口CapPlanarHoles(0.1),将上下底面封闭为实体
  4. 翻转法向Flip(),确保实体面法向朝外

🏷️ HoleInfo 元数据(步骤 5)

最后通过 HoleInfo.SetHoleInfo() 在生成的 Brep 上附着元数据:

💡 HoleInfo 用途:附着在几何体上的自定义数据不影响几何本身,但可供后续的统计组件 / BOM 提取器读取,实现孔位信息的自动汇总。

📐 动态参数机制

该组件实现了 IGH_VariableParameterComponent 接口,支持在运行中动态添加或移除可选输入端口:

操作条件结果
添加顶部延长 当前输入数 ≥ 2 且"顶部延长"端口不存在 在位置 2 插入 NickName="T" 的数字端口,默认值 0
添加底部延长 当前输入数 ≥ 3 且"底部延长"端口不存在 在位置 3 插入 NickName="B" 的数字端口,默认值 0
移除顶部延长 当前输入数 ≤ 3 移除位置 2 的端口
移除底部延长 当前输入数 ≤ 4 移除位置 3 的端口
操作方式:右键组件 → "Add Input" / "Remove Input" 子菜单,或在组件右侧已显示的可选端口上右键删除。

💾 序列化与状态持久化

组件的规格选择状态通过 Write / Read 方法保存到 .gh 文件中:

这意味着:打开已保存的 .gh 文件时,组件的规格状态保持与保存时一致,无需重新选择。

🧪 典型使用场景

场景说明
型材沉头孔 在铝型材/钢型材设计面上,定位生成符合标准的沉头孔,用于螺栓连接。
批量打孔 配合多点数据和向量数据,批量生成多个沉头孔实体。
孔位微调 通过顶部/底部延长参数,微调沉头孔在板厚方向上的位置,适应不同连接厚度。
BOM 输出 生成的沉头孔自带 HoleInfo 规格信息,可直接用于 BOM 统计和后续加工数据输出。

⚠️ 注意事项

📋 组件信息

名称点转沉头孔
英文名沉头孔 (CounterboredHole2)
分类LK → Hole
基类GH_Component + IGH_VariableParameterComponent
特色右键菜单(规格选择)、动态参数(延长尺寸)、输入校验
GUID{6C334ECF-CDD8-4437-B298-F0AAB7737546}

更新日期:2026-06-29