Tue, 06/09/2015 - 13:08
Forums:
Hi,
I fuse several solids in one, but it takes 3.5 minutes in OpenCascade and only a few seconds in CATIA.
I would like to know, if there is a better way to do this?
Version : 6.8
I use the following code :
TopoDS_Shape Obj1, Obj2;
for(int ii = 0; ii
{
if(ii == 0)
{
Obj1 = Obj.at(0);
}
Obj2 = Obj.at(ii + 1);
BRepAlgoAPI_Fuse Fuse(Obj2, Obj1);
if(Fuse.IsDone())
{
Obj1 = Fuse.Shape();
}
}
Let me know if you need any further information.
Thanks,
Alix
Attachments:
Tue, 06/09/2015 - 20:15
Dear Alix,
We tried to reproduce the posted issue in DRAW.
The Draw reproducer is below:
pload ALL
stepread FUSE_INPUT.stp a *
chrono s reset; chrono s start; for {set i 2} {$i < 22} {incr i} {puts "a_$i"; bfuse a_1 a_1 a_$i}; chrono s stop; chrono s show
The result is the next (CPU Intel i7-3450, Windows 7, 64-bit):
OCCT 6.7.0 (32-bit vc9): 22 sec
OCCT 6.7.1 (32-bit vc10): 22 sec
OCCT 6.7.3 (64-bit vc12): 8.3 sec
OCCT 6.8.0 (32-bit vc10): 10.3 sec
OCCT 6.9.0 (64-bit vc10): 20.8 sec
master (64-bit vc10): 18.6 sec
Indeed there is a performance degradation from version 6.8.0 (see the issue #26327), but the time is still much less than posted (3.5 min). Therefore I suggest you to double-check your results.
Another remark is that for better performance sequence of fuse operations could be optimized.
Best regards
FSR