文档
内核
封装/核心的纯几何结构和加工核心,通过实际输出和 3D 示例从内部进行解释。
从英文自动翻译。 查看英文原文
内核以及它们如何相互依赖
几何和加工代码 packages/core 是一组纯内核:相同的输入,相同的输出,没有 I/O。本节中的每一页都从内部解释了其中一个:它的用途、它的数据结构和算法、真正的 API、限制和常量、通过运行它捕获的输出以及从该输出构建的 3D 视图。
内核导入图 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
| 从 | 进口自 | 文件导入 |
|---|---|---|
| 凸轮发生器 | 凸轮内核 | 2 |
| 凸轮发生器 | 历史 | 1 |
| 凸轮发生器 | 网 | 2 |
| 凸轮发生器 | 草图 | 1 |
| 凸轮内核 | 凸轮发生器 | 4 |
| 凸轮内核 | 网 | 1 |
| 绘画 | 布雷普 | 1 |
| 绘画 | 历史 | 4 |
| 绘画 | 网 | 7 |
| 特征 | 网 | 5 |
| 历史 | 布雷普 | 1 |
| 历史 | 特征 | 5 |
| 历史 | 网 | 2 |
| 历史 | 草图 | 2 |
| 网 | 宽容 | 1 |
CAM 内核↔ CAM 生成器这一周期是经过深思熟虑的:内核重用生成器的策略和元素模式,生成器回调内核的切削数据和规划器。
内核页面
| 页 | 它涵盖什么 | 来源 |
|---|---|---|
| 草图解算器 | Levenberg-Marquardt 约束残差、自由度、自由点和冲突的等级分析。 | packages/core/src/cad/sketch.ts |
| 网格与 CSG | 闭合三角形网格、具有凸快速路径的 BSP 布尔值、汤清理和拓扑。 | packages/core/src/cad/csg.ts, solid.ts, mesh-clean.ts |
| 精确 B 代表 | 解析和 NURBS 面、精确布尔值、圆角、孔识别、质量属性、STEP。 | packages/core/src/cad/brep/ |
| 特征生成器 | 渐开线齿轮、ISO 螺纹、螺旋线和带平面图案的金属板。 | packages/core/src/cad/gear.ts, thread.ts, helix.ts, sheet-metal.ts |
| 公差和镶嵌 | 段计数、小数和实体镶嵌的一弦容差。 | packages/core/src/cad/tolerance.ts, tessellate.ts |
| CAM加工内核 | 规划、切割机、带有剩余体积支架的体素库存、经过认证的碰撞检查。 | packages/core/src/cam/kernel/ |
共享规则
- 毫米无处不在,代码中的弧度(仅在字段指定的情况下为度数,例如齿轮的压力角或混合角)。
- Z 向上,逆时针外环,朝外的三角形。
- 纯数据。 网格是类型数组,B-reps 是索引表,草图是实体列表;所有内容都序列化为 JSON 并在项目历史记录中进行差异化。
- 错误是明确的。 无效输入会抛出
RangeError或内核错误类(SketchError,BooleanError,BudgetExceeded)带有助理可以显示的消息;永远不会返回错误的结果。 - 工作有界。 网格内核中的段和顶点预算、精确内核中的时间预算、线程中的转弯限制、碰撞检查中的细分深度。
这些页面上的每个数字都是通过使用 Bun 对照此存储库中的源代码运行内核而生成的;重新运行片段以重现它们。