Volume Maker algorithm

Forums: 

Since the version 6.8.0 of Open CASCADE the new algorithm called “Volume Maker” is available. This algorithm builds the elementary volumes (solids) from a set of connected, intersecting, or nested shapes. The algorithm can be useful for splitting solids into parts, or constructing new solid(s) from set of intersecting or connected faces or shells. The algorithm creates only closed solids. In general case the result solids are non-manifold: fragments of the input shapes (wires, faces) located inside the solids are added as internal sub-shapes to these solids. Non-closed faces, free wires etc. located outside of any solid are excluded from the result.

Boolean Operations With Multiple Arguments

Forums: 

The Boolean Operator of Open CASCADE (≤6.8.0) allows treating of two and only two arguments (shapes) to process [1]: S1 (Object), S2 (Tool). In modeling tasks the very frequent situation is when multiple shapes are to be processed from both sides, Object and Tool. For example, when we have to make in a body of Object multiple cutouts, we need to pass to the Boolean Operator one shape as the Object and a set of shapes as a Tool. The developer has to organize a cycle for repetitive cut from the Object shapes of the Tool one by one. Besides the fact that it is inconvenient for the developer, it applies additional extra expenses in the form of auxiliary temporary data structures that are filled in each instance of Boolean Operator.

Speed up Boolean operator for many simple shapes

Forums: 

This post in devoted to improvement of performance of building part of Boolean operations. Though in most cases the most time-consuming is intersection part (89% of overall time spent for BO by all Open CASCADE tests), there are special cases where building part takes most of the time. As an example the test case perf bop boxholes is taken, in which relation between Intersection and Building Parts is 2.85 / 26.16. This case is remarkable for showing the performance of the modeler when working with big number of simple shapes.

Fuzzy Boolean Operations

Forums: 

Next version of OCCT will feature new mode of Boolean Operation Algorithm (BOA), called "Fuzzy". Fuzzy Boolean operations are the type of Boolean operations in which additional user-specified tolerance is used. This mode allows Boolean operations to handle robustly cases of touching and near-coincident entities of the argument shapes.

Experiences with OCCT on iOS

Forums: 

Since the beta release of our application is coming, I thought it could be interesting to summarize my experiences with OpenCascade on iOS.
First of all, I would like to declare, that I was very satisfied with OCCT, despite all of its problems, it is still the best option for CAD development if you want an open source solution, and in many ways its knowledge competes with other (extremely expensive) CAD kernels.

Application of stohastic algorithms in extrema

Forums: 

Starting from version 6.8.0 OCCT will include one more algorithm for solving global optimization problems.

Its development has been triggered by insufficient performance and robustness of the existing algorithm of minimization of curve - surface distance in Extrema package (class Extrema_GenExtCS). Recent attempts to fix problems in that algorithm led to severe reduction of its performance, hence the need of a different approach raised.

Ray tracing progress: support for lines, markers and text added

Forums: 

Few months ago, the OCCT ray tracing algorithm was rewritten using GLSL. Apart from better portability and certain performance gain, this step opened the door to some important features that can be added most naturally using close OpenGL and GLSL interoperation - such as visualization of lines and text in a ray-traced scene. Lines and text are examples of scene elements that cannot be visualized using purely the ray tracing algorithm.

First version of OCCT without WOK and CDL

Forums: 

Hello,

We are steadily progressing in the refactoring tasks, and now have the first version of OCCT without WOK and CDL ready for review: see Git branch CR0_noCDL.
Note that this is the first experimental version, thus please do not try to use it in your project!

Here is some detail on the changes made in this branch.