Fusing multiple solids fails


I have multiple solids that are created using lofting (using GeomFill_SectionGenerator and GeomFill_AppSurf). Once they are created, I need to fuse them to create the solid that can be used for meshing and subsequent FEM simulation. However, the fusing process fails when the number of solids exceeds a certain number.

It seems to me this is the issue with tolerances - the pairwise fuse works out well for each pair, but the full fuse fails to produce good results. I checked the tolerances using SALOME and indeed, the edge and vertex tolerances grow from original 1e-7 for each solid to 1e-4 or more after 4 solids are fused. Fusing 5th solid produces no results or wrong results.

So I have multiple questions and it would be of great help if anyone could give me some tips.

1) Is it indeed the tolerance problem?
2) If it is, is there a way to alleviate this growing tolerance value? I tried using ShapeFix_Shape, but it makes no difference.
3) Do you think that subdividing the solid into more faces using the contours used for lofting solids might localize the tolerance changes and allow better fusing? (I am trying to create a solid for a vessel tree, so most of the times the fusions are done with the main vessel, but at different locations).
4) If subdividing might help, is using BRepFeat_SplitShape the way to go? Would it allow the subdivision of large faces using the wires I used for lofting?

Please don't hesitate to answer if you have any questions or ideas - it would be very very helpful!

Thank you in advance,

Rostislav Khlebnikov's picture

Seems like one of the problems was a bug in BSplCLib which fails to InsertKnots correctly for periodic curves. I have submitted a bug report and bug fix for it.