Which is the best approach for poly-surface trimming/splitting?

Hi to all.
I have to develope a function in my OCC powered project that allow me to:
1) import a large iges file(>80000surface, ~90MB) and create from it a shape "S"
2) define a wire "W" (open or closed)
3) use W to split S in S1 and S2

point 1 and 2 are easy and i have already complete that task.

The problem is related to point 3...

A)
My 1st approach was to create a shell from W, and from that shell a half space H. Then using H to cut S and then H with a different ref point to cut S and get S2.

It works fine but sometimes the booelan operation fail with an "internal error"(BRepAlgoAPI_BooleanOperation) or the BOPTools_DSFiller Perform fails.

I have checked the refpnt position and it is ok (i think!)...

B) then i try a different solution, ie from W i build a solid and use it to do boolean a common operation that give me S1. Then i do a Cut among S and S1 to get S2. I like this solution but it didn't works well if i have "non-solid" model as S1 (for example simple single planar face shape).

Any other soltion or improvement is appreciated

Hesham Nasif's picture

Dear David
How do you define the ref point, because i am using a prism instead of half space to split shapes