CM2 MeshTools® SDK /release 5.3.0 Preview 1

by | Aug 26, 2022

  • 5.3.0 Preview 1
  • August, 2022.
  • Major release of the CM2 MeshTools® SDK.
  • All CM2 MeshTools® SDK.
  • Due to changes in the API, client applications must be recompiled against the new headers.

/caveats

  • Major version. Due to changes in the API, client applications must be recompiled against the new headers. See also the breaking changes below.
  • Lib names suffix is _53 for this series.
  • Work in progress.

/new features

CM2 Intersect E2

  • New specialized tool to repair intersections between 2-node edges (plane 2-D or 3-D) similar to CM2 Intersect T3.

CM2 SurfMesh T3, CM2 SurfMesh Q4

  • Can now merge CAD curves with settings_type::fix_tolerance (when their maximum distance is below or equal to this value).
    Used to work only on vertices (but still not considered to merge coincident surfaces).
  • New output data_type::merged_vertices to tell which vertices have been merged into which.
  • New output data_type::merged_curves to tell which curves have been merged into which.
  • New output data_type::nbr_vertices for the number of vertices in the CAD model (before any merge).

Miscellaneous

  • New meshtools2d::boolean_ops to compute the differences, intersection and union between two plane domains defined by their extern contour (2-node edges closed meshes with similar orientation).
    Requires CM2 Intersect E2 and a plane mesh generator (CM2 TriaMesh Iso or CM2 TriaMesh Aniso).
  • New meshtools2d::offset and meshtools2d::copy_with_offset to offset a surface mesh (T3 and/or Q4) along nodal normals or user-defined nodal directions.
    Offsets can be isotropic (same offset quantity whatever the direction of the normals) or anisotropic (offset quantities depend on the direction of the normals).
  • New meshtools3d::boolean_ops to compute the differences, intersection and union between two solids defined by their extern boundary surface (3-node triangles closed meshes with similar orientation).
    Requires CM2 Intersect T3 and a tetrahedron mesh generator (CM2 TetraMesh Iso or CM2 TetraMesh Aniso).
  • New meshtools3d::extrude_line to extrude (sweep) a surface mesh (T3 and/or Q4) along a specific line to make a structured 3-D mesh (W6 and/or H8).
    Expansion ratios (spherical or anisotropic) perpendicular to the extrusion line can be set.
  • All solid extrusion functions (meshtools3d::extrude_translate, meshtools3d::extrude_rotate, meshtools3d::extrude_spiral, meshtools3d::extrude_line) now have overloads with outputs for side and top surface meshes.

/improvements

All meshers

  • Minor speed-ups (≤ 2%).

CM2 SurfRemesh T3, CM2 SurfRemesh Q4

  • Speed-ups and reduction in memory usage when numerous hard faces.

/fixes

CM2 SurfRemesh Q4

  • Hard quadrangles could be sometimes split into two triangles.

COM wrapper

  • Missing data_type::put_colors_in members for COM CM2 SurfRemesh T3/Q4.
  • Missing settings_type::put_num_threads members for COM CM2 SurfRemesh T3/Q4.

/breaking changes

CM2 SurfRemesh T3, CM2 SurfRemesh Q4

  • Edges between two hard faces are no longer reported in data_type::hard_edges, data_type::skeleton_edges, data_type::skeleton_edges_in,
    data_type::skeleton_colors and data_type::skeleton_colors_in.

CM2 SurfMesh T3, CM2 SurfMesh Q4 (source-code licenses only)

  • Class OCC_interface renamed into OCCT_interface.
  • static bool OCC_interface::curve_ref_image (const curve2D_type& C, double u, DoubleVec2& P) renamed into static bool OCCT_interface::curve_image (const curve2D_type& C, double u, DoubleVec2& P).