Evgeny Kondratyuk presents an overview of the C3D geometry kernel direct modeling capabilities.
The C3D kernel supports models without building history. Models may lack their history trees because the geometry has been imported or for some other reason. In this case, the kernel can directly manipulate individual faces or face groups. The C3D kernel supports face removal, fillet cleanup, body part removal, replacing smoothly merged faces with a single face, replacing a face with a spline surface for subsequent editing, and open-shell vertex removal. There is a dedicated module to modify faces. It also performs parallel face translation, face shift along the normal, face rotation around the axis, and changing the fillet radius. Let us take a look at the images to illustrate the above functionality.
The first function is to remove face while preserving the body's integrity (Figure 1).
This function can be used to remove holes or body parts. The facets to be removed are highlighted in blue. Consider the thread removal shown on the right. Faces can be successfully removed even in more complicated cases. This operation maintains the integrity of the body however no new faces or edges are added.
The following image (Figure 2) shows another example.
We can either remove a part of some feature (e.g., internal or external cutouts), or the entire feature leaving only the underlying smooth surface.
One of the face removal options supported by the C3D kernel is the fillet cleanup operation specifically designed for this very situation. Moreover, you can remove chains of smoothly connected fillets (Figure 3).
The C3D kernel can also clean up fillets on the sheet bodies The middle image shows a sheet body with the fillets removed. The right image demonstrates how to remove even entire constructive elements and back to the initial model.
What follows is an example of a combined fillet cleanup/face removal operation (Figure 4).
The image shows that dissimilar fillets and holes can also be removed. The fillets that cannot be removed (because we do not know for sure what preceded the fillet operations) are highlighted in dark blue. Such ambiguity makes it impossible to remove the fillets, but it is very feasible in all other cases.
The next function to consider is the body part separation. It is suitable for separating small boss features from a large model when it is impractical to select and remove a large number of faces. In this case, you can simply select a small part of the geometry and construct a separate body as a separate closed shell (Figure 5).
Now about the face modification module. The left image shows how a surface moves along the normal, and how cylindrical faces are modified (Figure 6).
For cylindrical, spherical, toroidal, and similar surfaces, the movement along the normal is equivalent to changing the radius. The right image shows how to use this option, among other things, to change the hole radii. Note that the fillets adjacent to the modified faces are adapted to maintain the general topology and fillet radii.
Take a look at another example (Figure 7) of moving a surface along the normal.
The adaptation of the fillets is shown on the right. The left image is the result of our efforts to change the solid topology by direct modeling. As we can see, we managed to move the face beyond its adjacent fillets.
The next slide (Figure 8) also shows some specific cases of topology modification.
On the left is the merging of the two faces. You can drag one face to move it flush with the other, and they will merge into a single plane. On the right is the separation of the plane tangent faces from the cylindrical surface. The upper cylindrical surface touches the side planes. They can be moved along the normal and separated from the cylinder. In all the cases above, the topology is changed. For now, this is available only for some specific scenarios.
The next function to consider is translation-moving a face parallel to itself (Figure 9).
You can move holes or other features within a face. Here is a toroid cavity with an adjacent fillet. As it is shown, it can be moved within the face while the fillet adapts accordingly.
The new functionality of the C3D kernel is worth special attention. The face rotation about an axis operation was originally developed as an analog of the Taper operation for a single face, but face rotation can be applied to a group of faces as well.
Face rotation operation can also handle some cylindrical parts: you can revolve grooves and hinges around the axis. As in all other modifying operations, fillets are also adapted (Figure 10).
You can also adjust the fillet radius (Figure 11).
The right image shows how the radius is changed over the chain of adjacent fillets.
The left figure demonstrates that this operation can be applied even to fillets with variable radius (the center fillet). These examples show that the kernel supports even the most unconventional scenarios.
Now let us take a look at replacing multiple smoothly connected faces with a single face (Figure 12).
The image shows an imported part with two unnecessary smooth edges on the top surface If we select and combine the two top surface parts, a NURBS surface is constructed over them, and the two faces are merged into one. After that, we can edit it as a single entity: the edges have been removed, and the impot error has been corrected.
Another function is replacing a face with a spline surface (Figure 13).
The example shows that the top face has been replaced by a NURBS surface and then arbitrarily modified for demonstration purposes.
One more function to talk about is vertex removal (Figure 14).
It is intended for open bodies. You may need it, for example, to select individual vertices on a face and remove corresponding cutout with them. This operation is essentially the same to remove an edge by merging its vertices. You can remove all the features except only the absolute minimum: three edges, and three vertices.
Below are the takeaways from our C3D kernel enhancements overview:
- face rotation function was developed
- taper operation adapts fillets using direct modeling
- adaptation of fillets along a curve, variable radius fillets, and analytical law rounding fillets have become available
- in some scenarios, the topology can be modified
- general improvements to the fillet adaptation algorithms with a focus on the geometry near poles/seams.
In the future, we are going to extend the topology modification functionality to all the other face operations such as moving along the normal, moving in an arbitrary direction, and rotation. We also intend to add a new option: replacing a face with an arbitrary surface. We will also extend the adaptation of complex variable radius fillets (analytical and ellipse fillets). Another challenge is removing and adapting fillets merged from multiple segments. Also, right now we are updating the API: the functionality is growing, and the existing API does not cover all the capabilities. The API will be compliant with the C3D Labs company standards. It will enable geometry/operations accuracy management.
Author:
Evgeny Kondratyuk
Mathematician Software Developer
C3D Labs