03 August 2022 – C3D Labs is pleased to announce the release of C3D Toolkit 2022, a major update to its software development kit (SDK). The SDK is used by independent software firms to create and enhance their design and engineering programs for computer-aided design (CAD), manufacturing (CAM), and engineering (CAE), among others.
Our 2022 release features new and improved tools for 3D surfaces, solids and polygonal modeling, 3D sheet metal design, 3D Web visualization, and parametrization. It offers significant enhancements in every one of the modules in our toolkit:
- C3D Modeler geometry kernel
- C3D Solver 2D and 3D constraint manager
- C3D FairCurveModeler smooth curve constructor
- C3D B-Shaper polygon to b-rep converter
- C3D Converter data exchange
- C3D Vision visualization engine
- C3D Web Vision visualization engine
Together, the modules provide a complete solution for building 3D design applications for desktops, mobile, clouds, and the Web.
C3D Labs added new capabilities to the C3D Toolkit 2022 after we assessed the needs of modern design software in many industries. The new functions are useful in classic CAD, CAM, and CAE systems, as well as with software in newer fields, such as building information modeling (BIM), virtual reality (VR), 3D scanning, and digital manufacturing. We have customers in all of these fields using our toolkit for their software.
New in Surface Modeling
As we were planning the 2022 release of our C3D Modeler geometric kernel, we decided to focus on the area of complex surface modeling, which is considered the high-end of CAD functionality. Adding complex surfaces paves the way for C3D to solve design tasks for the aerospace and shipbuilding industries.
Recently, we presented in our blog a new function related to median shelling. Previously, we could model such surfaces only for pairs of faces equidistant from each other; in the new version, however, we implemented the ability to construct shells from non-equidistant pairs of flat faces. The resulting mid-surface is constructed equidistantly from the parent faces, as shown by the figure below.
Traditionally, functions related to the surfaces of conic sections undergo significant improvements in each new version of our geometric kernel. This time is no different: we implemented the ability to construct surfaces that are minimally-stressed and tangent to two sets of faces. These improvements expand the scope of surfaces of conic sections that will be helpful in modeling complex contours of structures, such as those used in aircraft, ship, and turbine designs.
We also made major improvements to surfaces made from curve meshes, in particular joining the boundaries of surfaces smoothly, as illustrated below.
Functions for ruled surfaces are expanded with several new construction methods:
- By a curve and a direction
- By a curve and a surface
- Along a curve touching a surface
- Touching two surfaces.
Patch operation functions are improved. Whereas previously C3D Toolkit modeled patches on Coons surfaces only when all boundaries were joined smoothly with the original surfaces, you can now build patches on boundaries where tangency conditions are violated.
We continue to work on extending polyhedral surfaces by eliminating the overlap (or divergence) of faces that are subject to extension. Now if extended faces overlap or diverge, the method builds a common edge for all of them.
Added Curve Construction Methods
It is worth talking in some detail about the changes we made to our C3D FairCurveModeler module, which constructs smooth curves. Among the functions we added, one is a new method that approximates an array of noisy points, which typically takes as input parameters the array of noisy points and some NURBS curves. The figure below shows (at top right corner) how the curvature plot of such a curve has an oscillating effect.
The result of the new algorithm is a smooth curvature variation of the curve, which is confirmed by its graph (bottom right corner).
For the fair curve modeler, we improved the algorithms that build curves in boundary cases; added smooth curve builders; and added new API (application programming interface) functions.
In the C3D Modeler, we focused on curve construction functions by improving existing methods and adding these two: flattening spatial curves from cylinders to planes; and chamfering the joints of three-dimensional contours. This last method was added at the request of users.
We have curve extension functions under development. In essence, open curves can be extended from either of their ends to a given length, with you controlling how the ends are extended through the following options: tangent extension; circular arc extension; and natural extension.
Improved Solids Modeling
Functions for editing solid bodies with the geometric kernel are modernized. In particular, we improved the following operations on bodies: replacing faces with equidistant faces; moving and deleting faces; and removing roundings from faces.
For rounding operations, you can now construct rounds with variable radii along boundary curves, as illustrated below.
New in Sheet Metal
We added a pair of unique functions to the sheet metal modeling of C3D Modeler. One improves the operation of cuts in sheet bodies, allowing you to normalize cuts in oblique body elements. “Normalize” means ensuring that the edges of the resulting cuts are perpendicular. This makes it possible to later flatten sheet bodies with cuts correctly.
A similar edge normalize option is available for arbitrary body stamping. Previously, when modeling a certain cut in the stamping body, edges were parallel to the surface of the cut, but now in version 2022 you can create edges perpendicular to the surfaces of the sheet body.
New Forms of Polygonal Modeling
C3D Modeler adds a completely new type of modeling: polygonal bodies. The kernel team actively developed it after receiving a large number of requests from users. The kernel now performs Boolean operations on polygonal objects, such as union, intersection, and difference. The figure below shows the results of these operations.
For two intersecting polygonal objects, the kernel now calculates the curves of their intersections. The resulting curves generally are a set of polylines.
To audit polygonal models, we added algorithms to look for defects, such as polygonal model closure; edge ribs; and orientation of normals to neighboring polygons (compatibility of orientation of polygons). Here, a new algorithm corrects the mismatch in orientation of such polygons.
Converting Polygonal to Solid Models
The C3D B-Shaper module converts bodies from polygonal representations to boundary ones (b-reps). After the recognition algorithm runs in version 2022, you can immediately change the parameters of the original body’s recognized surfaces before converting them to b-reps. The figure below shows an example of such surface editing, in which the flat blue face has its local coordinate system reoriented, while the cylindrical face has its radius changed.
Also improved is the segmentation of polygonal meshes. And we are working towards improving the algorithm for inscribing surfaces onto sets of polygons, NURBS surfaces in particular, as shown below.
2D and 3D Constraints Manager
The two-dimensional parametric solver in C3D Solver adds offset (equidistant) curves. Such curves are represented by a set of points located at a specific distance from a base curve. To use equidistant curves, we implemented new methods in the solver’s API that allow you to add such curves, fix their offsets, and change offset values.
In the updated 3D parametric solver, we added the linear increment dimension function. It imposes a control dimension between two bodies or parts of the same body, whose distance value changes at specific increments.
The C3D Solver team continues to develop the abilities of our collision detection function. The new version adds two new detection cases:
- Beams passing through solid bodies or shells
- Detection of bodies completely inside other bodies (body nesting problem)
Pre-reading, New Versions of Formats
The changes we made to the updated C3D Converter data exchange module were aimed at improving its internal operation; externally, however, we did add several interesting functions.
One innovation is pre-reading models, in which only their attributes are accessed, without reading the geometry. Attributes can be any properties of a model given as a pair “key - value”: number or string attributes, density, control characteristics, for example, mass, and etc.
In this way, developers of a C3D-based application solve the problem of interpreting attributes, since there are no uniform rules for naming properties both at the application level and when transferring them to exchange formats, perhaps with very rare exceptions. Another problem is that not all attributes can be interpreted (service information, for example), in which case the converter transfers them as they are; you have the opportunity to decide independently how to use them.
As well, C3D Converter 2022 reads new versions of the SAT and Parasolid formats -- v27 and v30, respectively. The screenshots show models cleanly imported from files of these versions.
Our C3D Web Vision component provides visualization on Web pages; we released this component just last year. Some of the new features are carried over from C3D Vision, while others are completely new for us in Web visualization.
We added the ability to switch between several rendering modes of models: wireframe, shaded, and shaded with wireframe. We plan to add more modes later, such as hidden edges and model outlines.
When you switch model views, you now experience smooth camera animation. The animation can be interrupted, unlike in the desktop version in C3D Web Vision, such as when you suddenly choose a different view of the model: the animation of turning to the current view stops, and the animation switches to the new view.
To implement annotation graphics, we developed a new object to C3D Web Vision, “geometric annotation.” It improves the annotation function used by native visualizations; in particular, when manipulating text objects on the stage, the font size remains the same. The animations below demonstrate the difference in how annotations work between Web Vision and Vision:
We implemented new processes in C3D Web Vision to manage models, some of which are different from our native visualization module. For example, the geometry search process is improved significantly in performance and function, so that it no longer depends on the rendering context, and just plain runs faster. Searches are carried out by the depth of the model elements, for instance when selecting with a frame, or only with the cursor; all objects located in the selection area are searched.
Also implemented are processes for adding PMI (product manufacturing information) annotations and dynamic sections.
A completely new function lets you to set a color scheme for the selected model elements.
To create custom camera views, another new tool allows you to save and restore camera settings.
We also significantly improved the rendering performance overall.
In the desktop version of the visualization, all of the changes are aimed at improving its stability and performance.
New Web Visualization Demo
We added a new section on our Web site for the C3D Web Vision’s product page at https://c3dlabs.com/en/products/c3d-toolkit/web-vision/. It shows the C3D Web Viewer developed from C3D Web Vision to demonstrate the capabilities of our Web visualization engine. It currently lets you view only a single model, which is loaded automatically when you open the viewer. We plan to add to the viewer all of the functions of C3D Web Vision, especially the ability to open multiple models and to upload your own.
At time of writing, C3D Web Viewer offers the following functions of our Web component:
- Showing the whole model
- Switching between standard views
- Switching between parallel and perspective projections
- Switching rendering modes of models
- Viewing model trees
- Hiding/showing model elements in trees
Availability and Pricing
The 2022 edition of C3D Toolkit is available now. The entire toolkit, as well as individual components, is available for testing in your programming environment at no charge. For details, see https://c3dlabs.com/en/evaluation/.