In the grand tradition of Indiana Jones, Monty Python and The Da Vinci Code, the Polygonica team are on a quest for The Holy Grail. Well, actually two quests, for two grails:
- Automatically identify features and regions in a polygon mesh that cannot be printed using a particular Additive Manufacturing technique.
- Automatically identify and remove small features and thin regions in a polygon mesh that cause problems for CAE analysis.
Both quests are suitably challenging, and like all such things the journey, and the stops along the way, are probably more interesting than the goal itself.
Achieving either goal is likely to require a range of different techniques working together. This blog explores one set of such techniques – computing an analysis mesh using Polygonica.
Surface Sampling
All the functions described in this blog are based on a similar method that computes an even spread of sample points across the surface of the mesh. The Polygonica APIs offer control over the maximum distance between these points. A smaller maximum distance will lead to a lower risk of missing an important measurement. Of course, computing and storing values for a greater number of sample points takes longer and requires more memory.
Surface sampling is an important part of making Polygonica’s analysis mesh functionality useful. It is very typical to find regions in a mesh surface formed using large polygons or triangles. If a system only computes values at the existing vertices, then information inside these large polygons will be missed.
Comparing meshes using a ‘heatmap’ analysis
Polygonica supports ‘heatmap’ analysis through the PFSolidsCompare API. This function calculates the nearest distance to a reference mesh of each point in an even spread of points on the surface of the target mesh. The results can be displayed graphically as a heat map, and such functionality is very common in metrology applications.
Heatmap comparisons are typically used to compare a laser, optical or CT scan of a real-world object with a virtual model, usually the original CAD design part. Marketing folks enjoy using the term “Digital Twin” when they can, and I’ve decided common usage of the phrase is elastic enough to enough to apply here ;-)
This type of analysis is also potentially useful in any scenario where a model changes, or a new model is created based on reference models. These include
- Comparing a healed mesh with the original mesh, to check whether the results of the healing operation remain within an acceptable tolerance.
- Visualising version changes in PLM viewing applications.
- Comparing a shrinkwrapped version of a model with the original, to check the shrinkwrap is within a suitable tolerance.
- Computing detailed occlusion information for dental modelling applications (see below).
PFSolidsCompare has a variety of options which include computing the percentage area that is inside and outside, or that lies outside a specified error tolerance.
An option is available to restrict the comparison to regions where the meshes intersect. This is very useful for occlusion analysis in dental modelling applications, as it allows the application to query and display detailed information relating to the depth of occlusion when the jaw is closed, and determine how much material needs to be removed.
As well as a graphical heatmap display, all values computed are available for query by the application, allowing generation of automated reports for batch QA workflows and generating audit documentation.
Finding thin walls using wall thickness analysis
Thin regions cause problems both for CAE/FEA/CFD simulations and for Additive Manufacturing processes.
3D Printing commonly works by converting a powder or paste into a solid. Whilst the deformable material is hardening it is less structurally stable than it is when fully hardened. This leads to the requirements for support structures and also to limitations on the minimum size and width a feature can be reliably printed. For example, you can read more about how Xometry stress tests different materials for thickness here.
Wall thickness analysis is a fairly common operation provided in Additive Print Preparation software, to allow the user to quickly see if there are regions of the design that might be too thin to print reliably.
Polygonica offers the API PFSolidCreateThicknessMesh to find such regions. It works in a similar way to PFSolidsCompare, in that the thickness of the part is measured at an even spread of sample points across the part surface. As with PFSolidsCompare, the resulting analysis mesh can be displayed graphically, or the values extracted and used for automated reporting purposes.
Additionally options are available to automatically reduce the size of the resulting analysis mesh by simplifying based on merging regions with identical, or similar, thickness values.
Identifying small holes and pockets
Polygonica’s surface fitting and feature recognition APIs provide ways to recognise and parameterise features such as holes and pockets on mesh models. However there are certain types of features that are not currently contained within Polygonica’s definition of features – for example, the inner region of a torus, which has smoothly curved, rather than vertical, walls.
As with thin regions, there is often a minimum size threshold for holes and pockets for different additive manufacturing processes, materials and printers.
Polygonica’s new PFSolidCreateGapThicknessMesh API computes the normal distance from a point on the surface of the model, but pointing outwards rather than inwards. It provides a quick way to review a model to see if there are thin gaps and other small negative features such as holes and pockets.
It’s also a useful way to find small gaps that have been left by designers for welding parts together. If you are using 3D printing to produce prototypes you might want to fill these gaps with material before printing – another process that can be done using Polygonica.
Filtering thin walls using the protrusion mesh.
Whether a thin region can be successfully printed doesn’t depend simply on the thickness of the region – the size of the region in other dimensions can also be a factor. For example a low wall might be printable, but a taller wall of the same width might not.
The Polygonica team have added new extensions to PFSolidCreateThicknessMesh that can calculate the protrusion distance for regions below a specified thickness. The term ‘protrusion’ has been chosen deliberately to avoid speaking of ‘height’, as ‘height’ implies orientation, and Polygonica’s protrusion calculations ignore orientation.
Nonetheless, conceptually, it’s simplest to think of ‘protrusion’ as the height of a thin wall.
For example in the image below the grey regions are thicker than a specified thickness threshold. The green regions are thinner than a specified thickness threshold but they are still printable as they are not very ‘high’, or ‘long’.
The red regions are highlighted as out of tolerance, as the distance from a point on the surface of these regions to the nearest ‘thick’ region is too great.
Or put more simply, these walls are too high to print at this thickness.
As a small addendum, it is worth noting that the protrusion distance is not linear but is calculated along the surface, and so produces useful values on curved surfaces and across sharp edges.
Printability simulation
The different analysis mesh APIs offer a quick way for a user to inspect a part visually to check for problem areas. They can also be used to generate automated reports indicating the presence of potential problems.
However it’s also worth considering what happens during the printing process itself. As each layer is added to the model, it is possible that long thin regions can be created that won’t be stable at the point they are printed, but could be stable afterwards, as more material is added in the layers above.
The images above show three stages during a layer-by-layer printability simulation, created using Polygonica. In the left-most image the red region shows the beam is too far from a stable region and so is too long and thin to be printable.
After more layers are added (centre) the analysis now considers the beam to be printable, as it is anchored by the thick region above, as well as below. However the lower parts of the saddle are now shown as too long and thin to be printable, whereas in the final part (right) more material has been added and the region is considered acceptable.
Conclusion
Hopefully this short overview will inspire you with some ideas as to how you can use Polygonica to improve identification and handling of thin regions in your own software. Head on over to the Polygonica channel on YouTube to see a short demo of each type of analysis mesh in action.