1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0023119: TNaming_Selector::Solve() fails (changes from single face to compound of multiple faces)

Patch for Naming improvement.

1). Added persistence.
2). Removed not supported evolution - Replace.

Fix of QADraw commands.
Modified test case: caf named_shape F6

1). Redesigned DNaming commands: SelectShape & SolveSelection
2). Added 2 new scripts: F8 & F9

Adding test cases caf/named_shape/F8 F9
This commit is contained in:
szy
2012-09-14 17:18:59 +04:00
parent d4832c3eb0
commit efd4b232bf
21 changed files with 655 additions and 177 deletions

View File

@@ -1520,6 +1520,7 @@ static Standard_Boolean FilterByNeighbourgs (const TDF_Label& L,
i=1;
aNam = "Boundaries";
#endif
Standard_Boolean isDone = Standard_False;
if(SCand.Extent() == 1) { // check if a collection is inside
TopTools_MapIteratorOfMapOfShape it(SCand);
const TopoDS_Shape& aS = it.Key();
@@ -1593,12 +1594,13 @@ static Standard_Boolean FilterByNeighbourgs (const TDF_Label& L,
} //2
if (Keep) {
B.Select (S,S);
isDone = Standard_True;
#ifdef MDTV_DEB_FNB
DbgTools_Write(S, "FilterByNbs_Sel.brep") ;
#endif
}
} //1
return Standard_True;
return isDone;
}
//=======================================================================

View File

@@ -703,6 +703,7 @@ static Standard_Boolean Filter (const TDF_Label& F,
//DbgTools::DisplayShape(S, F, Quantity_NOC_BLUE1);
Write(Context, "FNBS_Context.brep");
Write(S, "FNBS_S.brep");
Write(Neighbourg, "NBS");
#endif
#ifdef OCC273
// mpv : NS and shape must be the same
@@ -841,6 +842,8 @@ static Standard_Boolean Filter (const TDF_Label& F,
#ifdef MDTV_DEB_NBS
cout << "FilterByNBS: ";
Print_Entry(NF->Label());
cout <<"AppendNS = " ;
Print_Entry(NS->Label());
#endif
//---------------------
// Naming des voisins.
@@ -856,8 +859,14 @@ static Standard_Boolean Filter (const TDF_Label& F,
const TopoDS_Shape& aS2 = aNS->Get();
if(!aS.IsNull())
cout << "Shape arg type = " << aS.ShapeType() <<" TSH = " << aS.TShape()->This()<<endl;
if(!aS2.IsNull())
if(!aS2.IsNull()) {
cout << "Build shape type = " << aS2.ShapeType() <<" TSH = " << aS2.TShape()->This()<<endl;
Write (aS2, "NBS_BuildShape.brep");
}
if(aNS.IsNull()) {
cout <<"AppendNS = " ;
Print_Entry(aNS->Label());
}
#endif
const TopoDS_Shape aSNS = aNS->Get(); //allow child level