wanted to know feasibility of below requirment

Hello frieds,

We are going to develop application that serves as a process planning to define the machine code to drive a multi-axis deposition machine. It takes a solid model as an input from any CAD software and generate “slicing” layers and 2D toolpath;
then feed such information to a CNC machine to build the desired shape, Thus the major functions of this application include CAD model loading, multi-axis slicing, 2D path
planning and post-processor (translating the 2D path into a specific machine code) etc.

Pawel's picture

Hi Tatva,

an interesting approach!

One thing that I would be cautious with is generating slices with OCC. You would probably want to use boolean operations to do that. However, they are known to be unstable depending on the model so you have to think about such cases in advance.


Tatva85's picture

Thanks Pawel,

We would like to develop this utility software in Visual Studio 2008... would it be possible ?

Paul Jimenez's picture

You can use Visual Studio 2008 for it, either directly in C++ or through a wrapper in C#.

I wonder if the video and Python code found in http://www.opencascade.org/org/forum/thread_16665/ would be of any use for you.

Thomas Paviot's picture

Hi Pawel,

What do you mean exactly with "(BOP) are known to be unstable"? It's an issue I sometimes read about on this forum, but no one has ever precisely described it. I even wonder whether or not it is a rumor : boolean operations are still an active field of research for computer scientitists, so in a sense it's not a surprise that OCC fails to perform some operations.
According to me, "unstable" means "you can not reproduce two times the same boolean op and expect getting the same result", it's deeply connected to robustness, but I may be wrong. Do you have any info about that?
The best would certainly be to have a set of unittests and be able to conclude : 48 tests out of 50 are passed. And, at the same time, OCC should be compared in regards with other CAD softwares (with a kind oof BOP benchmark).


Pawel's picture

Hi Thomas,

by "unstable" I actually meant that the algos do crash occasionally (without throwing an exception or informing in any other way what went wrong so that it might be difficult to guarantee the stability of the software performing BOPs). However, those situations are reproducible.

My point was: while creating a slice - how to handle the case when a BOP fails without giving you a hint what to improve...

BTW, regarding the instability you meant, I do observe some crashes in OCC (in general, not necessarily in BOPs) that could not be reproduced but they are related to the graphic driver and the OpenGL implementation.


Evgeny Lodyzhehsky's picture

Hi, Thomas.

I agree with you. Yes the algo "fails to perform some operations". But nobody here wants to understand why. The code is free. Just take it and fix the problem instead of throw mud on the matter.