Dave Loffredo
2024-09-04

Testing Boolean Removal

Boolean Testing

We are building a new engine for computing boolean operations on geometry. This is the core of our STEP-NC material removal simulation and our newest support for IFC constructive solid geometry and voids elements.

We have assembled a large suite of test cases drawn from practical examples. Over the past few years, these helped us reach a baseline level of reliability and performance. The engine controls mesh complexity very well, which keeps machining models from devolving into smaller and smaller triangles as we iteratively remove material.

However, as with anything relating to geometry, topology, and floating point math, we still find issues with subtle overlaps, edges coming together in the worst possible way, and other tricky situations.

Machining

STEP-NC Material Removal Simulation

I-Beam

IFC Swept Beam With Ends Trimmed By Booleans

As part of our efforts to pick up the last few percent of reliability, we have been methodically going through these pathological cases with a series of custom generated test cases.

Inspired by the marching cubes algorithm used for surface fitting in computer graphics, these tests let us isolate the trickiest interactions and force our algorithms to deal with them under a variety of numeric conditions (exact, slightly overlapping, slightly separated, angled, etc.)

As an aside, Bill Lorensen did the initial work on marching cubes at GE just a few miles from our offices, and now some variation of it is in just about every 3D imaging system. Our hope is that in the not too distant future, just about every manufacturing system will build digital twins using the simulation algorithms we are perfecting here.

Cubes

Cubes

Cubes

Cubes