Incutsection 型材内部切割位置创建剖面 · IncutterSection

在 LK 系统型材的两端切割体之间的内部区域,批量创建剖面数据
📂 LK → Brep 📄 IncutterSection.cs 🗂️ 型材专用 tertiary

📖 功能概述

这是 LK 型材工具集中的内部切割区域剖面生成组件。与 BrepSection(由用户指定参考点)不同,此组件自动检测型材内部的所有切割体,在每两个切割体之间沿型材路径自动生成垂直剖面。

💡 核心区别:
BrepSection (BS) ← 用户手动指定参考点 → 生成剖面
IncutterSection (IS) ← 自动检测内部切割体位置 → 批量生成剖面

📥 输入参数

名称类型必填说明
型材 (B) Brep 必需 LK 系统创建的型材模型(单个 Brep,需已烘焙到 Rhino 文档)

📤 输出参数

名称类型说明
剖面 (S) Generic 结构化剖面数据(TrimResults)列表。每个内部切割体对应一个剖面,按路径顺序排列

🧠 核心流程

1
获取型材模型
2
提取几何元数据
3
算交点 → 截取路径
4
计算切割体中心点
5
排序、去重点
6
生成所有剖面

🔍 步骤 2:几何元数据提取

从型材的 ObjectAttributes 中读取以下关键数据(通过 ArchivableDictionary 存储):

📐 拉伸路径 (Rail)

型材的放样/拉伸路径曲线

⬛ 截面形状 (Shape)

型材的截面轮廓 Brep

✂️ 起端切面 (Cut1)

型材起点处的端部切割面

✂️ 终端切面 (Cut2)

型材终点处的端部切割面

🟩 截面平面 (SectionPlane)

截面所在的参照平面

🧩 内部切割体 (Cuts)

型材内部的铣切区域列表

🔧 步骤 3-5:路径处理与剖面计算

  1. 路径截取:Intersection.CurveBrep 计算起端切面和终端切面与路径曲线的交点参数 t1、t2,将曲线分割成三段,取中间段作为有效路径
  2. 切割体优化:Brep.CreateBooleanDifference 从内部切割体中减去两端切面区域,得到纯净的内部切割体
  3. 计算中心点:对每个切割体求顶点坐标均值,得到近似的几何中心
  4. 排序去重:将中心点按路径曲线参数 t 值 严格递增排序,并去除参数几乎相等的重复点(容差 1e-9)
  5. 生成剖面:CurveFrameCalculator 计算每个中心点的垂直平面,再通过 PlaneAligner 对齐到截面参照方向,最后用 BooleanTrimCalculator 计算内部切割体在截面上的投影区域

📦 输出数据结构

每个输出项为 TrimResults 结构化数据,包含:

字段类型说明
PlnPlane剖面所在的垂直平面
ShapBrep在当前平面位置的截面形状
IncutsBrep[]内部切割体在剖面上的投影区域(被切掉的部分)

🧪 典型使用场景

⚠️ 注意事项

📋 组件信息

名称型材在内部切割位置创建剖面
英文名IncutterSection (IS)
分类LK → Brep
Exposuretertiary(三级标签页可见)
基类GH_Component
GUIDE263F6AF-8E31-4820-B17A-6930F4D40F95