4f75bb8b07
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
28 lines
807 B
C++
28 lines
807 B
C++
#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
|