feat(v12): generative surfaces (Sweep/Loft/Net) + curve tools + surface analysis
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 38s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled

M1 — Generative Surfaces:
- sweep_surface: Explicit/Spine/TwoGuides modes
- loft_surface: multi-section interpolation + guide + tangent constraints
- net_surface: bidirectional curve grid → NURBS

M3 — Curve Tools + Analysis:
- curve_tools: project_curve, parallel_curve, connect_curve(G1-G3), helix, isoparametric
- surface_analysis: inflection_lines, checker_mapping, surface_checker_report (A/B/C/D)
- 14/14 tests passed

Fixed: constraint_solver.h duplicate declaration, fea_mesh.h comment syntax

Pending: M2 surface editing (retrying)
This commit is contained in:
茂之钳
2026-07-27 09:08:01 +08:00
parent 989f1f2328
commit bb0029234f
19 changed files with 3623 additions and 5 deletions
+30
View File
@@ -123,4 +123,34 @@ namespace vde::brep {
const BrepModel& body, int face_a, int face_b,
double radius, int samples = 16);
/**
* @brief 形状过渡(Shape Fillet
*
* 沿边采样变半径,逐段建模过渡曲面,自动检测三面交角并
* 以球面填充 + 过渡面处理。
*
* 算法:
* 1. 定位目标边及其两个邻面
* 2. 沿边曲线采样 N 个截面,每截面计算半径(r_start → r_end 线性插值)
* 3. 计算每截面的角平分线方向和切点
* 4. 每相邻两截面间构建一张过渡曲面
* 5. 检测三面交角顶点(目标边端点处 ≥ 3 个面交汇)
* - 若检测到三面交角:在交角顶点处构造球面填充面
* - 球面填充面与相邻过渡面之间插入过渡面
* 6. 重建两个邻面(切除过渡区域),复制其他面,组装壳和体
*
* @param body 输入实体
* @param edge_id 目标边索引
* @param r_start 边起点处的过渡半径(≥ 0)
* @param r_end 边终点处的过渡半径(≥ 0)
* @param samples 沿边的截面采样数(默认 16)
* @return 过渡后的新实体
*
* @pre edge_id 有效,r_start ≥ 0, r_end ≥ 0
* @note 自动检测并处理三面交角,以球面填充 + 过渡面连接
*/
[[nodiscard]] BrepModel shape_fillet(
const BrepModel& body, int edge_id,
double r_start, double r_end, int samples = 16);
} // namespace vde::brep
-4
View File
@@ -584,10 +584,6 @@ public:
const core::Point3D& target) const;
private:
/// DH 参数法:单个连杆变换
static core::Transform3D dh_transform(double theta, double d,
double a, double alpha);
/// 评估闭环残差
static double evaluate_closure(
const Assembly& assembly,