
Wed, 07/21/2010 - 15:53
Forums:
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?
Wed, 07/21/2010 - 16:11
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.
Wed, 07/21/2010 - 16:19
Thanks for your reply.
Alas, manually defreezing of my shapes did not work. I'll keep experimenting.
Wed, 07/21/2010 - 16:27
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());
}