Dear Forum Supervisor,
Thanks for the quick response.
You where absolutely right switching to version 6.6.0 did work on the operands I had attached.
And Thanks for that.
the other issue is performance, how quick did this operation ran on your end?, it is taking on average 13-22 even 47 seconds on some runs (I have attached the operands that took 47 seconds), I am running on debug mode on windows 7 32 bit Intel core duo 2.4ghz(two processors) .
I tried following the code you use inside the draw commands BOP and BopCommon:
BOPCol_ListOfShape aLC;
BRepMesh::Mesh(Tool, 1000); //added these with the hopes that meshing had something to do with Boolean speed.
BRepMesh::Mesh(Stock, 1000);
aLC.Append(Tool);
aLC.Append(Stock);
Handle(NCollection_BaseAllocator)aAL=new NCollection_IncAllocator;
BOPAlgo_PaveFiller pPF = BOPAlgo_PaveFiller(aAL);
pPF.SetArguments(aLC);
pPF.Perform();
BOPAlgo_BOP aBOP;
aBOP.AddArgument(Stock);
aBOP.AddTool(Tool);
aBOP.SetOperation(BOPAlgo_COMMON);
//
aBOP.PerformWithFiller(pPF);
/*iErr=aBOP.ErrorStatus();*/
Result = aBOP.Shape();
//**************----------
by using a filler first increased the time by two times, now it takes 25 seconds for the same operation as opposed to simply calling: BRepAlgoAPI_Common(Stock,Tool,) also by using the filler is not as robust than by using the BOPAlgo_BOP alone for example the following code yields always a result where the previous code would not:
BOPAlgo_BOP aBOP;
aBOP.AddArgument(Stock);
aBOP.AddTool(Tool);
aBOP.SetOperation(BOPAlgo_COMMON);
aBOP.Perform();
Result = aBOP.Shape();
I also tried Meshing the operands with a coarse mesh size prior to calling the Boolean operation and still takes the same amount of time.
Is there anything I can do to enhance speed of Boolean Operations, I understand this is one of the hotspots of the library, I was just wondering with what is currently there in version 6.6.0 what are the most optimum settings we can setup to make version 6.6.0 run at its optimum.
Just to recap in terms of speed the three options to run booleans are running from faster to slower as follows: BRepAlgoAPI_Common(11-15 seconds),aBOP.PerformWithFiller(22-25 seconds),aBOP.Perform(25-47 seconds);
Also there where isntances where the aBOP.PerformWithFiller did not return a result but the aBOP.Perform() did return a result, is aBOP.Perform running a check on the operands and fixing them as opposed to using the filler, which might be the reason why it takes longer?
Best,
Alex