CAD Exchanger SDK
B-Rep Geometry and Topology

Overview

B-Rep (boundary) representation provides precise definition of a part. B-Rep is defined via a combination of geometry and topology: geometry (points, curves and surfaces) defines a body form and topology (vertices, edges, faces, shells, etc) defines trimming of underlying geometry.

CAD Exchanger API follows the ISO 10303-42 specification and uses its geometrical and topological entities.

The following sections describe supported types of geometrical curves and surfaces and topological entities.

Curves

Curves can be defined in 3D model space or in 2D parametric space of a surface. The latter are called parametric space curves or p-curves.

CAD Exchanger provides two hierarchy of classes - for 3D and 2D curves. The former derives from the ModelData_Curve class and the latter from the ModelData_Curve2d class.

CAD Exchanger supports the following curve types:

  • analytical/elementary curves (line, circle, ellipse, hyperbola, parabola);
  • Non-Uniform Rational B-Splines (NURBS);
  • Bezier curves;
  • Offset curves;
  • Trimmed curves.

The curve type is returned by ModelData_Curve::Type() (or ModelData_Curve2d::Type()) as ModelData_CurveType enumeration.

Type C++ classes Example
Line ModelData_Line, ModelData_Line2d
line2d.png
Circle ModelData_Circle, ModelData_Circle2d
circle2d.png
Ellipse ModelData_Ellipse, ModelData_Ellipse2d
ellipse2d.png
Hyperbola ModelData_Hyperbola, ModelData_Hyperbola2d
hyperbola2d.png
Parabola ModelData_Parabola, ModelData_Parabola2d
parabola2d.png
Bezier curve ModelData_BezierCurve, ModelData_BezierCurve2d
bezier_curve.png
B-Spline curve ModelData_BSplineCurve, ModelData_BSplineCurve2d
bspline_curve.png
Offset curve ModelData_OffsetCurve, ModelData_OffsetCurve2d
offset_curve_2d.png
Trimmed curve ModelData_TrimmedCurve, ModelData_TrimmedCurve2d
trimmed_curve_2d.png

Surfaces

CAD Exchanger supports the following surface types:

  • analytical/elementary surfaces (plane, conical, spherical surface, etc);
  • swept surfaces (surfaces of revolution and extrusion);
  • Non-Uniform Rational B-Splines (NURBS);
  • Bezier surfaces;
  • Offset surfaces;
  • Trimmed surfaces.

Classes representing surfaces subclass the ModelData_Surface class. The surface type is returned by ModelData_Surface::Type() as ModelData_SurfaceType enumeration.

Type C++ class Example
Plane ModelData_Plane
plane.png
Conical Surface ModelData_ConicalSurface
conical_surface.png
Cylindrical Surface ModelData_CylindricalSurface
cylindrical_surface.png
Spherical Surface ModelData_SphericalSurface
spherical_surface.png
Toroidal Surface ModelData_ToroidalSurface
toroidal_surface.png
Surface of Linear Extrusion ModelData_SurfaceOfLinearExtrusion
surface_of_linear_extrusion.png
Surface of Revolution ModelData_SurfaceOfRevolution
surface_of_revolution.png
Bezier Surface ModelData_BezierSurface
bezier_surface.png
B-Spline Surface ModelData_BSplineSurface
bspline_surface.png
Offset Surface ModelData_OffsetSurface
offset_surface.png
Rectangular Trimmed Surface ModelData_RectangularTrimmedSurface
rectangular_trimmed_surface.png

Topological Shapes

Topological entities are used to define trimming of the geometrical entities and connectivity between the entities.

Topological entities are eventually owned by the body (ModelData_Body) which are roots in B-Rep representation. For the list of supported body types refer to Body types.

Classes representing topological entities subclass the ModelData_Shape class.

The shape type is returned returned by ModelData_Shape::Type() as ModelData_ShapeType enumeration.

Type C++ class Example
Vertex ModelData_Vertex
vertex_256.png
Edge ModelData_Edge
edge_256.png
Wire ModelData_Wire
wire_256.png
Face ModelData_Face
face_256.png
Shell ModelData_Shell
shell_256.png
Solid ModelData_Solid
solid_256.png

Examples

Refer to Model Explorer.

See also
ModelData_Curve, ModelData_Curve2d, ModelData_Surface, ModelData_Shape.