feat(brep): S13-B IGES export + format utilities
CI / Build & Test (push) Failing after 33s
CI / Release Build (push) Failing after 39s

Add IGES v5.3 export for B-Rep models with:
- Entity mapping: Point(116), Line(110), Circular Arc(100),
  B-Spline Curve(126), Plane(108), B-Spline Surface(128),
  Vertex(502), Edge(504), Loop(508), Face(510), Shell(514),
  Manifold Solid B-Rep(186)
- Auto-detection of circular arcs (degree-2 NURBS with
  isosceles control triangle) and planes (1x1 degree surfaces)
- Fixed 80-column IGES format with S/G/D/P/T sections
- Header-only format_utils.h for IGES/STEP number formatting

New files:
- include/vde/foundation/format_utils.h
- include/vde/brep/iges_export.h
- src/brep/iges_export.cpp
- tests/brep/test_iges_export.cpp
This commit is contained in:
茂之钳
2026-07-24 07:34:27 +00:00
parent 092f35c3af
commit 4f75bb8b07
6 changed files with 951 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "vde/brep/brep.h"
#include <string>
#include <vector>
namespace vde::brep {
/// Export B-Rep bodies to IGES format string (version 5.3)
/// Supports common entity types for maximum compatibility:
/// - Type 116: Point
/// - Type 110: Line
/// - Type 100: Circular Arc
/// - Type 126: Rational B-Spline Curve
/// - Type 108: Plane
/// - Type 128: Rational B-Spline Surface
/// - Type 502: Vertex (B-Rep topology)
/// - Type 504: Edge
/// - Type 508: Loop
/// - Type 510: Face
/// - Type 514: Shell
/// - Type 186: Manifold Solid B-Rep Object
[[nodiscard]] std::string export_iges(const std::vector<BrepModel>& bodies);
/// Export to IGES file
void export_iges_file(const std::string& filepath, const std::vector<BrepModel>& bodies);
} // namespace vde::brep