长圆孔 点转长圆孔 · 长圆孔

由基点 + 轴向向量 + 方向向量生成长圆孔(Slotted Hole)实体
📂 LK → Hole 📄 PointToSlottedHole.cs 🎛️ 右键菜单 📐 动态参数

📖 功能概述

输入基点、轴线方向、孔延伸方向和孔长,生成长圆孔(Slotted / Oblong Hole)实体。与普通圆孔不同,长圆孔采用矩形倒圆角 + 曲面拉伸的方式构造。

长圆孔常用于调节安装位置的场景,允许紧固件在孔长方向上滑移调整。

💡 核心特性:
  • 右键选择规格 — 支持从 M3~M16 标准规格中选择,自动匹配半径
  • 手动半径覆盖 — 通过动态添加"半径(R)"端口覆盖规格查表
  • 矩形倒圆角构造 — 先构造矩形、四角倒圆角,再沿轴向拉伸为实体
  • 完整输入校验 — Le, L, R 三个维度的合理性检查,任一不通过即中止求解

📥 输入参数

名称类型必填说明
(P) Point 必需 长圆孔的基点(默认隐藏),位于孔轴线的中点。
向量 (V) Vector 必需 孔的拉伸方向(贯穿深度方向),内部自动单位化。
长度 (Le) Number 必需 长圆孔在 D 方向上的总长度(含两端半圆弧),默认 40。必须 > R。
方向 (D) Vector 必需 长圆孔在截面平面内的伸长方向,决定开槽的方向朝向。
孔深度 (L) Number 可选 动态添加(右键 Add Input),孔在轴线方向的贯穿深度(默认 40,必须 > 0)。
半径 (R) Number 可选 动态添加,手动指定半径覆盖规格查表。

📤 输出参数

名称类型说明
长圆孔 (H) Brep 生成的长圆孔封闭实体。列表形式输出。

🧠 核心算法流程

1
读取 P, V
Le, D, (L, R)
2
确定半径
3
输入校验
Le>R, L>0, R>0
4
矩形倒圆角
→ 拉伸实体
5
居中平移
输出结果

🔍 半径确定逻辑

优先使用动态参数 R(如果已添加且有值),否则从规格表 ScrewListClass.GKR 获取。

🔧 几何构造 — 矩形倒圆角法

  1. 计算平面坐标系 — X = D, Y = Cross(D, V) 逆向,构造以 P 为原点的平面
  2. 矩形 — X 方向区间 [-Le/2, Le/2],Y 方向区间 [-r1, r1]
  3. 四角倒圆角Curve.CreateFilletCornersCurve(curve, r1, 0.1, 0.1),半径 = r1
  4. 平面 BrepBrep.CreatePlanarBreps(curve, 0.1)
  5. 拉伸SupExtrCrv(section, line) 沿轴曲线拉伸为实体
  6. 居中 — 平移 -L/2 使轴线中心在 P 点
💡 为什么不用 Pipe?长圆孔的截面是跑道形(两端半圆 + 中间矩形),而非圆形截面,因此 Pipe 不适用。需要用二维截面曲线沿路径拉伸的方式。

⚠️ 输入校验

条件错误信息
Le ≤ r1请输入合适的长度(Le>R)
L ≤ 0请输入合适的长度(L>0)
r1 ≤ 0请输入合适的半径(R>0)

🧪 典型使用场景

⚠️ 注意事项

📋 组件信息

名称点转长圆孔
英文名长圆孔 (PointToSlottedHole)
分类LK → Hole
基类RighrClickComponent + IGH_VariableParameterComponent
特色右键菜单、动态参数、矩形倒圆角构造、三重输入校验
GUID{61BE4E03-C0B1-4EDB-A590-6006D020A57D}

更新日期:2026-06-29