Reduce complexity .stp files

Hey Everyone,

We are currently testing the collision detection (COL-DET) component of Open Cascade. However, we're facing performance issues when processing large and complex .stp files; the results are taking too long to generate.

Despite the collision detection component being a paid feature with closed source code, I believe there's potential to improve preprocessing time before inputting the shape into the component.

One possible approach to reduce the model's complexity is by constructing a 3D convex hull of the model and using this as the input for the COL-DET component. Another, less appealing, option is to split the complex .stp file into simpler sub-assembly pieces and tag these pieces with a flag if collision checks are needed, although this requires human to preprocess the model.

Are there other methods to effectively reduce the complexity of a .stp file model?

Tested on OCCT version 7.6.

Thanks,

Soup

Dmitrii Pasukhin's picture

Hello, to simplify STEP file needs to read at least once read file. And after reading STP file the internal format going to be no STP, only general (XCAF) or brep.

And simplification of BRep is common task.

If you interested into increasing performance for STEP reading, 7.8 has up to 40% improved reading time with new memery manager.

7.9 will present multithreading.

Best regards, Dmitrii.

sOup x's picture

Hey

Thanks for your answer. Can you elaborate in what ways simplification of BRep is common?

Dmitrii Pasukhin's picture

The task is common (not related with STEP). And there can be different solutions for that. And you will be able to split the shape from already read model by yourself.

If you want to split by compaunds or roots - it will be possible, you will have sequence of root shape and you can process them separetly.

As for a deep simplification - it can be wrapping algorithm or shape union or some other post-processing, depends on your needs.

Best regards, Dmitrii.

sOup x's picture

Hey
Thanks for your reply.

The recognition of features in models was the question i tried to ask, so i fell into the rabbit hole of attributed adjacency graphs(AAGs) for 3D solids to do this.

Dmitrii Pasukhin's picture

Oh, probably i have incorrect direction. Yes, there are no so much way to simplify reading STEP files. The most part of some way of simplification data is post-process of already read shapes. Simplify during reading - in most cases just split by roots and work with different roots and somehow logically mark only roots for check or some algo, that not available from the box.

The big time of STEP reading is ShapeHealing, If you need to reuse the same model for a few time - better to convert into occt format.

Best regards, Dmitrii.

Giovanni Bettega's picture

personally I would consider to decimate the (I think in your case) large triangulation
of the step file with edge collapse, or other in order to remove small features,
and the use CGAL for collisions
G