What is the meaning of Exception TopoDS_FrozenShape?

I am performing a Boolean cut operation on 4 Shapes of mine:

myBOP.SetShapes(Cuttee, Cutter);
myBOP.SetOperation(BOP_CUT);
myBOP.SetHistoryCollector(myCutHistory);
myBOP.Do();

However, for two of my shapes, the BOP is not completed and the exception TopoDS_FrozenShape is thrown.

Did anyone of you have similar trouble and/or can share insight about the reason for this exception?

Gabriel Bauer's picture

Hi Tilman,

I also had this problem.
I don't know if it is the best solution but I solve this problem setting the Free flag:

Shape.Free( Standard_True );

Best regards.

Tilman Leune's picture

Thanks for your reply.

Alas, manually defreezing of my shapes did not work. I'll keep experimenting.

Tilman Leune's picture

I found my problem: I assigend my shapes to a BOPTools_DSFiller, whioch in turn froze them. I simply musn't assign my shapes to the BOP directly:

BOPTools_DSFiller filler;
try
{
filler.SetShapes(solCuttee, solCutter);
filler.Perform();
}
catch(Standard_Failure e)
{
TRACE(e.GetMessageString());
return NULL;
}
try
{
myBOP.SetOperation(BOP_CUT);
myBOP.SetHistoryCollector(myCutHistory);
myBOP.DoWithFiller(filler);
if(myBOP.IsDone())
{
*retShp = myBOP.Result();
}
else
{
*retShp = solCuttee;
}

}
catch(Standard_Failure e)
{
TRACE(e.GetMessageString());
}