diff --git a/src/BRep/BRep_Builder.cdl b/src/BRep/BRep_Builder.cdl index 3eb0e27a12..e83868400b 100755 --- a/src/BRep/BRep_Builder.cdl +++ b/src/BRep/BRep_Builder.cdl @@ -238,11 +238,13 @@ is UpdateEdge(me; E : Edge from TopoDS; C1,C2 : Curve from Geom2d; F : Face from TopoDS; - Tol : Real); + Tol : Real; + theContinuity : Shape from GeomAbs = GeomAbs_C0); ---C++: inline - ---Purpose: Sets pcurves for the edge on the closed face. If - -- or is a null handle, remove any existing + ---Purpose: Sets pcurves (with theContinuity) for the edge on + -- the closed face. + -- If or is a null handle, remove any existing -- pcurve. UpdateEdge(me; E : Edge from TopoDS; @@ -254,7 +256,20 @@ is ---Purpose: Sets a pcurve for the edge on the face. -- If is a null handle, remove any existing pcurve. - UpdateEdge(me; E : Edge from TopoDS; + UpdateEdge(me; E : Edge from TopoDS; + C : Curve from Geom2d; + newSurf : Surface from Geom; + newL : Location from TopLoc; + theFace : Face from TopoDS; + Tol : Real from Standard); + + ---Purpose: Sets a pcurve for the edge on the face. + -- If is a null handle, remove any existing pcurve. + -- New edge will be in the face , which + -- based on surface newSurf. Old surface must be + -- deleted from later. + + UpdateEdge(me; E : Edge from TopoDS; C : Curve from Geom2d; S : Surface from Geom; L : Location from TopLoc; @@ -269,12 +284,28 @@ is C1,C2 : Curve from Geom2d; S : Surface from Geom; L : Location from TopLoc; - Tol : Real); + Tol : Real from Standard; + theContinuity : Shape from GeomAbs = GeomAbs_C0); - ---Purpose: Sets pcurves for the edge on the closed surface. - -- or is a null handle, remove any existing + ---Purpose: Sets pcurves (with theContinuity) for the edge on the + -- closed surface. + -- If or is a null handle, remove any existing -- pcurve. + UpdateEdge(me; E : Edge from TopoDS; + C1,C2 : Curve from Geom2d; + newSurf : Surface from Geom; + newL : Location from TopLoc; + theFace : Face from TopoDS; + Tol : Real from Standard); + + ---Purpose: Sets pcurves for the edge on the closed surface. + -- If or is a null handle, remove any + -- existing pcurve. + -- New edge will be in the face , which + -- based on surface newSurf. Old surface must be + -- deleted from later. + UpdateEdge(me; E : Edge from TopoDS; C1,C2 : Curve from Geom2d; S : Surface from Geom; diff --git a/src/BRep/BRep_Builder.cxx b/src/BRep/BRep_Builder.cxx index 5ab0f4ffc9..0d112543a6 100755 --- a/src/BRep/BRep_Builder.cxx +++ b/src/BRep/BRep_Builder.cxx @@ -233,7 +233,8 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, - const TopLoc_Location& L) + const TopLoc_Location& L, + const GeomAbs_Shape theContinuity = GeomAbs_C0) { BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); Handle(BRep_CurveRepresentation) cr; @@ -259,7 +260,7 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, if ( !C1.IsNull() && !C2.IsNull() ) { Handle(BRep_CurveOnClosedSurface) COS = - new BRep_CurveOnClosedSurface(C1,C2,S,L,GeomAbs_C0); + new BRep_CurveOnClosedSurface(C1,C2,S,L,theContinuity); // test if there is already a range if (!GC.IsNull()) { COS->SetRange(f,l); @@ -280,7 +281,8 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const gp_Pnt2d& Pf, - const gp_Pnt2d& Pl) + const gp_Pnt2d& Pl, + const GeomAbs_Shape theContinuity = GeomAbs_C0) { BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); Handle(BRep_CurveRepresentation) cr; @@ -306,7 +308,7 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, if ( !C1.IsNull() && !C2.IsNull() ) { Handle(BRep_CurveOnClosedSurface) COS = - new BRep_CurveOnClosedSurface(C1,C2,S,L,GeomAbs_C0); + new BRep_CurveOnClosedSurface(C1,C2,S,L,theContinuity); // test if there is already a range if (!GC.IsNull()) { COS->SetRange(f,l); @@ -343,6 +345,167 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, } } +//======================================================================= +//function : UpdateCurves +//purpose : Insert two pcurves on surface with +// location in the list of curve representations . +// Deletes curves, which belong to because +// will not be used later (presumably). +// Remove the pcurves on from if or is null +//======================================================================= + +static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, + const Handle(Geom2d_Curve)& C1, + const Handle(Geom2d_Curve)& C2, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const Handle(Geom_Surface)& oldSurf, + const TopLoc_Location oldL, + const GeomAbs_Shape theContinuity = GeomAbs_C0) +{ + BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); + + Handle(BRep_GCurve) GC; + Standard_Real aFirst,aLast; + + Standard_Boolean rangeFound = Standard_False; + Standard_Boolean isModified = Standard_False; + + while (itcr.More()) + { + Handle(BRep_CurveRepresentation) cr = itcr.Value(); + GC = Handle(BRep_GCurve)::DownCast(cr); + + if ( !GC.IsNull() ) + { + GC->Range(aFirst, aLast); + + Standard_Boolean undefined = (Precision::IsPositiveInfinite(aLast) || + Precision::IsNegativeInfinite(aFirst)); + + if (!undefined) + { + rangeFound = Standard_True; + } + + Standard_Boolean cond = Standard_False; + cond = cond || GC->IsCurveOnSurface(oldSurf, oldL); + + if(!cond) + { + if(GC->IsCurveOnClosedSurface()) + { + Handle(BRep_CurveOnSurface) aCS = Handle(BRep_CurveOnSurface)::DownCast(GC); + cond = aCS->IsCurveOnSurface(oldSurf, oldL); + } + } + + if (cond) + { + lcr.Remove(itcr); + isModified = Standard_True; + } + else + { + itcr.Next(); + } + }//if ( !GC.IsNull() ) + else + { + if (cr->IsPolygonOnSurface(oldSurf, oldL)) + { + lcr.Remove(itcr); + isModified = Standard_True; + } + else + { + itcr.Next(); + } + } + } + + if ( !C1.IsNull() && !C2.IsNull() ) { + Handle(BRep_CurveOnClosedSurface) COS = + new BRep_CurveOnClosedSurface(C1,C2,newSurf,newL,theContinuity); + // test if there is already a range + if (rangeFound) { + COS->SetRange(aFirst,aLast); + } + lcr.Append(COS); + } +} + +//======================================================================= +//function : UpdateCurves +//purpose : Insert the pcurve on surface with +// location in the list of curve representations . +// Remove the pcurves on from if is null +//======================================================================= +static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, + const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const Handle(Geom_Surface)& oldSurf, + const TopLoc_Location oldL) +{ + BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr); + Handle(BRep_CurveRepresentation) cr; + Handle(BRep_GCurve) GC; + Standard_Real f,l; + Standard_Boolean rangeFound = Standard_False; + + // search the range of the 3d curve + // and remove any existing representation + + while (itcr.More()) { + GC = Handle(BRep_GCurve)::DownCast(itcr.Value()); + if (!GC.IsNull()) { + if (GC->IsCurve3D()) { + GC->Range(f, l); + Standard_Boolean undefined = (Precision::IsPositiveInfinite(l) || + Precision::IsNegativeInfinite(f)); + + if (!undefined) { + rangeFound = Standard_True; + } + } + if (GC->IsCurveOnSurface(oldSurf,oldL)) + { + GC->Range(f, l); + Standard_Boolean undefined = (Precision::IsPositiveInfinite(l) || + Precision::IsNegativeInfinite(f)); + + if (!undefined) + { + rangeFound = Standard_True; + } + + // remove existing curve on surface + // cr is used to keep a reference on the curve representation + // this avoid deleting it as its content may be referenced by C or S + cr = itcr.Value(); + lcr.Remove(itcr); + } + else { + itcr.Next(); + } + } + else { + itcr.Next(); + } + } + + if (! C.IsNull()) { + Handle(BRep_CurveOnSurface) COS = new BRep_CurveOnSurface(C,newSurf,newL); + // test if there is already a range + if (rangeFound) { + COS->SetRange(f,l); + } + lcr.Append(COS); + } +} + + static void UpdatePoints(BRep_ListOfPointRepresentation& lpr, Standard_Real p, const Handle(Geom_Curve)& C, @@ -578,6 +741,33 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, TE->Modified(Standard_True); } +//======================================================================= +//function : UpdateEdge +//purpose : +//======================================================================= +void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, + const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const TopoDS_Face& theFace, + const Standard_Real Tol) const +{ + const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); + const TopLoc_Location l = newL.Predivided(E.Location()); + + const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &theFace.TShape()); + const TopLoc_Location &L = theFace.Location() * TF->Location(); + const Handle(Geom_Surface) &S = TF->Surface(); + + //BRep_Tool::Degenerated(E); + + UpdateCurves(TE->ChangeCurves(), + C, newSurf, l, S, + L.Predivided(E.Location())); + + TE->UpdateTolerance(Tol); + TE->Modified(Standard_True); +} //======================================================================= //function : UpdateEdge @@ -612,12 +802,13 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, - const Standard_Real Tol) const + const Standard_Real Tol, + const GeomAbs_Shape theContinuity) const { const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); const TopLoc_Location l = L.Predivided(E.Location()); - UpdateCurves(TE->ChangeCurves(),C1,C2,S,l); + UpdateCurves(TE->ChangeCurves(),C1,C2,S,l,theContinuity); if (!C1.IsNull() && !C2.IsNull()) TE->Closed(C1->IsClosed() && C2->IsClosed()); @@ -899,6 +1090,36 @@ void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, TE->Modified(Standard_True); } +//======================================================================= +//function : UpdateEdge +//purpose : +//======================================================================= +void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, + const Handle(Geom2d_Curve)& C1, + const Handle(Geom2d_Curve)& C2, + const Handle(Geom_Surface)& newSurf, + const TopLoc_Location& newL, + const TopoDS_Face& theFace, + const Standard_Real Tol) const +{ + const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape()); + const TopLoc_Location l = newL.Predivided(E.Location()); + + const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &theFace.TShape()); + const TopLoc_Location &L = theFace.Location() * TF->Location(); + const Handle(Geom_Surface) &S = TF->Surface(); + + + UpdateCurves(TE->ChangeCurves(), + C1,C2,newSurf,l,S, + L.Predivided(E.Location())); + + if (!C1.IsNull() && !C2.IsNull()) + TE->Closed(C1->IsClosed() && C2->IsClosed()); + + TE->UpdateTolerance(Tol); + TE->Modified(Standard_True); +} //======================================================================= //function : Continuity diff --git a/src/BRep/BRep_Builder.lxx b/src/BRep/BRep_Builder.lxx index dcb504ebb0..162a327a04 100755 --- a/src/BRep/BRep_Builder.lxx +++ b/src/BRep/BRep_Builder.lxx @@ -145,10 +145,11 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, - const Standard_Real Tol) const + const Standard_Real Tol, + const GeomAbs_Shape theContinuity) const { TopLoc_Location l; - UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol); + UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol, theContinuity); } diff --git a/src/BRepCheck/BRepCheck.cdl b/src/BRepCheck/BRepCheck.cdl index 9928b17c7e..0a6e48cd5a 100755 --- a/src/BRepCheck/BRepCheck.cdl +++ b/src/BRepCheck/BRepCheck.cdl @@ -76,6 +76,7 @@ is FreeEdge, InvalidMultiConnexity, InvalidRange, + PCurveIsOutOfDomainFace, -- for wires @@ -85,6 +86,7 @@ is -- for faces NoSurface, + OutOfSurfaceBoundary, InvalidWire, RedundantWire, IntersectingWires, diff --git a/src/BRepCheck/BRepCheck.cxx b/src/BRepCheck/BRepCheck.cxx index 1eecf255d7..2229fd298f 100755 --- a/src/BRepCheck/BRepCheck.cxx +++ b/src/BRepCheck/BRepCheck.cxx @@ -181,7 +181,15 @@ void BRepCheck::Print(const BRepCheck_Status stat, case BRepCheck_CheckFail: OS << "BRepCheck_CheckFail\n"; break; + case BRepCheck_PCurveIsOutOfDomainFace: + OS << "BRepCheck_PCurveIsOutOfDomainFace\n"; + break; + case BRepCheck_OutOfSurfaceBoundary: + OS << "BRepCheck_OutOfSurfaceBoundary\n"; + break; + default: + OS << "BRepCheck::Print(...): Undefined status!\n"; break; } } diff --git a/src/BRepCheck/BRepCheck_Analyzer.cxx b/src/BRepCheck/BRepCheck_Analyzer.cxx index 3e13829679..436d3002ea 100755 --- a/src/BRepCheck/BRepCheck_Analyzer.cxx +++ b/src/BRepCheck/BRepCheck_Analyzer.cxx @@ -109,57 +109,64 @@ void BRepCheck_Analyzer::Put(const TopoDS_Shape& S, void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S) { - for(TopoDS_Iterator theIterator(S);theIterator.More();theIterator.Next()) { + for(TopoDS_Iterator theIterator(S);theIterator.More();theIterator.Next()) Perform(theIterator.Value()); - } + // TopAbs_ShapeEnum styp; TopExp_Explorer exp; // styp = S.ShapeType(); - switch (styp) { - case TopAbs_VERTEX: + + switch (styp) + { + case TopAbs_VERTEX: // modified by NIZHNY-MKK Wed May 19 16:56:16 2004.BEGIN // There is no need to check anything. // if (myShape.IsSame(S)) { // myMap(S)->Blind(); // } // modified by NIZHNY-MKK Wed May 19 16:56:23 2004.END - + break; - case TopAbs_EDGE: { + case TopAbs_EDGE: + { // Modified by skv - Tue Apr 27 11:38:08 2004 Begin // There is no need to check anything except vertices on single edge. // if (myShape.IsSame(S)) { // myMap(S)->Blind(); // } // Modified by skv - Tue Apr 27 11:38:09 2004 End - TopTools_MapOfShape MapS; - - for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) { - const TopoDS_Shape& aVertex = exp.Current(); - try { - OCC_CATCH_SIGNALS - if (MapS.Add(aVertex)) { - myMap(aVertex)->InContext(S); - } - } - catch(Standard_Failure) { + + TopTools_MapOfShape MapS; + for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) + { + const TopoDS_Shape& aVertex = exp.Current(); + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(aVertex)) + myMap(aVertex)->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(aVertex); - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(aVertex); - aRes->SetFailStatus(S); - } - } - } + if ( ! myMap(S).IsNull() ) + myMap(S)->SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(aVertex); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(aVertex); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) } break; case TopAbs_WIRE: @@ -177,257 +184,234 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S) case TopAbs_FACE: { TopTools_MapOfShape MapS; - for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - if (MapS.Add(exp.Current())) { - myMap(exp.Current())->InContext(S); - } - } - catch(Standard_Failure) { + for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(exp.Current())) + myMap(exp.Current())->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! myMap(S).IsNull() ) + myMap(S)->SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next()) - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } Standard_Boolean performwire = Standard_True; + Standard_Boolean isFaceOutBoundary = Standard_False; + MapS.Clear(); - for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - if (MapS.Add(exp.Current())) { - Handle(BRepCheck_Result)& res = myMap(exp.Current()); - res->InContext(S); - if (performwire) { - for (res->InitContextIterator(); - res->MoreShapeInContext(); - res->NextShapeInContext()) { - if(res->ContextualShape().IsSame(S)) { - break; - } - } - BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); - for (; itl.More(); itl.Next()) { - BRepCheck_Status ste = itl.Value(); - if (ste == BRepCheck_NoCurveOnSurface || - ste == BRepCheck_InvalidCurveOnSurface || - ste == BRepCheck_InvalidRange || - ste == BRepCheck_InvalidCurveOnClosedSurface) { - performwire = Standard_False; - break; - } - } - } - } - } - catch(Standard_Failure) { + for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + if (MapS.Add(exp.Current())) + { + Handle(BRepCheck_Result)& res = myMap(exp.Current()); + res->InContext(S); + if (performwire) + { + for (res->InitContextIterator(); + res->MoreShapeInContext(); + res->NextShapeInContext()) + { + if(res->ContextualShape().IsSame(S)) + break; + } + + BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); + for (; itl.More(); itl.Next()) + { + BRepCheck_Status ste = itl.Value(); + if (ste == BRepCheck_NoCurveOnSurface || + ste == BRepCheck_InvalidCurveOnSurface || + ste == BRepCheck_InvalidRange || + ste == BRepCheck_InvalidCurveOnClosedSurface) + { + performwire = Standard_False; + break; + } + + if(ste == BRepCheck_PCurveIsOutOfDomainFace) + { + isFaceOutBoundary = Standard_True; + break; + } + }//for (; itl.More(); itl.Next()) + }//if (performwire) + }//if (MapS.Add(exp.Current())) + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - if ( ! myMap(S).IsNull() ) { - myMap(S)->SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (exp.Init(S,TopAbs_EDGE);exp.More(); exp.Next()) - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } Standard_Boolean orientofwires = performwire; - for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) { - try { - OCC_CATCH_SIGNALS - Handle(BRepCheck_Result)& res = myMap(exp.Current()); - res->InContext(S); - if (orientofwires) { - for (res->InitContextIterator(); - res->MoreShapeInContext(); - res->NextShapeInContext()) { - if(res->ContextualShape().IsSame(S)) { - break; - } - } - BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); - for (; itl.More(); itl.Next()) { - BRepCheck_Status ste = itl.Value(); - if (ste != BRepCheck_NoError) { - orientofwires = Standard_False; - break; - } - } - } - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + { + try + { + OCC_CATCH_SIGNALS + Handle(BRepCheck_Result)& res = myMap(exp.Current()); + res->InContext(S); + if (orientofwires) + { + for (res->InitContextIterator(); + res->MoreShapeInContext(); + res->NextShapeInContext()) + { + if(res->ContextualShape().IsSame(S)) + break; + } - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } - - try { + BRepCheck_ListIteratorOfListOfStatus itl(res->StatusOnShape()); + for (; itl.More(); itl.Next()) + { + BRepCheck_Status ste = itl.Value(); + if (ste != BRepCheck_NoError) + { + orientofwires = Standard_False; + break; + } + } + }//if (orientofwires) + } + catch(Standard_Failure) + { +#ifdef DEB + cout<<"BRepCheck_Analyzer : "; + Standard_Failure::Caught()->Print(cout); + cout<SetFailStatus(S); + + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + } + }//for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + + try + { OCC_CATCH_SIGNALS - if (performwire) { - if (orientofwires) { - Handle(BRepCheck_Face)::DownCast(myMap(S))-> - OrientationOfWires(Standard_True);// on enregistre - } - // else { - // Handle(BRepCheck_Face)::DownCast(myMap(S))-> - // IntersectWires(Standard_True); // on enregistre - // } - else { - Handle(BRepCheck_Face)::DownCast(myMap(S))->SetUnorientable(); - } - } - else { - Handle(BRepCheck_Face)::DownCast(myMap(S))->SetUnorientable(); - } + if (performwire) + { + if (isFaceOutBoundary) + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetStatus(BRepCheck_OutOfSurfaceBoundary); + else if (orientofwires) + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + OrientationOfWires(Standard_True);// on enregistre + else + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetUnorientable(); + }//if (performwire) + else + Handle(BRepCheck_Face)::DownCast(myMap(S))-> + SetUnorientable(); } - catch(Standard_Failure) { + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - - for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) { - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + if ( ! myMap(S).IsNull() ) + { + myMap(S)->SetFailStatus(S); + } - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - myMap(S)->SetFailStatus(exp.Current()); - } - } - } + for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + { + Handle(BRepCheck_Result) aRes = myMap(exp.Current()); + + if ( ! aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + myMap(S)->SetFailStatus(exp.Current()); + } + }//for (exp.Init(S,TopAbs_WIRE);exp.More(); exp.Next()) + }//catch(Standard_Failure) } break; - - case TopAbs_SHELL: + case TopAbs_SHELL: //modified by NIZNHY-PKV Mon Oct 13 14:23:53 2008f - /* { - Standard_Boolean VerifyOrientation, bFlag; - // - VerifyOrientation = Standard_True; - // - exp.Init(S,TopAbs_FACE); - for (; exp.More(); exp.Next()) { - const TopoDS_Shape& aF=exp.Current(); - try { - OCC_CATCH_SIGNALS - bFlag= !(Handle(BRepCheck_Face)::DownCast(myMap(aF))->IsUnorientable()); - VerifyOrientation = (VerifyOrientation && bFlag); - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } - } // - try { - OCC_CATCH_SIGNALS - if (VerifyOrientation) { - Handle(BRepCheck_Shell)::DownCast(myMap(S))->Orientation(Standard_True); - } - else { - Handle(BRepCheck_Shell)::DownCast(myMap(S))->SetUnorientable(); - } - } - catch(Standard_Failure) { -#ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<SetFailStatus(S); - } - exp.Init(S,TopAbs_FACE); - for (; exp.More(); exp.Next()) { - Handle(BRepCheck_Result) aRes = myMap(exp.Current()); - if ( ! aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - myMap(S)->SetFailStatus(exp.Current()); - } - } - } - } - */ //modified by NIZNHY-PKV Mon Oct 13 14:24:04 2008t break; - // - case TopAbs_SOLID: { - exp.Init(S,TopAbs_SHELL); - for (; exp.More(); exp.Next()) { - const TopoDS_Shape& aShell=exp.Current(); - try { - OCC_CATCH_SIGNALS - myMap(aShell)->InContext(S); - } - catch(Standard_Failure) { + + case TopAbs_SOLID: + { + exp.Init(S,TopAbs_SHELL); + for (; exp.More(); exp.Next()) + { + const TopoDS_Shape& aShell=exp.Current(); + try + { + OCC_CATCH_SIGNALS + myMap(aShell)->InContext(S); + } + catch(Standard_Failure) + { #ifdef DEB - cout<<"BRepCheck_Analyzer : "; - Standard_Failure::Caught()->Print(cout); - cout<Print(cout); + cout<SetFailStatus(S); - } - // - Handle(BRepCheck_Result) aRes = myMap(aShell); - if (!aRes.IsNull() ) { - aRes->SetFailStatus(exp.Current()); - aRes->SetFailStatus(S); - } - } + if ( ! myMap(S).IsNull() ) + { + myMap(S)->SetFailStatus(S); + } + + // + Handle(BRepCheck_Result) aRes = myMap(aShell); + if (!aRes.IsNull() ) + { + aRes->SetFailStatus(exp.Current()); + aRes->SetFailStatus(S); + } + }//catch(Standard_Failure) + }//for (; exp.More(); exp.Next()) } - } - break;//case TopAbs_SOLID + break;//case TopAbs_SOLID default: break; }//switch (styp) { diff --git a/src/BRepCheck/BRepCheck_Edge.cxx b/src/BRepCheck/BRepCheck_Edge.cxx index efe5ace99e..7e46dfa870 100755 --- a/src/BRepCheck/BRepCheck_Edge.cxx +++ b/src/BRepCheck/BRepCheck_Edge.cxx @@ -64,12 +64,14 @@ #include -//modified by NIZNHY-PKV Thu May 05 09:01:57 2011f static - Standard_Boolean Validate(const Adaptor3d_Curve&, - const Adaptor3d_CurveOnSurface&, - const Standard_Real, - const Standard_Boolean); + BRepCheck_Status Validate(const Adaptor3d_Curve&, + const Adaptor3d_CurveOnSurface&, + const Standard_Real, + const Standard_Boolean, + const Standard_Boolean theSurfIsUPeriodic, + const Standard_Boolean theSurfIsVPeriodic); + static void PrintProblematicPoint(const gp_Pnt&, const Standard_Real, @@ -83,13 +85,9 @@ static static Standard_Real PrecSurface(const Adaptor3d_CurveOnSurface& aACS); -//static Standard_Boolean Validate(const Adaptor3d_Curve&, -// const Adaptor3d_Curve&, -// const Standard_Real, -// const Standard_Boolean); //modified by NIZNHY-PKV Thu May 05 09:02:01 2011t -#define NCONTROL 23 +static const Standard_Integer aNbControl = 23; //======================================================================= //function : BRepCheck_Edge @@ -219,9 +217,9 @@ void BRepCheck_Edge::Minimum() void BRepCheck_Edge::InContext(const TopoDS_Shape& S) { - if (myMap.IsBound(S)) { + if (myMap.IsBound(S)) return; - } + BRepCheck_ListOfStatus thelist; myMap.Bind(S, thelist); BRepCheck_ListOfStatus& lst = myMap(S); @@ -230,191 +228,238 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S) Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Edge(myShape)); TopAbs_ShapeEnum styp = S.ShapeType(); -// for (TopExp_Explorer exp(S,TopAbs_EDGE); exp.More(); exp.Next()) { TopExp_Explorer exp(S,TopAbs_EDGE) ; - for ( ; exp.More(); exp.Next()) { - if (exp.Current().IsSame(myShape)) { + for ( ; exp.More(); exp.Next()) + { + if (exp.Current().IsSame(myShape)) break; - } } - if (!exp.More()) { + + if (!exp.More()) + { BRepCheck::Add(lst,BRepCheck_SubshapeNotInShape); return; } - - switch (styp) { - case TopAbs_FACE: - if (!myCref.IsNull()) { - - Standard_Boolean SameParameter = TE->SameParameter(); - Standard_Boolean SameRange = TE->SameRange(); -// Modified by skv - Tue Apr 27 11:48:13 2004 Begin - if (!SameParameter || !SameRange) { - if (!SameParameter) - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - if (!SameRange) - BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - return; - } -// Modified by skv - Tue Apr 27 11:48:14 2004 End - Standard_Real First = myHCurve->FirstParameter(); - Standard_Real Last = myHCurve->LastParameter(); + switch (styp) + { + case TopAbs_FACE: + if (myCref.IsNull()) + break; - Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &S.TShape()); - const TopLoc_Location& Floc = S.Location(); - const TopLoc_Location& TFloc = TF->Location(); - const Handle(Geom_Surface)& Su = TF->Surface(); - TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location()); - Standard_Boolean pcurvefound = Standard_False; + { + Standard_Boolean SameParameter = TE->SameParameter(); + Standard_Boolean SameRange = TE->SameRange(); - BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves()); - while (itcr.More()) { - const Handle(BRep_CurveRepresentation)& cr = itcr.Value(); - if (cr != myCref && cr->IsCurveOnSurface(Su,L)) { - pcurvefound = Standard_True; - const Handle(BRep_GCurve)& GC = *((Handle(BRep_GCurve)*)&cr); - Standard_Real f,l; - GC->Range(f,l); - // gka OCC -// Modified by skv - Tue Apr 27 11:50:35 2004 Begin -// if (SameRange && (fabs(f-First) > Precision::PConfusion() || fabs(l-Last)> Precision::PConfusion())) { //f != First || l != Last)) { gka OCC - if (fabs(f-First) > Precision::PConfusion() || - fabs(l-Last) > Precision::PConfusion()) { - BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// if (SameParameter) { -// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// } - } -// Modified by skv - Tue Apr 27 11:50:37 2004 End - if (myGctrl) { - Handle(Geom_Surface) Sb = cr->Surface(); - Sb = Handle(Geom_Surface)::DownCast -// (Su->Transformed(L.Transformation())); - (Su->Transformed(/*L*/(Floc * TFloc).Transformation())); - Handle(Geom2d_Curve) PC = cr->PCurve(); - Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(Sb); - Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC,f,l); - Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); - Standard_Boolean ok = - Validate(myHCurve->Curve(),ACS,Tol,SameParameter); - if (!ok) { - if (cr->IsCurveOnClosedSurface()) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); - } - else { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); - } -// Modified by skv - Tue Apr 27 11:53:00 2004 Begin - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// if (SameParameter) { -// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); -// } -// Modified by skv - Tue Apr 27 11:53:01 2004 End - } - if (cr->IsCurveOnClosedSurface()) { - GHPC->ChangeCurve2d().Load(cr->PCurve2(),f,l); // same bounds - ACS.Load(GAHS); // sans doute inutile - ACS.Load(GHPC); // meme remarque... - ok = Validate(myHCurve->Curve(),ACS,Tol,SameParameter); - if (!ok) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); -// Modified by skv - Tue Apr 27 11:53:20 2004 Begin - if (SameParameter) { - BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - } -// Modified by skv - Tue Apr 27 11:53:23 2004 End - } - } - } - } - itcr.Next(); - } + if (!SameParameter || !SameRange) + { + if (!SameParameter) + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); - if (!pcurvefound) { - Handle(Geom_Plane) P; - Handle(Standard_Type) dtyp = Su->DynamicType(); - if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) { - P = Handle(Geom_Plane)::DownCast - (Handle(Geom_RectangularTrimmedSurface):: - DownCast(Su)->BasisSurface()); - } - else { - P = Handle(Geom_Plane)::DownCast(Su); - } - if (P.IsNull()) { // not a plane - BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface); - } - else { // on fait la projection a la volee, comme BRep_Tool - // plan en position - if (myGctrl) { - P = Handle(Geom_Plane):: - DownCast(P->Transformed(/*L*/(Floc * TFloc).Transformation()));// eap occ332 - //on projette Cref sur ce plan - Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(P); + if (!SameRange) + BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); - // Dub - Normalement myHCurve est une GeomAdaptor_HCurve - GeomAdaptor_Curve& Gac = - Handle(GeomAdaptor_HCurve)::DownCast(myHCurve)->ChangeCurve(); - Handle(Geom_Curve) C3d = Gac.Curve(); - Handle(Geom_Curve) ProjOnPlane = - GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last), - P, P->Position().Direction(), - Standard_True); - Handle(GeomAdaptor_HCurve) aHCurve = - new GeomAdaptor_HCurve(ProjOnPlane); + return; + }//if (!SameParameter || !SameRange) - ProjLib_ProjectedCurve proj(GAHS,aHCurve); - Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj); - Handle(Geom2dAdaptor_HCurve) GHPC = - new Geom2dAdaptor_HCurve(PC, - myHCurve->FirstParameter(), - myHCurve->LastParameter()); + const Standard_Real First = myHCurve->FirstParameter(); + const Standard_Real Last = myHCurve->LastParameter(); - Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); - - Standard_Boolean ok = Validate(myHCurve->Curve(),ACS, - Tol,Standard_True); // voir dub... - if (!ok) { - BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); - } - } - } + Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &S.TShape()); + const TopLoc_Location& Floc = S.Location(); + const TopLoc_Location& TFloc = TF->Location(); + const Handle(Geom_Surface)& Su = TF->Surface(); + TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location()); + Standard_Boolean pcurvefound = Standard_False; + + BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves()); + + while (itcr.More()) + { + const Handle(BRep_CurveRepresentation)& cr = itcr.Value(); + if (cr != myCref && cr->IsCurveOnSurface(Su,L)) + { + pcurvefound = Standard_True; + const Handle(BRep_GCurve)& GC = *((Handle(BRep_GCurve)*)&cr); + Standard_Real f,l; + GC->Range(f,l); + + if (fabs(f-First) > Precision::PConfusion() || + fabs(l-Last) > Precision::PConfusion()) + { + BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag); + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + + if (myGctrl) + { + Handle(Geom_Surface) Sb = cr->Surface(); + { + Standard_Real U1Su, U2Su, V1Su, V2Su; + Standard_Real U1Sb, U2Sb, V1Sb, V2Sb; + + Standard_Boolean isTrimU, isTrimV; + if(Su->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) + { + Handle(Geom_RectangularTrimmedSurface) TS = + Handle(Geom_RectangularTrimmedSurface)::DownCast(Su); + + TS->GetTrimmedFlags(isTrimU, isTrimV); + } + + Su->Bounds(U1Su, U2Su, V1Su, V2Su); + Sb = Handle(Geom_Surface)::DownCast + (Su->Transformed((Floc * TFloc).Transformation())); + + Sb->Bounds(U1Sb, U2Sb, V1Sb, V2Sb); + Standard_Boolean isUtr = ((Abs(U1Su - U1Sb) + Abs(U2Su - U2Sb)) > Precision::PConfusion()), + isVtr = ((Abs(V1Su - V1Sb) + Abs(V2Su - V2Sb)) > Precision::PConfusion()); + + if(isUtr || isVtr) + { + Handle(Geom_Surface) St = Handle(Geom_RectangularTrimmedSurface)::DownCast(Sb)->BasisSurface(); + Sb = new Geom_RectangularTrimmedSurface(St, isTrimU || isUtr, isVtr || isTrimV, U1Su, U2Su, V1Su, V2Su); + } + } + + Handle(Geom2d_Curve) PC = cr->PCurve(); + Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(Sb); + Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC,f,l); + Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); + BRepCheck_Status aStatus = Validate(myHCurve->Curve(),ACS,Tol,SameParameter, + Sb->IsUPeriodic(),Sb->IsVPeriodic()); + + if(aStatus == BRepCheck_PCurveIsOutOfDomainFace) + BRepCheck::Add(lst,BRepCheck_PCurveIsOutOfDomainFace); + else if(aStatus == BRepCheck_InvalidCurveOnSurface) + { + if (cr->IsCurveOnClosedSurface()) + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); + else + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface); + + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + else if(aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + + if (cr->IsCurveOnClosedSurface()) + { + GHPC->ChangeCurve2d().Load(cr->PCurve2(),f,l); // same bounds + ACS.Load(GAHS); // sans doute inutile + ACS.Load(GHPC); // meme remarque... + aStatus = Validate(myHCurve->Curve(),ACS,Tol,SameParameter, + Sb->IsUPeriodic(),Sb->IsVPeriodic()); + + if(aStatus == BRepCheck_PCurveIsOutOfDomainFace) + BRepCheck::Add(lst,BRepCheck_PCurveIsOutOfDomainFace); + else if(aStatus == BRepCheck_InvalidCurveOnSurface) + { + BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface); + if (SameParameter) + BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag); + } + else if(aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + }//if (cr->IsCurveOnClosedSurface()) + }//if (myGctrl) + }//if (cr != myCref && cr->IsCurveOnSurface(Su,L)) + itcr.Next(); + }//while (itcr.More()) + + if (!pcurvefound) + { + Handle(Geom_Plane) P; + Handle(Standard_Type) dtyp = Su->DynamicType(); + if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) + { + P = Handle(Geom_Plane)::DownCast + (Handle(Geom_RectangularTrimmedSurface):: + DownCast(Su)->BasisSurface()); + } + else + P = Handle(Geom_Plane)::DownCast(Su); + + if (P.IsNull()) // not a plane + BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface); + else + { + // on fait la projection a la volee, comme BRep_Tool plan en position + if (myGctrl) + { + P = Handle(Geom_Plane)::DownCast( + P->Transformed((Floc * TFloc).Transformation()));// eap occ332 + + //on projette Cref sur ce plan + Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(P); + + // Dub - Normalement myHCurve est une GeomAdaptor_HCurve + GeomAdaptor_Curve& Gac = + Handle(GeomAdaptor_HCurve)::DownCast(myHCurve)->ChangeCurve(); + + Handle(Geom_Curve) C3d = Gac.Curve(); + Handle(Geom_Curve) ProjOnPlane = + GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last), + P, P->Position().Direction(),Standard_True); + + Handle(GeomAdaptor_HCurve) aHCurve = + new GeomAdaptor_HCurve(ProjOnPlane); + + ProjLib_ProjectedCurve proj(GAHS,aHCurve); + Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj); + Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC, + myHCurve->FirstParameter(), + myHCurve->LastParameter()); + + Adaptor3d_CurveOnSurface ACS(GHPC,GAHS); + + BRepCheck_Status aStatus = Validate(myHCurve->Curve(),ACS,Tol, + Standard_True, P->IsUPeriodic(),P->IsVPeriodic()); // voir dub... + + if (aStatus != BRepCheck_NoError) + BRepCheck::Add(lst,aStatus); + }//if (myGctrl) + }//else of "if (P.IsNull())" condition + }//if (!pcurvefound) + + break; } - } - break; - case TopAbs_SOLID: - { - // on verifie que l`edge est bien connectee 2 fois (pas de bord libre) - Standard_Integer nbconnection = 0; - //TopExp_Explorer exp; - for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) { - const TopoDS_Face& fac = TopoDS::Face(exp.Current()); - TopExp_Explorer exp2; - for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) { - if (exp2.Current().IsSame(myShape)) { - nbconnection++; - } - } + case TopAbs_SOLID: + { + // on verifie que l`edge est bien connectee 2 fois (pas de bord libre) + Standard_Integer nbconnection = 0; + + //TopExp_Explorer exp; + for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) + { + const TopoDS_Face& fac = TopoDS::Face(exp.Current()); + TopExp_Explorer exp2; + + for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) + { + if (exp2.Current().IsSame(myShape)) + nbconnection++; + }//for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) + }//for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) + + if (nbconnection < 2 && !TE->Degenerated()) + BRepCheck::Add(myMap(S),BRepCheck_FreeEdge); + else if (nbconnection > 2) + { + BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity); + } + else + BRepCheck::Add(myMap(S),BRepCheck_NoError); + } - if (nbconnection < 2 && !TE->Degenerated()) { - BRepCheck::Add(myMap(S),BRepCheck_FreeEdge); - } - else if (nbconnection > 2) { - BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity); - } - else { - BRepCheck::Add(myMap(S),BRepCheck_NoError); - } - } - break; - default: - break; - } - if (myMap(S).IsEmpty()) { + break; + + default: + break; + }//switch (styp) + + if (myMap(S).IsEmpty()) myMap(S).Append(BRepCheck_NoError); - } } @@ -536,8 +581,8 @@ Standard_Real BRepCheck_Edge::Tolerance() Standard_Real dist2, tol2, tolCal=0., prm; gp_Pnt center, othP; Standard_Integer i, imax; - for (i= 0; i< NCONTROL; i++) { - prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + for (i= 0; i< aNbControl; i++) { + prm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); tol2=dist2=0.; center=(*(Handle(Adaptor3d_HCurve)*)&theRep(1))->Value(prm); for (iRep=2; iRep<=nbRep; iRep++) { @@ -556,73 +601,384 @@ Standard_Real BRepCheck_Edge::Tolerance() //======================================================================= //function : Validate -//purpose : +//purpose : +//Remark : If the original surface is not periodic in U or V direction +// (for example, rectangular trimmed on periodic surface), +// the surface that contains +// can be periodic. +// To use true values of flags, the parameters +// and have been added. //======================================================================= -Standard_Boolean Validate(const Adaptor3d_Curve& CRef, - const Adaptor3d_CurveOnSurface& Other, - const Standard_Real Tol, - const Standard_Boolean SameParameter) +BRepCheck_Status Validate (const Adaptor3d_Curve& CRef, + const Adaptor3d_CurveOnSurface& Other, + const Standard_Real Tol, + const Standard_Boolean SameParameter, + const Standard_Boolean theSurfIsUPeriodic, + const Standard_Boolean theSurfIsVPeriodic) { - Standard_Boolean Status, proj; + BRepCheck_Status Status; + Standard_Boolean proj; Standard_Real aPC, First, Last, Error; gp_Pnt problematic_point ; + // - Status = Standard_True; + Status = BRepCheck_NoError; Error = 0.; First = CRef.FirstParameter(); Last = CRef.LastParameter(); // + aPC=Precision::PConfusion(); - proj = (!SameParameter || - fabs(Other.FirstParameter()-First) > aPC || - fabs( Other.LastParameter()-Last) > aPC); - if (!proj) { + proj = (!SameParameter || + fabs(Other.FirstParameter()-First) > aPC || + fabs( Other.LastParameter()-Last) > aPC); + + if (!proj) + { Standard_Integer i; Standard_Real Tol2, prm, dD; gp_Pnt pref, pother; + //modified by NIZNHY-PKV Thu May 05 09:06:41 2011f //OCC22428 dD=Prec(CRef, Other);//3.e-15; Tol2=Tol+dD; Tol2=Tol2*Tol2; + //Tol2=Tol*Tol; //modified by NIZNHY-PKV Thu May 05 09:06:47 2011t + + const Standard_Real mTol = Tol; - for (i = 0; i< NCONTROL; ++i) { - prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + Standard_Real uf = Other.GetSurface()->FirstUParameter (); + Standard_Real ul = Other.GetSurface()->LastUParameter (); + Standard_Real vf = Other.GetSurface()->FirstVParameter(); + Standard_Real vl = Other.GetSurface()->LastVParameter(); + //These values are used for estimation of toleranves of + //"plane-like" surfaces + Standard_Real aDeltaU = (ul - uf); + Standard_Real aDeltaV = (vl - vf); + + // Max U(V) resolution is calculated from condition: + // |S'|*dU > aCoeff*(0.5*|S"|dU*dU), it means that + // first order differential of surface >> second order one + const Standard_Real aCoeff = 10.; + //Value to check modulus of derivatives against zero + const Standard_Real eps = 1.e-16; + //Value for estimation Max resolution if |S"| < eps + const Standard_Real aFactor = 10.; + + //(for Rectangular trimmed surface for example) + const Standard_Boolean isBaseSurfUPeriodic = Other.GetSurface()->IsUPeriodic() && !theSurfIsUPeriodic; + const Standard_Boolean isBaseSurfVPeriodic = Other.GetSurface()->IsVPeriodic() && !theSurfIsVPeriodic; + + const Standard_Boolean isUPeriodic = isBaseSurfUPeriodic || theSurfIsUPeriodic; + const Standard_Boolean isVPeriodic = isBaseSurfVPeriodic || theSurfIsVPeriodic; + + const Standard_Real UResSt =Other.GetSurface()->UResolution(Tol); + const Standard_Real VResSt =Other.GetSurface()->VResolution(Tol); + + for (i = 0; i< aNbControl; ++i) + { + prm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); pref = CRef.Value(prm); pother = Other.Value(prm); - if (pref.SquareDistance(pother) > Tol2) { - problematic_point = pref ; - Status = Standard_False; - Error = pref.Distance(pother); - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; + + if (pref.SquareDistance(pother) > Tol2) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface; + Error = pref.Distance(pother); + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; //goto FINISH ; } - } - } - else { + + gp_Pnt2d CP = Other.GetCurve()->Value(prm); + + if(i == 0) + { + if(theSurfIsUPeriodic) + { + const Standard_Real aF = Other.GetCurve()->Value(First).X(); + const Standard_Real aL = Other.GetCurve()->Value(Last).X(); + const Standard_Real aT = Other.GetSurface()->UPeriod(); + + if(Abs(aL - aF) - aT > 2* UResSt) + { +#ifdef DEB + cout << endl << "----\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx" << endl; + cout << "The surface is U-periodic." << endl; + cout << "P1.X() = " << aF << "; P2.X() = " << aL << endl; + cout << "Period T = " << aT << + ". (P2.X() - P1.X()) > T." << "\n-----" << endl; +#endif + Status = BRepCheck_PCurveIsOutOfDomainFace; + return Status; + }//if(aL - aF - aT > 2* URes) + }//if(theSurfIsUPeriodic) + + if(theSurfIsVPeriodic) + { + Standard_Real aF = Other.GetCurve()->Value(First).Y(); + Standard_Real aL = Other.GetCurve()->Value(Last).Y(); + + Standard_Real aT = Other.GetSurface()->VPeriod(); + + if(Abs(aL - aF) - aT > 2* VResSt) + { +#ifdef DEB + cout << endl << "----\nFunction Validate(...); file: " + "RepCheck_Edge.cxx" << endl; + cout << "The surface is V-periodic." << endl; + cout << "P1.Y() = " << aF << "; P2.Y() = " << aL << endl; + cout << "Period T = " << aT << + ". (P2.Y() - P1.Y()) > T." << "\n-----" << endl; +#endif + Status = BRepCheck_PCurveIsOutOfDomainFace; + return Status; + }//if(aL - aF - aT > 2* VRes) + }//if(theSurfIsVPeriodic) + }//if(i == 0) + + if(theSurfIsUPeriodic && theSurfIsVPeriodic) + continue; + + gp_Pnt aPref; + gp_Vec aDSdu, aDSdv, aD2Sdu2, aD2Sdv2, aD2Sdudv; + const Standard_Real u = Max(uf, Min(CP.X(), ul)); + const Standard_Real v = Max(vf, Min(CP.Y(), vl)); + + //Values of overrun of surface boundaries + Standard_Real dUpar = isUPeriodic ? 0.0 : CP.X() - u, + dVpar = isVPeriodic ? 0.0 : CP.Y() - v; + + Other.GetSurface()->D2(u, v, aPref, aDSdu, aDSdv, aD2Sdu2, + aD2Sdv2, aD2Sdudv); + + Standard_Real URes = UResSt, VRes = VResSt, UResMax = 0.0, VResMax = 0.0; + Standard_Real aModDSdu = aDSdu.Magnitude(); + Standard_Real aModDSdv = aDSdv.Magnitude(); + Standard_Real aModD2Sdu2 = aD2Sdu2.Magnitude(); + Standard_Real aModD2Sdv2 = aD2Sdv2.Magnitude(); + + if(aModDSdu > eps) + { + URes = Max(Tol / aModDSdu,UResSt); + if(aModD2Sdu2 > aModDSdu / aCoeff) + { + UResMax = aModDSdu / (.5 * aCoeff * aModD2Sdu2); + } + else + { + //Surface seems to be "plane-like" in U direction + UResMax = aDeltaU / aFactor; + } + } + else + { + URes = UResSt; + UResMax = aFactor * URes; + } + + // + if(aModDSdv > eps) + { + VRes = Max(Tol / aModDSdv,VResSt); + if(aModD2Sdv2 > aModDSdv / aCoeff) + { + VResMax = aModDSdv / (5. * aModD2Sdv2); + } + else + { + //Surface seems to be "plane-like" in V direction + VResMax = aDeltaV / aFactor; + } + } + else + { + VRes = VResSt; + VResMax = aFactor * VRes; + } + + URes = Max(URes, UResMax); + VRes = Max(VRes, VResMax); + + Standard_Boolean isUbound, isVbound; + + if(theSurfIsUPeriodic) + { + isUbound = Standard_True; + dUpar = 0.0; + } + else if(isBaseSurfUPeriodic) + { + isUbound = ((uf-UResSt <= CP.X()) && (CP.X() <= ul+UResSt)); + dUpar = 0.0; + } + else + { + isUbound = ((uf-URes <= CP.X()) && (CP.X() <= ul+URes)); + } + + if(theSurfIsVPeriodic) + { + isVbound = Standard_True; + dVpar = 0.0; + } + else if(isBaseSurfVPeriodic) + { + isVbound = ((vf-VResSt <= CP.Y()) && (CP.Y() <= vl+VResSt)); + dVpar = 0.0; + } + else + { + isVbound = ((vf-VRes <= CP.Y()) && (CP.Y() <= vl+VRes)); + } + + //Point CP is in surface boundary. + if(isUbound && isVbound) + continue; + + if(!isUbound) + { +#ifdef DEB + cout << endl << "----\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx" << endl; + + if(isBaseSurfUPeriodic) + cout << "RTS from U-periodic" << endl; + else if(theSurfIsUPeriodic) + cout << "U-periodic surface" << endl; + + cout << "Point #"<< i << "(prm = " << prm << "): (" << + CP.X() << "; " << CP.Y() <<")." << endl; + cout << "u = (" << uf << ")...(" << ul << "). " + "Delta = " << Max(uf - CP.X(),CP.X()-ul) << + " Tol3D = " << Tol <<". URes = " << URes << " " << UResMax << "\n-----"<< endl; +#endif + } + else + { + dUpar = 0.0; + } + + if(!isVbound) + { +#ifdef DEB + cout << endl << "----\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx" << endl; + + if(isBaseSurfVPeriodic) + cout << "RTS from V-periodic" << endl; + else if(theSurfIsVPeriodic) + cout << "V-periodic surface" << endl; + + + cout << "Point #"<< i << "(prm = " << prm << "): (" << + CP.X() << "; " << CP.Y() <<")." << endl; + cout << "v = (" << vf << ")...(" << vl << "). " + "Delta = " << Max(vf - CP.Y(),CP.Y()-vl) << + " Tol3D = " << Tol <<". VRes = " << VRes << " " << VResMax << "\n-----" << endl; +#endif + } + else + { + dVpar = 0.0; + } + + if(isBaseSurfUPeriodic && isBaseSurfVPeriodic) + { + Status = BRepCheck_PCurveIsOutOfDomainFace; + return Status; + } + + //Expected and real point + gp_Pnt aPe, aPf; + //1st degree estimation + aPe.SetXYZ(gp_XYZ(aPref.X() + (aDSdu.X()*dUpar+aDSdv.X()*dVpar), + aPref.Y() + (aDSdu.Y()*dUpar+aDSdv.Y()*dVpar), + aPref.Z() + (aDSdu.Z()*dUpar+aDSdv.Z()*dVpar))); + + Other.GetSurface()->D0(CP.X(), CP.Y(), aPf); + + const Standard_Real aTol = Tol2; + Standard_Real dist = aPe.SquareDistance(aPf); + + if(dist <= aTol) + continue; + +#ifdef DEB + cout << endl << "++++\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx (1st degree)" << endl; + cout << "Exp. point: (" << aPe.X() << ", " << aPe.Y() << ", " << + aPe.Z() << ")." << endl; + cout << "Real point: (" << aPf.X() << ", " << aPf.Y() << ", " << + aPf.Z() << ")." << endl; + cout << "dist**2 = " << dist << + "; Tol = " << aTol << "\n-----" << endl; +#endif + + const Standard_Real dUpar2 = dUpar*dUpar; + const Standard_Real dVpar2 = dVpar*dVpar; + const Standard_Real dUVpar = dUpar*dVpar; + + + //2nd degree estimation + aPe.SetXYZ(gp_XYZ(aPe.X() + (aD2Sdu2.X()*dUpar2 + + 2.0*aD2Sdudv.X()*dUVpar + aD2Sdv2.X()*dVpar2)/2.0, + aPe.Y() + (aD2Sdu2.Y()*dUpar2 + + 2.0*aD2Sdudv.Y()*dUVpar + aD2Sdv2.Y()*dVpar2)/2.0, + aPe.Z() + (aD2Sdu2.Z()*dUpar2 + + 2.0*aD2Sdudv.Z()*dUVpar + aD2Sdv2.Z()*dVpar2)/2.0)); + + dist = aPe.SquareDistance(aPf); + + if(dist > aTol) + { +#ifdef DEB + cout << endl << "++++\nFunction Validate(...); file: " + "BRepCheck_Edge.cxx (2nd degree)" << endl; + cout << "Exp. point: (" << aPe.X() << ", " << aPe.Y() << ", " << + aPe.Z() << ")." << endl; + cout << "Real point: (" << aPf.X() << ", " << aPf.Y() << ", " << + aPf.Z() << ")." << endl; + cout << "dist**2 = " << dist << + "; Tol = " << aTol << "\n-----" << endl; +#endif + Status = BRepCheck_PCurveIsOutOfDomainFace; + return Status; + } + }//for (i = 0; i< NCONTROL; ++i) + }//if (!proj) + else + { Extrema_LocateExtPC refd,otherd; Standard_Real OFirst = Other.FirstParameter(); Standard_Real OLast = Other.LastParameter(); gp_Pnt pd = CRef.Value(First); gp_Pnt pdo = Other.Value(OFirst); Standard_Real distt = pd.SquareDistance(pdo); - if (distt > Tol*Tol) { + + if (distt > Tol*Tol) + { problematic_point = pd ; - Status = Standard_False ; + Status = BRepCheck_InvalidCurveOnSurface ; Error = Sqrt(distt); PrintProblematicPoint(problematic_point, Error, Tol); return Status; //goto FINISH ; } + pd = CRef.Value(Last); pdo = Other.Value(OLast); distt = pd.SquareDistance(pdo); - if (distt > Tol*Tol) { + + if (distt > Tol*Tol) + { problematic_point = pd ; - Status = Standard_False ; + Status = BRepCheck_InvalidCurveOnSurface ; Error = Sqrt(distt); PrintProblematicPoint(problematic_point, Error, Tol); return Status; @@ -631,57 +987,59 @@ Standard_Boolean Validate(const Adaptor3d_Curve& CRef, refd.Initialize(CRef,First,Last,CRef.Resolution(Tol)); otherd.Initialize(Other,OFirst,OLast,Other.Resolution(Tol)); - for (Standard_Integer i = 2; i< NCONTROL-1; i++) { - Standard_Real rprm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1); + + for (Standard_Integer i = 2; i< aNbControl-1; i++) + { + Standard_Real rprm = ((aNbControl-1-i)*First + i*Last)/(aNbControl-1); gp_Pnt pref = CRef.Value(rprm); - Standard_Real oprm = ((NCONTROL-1-i)*OFirst + i*OLast)/(NCONTROL-1); + Standard_Real oprm = ((aNbControl-1-i)*OFirst + i*OLast)/(aNbControl-1); gp_Pnt pother = Other.Value(oprm); refd.Perform(pother,rprm); - if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) { - problematic_point = pref ; - Status = Standard_False ; - if (refd.IsDone()) { - Error = sqrt (refd.SquareDistance()); - } - else { - Error = RealLast(); - } - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; + + if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface ; + + if (refd.IsDone()) + { + Error = sqrt (refd.SquareDistance()); + } + else + { + Error = RealLast(); + } + + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; //goto FINISH ; } + otherd.Perform(pref,oprm); - if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) { - problematic_point = pref ; - Status = Standard_False ; - if (otherd.IsDone()) { - Error = sqrt (otherd.SquareDistance()); - } - else { - Error = RealLast(); - } - PrintProblematicPoint(problematic_point, Error, Tol); - return Status; - //goto FINISH ; + + if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) + { + problematic_point = pref ; + Status = BRepCheck_InvalidCurveOnSurface ; + if (otherd.IsDone()) + { + Error = sqrt (otherd.SquareDistance()); + } + else + { + Error = RealLast(); + } + + PrintProblematicPoint(problematic_point, Error, Tol); + return Status; + //goto FINISH ; } } } - //FINISH : -/* -#ifdef DEB - if (! Status) { - cout << " **** probleme de SameParameter au point :" << endl; - cout << " " << problematic_point.Coord(1) << " " - << problematic_point.Coord(2) << " " - << problematic_point.Coord(3) << endl ; - cout << " Erreur detectee :" << Error << " Tolerance :" << Tol << endl; - } -#endif -*/ - - return Status ; + return Status ; } + //======================================================================= //function : Prec //purpose : diff --git a/src/BRepCheck/BRepCheck_Face.cdl b/src/BRepCheck/BRepCheck_Face.cdl index ea7f5ff5c3..3ea7d0e1c5 100755 --- a/src/BRepCheck/BRepCheck_Face.cdl +++ b/src/BRepCheck/BRepCheck_Face.cdl @@ -73,6 +73,13 @@ is is static; + SetStatus(me: mutable; + theStatus:Status from BRepCheck) + + --- Purpose: Sets status of Face; + is static; + + IsUnorientable(me) diff --git a/src/BRepCheck/BRepCheck_Face.cxx b/src/BRepCheck/BRepCheck_Face.cxx index 14a6e10e18..e97afc4bac 100755 --- a/src/BRepCheck/BRepCheck_Face.cxx +++ b/src/BRepCheck/BRepCheck_Face.cxx @@ -451,6 +451,15 @@ void BRepCheck_Face::SetUnorientable() BRepCheck::Add(myMap(myShape),BRepCheck_UnorientableShape); } +//======================================================================= +//function : SetStatus +//purpose : +//======================================================================= + +void BRepCheck_Face::SetStatus(const BRepCheck_Status theStatus) +{ + BRepCheck::Add(myMap(myShape),theStatus); +} //======================================================================= //function : IsUnorientable diff --git a/src/BRepCheck/BRepCheck_Wire.cxx b/src/BRepCheck/BRepCheck_Wire.cxx index 25610f02f4..87da8f5e22 100755 --- a/src/BRepCheck/BRepCheck_Wire.cxx +++ b/src/BRepCheck/BRepCheck_Wire.cxx @@ -388,7 +388,7 @@ Standard_Boolean IsDistanceIn3DTolerance (const BRepAdaptor_Surface& /*aFaceSurf #ifdef DEB cout << endl; cout << "--------Function IsDistanceIn3DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Closed3d -> Error" << endl; + cout << "--- BRepCheck Wire: Not closed in 3D" << endl; cout << "--- Dist (" << Dist << ") > Tol3d (" << aTol3d << ")" << endl; cout << "Pnt1(" << thePnt_f.X() << "; " << thePnt_f.Y() << "; " << thePnt_f.Z() << ")" << endl; cout << "Pnt2(" << thePnt_l.X() << "; " << thePnt_l.Y() << "; " << thePnt_l.Z() << ")" << endl; @@ -421,7 +421,7 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac { cout << endl; cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Not closed in 2d" << endl; + cout << "--- BRepCheck Wire: Not closed in 2D" << endl; cout << "*****************************************************" << endl; cout << "*dumin = " << dumin << "; dumax = " << dumax << endl; cout << "* dvmin = " << dvmin << "; dvmax = " << dvmax << endl; @@ -470,7 +470,7 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac { cout << endl; cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl; - cout << "--- BRepCheck Wire: Not closed in 2d" << endl; + cout << "--- BRepCheck Wire: Not closed in 2D" << endl; cout << "*****************************************************" << endl; cout << "* Dist = " << Dist << " > Tol2d = " << aTol2d << endl; cout << "*****************************************************" << endl; diff --git a/src/BRepLib/BRepLib.cxx b/src/BRepLib/BRepLib.cxx index a397553197..e51155dcd9 100755 --- a/src/BRepLib/BRepLib.cxx +++ b/src/BRepLib/BRepLib.cxx @@ -21,72 +21,49 @@ //pmn 26/09/97 Add parameters of approximation in BuildCurve3d // Modified by skv - Thu Jun 3 12:39:19 2004 OCC5898 - #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +#include +#include +#include +#include +#include +#include // TODO - not thread-safe static variables static Standard_Real thePrecision = Precision::Confusion(); @@ -1776,5 +1753,3 @@ void BRepLib::ReverseSortFaces (const TopoDS_Shape& Sh, LF.Append(LCon); LF.Append(LCyl ); LF.Append(LPlan); } - - diff --git a/src/BRepTest/BRepTest_CheckCommands.cxx b/src/BRepTest/BRepTest_CheckCommands.cxx index 1d35f7962e..0a91549d10 100755 --- a/src/BRepTest/BRepTest_CheckCommands.cxx +++ b/src/BRepTest/BRepTest_CheckCommands.cxx @@ -80,6 +80,12 @@ # include #endif +//Number of BRepCheck_Statuses in BRepCheck_Status.hxx file +//(BRepCheck_NoError is not considered, i.e. general status +//is smaller by one specified in file) +static const Standard_Integer NumberOfStatus = 35; + + static char* checkfaultyname = NULL; Standard_EXPORT void BRepTest_CheckCommands_SetFaultyName(const char* name) { @@ -515,40 +521,46 @@ static void FillProblems(const BRepCheck_Status stat, NbProblems->SetValue(14,NbProblems->Value(14)+1); break; case BRepCheck_InvalidRange: NbProblems->SetValue(15,NbProblems->Value(15)+1); break; - case BRepCheck_EmptyWire: + case BRepCheck_PCurveIsOutOfDomainFace: NbProblems->SetValue(16,NbProblems->Value(16)+1); break; - case BRepCheck_RedundantEdge: + case BRepCheck_EmptyWire: NbProblems->SetValue(17,NbProblems->Value(17)+1); break; - case BRepCheck_SelfIntersectingWire: + case BRepCheck_RedundantEdge: NbProblems->SetValue(18,NbProblems->Value(18)+1); break; - case BRepCheck_NoSurface: + case BRepCheck_SelfIntersectingWire: NbProblems->SetValue(19,NbProblems->Value(19)+1); break; - case BRepCheck_InvalidWire: + case BRepCheck_NoSurface: NbProblems->SetValue(20,NbProblems->Value(20)+1); break; - case BRepCheck_RedundantWire: + case BRepCheck_OutOfSurfaceBoundary: NbProblems->SetValue(21,NbProblems->Value(21)+1); break; - case BRepCheck_IntersectingWires: + case BRepCheck_InvalidWire: NbProblems->SetValue(22,NbProblems->Value(22)+1); break; - case BRepCheck_InvalidImbricationOfWires: + case BRepCheck_RedundantWire: NbProblems->SetValue(23,NbProblems->Value(23)+1); break; - case BRepCheck_EmptyShell: + case BRepCheck_IntersectingWires: NbProblems->SetValue(24,NbProblems->Value(24)+1); break; - case BRepCheck_RedundantFace: + case BRepCheck_InvalidImbricationOfWires: NbProblems->SetValue(25,NbProblems->Value(25)+1); break; - case BRepCheck_UnorientableShape: + case BRepCheck_EmptyShell: NbProblems->SetValue(26,NbProblems->Value(26)+1); break; - case BRepCheck_NotClosed: + case BRepCheck_RedundantFace: NbProblems->SetValue(27,NbProblems->Value(27)+1); break; - case BRepCheck_NotConnected: + case BRepCheck_UnorientableShape: NbProblems->SetValue(28,NbProblems->Value(28)+1); break; - case BRepCheck_SubshapeNotInShape: + case BRepCheck_NotClosed: NbProblems->SetValue(29,NbProblems->Value(29)+1); break; - case BRepCheck_BadOrientation: + case BRepCheck_NotConnected: NbProblems->SetValue(30,NbProblems->Value(30)+1); break; - case BRepCheck_BadOrientationOfSubshape: + case BRepCheck_SubshapeNotInShape: NbProblems->SetValue(31,NbProblems->Value(31)+1); break; - case BRepCheck_CheckFail: + case BRepCheck_BadOrientation: NbProblems->SetValue(32,NbProblems->Value(32)+1); break; + case BRepCheck_BadOrientationOfSubshape: + NbProblems->SetValue(33,NbProblems->Value(33)+1); break; + case BRepCheck_InvalidToleranceValue: + NbProblems->SetValue(34,NbProblems->Value(34)+1); break; + case BRepCheck_CheckFail: + NbProblems->SetValue(35,NbProblems->Value(35)+1); break; default: break; } @@ -674,8 +686,9 @@ void StructuralDump(Draw_Interpretor& theCommands, theCommands<<" Check Count"<<"\n"; theCommands<<" ------------------------------------------------"<<"\n"; - Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,32); - for(i=1; i<=32; i++) NbProblems->SetValue(i,0); + Handle(TColStd_HArray1OfInteger) NbProblems = new + TColStd_HArray1OfInteger(1,NumberOfStatus); + for(i=1; i<=NumberOfStatus; i++) NbProblems->SetValue(i,0); Handle(TopTools_HSequenceOfShape) sl,slv,sle,slw,slf,sls,slo; sl = new TopTools_HSequenceOfShape(); theMap.Clear(); @@ -728,55 +741,64 @@ void StructuralDump(Draw_Interpretor& theCommands, theCommands<<" Invalid Range ............................ "<Value(15)<<"\n"; //cout<<" Invalid Range ............................ "<Value(15)<Value(16)>0) - theCommands<<" Empty Wire ............................... "<Value(16)<<"\n"; - //cout<<" Empty Wire ............................... "<Value(16)<Value(16)<<"\n"; + //cout<<" Invalid Range ............................ "<Value(15)<Value(17)>0) - theCommands<<" Redundant Edge ........................... "<Value(17)<<"\n"; - //cout<<" Redundant Edge ........................... "<Value(17)<Value(17)<<"\n"; + //cout<<" Empty Wire ............................... "<Value(16)<Value(18)>0) - theCommands<<" Self Intersecting Wire ................... "<Value(18)<<"\n"; - //cout<<" Self Intersecting Wire ................... "<Value(18)<Value(18)<<"\n"; + //cout<<" Redundant Edge ........................... "<Value(17)<Value(19)>0) - theCommands<<" No Surface ............................... "<Value(19)<<"\n"; - //cout<<" No Surface ............................... "<Value(19)<Value(19)<<"\n"; + //cout<<" Self Intersecting Wire ................... "<Value(18)<Value(20)>0) - theCommands<<" Invalid Wire ............................. "<Value(20)<<"\n"; - //cout<<" Invalid Wire ............................. "<Value(20)<Value(20)<<"\n"; + //cout<<" No Surface ............................... "<Value(19)<Value(21)>0) - theCommands<<" Redundant Wire ........................... "<Value(21)<<"\n"; - //cout<<" Redundant Wire ........................... "<Value(21)<Value(21)<<"\n"; + //cout<<" Invalid Wire ............................. "<Value(20)<Value(22)>0) - theCommands<<" Intersecting Wires ....................... "<Value(22)<<"\n"; - //cout<<" Intersecting Wires ....................... "<Value(22)<Value(22)<<"\n"; + //cout<<" Invalid Wire ............................. "<Value(20)<Value(23)>0) - theCommands<<" Invalid Imbrication of Wires ............. "<Value(23)<<"\n"; - //cout<<" Invalid Imbrication of Wires ............. "<Value(23)<Value(23)<<"\n"; + //cout<<" Redundant Wire ........................... "<Value(21)<Value(24)>0) - theCommands<<" Empty Shell .............................. "<Value(24)<<"\n"; - //cout<<" Empty Shell .............................. "<Value(24)<Value(24)<<"\n"; + //cout<<" Intersecting Wires ....................... "<Value(22)<Value(25)>0) - theCommands<<" Redundant Face ........................... "<Value(25)<<"\n"; - //cout<<" Redundant Face ........................... "<Value(25)<Value(25)<<"\n"; + //cout<<" Invalid Imbrication of Wires ............. "<Value(23)<Value(26)>0) - theCommands<<" Unorientable Shape ....................... "<Value(26)<<"\n"; - //cout<<" Unorientable Shape ....................... "<Value(26)<Value(26)<<"\n"; + //cout<<" Empty Shell .............................. "<Value(24)<Value(27)>0) - theCommands<<" Not Closed ............................... "<Value(27)<<"\n"; - //cout<<" Not Closed ............................... "<Value(27)<Value(27)<<"\n"; + //cout<<" Redundant Face ........................... "<Value(25)<Value(28)>0) - theCommands<<" Not Connected ............................ "<Value(28)<<"\n"; - //cout<<" Not Connected ............................ "<Value(28)<Value(28)<<"\n"; + //cout<<" Unorientable Shape ....................... "<Value(26)<Value(29)>0) - theCommands<<" Subshape not in Shape .................... "<Value(29)<<"\n"; - //cout<<" Subshape not in Shape .................... "<Value(29)<Value(29)<<"\n"; + //cout<<" Not Closed ............................... "<Value(27)<Value(30)>0) - theCommands<<" Bad Orientation .......................... "<Value(30)<<"\n"; - //cout<<" Bad Orientation .......................... "<Value(30)<Value(30)<<"\n"; + //cout<<" Not Connected ............................ "<Value(28)<Value(31)>0) - theCommands<<" Bad Orientation of Subshape .............. "<Value(31)<<"\n"; - //cout<<" Bad Orientation of Subshape .............. "<Value(31)<Value(31)<<"\n"; + //cout<<" Subshape not in Shape .................... "<Value(29)<Value(32)>0) - theCommands<<" checkshape failure......... .............. "<Value(32)<<"\n"; + theCommands<<" Bad Orientation .......................... "<Value(32)<<"\n"; + //cout<<" Bad Orientation .......................... "<Value(30)<Value(33)>0) + theCommands<<" Bad Orientation of Subshape .............. "<Value(33)<<"\n"; + //cout<<" Bad Orientation of Subshape .............. "<Value(31)<Value(34)>0) + theCommands<<" Invalid tolerance......................... "<Value(34)<<"\n"; + //cout<<" checkshape failure......... .............. "<Value(32)<Value(35)>0) + theCommands<<" checkshape failure........................ "<Value(35)<<"\n"; //cout<<" checkshape failure......... .............. "<Value(32)< and members values. + fields basisSurf : Surface from Geom; diff --git a/src/Geom/Geom_RectangularTrimmedSurface.cxx b/src/Geom/Geom_RectangularTrimmedSurface.cxx index d47be5b076..dfd999239b 100755 --- a/src/Geom/Geom_RectangularTrimmedSurface.cxx +++ b/src/Geom/Geom_RectangularTrimmedSurface.cxx @@ -87,6 +87,45 @@ Handle(Geom_Geometry) Geom_RectangularTrimmedSurface::Copy () const { return S; } +//======================================================================= +//function : Geom_RectangularTrimmedSurface +//purpose : +//======================================================================= + +Geom_RectangularTrimmedSurface::Geom_RectangularTrimmedSurface( + const Handle(Geom_Surface)& S, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim, + const Standard_Real U1, + const Standard_Real U2, + const Standard_Real V1, + const Standard_Real V2): utrim1(U1), + vtrim1(V1), + utrim2(U2), + vtrim2(V2), + isutrimmed (isUTrim), + isvtrimmed (isVTrim) +{ + // kill trimmed basis surfaces + Handle(Geom_RectangularTrimmedSurface) T = + Handle(Geom_RectangularTrimmedSurface)::DownCast(S); + if (!T.IsNull()) + basisSurf = Handle(Surface)::DownCast(T->BasisSurface()->Copy()); + else + basisSurf = Handle(Surface)::DownCast(S->Copy()); + + Handle(Geom_OffsetSurface) O = + Handle(Geom_OffsetSurface)::DownCast(basisSurf); + if (!O.IsNull()) + { + Handle(Geom_RectangularTrimmedSurface) S2 = + new Geom_RectangularTrimmedSurface( O->BasisSurface(),U1,U2, V1, V2, isUTrim, isVTrim); + Handle(Geom_OffsetSurface) OS = new Geom_OffsetSurface(S2, O->Offset()); + basisSurf = Handle(Surface)::DownCast(OS); + } + + ForceTrim( U1, U2, V1, V2, isUTrim, isVTrim); +} //======================================================================= //function : Geom_RectangularTrimmedSurface @@ -168,6 +207,172 @@ Geom_RectangularTrimmedSurface::Geom_RectangularTrimmedSurface ( SetTrim(Param1, Param2, UTrim, Sense); } +//======================================================================= +//function : SetUTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::SetUTrim(const Standard_Real theU1, + const Standard_Real theU2) +{ + const Standard_Real Udeb = utrim1, Ufin = utrim2; + + utrim1 = theU1; + utrim2 = theU2; + + if ( utrim1 == utrim2) + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::U1==U2"); + + if (basisSurf->IsUPeriodic()) + { + ElCLib::AdjustPeriodic(Udeb, Ufin, + Min(Abs(utrim2-utrim1)/2,Precision::PConfusion()), utrim1, utrim2); + }//if (basisSurf->IsUPeriodic()) + else + { + if (utrim1 > utrim2) + { + //change some places of theUTrim1 and theUTrim2 + Standard_Real ut = utrim1; + utrim1 = utrim2; + utrim2 = ut; + } + + if ( (Udeb-utrim1 > Precision::PConfusion()) || + (utrim2-Ufin > Precision::PConfusion())) + { + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::Uparameters out of range"); + } + } +} + +//======================================================================= +//function : SetVTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::SetVTrim(const Standard_Real theV1, + const Standard_Real theV2) +{ + const Standard_Real Vdeb = vtrim1, Vfin = vtrim2; + + vtrim1 = theV1; + vtrim2 = theV2; + + if ( vtrim1 == vtrim2) + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::V1==V2"); + + if (basisSurf->IsVPeriodic()) + { + ElCLib::AdjustPeriodic(Vdeb, Vfin, + Min(Abs(vtrim2-vtrim1)/2,Precision::PConfusion()),vtrim1, vtrim2); + }//if (basisSurf->IsVPeriodic()) + else + { + if (vtrim1 > vtrim2) + { + Standard_Real vt = vtrim1; + vtrim1 = vtrim2; + vtrim2 = vt; + } + + if ( (Vdeb-vtrim1 > Precision::PConfusion()) || + (vtrim2-Vfin > Precision::PConfusion())) + { + Standard_ConstructionError::Raise + ("Geom_RectangularTrimmedSurface::V parameters out of range"); + } + } +} + +//======================================================================= +//function : ForceTrim +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::ForceTrim(const Standard_Real theU1, + const Standard_Real theU2, + const Standard_Real theV1, + const Standard_Real theV2, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim) +{ + basisSurf->Bounds(utrim1, utrim2, vtrim1, vtrim2); + + isutrimmed = isUTrim; + isvtrimmed = isVTrim; + + // Trimming along U-Direction + if (isutrimmed) + { + utrim1 = theU1; + utrim2 = theU2; + + if((utrim1 > utrim2) || !(basisSurf->IsUPeriodic())) + { + //Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::ForceTrim(...). " + // "utrim1 > utrim2"); + + SetUTrim(theU1,theU2); + } + else + { + const Standard_Real aTolPeriodicFactor = 1.0e-7; + const Standard_Real aT = basisSurf->UPeriod(); + const Standard_Real aTol = aTolPeriodicFactor * aT; + if(utrim2 - utrim1 - aT > 2.0*aTol) + { + Standard_Integer n = RealToInt((utrim2 - utrim1)/aT); + utrim2 -= (n * aT); + + if(utrim2 - utrim1 < aTol) + utrim2 += aT; + } + + //if(utrim2 - utrim1 < aTol) + // Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::SetTrim(...)." + // "ERROR in adjust U-parameter!"); + } + } + + // Trimming along V-Direction + if (isvtrimmed) + { + vtrim1 = theV1; + vtrim2 = theV2; + + if ((vtrim1 > vtrim2) || !(basisSurf->IsVPeriodic())) + { + //Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::ForceTrim(...). " + // "vtrim1 > vtrim2"); + + SetVTrim(theV1,theV2); + } + else + { + const Standard_Real aTolPeriodicFactor = 1.0e-7; + const Standard_Real aT = basisSurf->VPeriod(); + const Standard_Real aTol = aTolPeriodicFactor * aT; + + if(vtrim2 - vtrim1 - aT > 2.0*aTol) + { + Standard_Integer n = RealToInt((vtrim2 - vtrim1)/aT); + vtrim2 -= (n * aT); + + if(vtrim2 - vtrim1 < aTol) + vtrim2 += aT; + } + + //if(vtrim2 - vtrim1 < aTol) + // Standard_ConstructionError::Raise + // ("Geom_RectangularTrimmedSurface::SetTrim(...)." + // "ERROR in adjust V-parameter!"); + } + } +} //======================================================================= //function : SetTrim @@ -221,107 +426,36 @@ void Geom_RectangularTrimmedSurface::SetTrim (const Standard_Real Param1, //purpose : //======================================================================= -void Geom_RectangularTrimmedSurface::SetTrim(const Standard_Real U1, - const Standard_Real U2, - const Standard_Real V1, - const Standard_Real V2, - const Standard_Boolean UTrim, - const Standard_Boolean VTrim, - const Standard_Boolean USense, - const Standard_Boolean VSense) { - - Standard_Boolean UsameSense = Standard_True; - Standard_Boolean VsameSense = Standard_True; - Standard_Real Udeb, Ufin, Vdeb, Vfin; +void Geom_RectangularTrimmedSurface::SetTrim( + const Standard_Real theU1, + const Standard_Real theU2, + const Standard_Real theV1, + const Standard_Real theV2, + const Standard_Boolean isUTrim, + const Standard_Boolean isVTrim, + const Standard_Boolean isUSense, + const Standard_Boolean isVSense) +{ + Standard_Boolean UsameSense = !(isUSense && (theU1 > theU2)); + Standard_Boolean VsameSense = !(isVSense && (theV1 > theV2)); - basisSurf->Bounds(Udeb, Ufin, Vdeb, Vfin); + basisSurf->Bounds(utrim1, utrim2, vtrim1, vtrim2); + + isutrimmed = isUTrim; + isvtrimmed = isVTrim; // Trimming the U-Direction - isutrimmed = UTrim; - if (!UTrim) { - utrim1 = Udeb; - utrim2 = Ufin; - } - else { - if ( U1 == U2) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::U1==U2"); - - if (basisSurf->IsUPeriodic()) { - UsameSense = USense; - - // set uTrim1 in the range Udeb , Ufin - // set uTrim2 in the range uTrim1 , uTrim1 + Period() - utrim1 = U1; - utrim2 = U2; - ElCLib::AdjustPeriodic(Udeb, Ufin, - Min(Abs(utrim2-utrim1)/2,Precision::PConfusion()), - utrim1, utrim2); - } - else { - if (U1 < U2) { - UsameSense = USense; - utrim1 = U1; - utrim2 = U2; - } - else { - UsameSense = !USense; - utrim1 = U2; - utrim2 = U1; - } - - if ((Udeb-utrim1 > Precision::PConfusion()) || - (utrim2-Ufin > Precision::PConfusion())) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::U parameters out of range"); - - } - } + if (isutrimmed) + SetUTrim(theU1,theU2); // Trimming the V-Direction - isvtrimmed = VTrim; - if (!VTrim) { - vtrim1 = Vdeb; - vtrim2 = Vfin; - } - else { - if ( V1 == V2) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::V1==V2"); + if (isvtrimmed) + SetVTrim(theV1,theV2); - if (basisSurf->IsVPeriodic()) { - VsameSense = VSense; - - // set vTrim1 in the range Vdeb , Vfin - // set vTrim2 in the range vTrim1 , vTrim1 + Period() - vtrim1 = V1; - vtrim2 = V2; - ElCLib::AdjustPeriodic(Vdeb, Vfin, - Min(Abs(vtrim2-vtrim1)/2,Precision::PConfusion()), - vtrim1, vtrim2); - } - else { - if (V1 < V2) { - VsameSense = VSense; - vtrim1 = V1; - vtrim2 = V2; - } - else { - VsameSense = !VSense; - vtrim1 = V2; - vtrim2 = V1; - } - - if ((Vdeb-vtrim1 > Precision::PConfusion()) || - (vtrim2-Vfin > Precision::PConfusion())) - Standard_ConstructionError::Raise - ("Geom_RectangularTrimmedSurface::V parameters out of range"); - - } - } - - if (!UsameSense) UReverse(); - if (!VsameSense) VReverse(); + if (!UsameSense) + UReverse(); + if (!VsameSense) + VReverse(); } @@ -666,3 +800,12 @@ gp_GTrsf2d Geom_RectangularTrimmedSurface::ParametricTransformation return basisSurf->ParametricTransformation(T); } +//======================================================================= +//function : GetTrimmedFlags +//purpose : +//======================================================================= +void Geom_RectangularTrimmedSurface::GetTrimmedFlags(Standard_Boolean& isU, Standard_Boolean& isV) const +{ + isU = isutrimmed; + isV = isvtrimmed; +} \ No newline at end of file diff --git a/src/GeomTools/GeomTools_SurfaceSet.cxx b/src/GeomTools/GeomTools_SurfaceSet.cxx index ec321c2213..eea9eeb7b2 100755 --- a/src/GeomTools/GeomTools_SurfaceSet.cxx +++ b/src/GeomTools/GeomTools_SurfaceSet.cxx @@ -528,7 +528,14 @@ static void Print(const Handle(Geom_RectangularTrimmedSurface)& S, if (compact) OS << RECTANGULAR << " "; else + { OS << "RectangularTrimmedSurface"; + + Standard_Boolean isUtr, isVtr; + S->GetTrimmedFlags(isUtr, isVtr); + + OS << " (uTrim = " << isUtr << ", vTrim = " << isVtr << ")"; + } Standard_Real U1,U2,V1,V2; S->Bounds(U1,U2,V1,V2); diff --git a/src/SWDRAW/SWDRAW_ShapeFix.cxx b/src/SWDRAW/SWDRAW_ShapeFix.cxx index a5051beedc..8dac2eccce 100755 --- a/src/SWDRAW/SWDRAW_ShapeFix.cxx +++ b/src/SWDRAW/SWDRAW_ShapeFix.cxx @@ -20,55 +20,51 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include #include +#include +#include +#include +#include #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include - -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include #ifdef AIX #include @@ -756,6 +752,277 @@ static Standard_Integer connectedges(Draw_Interpretor& di, Standard_Integer n, c } +//======================================================================= +//function : FixPCurveOfFace +//purpose : +//======================================================================= +static Standard_Integer FixPCurveOfFace(Draw_Interpretor& theDI, + Standard_Integer theNArg, + const char** theArg) +{ + if(theNArg < 2) + { + theDI << "use \"ffixpcu face\".\n"; + return 1; + } + + //Standard_Boolean isForsing = Standard_False; + //Standard_Boolean isSplitForbidden = Standard_True; + + //if(theNArg > 2) + //{ + // for (Standard_Integer i = 2; i < theNArg; i++) + // { + // if(theArg[i][0] == '-') + // { + // switch(theArg[i][1]) + // { + // case 'f': + // isForsing = Standard_True; + // break; + // case 's': + // isSplitForbidden = Standard_False; + // break; + // } + // } + // } + //} + + TopoDS_Shape aS=DBRep::Get(theArg[1]); + if (aS.IsNull()) { + theDI << "null shapes is not allowed here\n"; + return 1; + } + + if (aS.ShapeType()!=TopAbs_FACE) { + char buff[256]; + Sprintf ( buff, "shape %s must be a face\n", theArg[1]); + theDI << buff; + return 1; + } + + TopoDS_Face aF=*((TopoDS_Face*)&aS); + + BRepCheck_Analyzer anAna(aF); + + if(anAna.IsValid()) + { + theDI << "Face is valid!\n"; + return 0; + } + + BRepCheck_ListIteratorOfListOfStatus itl; + itl.Initialize(anAna.Result(aF)->Status()); + + if (itl.Value() != BRepCheck_OutOfSurfaceBoundary) + { + theDI << "Other Status!\n"; + return 0; + } + + TopoDS_Shape aNS = TopoDS_Shape(); + ShapeFix::RefineFace(aF, aNS/*, isForsing, isSplitForbidden*/); + + if(aNS.IsNull()) + DBRep::Set(theArg[1], aF); + else + DBRep::Set(theArg[1], aNS); + + // + return 0; +} + +//======================================================================= +//function : FixPCurveOfShape +//purpose : +//======================================================================= +static Standard_Integer FixPCurveOfShape(Draw_Interpretor& theDI, + Standard_Integer theNArg, + const char** theArg) +{ + if(theNArg < 3) + { + theDI << "use \"sfixpcu result shape\".\n"; + return 1; + } + + //Standard_Boolean isForsing = Standard_False; + //Standard_Boolean isSplitForbidden = Standard_True; + + //if(theNArg > 3) + //{ + // for (Standard_Integer i = 3; i < theNArg; i++) + // { + // if(theArg[i][0] == '-') + // { + // switch(theArg[i][1]) + // { + // case 'f': + // isForsing = Standard_True; + // break; + // case 's': + // isSplitForbidden = Standard_False; + // break; + // } + // } + // } + //} + + TopoDS_Shape aS=DBRep::Get(theArg[2]); + + if (aS.IsNull()) { + theDI << "null shapes is not allowed here\n"; + return 1; + } + + Standard_Boolean doCompound = Standard_False; + BRep_Builder aBuilder; + TopoDS_Compound aSt; + aBuilder.MakeCompound(aSt); + aSt.Free(Standard_True); + + TopExp_Explorer exp; + for (exp.Init(aS,TopAbs_FACE); exp.More();exp.Next()) + { + const TopoDS_Shape& aS1 = exp.Current(); + TopoDS_Face aF=*((TopoDS_Face*)&aS1); + + BRepCheck_Analyzer anAna(aF); + if(anAna.IsValid()) + { + aBuilder.Add(aSt,aF); + continue; + } + + BRepCheck_ListIteratorOfListOfStatus itl; + itl.Initialize(anAna.Result(aF)->Status()); + if (itl.Value() != BRepCheck_OutOfSurfaceBoundary) + { + aBuilder.Add(aSt,aF); + continue; + } + + TopoDS_Shape aNS = TopoDS_Shape(); + ShapeFix::RefineFace(aF, aNS/*, isForsing,isSplitForbidden*/); + + if(!aNS.IsNull()) + { + aBuilder.Add(aSt,aNS); + doCompound = Standard_True; + } + else + { + aBuilder.Add(aSt,aF); + } + } + + if(doCompound) + { + aSt.Free(aS.Free()); + DBRep::Set(theArg[1],aSt); + } + else + { + DBRep::Set(theArg[1],aS); + } + + return 0; +} + +////======================================================================= +////function : splitfix +////purpose : +////======================================================================= +//static Standard_Integer splitfix(Draw_Interpretor& theDI, +// Standard_Integer theNArg, +// const char** theArg) +//{ +// if (theNArg < 3) { +// theDI << "use: splitface result face [-p]\n"; +// return 1; +// } +// +// TopoDS_Face aFace; +// { +// TopoDS_Shape aShape = DBRep::Get(theArg[2]) ; +// if (aShape.IsNull()) +// { +// theDI << "null shapes is not allowed here\n"; +// return 1; +// } +// +// aFace = TopoDS::Face ( aShape ); +// } +// +// if ( aFace.IsNull() ) { +// theDI << theArg[2] << " is not Face\n"; +// return 1; +// } +// +// Standard_Real anUFf, anUFl, aVFf, aVFl; +// BRepTools::UVBounds(aFace, anUFf, anUFl, aVFf, aVFl); +// +// Standard_Real anUSf, anUSl, aVSf, aVSl; +// Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace); +// +// if (aSurf->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) +// { +// Handle(Geom_RectangularTrimmedSurface) TS = +// Handle(Geom_RectangularTrimmedSurface)::DownCast(aSurf); +// +// aSurf = TS->BasisSurface(); +// } +// +// aSurf->Bounds(anUSf, anUSl, aVSf, aVSl); +// +// Standard_Real anURem = 0.0, aVRem = 0.0; +// Standard_Integer aNU = 1, aNV = 1; +// +// TopoDS_Shape aNewSh = TopoDS_Shape(); +// Standard_Boolean isSplitByU, isSplitByV; +// +// const Standard_Real duf = anUFl - anUFf; +// const Standard_Real dus = anUSl - anUSf; +// const Standard_Real dvf = aVFl - aVFf; +// const Standard_Real dvs = aVSl - aVSf; +// +// isSplitByU = /*aSurf->IsUPeriodic() && */ +// duf > dus; +// isSplitByV = /*aSurf->IsVPeriodic() && */ +// dvf > dvs; +// +// if(isSplitByU) +// { +// theDI << "Splitting by U: " << anUSf << ", " << anUSl << "\n"; +// aNU += 2; +// anURem = RealMod(duf,dus); +// } +// +// if(isSplitByV) +// { +// theDI << "Splitting by V: " << aVSf << ", " << aVSl << "\n"; +// aNV += 2; +// aVRem = RealMod(dvf,dvs); +// } +// +// if (!(isSplitByU || isSplitByV)) +// { +// theDI << "No splitting required!\n"; +// return 0; +// } +// +// ShapeFix::SplittingFace(aFace, aNewSh, aSurf, dus/2.0, dvs/2.0, anUFf, aVFf, +// anURem, aVRem, isSplitByU, isSplitByV); +// +// if(!aNewSh.IsNull()) +// DBRep::Set(theArg[1], aNewSh); +// else +// theDI << "No splitting result was found!\n"; +// +// return 0; +//} + + //======================================================================= //function : InitCommands //purpose : @@ -792,6 +1059,14 @@ static Standard_Integer connectedges(Draw_Interpretor& di, Standard_Integer n, c __FILE__,checkfclass2d,g); theCommands.Add ("connectedges","res shape [toler shared]", __FILE__,connectedges,g); - + theCommands.Add ("ffixpcu"," ffixpcu face (to fix face with " + "\"BRepCheck_OutOfSurfaceBoundary\" status) ", __FILE__,FixPCurveOfFace,g); + + theCommands.Add ("sfixpcu"," sfixpcu result shape (to fix shape, which contains face with " + "\"BRepCheck_OutOfSurfaceBoundary\" status) ", __FILE__,FixPCurveOfShape,g); + + //theCommands.Add ("splitfix"," splitfix result face [u usplit1 usplit2...] " + // "[v vsplit1 vsplit2 ...]",__FILE__,splitfix,g); + } diff --git a/src/ShapeBuild/ShapeBuild.cdl b/src/ShapeBuild/ShapeBuild.cdl index 9a44547bb1..e63a73c336 100755 --- a/src/ShapeBuild/ShapeBuild.cdl +++ b/src/ShapeBuild/ShapeBuild.cdl @@ -35,8 +35,9 @@ uses TopTools, BRep, ShapeExtend, - BRepTools - + BRepTools, + GeomAbs + is class Vertex; diff --git a/src/ShapeBuild/ShapeBuild_Edge.cdl b/src/ShapeBuild/ShapeBuild_Edge.cdl index eea0989c94..463fb4321b 100755 --- a/src/ShapeBuild/ShapeBuild_Edge.cdl +++ b/src/ShapeBuild/ShapeBuild_Edge.cdl @@ -33,7 +33,8 @@ uses Location from TopLoc, Vertex from TopoDS, Face from TopoDS, - Edge from TopoDS + Edge from TopoDS, + Shape from GeomAbs is @@ -86,14 +87,15 @@ is -- only pcurve corresponding to the orientation of the edge is -- replaced - ReassignPCurve (me; edge: Edge from TopoDS; - old, sub: Face from TopoDS) + ReassignPCurve (me; edge: Edge from TopoDS; + old, sub: Face from TopoDS; + theContinuity : Shape from GeomAbs = GeomAbs_C0) returns Boolean; - ---Purpose: Reassign edge pcurve lying on face to another face . - -- If edge has two pcurves on face, only one of them will be + ---Purpose: Reassign edge pcurve lying on face to another face . + -- If edge has two pcurves on face, only one of them will be -- reassigned, and other will left alone. Similarly, if edge already -- had a pcurve on face , it will have two pcurves on it. - -- Returns True if succeeded, False if no pcurve lying on found. + -- Returns True if succeeded, False if no pcurve lying on found. TransformPCurve(me; pcurve: Curve from Geom2d; trans : Trsf2d from gp; diff --git a/src/ShapeBuild/ShapeBuild_Edge.cxx b/src/ShapeBuild/ShapeBuild_Edge.cxx index 313040055f..e148c6f80d 100755 --- a/src/ShapeBuild/ShapeBuild_Edge.cxx +++ b/src/ShapeBuild/ShapeBuild_Edge.cxx @@ -407,14 +407,13 @@ void ShapeBuild_Edge::ReplacePCurve (const TopoDS_Edge& edge, } //======================================================================= -//function : ReassignPCurve -//purpose : +//function : CountPCurves +//purpose : Count exact number of pcurves STORED in edge for face +// This makes difference for faces based on plane surfaces +// where pcurves can be not stored but returned by +// BRep_Tools::CurveOnSurface //======================================================================= - -// Count exact number of pcurves STORED in edge for face -// This makes difference for faces based on plane surfaces where pcurves can be -// not stored but returned by BRep_Tools::CurveOnSurface -static Standard_Integer CountPCurves (const TopoDS_Edge &edge, +static Standard_Integer CountPCurves(const TopoDS_Edge &edge, const TopoDS_Face &face) { TopLoc_Location L; @@ -430,9 +429,15 @@ static Standard_Integer CountPCurves (const TopoDS_Edge &edge, return 0; } -Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, - const TopoDS_Face& old, - const TopoDS_Face& sub) const +//======================================================================= +//function : ReassignPCurve +//purpose : +//======================================================================= +Standard_Boolean + ShapeBuild_Edge::ReassignPCurve(const TopoDS_Edge& edge, + const TopoDS_Face& old, + const TopoDS_Face& sub, + const GeomAbs_Shape theContinuity) const { Standard_Integer npcurves = CountPCurves ( edge, old ); //if ( npcurves <1 ) return Standard_False; //gka @@ -440,14 +445,16 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, Standard_Real f, l; Handle(Geom2d_Curve) pc; pc = BRep_Tool::CurveOnSurface ( edge, old, f, l ); - if ( pc.IsNull() ) return Standard_False; - else if( npcurves == 0) npcurves =1; //gka - - + if (pc.IsNull()) + return Standard_False; + else if(npcurves == 0) + npcurves =1; //gka + BRep_Builder B; // if the pcurve was only one, remove; else leave second one - if ( npcurves >1 ) { + if ( npcurves >1 ) + { //smh#8 Porting AIX TopoDS_Shape tmpshape = edge.Reversed(); TopoDS_Edge erev = TopoDS::Edge (tmpshape); @@ -455,11 +462,13 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, B.UpdateEdge ( edge, pc2, old, 0. ); B.Range ( edge, old, f, l ); } - else RemovePCurve ( edge, old ); + else + RemovePCurve ( edge, old ); // if edge does not have yet pcurves on sub, just add; else add as first Standard_Integer npcs = CountPCurves ( edge, sub ); - if ( npcs <1 ) B.UpdateEdge ( edge, pc, sub, 0. ); + if ( npcs < 1 ) + B.UpdateEdge ( edge, pc, sub, 0. ); else { //smh#8 Porting AIX TopoDS_Shape tmpshape = edge.Reversed(); @@ -467,8 +476,9 @@ Standard_Boolean ShapeBuild_Edge::ReassignPCurve (const TopoDS_Edge& edge, Standard_Real cf, cl; Handle(Geom2d_Curve) pcs = BRep_Tool::CurveOnSurface ( erev, sub, cf, cl ); if ( edge.Orientation() == TopAbs_REVERSED ) // because B.UpdateEdge does not check edge orientation - B.UpdateEdge ( edge, pcs, pc, sub, 0. ); - else B.UpdateEdge ( edge, pc, pcs, sub, 0. ); + B.UpdateEdge ( edge, pcs, pc, sub, 0., theContinuity); + else + B.UpdateEdge ( edge, pc, pcs, sub, 0., theContinuity); } B.Range ( edge, sub, f, l ); diff --git a/src/ShapeFix/ShapeFix.cdl b/src/ShapeFix/ShapeFix.cdl index b74ab11e3b..afe7e617ec 100755 --- a/src/ShapeFix/ShapeFix.cdl +++ b/src/ShapeFix/ShapeFix.cdl @@ -154,6 +154,27 @@ is LeastEdgeSize(theshape: in out Shape from TopoDS) returns Real; ---Purpose: Calculate size of least edge; - + RefineFace (theF : Face from TopoDS; + theNewShape : in out Shape from TopoDS); + ---Purpose: It is created for fixing faces with + -- BRepCheck_OutOfSurfaceBoundary status. + + ReTrimmedFace(theF : in out Face from TopoDS; + theNewRTSurf: RectangularTrimmedSurface from Geom) + + ---Purpose: Replace the surface in theF with theNewRTSurf. + is private; + + SplittingFace(theF : Face from TopoDS; + theNewShape : in out Shape from TopoDS; + theS : Surface from Geom; + theDeltaBU2, theDeltaBV2, + theUFf, theVFf, + theUReminder, theVReminder : Real from Standard; + isSplitByU, isSplitByV : Boolean from Standard) + + ---Purpose: Make split. + is private; + end ShapeFix; diff --git a/src/ShapeFix/ShapeFix.cxx b/src/ShapeFix/ShapeFix.cxx index 2a0b39c95a..a7a818c139 100755 --- a/src/ShapeFix/ShapeFix.cxx +++ b/src/ShapeFix/ShapeFix.cxx @@ -17,9 +17,6 @@ // purpose or non-infringement. Please see the License for the specific terms // and conditions governing the rights and limitations under the License. - - -#include //:k2 abv 16.12.98: eliminating code duplication //pdn 18.12.98: checking deviation for SP edges //: abv 22.02.99: method FillFace() removed since PRO13123 is fixed @@ -27,54 +24,50 @@ //szv#9:S4244:19Aug99: Added method FixWireGaps //szv#10:S4244:23Aug99: Added method FixFaceGaps +#include #include #include - -#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - +#include +#include +#include #include #include #include #include #include -#include - -//:i2 -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include #include -#include -#include -#include - -#include -#include #include -#include -#include -#include -#include -#include #include -#include - -#include +#include +#include +#include +#include //======================================================================= //function : SameParameter @@ -718,3 +711,380 @@ Standard_Real ShapeFix::LeastEdgeSize(TopoDS_Shape& theShape) aRes = sqrt(aRes); return aRes; } + + +//static void Boundaries2D(const TopoDS_Face& theF, +// const Handle(Geom_Surface)& theS, +// Standard_Real& UMin, +// Standard_Real& UMax, +// Standard_Real& VMin, +// Standard_Real& VMax) +//{ +// const Standard_Integer NBPoints = 23; +// TopoDS_Face aF = theF; +// aF.Orientation(TopAbs_FORWARD); +// +// Standard_Real anUF = 0.0, anUL = 0.0, aVF = 0.0, aVL = 0.0; +// +// Bnd_Box2d Baux; +// TopExp_Explorer ex(aF,TopAbs_EDGE); +// for (;ex.More();ex.Next()) +// { +// Standard_Real pf, pl; +// TopoDS_Edge anE = TopoDS::Edge(ex.Current()); +// const Handle(Geom2d_Curve) aCur = BRep_Tool::CurveOnSurface(anE, theF, pf, pl); +// +// if (aCur.IsNull()) +// continue; +// +// MinMax(pf,pl); +// +// if (Precision::IsNegativeInfinite(pf) || +// Precision::IsPositiveInfinite(pf)) +// continue; +// +// if (Precision::IsNegativeInfinite(pl) || +// Precision::IsPositiveInfinite(pl)) +// continue; +// +// +// Geom2dAdaptor_Curve anAC(aCur,pf,pl); +// +// gp_Pnt2d aP; +// +// anAC.D0(pf, aP); +// Baux.Add(aP); +// +// anAC.D0(pl, aP); +// Baux.Add(aP); +// +// if (anAC.GetType() == GeomAbs_Line) +// { +// continue; +// } +// +// Standard_Real prm = pf; +// const Standard_Real step = (pl - pf) / NBPoints; +// for(Standard_Integer i = 1; i < NBPoints; i++) +// { +// prm += step; +// anAC.D0(prm, aP); +// Baux.Add(aP); +// } +// } +// +// if(!Baux.IsVoid()) +// Baux.Get(UMin, VMin, UMax, VMax); +// else +// theS->Bounds(UMin, UMax, VMin, VMax); +// +//#ifdef DEB +// cout << "++Boundaries2D: U = ( " << UMin << ")...(" << UMax << "); " +// "V = ( " << VMin << ")...(" << VMax << ").--" << endl; +//#endif +//} + +//======================================================================= +//function : RefineFace +//purpose : +//======================================================================= +void ShapeFix::RefineFace(const TopoDS_Face& theF, + TopoDS_Shape& theNewShape/*, + const Standard_Boolean flForce, + const Standard_Boolean flDoNotSplit*/) +{ + Standard_Real anUFf, anUFl, aVFf, aVFl; + + Standard_Boolean isUtrim = Standard_True,//Standard_False, + isVtrim = Standard_True;//Standard_False; + + //Standard_Boolean isUtrimmed = Standard_False, + // isVtrimmed = Standard_False; + + TopoDS_Face aF = theF; + + Handle(Geom_Surface) aS=BRep_Tool::Surface(aF); + Standard_Boolean isRectangularTrimmed = (aS->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)); + + if (isRectangularTrimmed) + { + //Handle(Geom_RectangularTrimmedSurface) TS = + // Handle(Geom_RectangularTrimmedSurface)::DownCast(aS); + + //TS->GetTrimmedFlags(isUtrimmed, isVtrimmed); + + //aS = TS->BasisSurface(); + } + else + return; + + //Boundaries2D(theF, aS, aU1, aU2, aV1, aV2); + BRepTools::UVBounds(aF, anUFf, anUFl, aVFf, aVFl); + +// Standard_Boolean isURunAway, isVRunAway; +// Standard_Boolean isSplitByU = Standard_False, +// isSplitByV = Standard_False; +// +// { +// Standard_Real uf, ul, vf, vl; +// aS->Bounds(uf, ul, vf, vl); +// +// const Standard_Real duf = anUFl - anUFf; +// const Standard_Real dus = ul - uf; +// const Standard_Real dvf = aVFl - aVFf; +// const Standard_Real dvs = vl - vf; +// +// +// isSplitByU = !flDoNotSplit && (aS->IsUPeriodic() || flForce) && (duf > dus); +// isSplitByV = !flDoNotSplit && (aS->IsVPeriodic() || flForce) && (dvf > dvs); +// +//#ifdef DEB +// cout << "isSplitByU = " << isSplitByU << "; isSplitByV = " << isSplitByV < ul + Precision::PConfusion()); +// isVRunAway = (aVFf < vf - Precision::PConfusion()) || +// (aVFl > vl + Precision::PConfusion()); +// } +// +// if(!(flForce || isRectangularTrimmed)) +// { +//#ifdef DEB +// cout << "The surface is not \"RectangularTrimmed\". " +// "Try to use \"force\" flag."<< endl; +//#endif +// +// return; +// } +// + if(aS->IsUPeriodic()) + { + const Standard_Real aT = aS->UPeriod(); + const Standard_Real dU = anUFl - anUFf; + +#ifdef DEB + if(dU > aT) + { + cout << "dU = " << dU << " > T = " << aT << ". Delta = " << dU - aT << endl; + } +#endif + + anUFl = anUFf + aT; + + //isUtrim = isURunAway || isUtrimmed; + } + + if(aS->IsVPeriodic()) + { + const Standard_Real aT = aS->VPeriod(); + const Standard_Real dv = aVFl - aVFf; + +#ifdef DEB + if(dv > aT) + { + cout << "++dV = " << dv << " > T = " << aT << ". Delta = " << dv - aT << endl; + } + +#endif + + aVFl = aVFf + aT; + + //isVtrim = isVRunAway || isVtrimmed; + } + + //if(!(isUtrim || isVtrim)) + // return; + +#ifdef DEB + if(isUtrim) + cout << "Trimming U: (" << anUFf << ")...(" << anUFl << ")" << endl; + + if(isVtrim) + cout << "Trimming V: (" << aVFf << ")...(" << aVFl << ")" << endl; +#endif + + Handle(Geom_RectangularTrimmedSurface) aRTS=new Geom_RectangularTrimmedSurface(aS,isUtrim, + isVtrim, anUFf, anUFl, aVFf, aVFl); + + ReTrimmedFace(aF, aRTS); +} + +//======================================================================= +//function : RefineFace +//purpose : +//======================================================================= +void ShapeFix::ReTrimmedFace(TopoDS_Face& theF, + const Handle(Geom_RectangularTrimmedSurface)& theNewRTSurf) +{ +#ifdef DEB + cout << "ShapeFix::ReTrimmedFace(...) is executed." << endl; +#endif + + TopExp_Explorer aExp; + TopTools_MapOfShape aME; + BRep_Builder aBB; + + aExp.Init(theF, TopAbs_EDGE); + for (; aExp.More(); aExp.Next()) + { + Standard_Real aT1, aT2; + const TopoDS_Edge& aE=*((TopoDS_Edge*)&aExp.Current()); + if (!aME.Add(aE)) + continue; + + TopLoc_Location aLocE; + Standard_Real aTolE=BRep_Tool::Tolerance(aE); + Handle(Geom2d_Curve) aC2D1=BRep_Tool::CurveOnSurface(aE, theF, aT1, aT2); + Standard_Boolean bIsClosed = BRep_Tool::IsClosed(aE, theF); + + if (!bIsClosed) + { + aBB.UpdateEdge(aE, aC2D1, theNewRTSurf, aLocE, theF, aTolE); + } + else + { + Standard_Boolean bIsLeft; + Standard_Real aScPr; + Handle(Geom2d_Curve) aC2D2; + TopoDS_Edge aE2; + aE2=aE; + aE2.Reverse(); + aC2D2=BRep_Tool::CurveOnSurface(aE2, theF, aT1, aT2); + { + Standard_Real aT, aU1, aU2; + gp_Pnt2d aP2D1, aP2D2; + gp_Vec2d aV2D1, aV2D2; + + const Standard_Real PAR_T = 0.43213918; + aT=(1.-PAR_T)*aT1 + PAR_T*aT2; + aC2D1->D1(aT, aP2D1, aV2D1); + aC2D2->D1(aT, aP2D2, aV2D2); + + aU1=aP2D1.X(); + aU2=aP2D2.X(); + bIsLeft=(aU1NbEdges(); jL++ ) { + for(Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) + { TopoDS_Edge E = sbwd->Edge(jL); - if ( E.Orientation() == TopAbs_REVERSED && BRep_Tool::IsClosed(E,myFace) ) { + + if(E.Orientation() == TopAbs_REVERSED && BRep_Tool::IsClosed(E,myFace)) + { Standard_Real f1,l1, f2, l2; Handle(Geom2d_Curve) c21 = BRep_Tool::CurveOnSurface(E,myFace,f1,l1); TopoDS_Shape dummy = E.Reversed(); @@ -2554,12 +2560,13 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, gp_Pnt2d pl1 = c21->Value(l1); gp_Pnt2d pf2 = c22->Value(f2); gp_Pnt2d pl2 = c22->Value(l2); - if ( c21 == c22 || pf1.SquareDistance(pf2) < dPreci || - pl1.SquareDistance(pl2) < dPreci ) { + if ((c21 == c22) || (pf1.SquareDistance(pf2) < dPreci) || + pl1.SquareDistance(pl2) < dPreci ) + { gp_Vec2d shift(0.,0.); - if ( myUClosed && Abs ( pf2.X() - pl2.X() ) < ::Precision::PConfusion() ) + if( myUClosed && Abs ( pf2.X() - pl2.X() ) < ::Precision::PConfusion() ) shift.SetX(myUPeriod); - if ( myVClosed && Abs ( pf2.Y() - pl2.Y() ) < ::Precision::PConfusion() ) + if( myVClosed && Abs ( pf2.Y() - pl2.Y() ) < ::Precision::PConfusion() ) shift.SetY(myVPeriod); c22->Translate(shift); } @@ -2567,15 +2574,18 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, } } - for ( i=1; i <= wires.Length(); i++ ) { + for ( i=1; i <= wires.Length(); i++ ) + { if(wires(i).IsVertex()) continue; + Handle(ShapeExtend_WireData) sbwd = wires(i).WireData(); //: abv 30.08.01: torHalf2.sat: if wire contains single degenerated // edge, skip that wire - if ( sbwd->NbEdges() <=0 || - ( sbwd->NbEdges() ==1 && BRep_Tool::Degenerated(sbwd->Edge(1)) ) ) { + if ( sbwd->NbEdges() <=0 || + ( sbwd->NbEdges() ==1 && BRep_Tool::Degenerated(sbwd->Edge(1)))) + { wires.Remove(i--); continue; } @@ -2585,11 +2595,12 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, // force recomputation of degenerated edges (clear pcurves) ShapeBuild_Edge sbe; - for (Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) { - if ( BRep_Tool::Degenerated(sbwd->Edge(jL)) ) + for (Standard_Integer jL=1; jL <= sbwd->NbEdges(); jL++ ) + { + if(BRep_Tool::Degenerated(sbwd->Edge(jL))) sbe.RemovePCurve(sbwd->Edge(jL),myFace); - // sfw.FixDegenerated(jL); } + sfw.FixDegenerated(); } } @@ -2615,18 +2626,22 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, Standard_Real U1,U2,V1,V2; myGrid->Bounds(U1,U2,V1,V2); - for ( i = 1; i <= nb; i++ ) { - + for ( i = 1; i <= nb; i++ ) + { gp_Pnt2d pnt = mPnts(i); Standard_Real ush =0., vsh=0.; - if(myUClosed) { + + if(myUClosed) + { ush = ShapeAnalysis::AdjustToPeriod(pnt.X(),U1,U2); pnt.SetX(pnt.X()+ush); } + if(myVClosed) { vsh = ShapeAnalysis::AdjustToPeriod(pnt.Y(),V1,V2); pnt.SetY(pnt.Y()+vsh); } + mPnts(i) = pnt; Standard_Integer indU = myGrid->LocateUParameter ( pnt.X() ); Standard_Integer indV = myGrid->LocateVParameter ( pnt.Y() ); @@ -2635,19 +2650,23 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, gp_Trsf2d T; Standard_Real uFact=1.; Standard_Boolean needT = myGrid->GlobalToLocalTransformation ( indU, indV, uFact, T ); - if ( ush != 0. || vsh != 0. ) { + + if ( ush != 0. || vsh != 0. ) + { gp_Trsf2d Sh; Sh.SetTranslation ( gp_Vec2d ( ush, vsh ) ); T.Multiply ( Sh ); needT = Standard_True; } + if(wires(i).IsVertex()) continue; Handle(Geom_Surface) surf = myGrid->Patch ( indU, indV ); TopoDS_Face face; B.MakeFace ( face, surf, myLoc, ::Precision::Confusion() ); Handle(ShapeExtend_WireData) sewd = wires(i).WireData(); - for ( Standard_Integer j = 1; j <= sewd->NbEdges(); j++ ) { + for ( Standard_Integer j = 1; j <= sewd->NbEdges(); j++ ) + { // Standard_Integer nsplit = ApplyContext ( sewd, j, context ); // if ( nsplit <1 ) { j--; continue; } @@ -2660,70 +2679,91 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, TopoDS_Edge anInitEdge = edge; Standard_Boolean ismanifold = (edge.Orientation() == TopAbs_FORWARD || edge.Orientation() == TopAbs_REVERSED); - if ( rs.IsRecorded ( edge ) ) { + + if (rs.IsRecorded(edge)) + { //smh#8 - TopoDS_Shape tmpNE = rs.Value(edge); - newEdge = TopoDS::Edge ( tmpNE ); - } - else { - - if(!ismanifold) - anInitEdge.Orientation(TopAbs_FORWARD); + TopoDS_Shape tmpNE = rs.Value(edge); + newEdge = TopoDS::Edge ( tmpNE ); + } + else + { + if(!ismanifold) + anInitEdge.Orientation(TopAbs_FORWARD); + + newEdge = sbe.Copy ( anInitEdge, Standard_False ); - newEdge = sbe.Copy ( anInitEdge, Standard_False ); - if(!ismanifold) - newEdge.Orientation(edge.Orientation()); - rs.Replace ( edge, newEdge ); - Context()->Replace ( edge, newEdge ); + if(!ismanifold) + newEdge.Orientation(edge.Orientation()); + + rs.Replace ( edge, newEdge ); + Context()->Replace ( edge, newEdge ); } - sbe.ReassignPCurve ( newEdge, myFace, face ); + sbe.ReassignPCurve ( newEdge, myFace, face, GeomAbs_CN); // transform pcurve to parametric space of patch - if ( needT ) { - Standard_Real f, l; - Handle(Geom2d_Curve) c2d; - if ( sae.PCurve ( newEdge, face, c2d, f, l, Standard_False ) ) { - Standard_Real newf = f, newl = l; - Handle(Geom2d_Curve) c2dnew = sbe.TransformPCurve ( c2d, T, uFact, newf, newl ); - if ( BRep_Tool::IsClosed ( newEdge, face ) ) { - Standard_Real cf, cl; - Handle(Geom2d_Curve) c2d2; + if (needT) + { + Standard_Real f, l; + Handle(Geom2d_Curve) c2d; + + if(sae.PCurve(newEdge, face, c2d, f, l, Standard_False)) + { + Standard_Real newf = f, newl = l; + Handle(Geom2d_Curve) c2dnew = sbe.TransformPCurve(c2d, T, uFact, newf, newl); + + if(BRep_Tool::IsClosed(newEdge, face)) + { + Standard_Real cf, cl; + Handle(Geom2d_Curve) c2d2; //smh#8 - TopoDS_Shape tmpE = newEdge.Reversed(); - TopoDS_Edge e2 = TopoDS::Edge (tmpE ); - if ( sae.PCurve ( e2, face, c2d2, cf, cl, Standard_False ) ) { - if ( newEdge.Orientation() == TopAbs_FORWARD ) - B.UpdateEdge ( newEdge, c2dnew, c2d2, face, 0. ); - else B.UpdateEdge ( newEdge, c2d2, c2dnew, face, 0. ); - } - else B.UpdateEdge ( newEdge, c2dnew, face, 0. ); - } - else B.UpdateEdge ( newEdge, c2dnew, face, 0. ); - B.Range ( newEdge, face, newf, newl ); - if ( (newf != f || newl != l) && !BRep_Tool::Degenerated(newEdge) ) - B.SameRange ( newEdge, Standard_False ); - } + TopoDS_Shape tmpE = newEdge.Reversed(); + TopoDS_Edge e2 = TopoDS::Edge (tmpE ); + if(sae.PCurve(e2, face, c2d2, cf, cl, Standard_False)) + { + if(newEdge.Orientation() == TopAbs_FORWARD) + B.UpdateEdge(newEdge, c2dnew, c2d2, face, 0., GeomAbs_CN); + else + B.UpdateEdge(newEdge, c2d2, c2dnew, face, 0., GeomAbs_CN); + } + else + B.UpdateEdge ( newEdge, c2dnew, face, 0. ); + } + else + B.UpdateEdge ( newEdge, c2dnew, face, 0. ); + + B.Range ( newEdge, face, newf, newl ); + + if(((newf != f) || (newl != l)) && !BRep_Tool::Degenerated(newEdge)) + B.SameRange ( newEdge, Standard_False ); + } } + + if(!BRep_Tool::SameRange(newEdge)) + { + TopoDS_Edge etmp; + if(!ismanifold) + { + TopoDS_Edge afe = TopoDS::Edge(newEdge.Oriented(TopAbs_FORWARD)); + etmp = sbe.Copy (afe , Standard_False ); + } + else + etmp = sbe.Copy ( newEdge, Standard_False ); + + sfe->FixAddCurve3d ( etmp ); + Standard_Real cf, cl; + Handle(Geom_Curve) c3d; + + if(sae.Curve3d(etmp,c3d,cf,cl,Standard_False)) + { + B.UpdateEdge ( newEdge, c3d, 0. ); + sbe.SetRange3d ( newEdge, cf, cl ); + } + } + else + sfe->FixAddCurve3d ( newEdge ); - if(!BRep_Tool::SameRange(newEdge)) { - TopoDS_Edge etmp; - if(!ismanifold) { - TopoDS_Edge afe = TopoDS::Edge(newEdge.Oriented(TopAbs_FORWARD)); - etmp = sbe.Copy (afe , Standard_False ); - } - else - etmp = sbe.Copy ( newEdge, Standard_False ); - sfe->FixAddCurve3d ( etmp ); - Standard_Real cf, cl; - Handle(Geom_Curve) c3d; - if(sae.Curve3d(etmp,c3d,cf,cl,Standard_False)) { - B.UpdateEdge ( newEdge, c3d, 0. ); - sbe.SetRange3d ( newEdge, cf, cl ); - } - } - else - sfe->FixAddCurve3d ( newEdge ); sewd->Set ( newEdge, j ); } } @@ -2731,29 +2771,42 @@ void ShapeFix_ComposeShell::DispatchWires (TopTools_SequenceOfShape &faces, // Collect wires in packets lying on same surface and dispatch them TColStd_Array1OfBoolean used ( 1, nb ); used.Init ( Standard_False ); - for(;;) { - TopTools_SequenceOfShape loops; + for(;;) + { + TopTools_SequenceOfShape loops; + Handle(Geom_Surface) Surf; - for ( i = 1; i <= nb; i++ ) { - if ( used(i) ) continue; - Handle(Geom_Surface) S = myGrid->Patch ( mPnts(i) ); - if ( Surf.IsNull() ) Surf = S; - else if ( S != Surf ) continue; + for ( i = 1; i <= nb; i++ ) + { + if(used(i)) continue; + + Handle(Geom_Surface) S = myGrid->Patch(mPnts(i)); + + if(Surf.IsNull()) + Surf = S; + else if(S != Surf) + continue; + used(i) = Standard_True; ShapeFix_WireSegment aSeg = wires(i); - if(aSeg.IsVertex()) { - TopoDS_Vertex aVert = aSeg.GetVertex(); - if(aVert.Orientation() == TopAbs_INTERNAL) - loops.Append(wires(i).GetVertex()); + if(aSeg.IsVertex()) + { + TopoDS_Vertex aVert = aSeg.GetVertex(); + if(aVert.Orientation() == TopAbs_INTERNAL) + loops.Append(wires(i).GetVertex()); } - else { - Handle(ShapeExtend_WireData) aWD = aSeg.WireData(); - if(!aWD.IsNull()) - loops.Append ( aWD->Wire() ); + else + { + Handle(ShapeExtend_WireData) aWD = aSeg.WireData(); + + if(!aWD.IsNull()) + loops.Append(aWD->Wire()); } } - if ( Surf.IsNull() ) break; + + if(Surf.IsNull()) + break; MakeFacesOnPatch ( faces, Surf, loops ); } diff --git a/src/Standard/Standard_Integer.hxx b/src/Standard/Standard_Integer.hxx index 5c4fec225e..eb6b4a4644 100755 --- a/src/Standard/Standard_Integer.hxx +++ b/src/Standard/Standard_Integer.hxx @@ -138,6 +138,20 @@ inline Standard_Integer Min (const Standard_Integer Val1, return Val1 <= Val2 ? Val1 : Val2; } +// ------------------------------------------------------------------ +// MinMax : Replaces theParMIN = MIN(theParMIN, theParMAX), +// theParMAX = MAX(theParMIN, theParMAX). +// ------------------------------------------------------------------ +inline void MinMax(Standard_Integer& theParMIN, Standard_Integer& theParMAX) +{ + if(theParMIN > theParMAX) + { + const Standard_Integer aux = theParMAX; + theParMAX = theParMIN; + theParMIN = aux; + } +} + // ------------------------------------------------------------------ // Modulus : Returns the remainder of division between two integers // ------------------------------------------------------------------ diff --git a/src/Standard/Standard_Real.cxx b/src/Standard/Standard_Real.cxx index 81a4504f04..31e9baa17c 100755 --- a/src/Standard/Standard_Real.cxx +++ b/src/Standard/Standard_Real.cxx @@ -308,3 +308,14 @@ Standard_Real Sqrt (const Standard_Real Value) return sqrt(Value); } +//======================================================================= +//function : RealMod +//purpose : Returns the remainder of theDivident on theDivisor. +// Quotient is always integer number. +//======================================================================= +Standard_Real RealMod(const Standard_Real theDivident, + const Standard_Real theDivisor) +{ + const Standard_Integer n = RealToInt(theDivident/theDivisor); + return theDivident - n * theDivisor; +} diff --git a/src/Standard/Standard_Real.hxx b/src/Standard/Standard_Real.hxx index f1cf7f4b01..da638c17cd 100755 --- a/src/Standard/Standard_Real.hxx +++ b/src/Standard/Standard_Real.hxx @@ -63,6 +63,8 @@ __Standard_API Standard_Real ATanh (const Standard_Real ); __Standard_API Standard_Real ACosh (const Standard_Real ); __Standard_API Standard_Real Log (const Standard_Real ); __Standard_API Standard_Real Sqrt (const Standard_Real ); +__Standard_API Standard_Real RealMod (const Standard_Real theDivident, + const Standard_Real theDivisor); //class Standard_OStream; //void ShallowDump(const Standard_Real, Standard_OStream& ); @@ -265,6 +267,21 @@ inline Standard_Real Min (const Standard_Real Val1, return Val1 <= Val2 ? Val1 : Val2; } +// ------------------------------------------------------------------ +// MinMax : Replaces theParMIN = MIN(theParMIN, theParMAX), +// theParMAX = MAX(theParMIN, theParMAX). +// ------------------------------------------------------------------ +inline void MinMax(Standard_Real& theParMIN, Standard_Real& theParMAX) +{ + if(theParMIN > theParMAX) + { + const Standard_Real aux = theParMAX; + theParMAX = theParMIN; + theParMIN = aux; + } +} + + //------------------------------------------------------------------- // Pow : Returns a real to a given power //------------------------------------------------------------------- diff --git a/tests/blend/complex/C4 b/tests/blend/complex/C4 index 29465333b5..7082a3ede9 100644 --- a/tests/blend/complex/C4 +++ b/tests/blend/complex/C4 @@ -4,7 +4,14 @@ ## Comment : from pro5545 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a + encoderegularity a 1 tscale a 0 0 0 1000 nexplode a e diff --git a/tests/blend/complex/C6 b/tests/blend/complex/C6 index 0fa3afbac1..e31c1a7fcc 100644 --- a/tests/blend/complex/C6 +++ b/tests/blend/complex/C6 @@ -4,7 +4,14 @@ ## Comment : from pro6944 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro6944.rle] a + +sfixpcu a a -f +checkshape a + tscale a 0 0 0 1000 nexplode a e blend result a 12 a_16 12 a_15 12 a_17 diff --git a/tests/blend/complex/C9 b/tests/blend/complex/C9 index ab6c53c45f..2dafed2dc0 100644 --- a/tests/blend/complex/C9 +++ b/tests/blend/complex/C9 @@ -4,7 +4,14 @@ ## Comment : from ? ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cfi900H2.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 1 a_66 diff --git a/tests/blend/complex/D3 b/tests/blend/complex/D3 index 73430d6ec5..135ed98156 100644 --- a/tests/blend/complex/D3 +++ b/tests/blend/complex/D3 @@ -4,7 +4,14 @@ ## Comment : from fra60610 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_fra60610.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 2 a_69 diff --git a/tests/blend/complex/D4 b/tests/blend/complex/D4 index 238ff3fa50..c0c12bbd62 100644 --- a/tests/blend/complex/D4 +++ b/tests/blend/complex/D4 @@ -4,7 +4,14 @@ ## Comment : from ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjc.rle] a + +sfixpcu a a -f +checkshape a + nexplode a e blend result a 5 a_5 5 a_13 5 a_28 diff --git a/tests/blend/complex/E1 b/tests/blend/complex/E1 index b8e5992256..956c344492 100644 --- a/tests/blend/complex/E1 +++ b/tests/blend/complex/E1 @@ -4,7 +4,14 @@ ## Comment : from pro8783 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8783.rle] a + +sfixpcu a a -f +checkshape a + explode a e mkevol result a updatevol a_4 0 15 0.5 9 1 5 diff --git a/tests/blend/complex/E2 b/tests/blend/complex/E2 index ed3742eb35..9d209822b0 100644 --- a/tests/blend/complex/E2 +++ b/tests/blend/complex/E2 @@ -4,7 +4,14 @@ ## Comment : from pro8792 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8792.rle] a + +sfixpcu a a -f +checkshape a + explode a e mkevol result a updatevol a_20 0 15 0.5 20 1 5 diff --git a/tests/blend/complex/E7 b/tests/blend/complex/E7 index cfa9cdcf76..27e8ee9f27 100644 --- a/tests/blend/complex/E7 +++ b/tests/blend/complex/E7 @@ -4,7 +4,14 @@ ## Comment : from pro11850 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro11850.rle] a + +sfixpcu a a -f +checkshape a + explode a e blend result a 3 a_22 diff --git a/tests/blend/complex/E9 b/tests/blend/complex/E9 index 019310ec01..adb55b0ad7 100644 --- a/tests/blend/complex/E9 +++ b/tests/blend/complex/E9 @@ -4,7 +4,14 @@ ## Comment : from pro10117 ## ==================================== +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a + explode a e blend result a 2 a_128 1 a_10 diff --git a/tests/boolean/bcommon_complex/C2 b/tests/boolean/bcommon_complex/C2 index e2252083a7..8d1fdb15e5 100644 --- a/tests/boolean/bcommon_complex/C2 +++ b/tests/boolean/bcommon_complex/C2 @@ -1,12 +1,19 @@ # Original bug : cts21453 # Date : 15sept98 +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file CTO900_cts21453a.rle] a restore [locate_data_file CTO900_cts21453b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcommon result a b - set square 16681.4 diff --git a/tests/boolean/bcut_complex/A1 b/tests/boolean/bcut_complex/A1 index 77119f6111..c618893c61 100644 --- a/tests/boolean/bcut_complex/A1 +++ b/tests/boolean/bcut_complex/A1 @@ -1,7 +1,18 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts20hlh.rle] a restore [locate_data_file CIN900_cts20hli.rle] b restore [locate_data_file CIN900_cts20hlj.rle] c +sfixpcu a a -f +sfixpcu b b -f +sfixpcu c c -f + +checkshape a +checkshape b +checkshape c + bcut rab a b bcut result rab c diff --git a/tests/boolean/bcut_complex/A2 b/tests/boolean/bcut_complex/A2 index a4df46bb65..2a19b9631d 100644 --- a/tests/boolean/bcut_complex/A2 +++ b/tests/boolean/bcut_complex/A2 @@ -1,6 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlq.rle] a restore [locate_data_file CIN900_cts21hlr.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 330507 diff --git a/tests/boolean/bcut_complex/E6 b/tests/boolean/bcut_complex/E6 index a4fcf33a77..bb50074c9c 100644 --- a/tests/boolean/bcut_complex/E6 +++ b/tests/boolean/bcut_complex/E6 @@ -1,9 +1,18 @@ # Original bug : ger60043 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-part.rle] part restore [locate_data_file CTO900_ger60043-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/E7 b/tests/boolean/bcut_complex/E7 index bc2857ace5..822d97374e 100644 --- a/tests/boolean/bcut_complex/E7 +++ b/tests/boolean/bcut_complex/E7 @@ -1,9 +1,16 @@ # Original bug : ger60065 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file CTO900_ger60065-part.rle] part restore [locate_data_file CTO900_ger60065-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + bcut result part tool diff --git a/tests/boolean/bcut_complex/E8 b/tests/boolean/bcut_complex/E8 index 6853474ee4..d88186d1b8 100644 --- a/tests/boolean/bcut_complex/E8 +++ b/tests/boolean/bcut_complex/E8 @@ -1,9 +1,18 @@ # Original bug : jap60038 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] part restore [locate_data_file jap60038-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool set square 173510 diff --git a/tests/boolean/bcut_complex/F6 b/tests/boolean/bcut_complex/F6 index 46ef396684..0134c6ba38 100644 --- a/tests/boolean/bcut_complex/F6 +++ b/tests/boolean/bcut_complex/F6 @@ -1,9 +1,18 @@ # Original bug : pro11828 # Date : +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-part.rle] part restore [locate_data_file CTO900_pro11828-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/F9 b/tests/boolean/bcut_complex/F9 index 61a1ac95bb..39de4ef2c1 100644 --- a/tests/boolean/bcut_complex/F9 +++ b/tests/boolean/bcut_complex/F9 @@ -1,9 +1,18 @@ # Original bug : fra60656 # Date : 23mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] part restore [locate_data_file CTO900_fra60656-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool set square 1.21042e+06 diff --git a/tests/boolean/bcut_complex/G2 b/tests/boolean/bcut_complex/G2 index 08b9141cb1..60429bb1ce 100644 --- a/tests/boolean/bcut_complex/G2 +++ b/tests/boolean/bcut_complex/G2 @@ -1,9 +1,15 @@ # Original bug : pro12663 # Date : 24mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro12663-part.rle] part restore [locate_data_file CTO900_pro12663-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + bcut result part tool diff --git a/tests/boolean/bcut_complex/G6 b/tests/boolean/bcut_complex/G6 index 87a283cafa..36f54038c7 100644 --- a/tests/boolean/bcut_complex/G6 +++ b/tests/boolean/bcut_complex/G6 @@ -1,9 +1,18 @@ # Original bug : cts19305 # Date : 30mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] part restore [locate_data_file CTO900_cts19305-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/G7 b/tests/boolean/bcut_complex/G7 index 5e88d2738c..60cdfc6bb5 100644 --- a/tests/boolean/bcut_complex/G7 +++ b/tests/boolean/bcut_complex/G7 @@ -1,9 +1,18 @@ # Original bug : fra60810 # Date : 30mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] part restore [locate_data_file CTO900_fra60810-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/G8 b/tests/boolean/bcut_complex/G8 index 3b3ae1392a..6481d68b6e 100644 --- a/tests/boolean/bcut_complex/G8 +++ b/tests/boolean/bcut_complex/G8 @@ -1,9 +1,15 @@ # Original bug : ger60598 # Date : 18Sept98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] base restore [locate_data_file ger60598d.rle] prism +sfixpcu base base -f +sfixpcu prism prism -f + fsameparameter base bcut result prism base diff --git a/tests/boolean/bcut_complex/H3 b/tests/boolean/bcut_complex/H3 index 13233647fc..d74661a6d3 100644 --- a/tests/boolean/bcut_complex/H3 +++ b/tests/boolean/bcut_complex/H3 @@ -1,9 +1,18 @@ # Original bug : cts20374 # Date : 24mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] part restore [locate_data_file cts20374-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/H8 b/tests/boolean/bcut_complex/H8 index b574030360..1b21d9a732 100644 --- a/tests/boolean/bcut_complex/H8 +++ b/tests/boolean/bcut_complex/H8 @@ -1,14 +1,27 @@ # Original bug : cts20736 # Date : 28Sept97 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] part restore [locate_data_file cts20736b.rle] aface +sfixpcu part part -f +sfixpcu aface aface -f + +checkshape aface + btolx part btolx aface +checkshape aface + prism tool aface 0 0 -12 +checkshape part +checkshape tool + bcut result part tool set square 36087.8 diff --git a/tests/boolean/bcut_complex/I3 b/tests/boolean/bcut_complex/I3 index 4dcc916f75..155a66dc74 100644 --- a/tests/boolean/bcut_complex/I3 +++ b/tests/boolean/bcut_complex/I3 @@ -1,8 +1,17 @@ # Original bug : cts20150 # Date : 13Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] base -restore [locate_data_file CTO901_cts20150_outil.rle] outil +restore [locate_data_file CTO901_cts20150_outil.rle] outil + +sfixpcu base base -f +sfixpcu outil outil -f + +checkshape base +checkshape outil bcut result base outil diff --git a/tests/boolean/bcut_complex/I6 b/tests/boolean/bcut_complex/I6 index 08ef17f41d..0c7f2f622a 100644 --- a/tests/boolean/bcut_complex/I6 +++ b/tests/boolean/bcut_complex/I6 @@ -2,9 +2,18 @@ # Date : 13Mai98 # A6.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-part.rle] part restore [locate_data_file CTO902_cts20455-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/I7 b/tests/boolean/bcut_complex/I7 index 568e9ecd6a..e3777374e7 100644 --- a/tests/boolean/bcut_complex/I7 +++ b/tests/boolean/bcut_complex/I7 @@ -2,9 +2,18 @@ # Date : 13Mai98 # A7.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] part restore [locate_data_file CTO902_cts20459-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J1 b/tests/boolean/bcut_complex/J1 index a838cff2f3..6306ca6da4 100644 --- a/tests/boolean/bcut_complex/J1 +++ b/tests/boolean/bcut_complex/J1 @@ -2,9 +2,18 @@ # Date : 13Mai98 # B8.gif +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] part restore [locate_data_file CTO902_cts20503-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J4 b/tests/boolean/bcut_complex/J4 index 8020468fc0..6db36b5345 100644 --- a/tests/boolean/bcut_complex/J4 +++ b/tests/boolean/bcut_complex/J4 @@ -2,9 +2,18 @@ # Date : 13Mai98 # C7 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] part restore [locate_data_file CTO902_cts20498-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/J5 b/tests/boolean/bcut_complex/J5 index e1b89c01f4..dd5637b894 100644 --- a/tests/boolean/bcut_complex/J5 +++ b/tests/boolean/bcut_complex/J5 @@ -2,9 +2,18 @@ # Date : 13Mai98 # C8 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-part.rle] part restore [locate_data_file CTO902_cts20489-tool.rle] tool +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + bcut result part tool diff --git a/tests/boolean/bcut_complex/K8 b/tests/boolean/bcut_complex/K8 index 2dc0cca5c2..5eb1a62b91 100644 --- a/tests/boolean/bcut_complex/K8 +++ b/tests/boolean/bcut_complex/K8 @@ -1,9 +1,18 @@ # Original bug : cts20551 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20551b.rle] a restore [locate_data_file cts20551-tool.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 430968 diff --git a/tests/boolean/bcut_complex/L6 b/tests/boolean/bcut_complex/L6 index 9292dd8d06..5aeb3f1229 100644 --- a/tests/boolean/bcut_complex/L6 +++ b/tests/boolean/bcut_complex/L6 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 63800.8 diff --git a/tests/boolean/bcut_complex/M2 b/tests/boolean/bcut_complex/M2 index d3c36f8e4d..2ed1c5de34 100644 --- a/tests/boolean/bcut_complex/M2 +++ b/tests/boolean/bcut_complex/M2 @@ -1,9 +1,16 @@ # Original bug : fra61199 # Date : 29June98 + +# for "sfixpcu" command +pload XSDRAW + cpulimit 3000 restore [locate_data_file CTO904_fra61199a.rle] a restore [locate_data_file CTO904_fra61199b.rle] b +sfixpcu a a -f +sfixpcu b b -f + bcut result a b set square 1.21952e+06 diff --git a/tests/boolean/bcut_complex/M4 b/tests/boolean/bcut_complex/M4 index f136024d14..1cfdadbd06 100644 --- a/tests/boolean/bcut_complex/M4 +++ b/tests/boolean/bcut_complex/M4 @@ -1,9 +1,18 @@ # Original bug : cts21200 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21200a.rle] a restore [locate_data_file cts21200b.rle] skface +sfixpcu a a -f +sfixpcu skface skface -f + +checkshape a +checkshape skface + prism b skface 0 0 -230 bcut result a b diff --git a/tests/boolean/bcut_complex/M5 b/tests/boolean/bcut_complex/M5 index e6edc7c009..9692c16406 100644 --- a/tests/boolean/bcut_complex/M5 +++ b/tests/boolean/bcut_complex/M5 @@ -1,9 +1,18 @@ # Original bug : cts21208 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a restore [locate_data_file cts21208b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1383.02 diff --git a/tests/boolean/bcut_complex/M6 b/tests/boolean/bcut_complex/M6 index 459784b7a6..111131a828 100644 --- a/tests/boolean/bcut_complex/M6 +++ b/tests/boolean/bcut_complex/M6 @@ -1,9 +1,18 @@ # Original bug : cts21210 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a restore [locate_data_file cts21210b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1660.64 diff --git a/tests/boolean/bcut_complex/M9 b/tests/boolean/bcut_complex/M9 index 806d2cbefb..1c6ede7b1d 100644 --- a/tests/boolean/bcut_complex/M9 +++ b/tests/boolean/bcut_complex/M9 @@ -1,9 +1,18 @@ # Original bug : hkg60150 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a restore [locate_data_file CTO904_hkg60150b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 2167.4 diff --git a/tests/boolean/bcut_complex/N1 b/tests/boolean/bcut_complex/N1 index a31f3ce9ed..0765436fa8 100644 --- a/tests/boolean/bcut_complex/N1 +++ b/tests/boolean/bcut_complex/N1 @@ -1,9 +1,18 @@ # Original bug : hkg60156 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a restore [locate_data_file CTO904_hkg60156b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 1927.45 diff --git a/tests/boolean/bcut_complex/O8 b/tests/boolean/bcut_complex/O8 index 2b084db988..be69d29da2 100644 --- a/tests/boolean/bcut_complex/O8 +++ b/tests/boolean/bcut_complex/O8 @@ -1,7 +1,14 @@ ## cts20461 puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20461.rle] a + +sfixpcu a a -f +checkshape a + nexplode a f mksurface surf a_26 nexplode a_26 e diff --git a/tests/boolean/bcut_complex/P2 b/tests/boolean/bcut_complex/P2 index f16415b8e6..99569f0913 100644 --- a/tests/boolean/bcut_complex/P2 +++ b/tests/boolean/bcut_complex/P2 @@ -1,8 +1,17 @@ ## CTS19305 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a restore [locate_data_file CTO900_cts19305-tool.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bcut result a b set square 76632.9 diff --git a/tests/boolean/bcut_complex/P4 b/tests/boolean/bcut_complex/P4 index b03073734e..8434c79d28 100644 --- a/tests/boolean/bcut_complex/P4 +++ b/tests/boolean/bcut_complex/P4 @@ -1,7 +1,14 @@ # cts21347 + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_part_1.brep] a restore [locate_data_file CTO909_tool_2.brep] b +sfixpcu a a -f +sfixpcu b b -f + bcut result a b set square 1.64215e+06 diff --git a/tests/boolean/bcut_complex/Q7 b/tests/boolean/bcut_complex/Q7 index cee2555a32..f33380b2b0 100644 --- a/tests/boolean/bcut_complex/Q7 +++ b/tests/boolean/bcut_complex/Q7 @@ -2,9 +2,18 @@ puts "ID260084" puts "Cut" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file id260084a.rle] a restore [locate_data_file id260084b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + # Cut prism tool b 0 0 10 bcut result a tool diff --git a/tests/boolean/bfuse_complex/C7 b/tests/boolean/bfuse_complex/C7 index b4c8457218..ec4b774b2f 100644 --- a/tests/boolean/bfuse_complex/C7 +++ b/tests/boolean/bfuse_complex/C7 @@ -1,6 +1,9 @@ # Original bug : pro7637 (#3 with restore from Designer shape) # Date : 16apr97 +# for "sfixpcu" command +pload XSDRAW + dset SCALE 100 ## restore the Prismed oblong created in Designer K1-2 (size 200 mm) @@ -11,6 +14,12 @@ tscale p1 0 0 0 1*SCALE restore [locate_data_file CTO900_pro7637c_box_dsg.rle] p2 tscale p2 0 0 0 1*SCALE +sfixpcu p1 p1 -f +sfixpcu p2 p2 -f + +checkshape p1 +checkshape p2 + bfuse result p2 p1 set square 1.85425e+09 diff --git a/tests/boolean/bfuse_complex/C9 b/tests/boolean/bfuse_complex/C9 index b27e30afae..83b5ebea85 100644 --- a/tests/boolean/bfuse_complex/C9 +++ b/tests/boolean/bfuse_complex/C9 @@ -1,9 +1,18 @@ # Original bug : cts16184 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a restore [locate_data_file cts16184b.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/D4 b/tests/boolean/bfuse_complex/D4 index dc9b889f5f..bc5231ebb7 100644 --- a/tests/boolean/bfuse_complex/D4 +++ b/tests/boolean/bfuse_complex/D4 @@ -3,11 +3,21 @@ puts "TODO #22911 Mandriva2010: Faulty shapes in variables faulty_1 to faulty_2" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file ger60054a.rle] a restore [locate_data_file CTO900_ger60054b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + fsameparameter a fsameparameter b +checkshape a +checkshape b + bfuse result a b set square 22058 diff --git a/tests/boolean/bfuse_complex/D5 b/tests/boolean/bfuse_complex/D5 index e196be47c9..1758e2f159 100644 --- a/tests/boolean/bfuse_complex/D5 +++ b/tests/boolean/bfuse_complex/D5 @@ -1,9 +1,18 @@ # Original bug : ksi0014 # Date : 11mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a restore [locate_data_file ksi0014b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/E2 b/tests/boolean/bfuse_complex/E2 index e19aa8b769..f6efa8a22a 100644 --- a/tests/boolean/bfuse_complex/E2 +++ b/tests/boolean/bfuse_complex/E2 @@ -1,10 +1,19 @@ # Original bug : cts60005 # Date : 19mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts60005a.rle] a fsameparameter a restore [locate_data_file CTO900_cts60005b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/E3 b/tests/boolean/bfuse_complex/E3 index 585ada82c1..eb97611d51 100644 --- a/tests/boolean/bfuse_complex/E3 +++ b/tests/boolean/bfuse_complex/E3 @@ -1,9 +1,18 @@ # Original bug : pro8934 # Date : 19mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a restore [locate_data_file CTO900_pro8934b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 20480.4 diff --git a/tests/boolean/bfuse_complex/E6 b/tests/boolean/bfuse_complex/E6 index 9822946a3c..b51279fd12 100644 --- a/tests/boolean/bfuse_complex/E6 +++ b/tests/boolean/bfuse_complex/E6 @@ -1,9 +1,16 @@ # Original bug : pro10505 # Date : 20mar98 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file CTO900_pro10505a.rle] a restore [locate_data_file CTO900_pro10505b.rle] b +sfixpcu a a -f +sfixpcu b b -f + bfuse result a b set square 302396 diff --git a/tests/boolean/bfuse_complex/E8 b/tests/boolean/bfuse_complex/E8 index aca5f4db10..6e1172732e 100644 --- a/tests/boolean/bfuse_complex/E8 +++ b/tests/boolean/bfuse_complex/E8 @@ -1,9 +1,18 @@ # Original bug : ger60239 # Date : 23mar98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] a restore [locate_data_file CTO900_ger60239b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3468.6 diff --git a/tests/boolean/bfuse_complex/G2 b/tests/boolean/bfuse_complex/G2 index 20afba9504..e887218a68 100644 --- a/tests/boolean/bfuse_complex/G2 +++ b/tests/boolean/bfuse_complex/G2 @@ -1,8 +1,18 @@ # Original bug : cts21180 # Date : 21 Sept 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] part restore [locate_data_file CTO900_cts21180d.rle] tool + +sfixpcu part part -f +sfixpcu tool tool -f + +checkshape part +checkshape tool + updatetolerance tool 1 bfuse result part tool diff --git a/tests/boolean/bfuse_complex/G4 b/tests/boolean/bfuse_complex/G4 index b2e6592c2d..2cc953a4b2 100644 --- a/tests/boolean/bfuse_complex/G4 +++ b/tests/boolean/bfuse_complex/G4 @@ -1,9 +1,18 @@ # Original bug : cts20171 # Date : 13Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] base restore [locate_data_file CTO901_cts20171_outil.rle] outil +sfixpcu base base -f +sfixpcu outil outil -f + +checkshape base +checkshape outil + bfuse result base outil set square 47886.5 diff --git a/tests/boolean/bfuse_complex/G9 b/tests/boolean/bfuse_complex/G9 index 1b6bac80d3..7d3db9f434 100644 --- a/tests/boolean/bfuse_complex/G9 +++ b/tests/boolean/bfuse_complex/G9 @@ -2,9 +2,17 @@ # Date : 13Mai98 # A1.gi +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452a.rle] a restore [locate_data_file CTO902_cts20452b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b bfuse result a b diff --git a/tests/boolean/bfuse_complex/I6 b/tests/boolean/bfuse_complex/I6 index 52ac576cac..74b9bde316 100644 --- a/tests/boolean/bfuse_complex/I6 +++ b/tests/boolean/bfuse_complex/I6 @@ -2,9 +2,18 @@ # Date : 13Mai98 # D2 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20551-tool.rle] a restore [locate_data_file CTO902_cts20551b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/I9 b/tests/boolean/bfuse_complex/I9 index c9163babbf..7a7b0f4d27 100644 --- a/tests/boolean/bfuse_complex/I9 +++ b/tests/boolean/bfuse_complex/I9 @@ -1,9 +1,18 @@ # Original bug : pro12956 # Date : 18Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro12956a.rle] a restore [locate_data_file CTO904_pro12956b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b diff --git a/tests/boolean/bfuse_complex/K3 b/tests/boolean/bfuse_complex/K3 index 22fbc0b938..8e265b495b 100644 --- a/tests/boolean/bfuse_complex/K3 +++ b/tests/boolean/bfuse_complex/K3 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] s restore [locate_data_file fra60275b.rle] c + +sfixpcu s s -f +sfixpcu c c -f + +checkshape s +checkshape c + tcopy c w mkplane f w diff --git a/tests/boolean/bfuse_complex/K4 b/tests/boolean/bfuse_complex/K4 index c39267e3d2..82f89a9d12 100644 --- a/tests/boolean/bfuse_complex/K4 +++ b/tests/boolean/bfuse_complex/K4 @@ -1,9 +1,18 @@ # Original bug : pro13494 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13494a.rle] a restore [locate_data_file pro13494b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + # pkv f explode a so #bfuse result a b diff --git a/tests/boolean/bfuse_complex/K7 b/tests/boolean/bfuse_complex/K7 index befaf9fd26..74fed08459 100644 --- a/tests/boolean/bfuse_complex/K7 +++ b/tests/boolean/bfuse_complex/K7 @@ -1,10 +1,19 @@ # Original bug : cts20974 # Date : 12June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974a.rle] a fsameparameter a restore [locate_data_file CTO904_cts20974b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3362.81 diff --git a/tests/boolean/bfuse_complex/K9 b/tests/boolean/bfuse_complex/K9 index f5c850f966..8009acb331 100644 --- a/tests/boolean/bfuse_complex/K9 +++ b/tests/boolean/bfuse_complex/K9 @@ -1,9 +1,18 @@ # Original bug : pro13555 # Date : 12June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a restore [locate_data_file pro13555b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 3479.01 diff --git a/tests/boolean/bfuse_complex/L2 b/tests/boolean/bfuse_complex/L2 index 242408454d..fb87aee569 100644 --- a/tests/boolean/bfuse_complex/L2 +++ b/tests/boolean/bfuse_complex/L2 @@ -1,9 +1,18 @@ # Original bug : cts21044 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a restore [locate_data_file CTO900_cts21453b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 163507 diff --git a/tests/boolean/bfuse_complex/L6 b/tests/boolean/bfuse_complex/L6 index 2bc25eb781..0ca5fb63df 100644 --- a/tests/boolean/bfuse_complex/L6 +++ b/tests/boolean/bfuse_complex/L6 @@ -1,9 +1,18 @@ # Original bug : cts20907 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a restore [locate_data_file cts20907b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 486.413 diff --git a/tests/boolean/bfuse_complex/L7 b/tests/boolean/bfuse_complex/L7 index 0ff80a753a..f03d97a2f9 100644 --- a/tests/boolean/bfuse_complex/L7 +++ b/tests/boolean/bfuse_complex/L7 @@ -1,9 +1,18 @@ # Original bug : cts21124 # Date : 24June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a restore [locate_data_file cts21124b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 48061.7 diff --git a/tests/boolean/bfuse_complex/N1 b/tests/boolean/bfuse_complex/N1 index 6cc1ae4054..337e4249ad 100644 --- a/tests/boolean/bfuse_complex/N1 +++ b/tests/boolean/bfuse_complex/N1 @@ -1,9 +1,18 @@ # Original bug : pro14893 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a restore [locate_data_file pro14893b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 22717.7 diff --git a/tests/boolean/bfuse_complex/N2 b/tests/boolean/bfuse_complex/N2 index b467df10ba..1a10369fb2 100644 --- a/tests/boolean/bfuse_complex/N2 +++ b/tests/boolean/bfuse_complex/N2 @@ -1,9 +1,18 @@ # Original bug : cts20960 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a restore [locate_data_file cts20960b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 38854 diff --git a/tests/boolean/bfuse_complex/N4 b/tests/boolean/bfuse_complex/N4 index 0133dd471d..2fc3971683 100644 --- a/tests/boolean/bfuse_complex/N4 +++ b/tests/boolean/bfuse_complex/N4 @@ -1,11 +1,22 @@ # Original bug : pro14892 # Date : 16July98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro14892a.rle] a restore [locate_data_file pro14892b.rle] aface +sfixpcu a a -f +sfixpcu aface aface -f + +checkshape a +checkshape aface + prism b aface 0 0 -50 +checkshape b + bfuse result a b set square 601864 diff --git a/tests/boolean/bfuse_complex/N8 b/tests/boolean/bfuse_complex/N8 index b56136da08..eec1e29832 100644 --- a/tests/boolean/bfuse_complex/N8 +++ b/tests/boolean/bfuse_complex/N8 @@ -1,9 +1,18 @@ # Original bug : cts21364 # Date : 26Aout98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a restore [locate_data_file CTO904_cts21364b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bfuse result a b set square 46682.1 diff --git a/tests/boolean/bfuse_complex/Q1 b/tests/boolean/bfuse_complex/Q1 index 43a215c04b..80315d2e1a 100644 --- a/tests/boolean/bfuse_complex/Q1 +++ b/tests/boolean/bfuse_complex/Q1 @@ -1,8 +1,17 @@ #ger60239 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] c restore [locate_data_file CTO900_ger60239b.rle] d +sfixpcu c c -f +sfixpcu d d -f + +checkshape c +checkshape d + bfuse result c d set square 3468.6 diff --git a/tests/boolean/bfuse_complex/R1 b/tests/boolean/bfuse_complex/R1 index f4f5832c75..ff22ddc600 100644 --- a/tests/boolean/bfuse_complex/R1 +++ b/tests/boolean/bfuse_complex/R1 @@ -2,10 +2,18 @@ puts "ITA60531" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file ita60531a.rle] b restore [locate_data_file ita60531b.rle] f +sfixpcu b b -f +sfixpcu f f -f + +checkshape b +checkshape f + # Operation booleenne -> shape pas valide prism tool f 0 0 1 diff --git a/tests/boolean/bfuse_complex/R2 b/tests/boolean/bfuse_complex/R2 index 67e3607f13..dd7a9b2d7b 100644 --- a/tests/boolean/bfuse_complex/R2 +++ b/tests/boolean/bfuse_complex/R2 @@ -3,9 +3,18 @@ puts "PRO16252" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro16252a.brep] a restore [locate_data_file pro16252b.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + fsameparameter b maxtolerance a maxtolerance b diff --git a/tests/boolean/bfuse_complex/R7 b/tests/boolean/bfuse_complex/R7 index 17d0d0c431..67c54f209b 100644 --- a/tests/boolean/bfuse_complex/R7 +++ b/tests/boolean/bfuse_complex/R7 @@ -3,9 +3,19 @@ puts "PRO16261" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro16261-1.brep] s restore [locate_data_file pro16261-2.brep] t +sfixpcu s s -f +sfixpcu t t -f + +checkshape s +checkshape t + + maxtolerance s #face tangente diff --git a/tests/boolean/bfuse_complex/R8 b/tests/boolean/bfuse_complex/R8 index cf50989098..bb68894265 100644 --- a/tests/boolean/bfuse_complex/R8 +++ b/tests/boolean/bfuse_complex/R8 @@ -2,9 +2,15 @@ puts "PRO16769" puts "Fuse" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gff.rle] base restore [locate_data_file pro16769b.rle] tool +sfixpcu base base -f +sfixpcu tool tool -f + bfuse result base tool fsameparameter result diff --git a/tests/boolean/bopcommon_complex/D8 b/tests/boolean/bopcommon_complex/D8 index f0cb078c9e..6c79ef2561 100644 --- a/tests/boolean/bopcommon_complex/D8 +++ b/tests/boolean/bopcommon_complex/D8 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcommon_complex/D9 b/tests/boolean/bopcommon_complex/D9 index 46c9c167ce..f2b482deaf 100644 --- a/tests/boolean/bopcommon_complex/D9 +++ b/tests/boolean/bopcommon_complex/D9 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The area of the resulting shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcommon_complex/E9 b/tests/boolean/bopcommon_complex/E9 index ce5c9048ed..b9be514198 100644 --- a/tests/boolean/bopcommon_complex/E9 +++ b/tests/boolean/bopcommon_complex/E9 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcommon_complex/F1 b/tests/boolean/bopcommon_complex/F1 index 043cd81c11..3342984bfd 100644 --- a/tests/boolean/bopcommon_complex/F1 +++ b/tests/boolean/bopcommon_complex/F1 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/E1 b/tests/boolean/bopcut_complex/E1 index 3e696b1bad..145fa225bc 100644 --- a/tests/boolean/bopcut_complex/E1 +++ b/tests/boolean/bopcut_complex/E1 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopcut cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcut_complex/E2 b/tests/boolean/bopcut_complex/E2 index 9ebb2dad97..a5891be9f9 100644 --- a/tests/boolean/bopcut_complex/E2 +++ b/tests/boolean/bopcut_complex/E2 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopcut is not valid" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/F2 b/tests/boolean/bopcut_complex/F2 index 209cd4e332..bdfeab0fd0 100644 --- a/tests/boolean/bopcut_complex/F2 +++ b/tests/boolean/bopcut_complex/F2 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopcut_complex/F3 b/tests/boolean/bopcut_complex/F3 index 1b8672acf4..01cc61bec8 100644 --- a/tests/boolean/bopcut_complex/F3 +++ b/tests/boolean/bopcut_complex/F3 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopcut_complex/L9 b/tests/boolean/bopcut_complex/L9 index 750f5d706f..4bee334802 100644 --- a/tests/boolean/bopcut_complex/L9 +++ b/tests/boolean/bopcut_complex/L9 @@ -1,9 +1,18 @@ # Original bug : pro13075 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a restore [locate_data_file CTO904_pro13075b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopcut result diff --git a/tests/boolean/bopcut_complex/M1 b/tests/boolean/bopcut_complex/M1 index 0f86fa6445..f40a1134c6 100644 --- a/tests/boolean/bopcut_complex/M1 +++ b/tests/boolean/bopcut_complex/M1 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopcut result diff --git a/tests/boolean/bopfuse_complex/C9 b/tests/boolean/bopfuse_complex/C9 index 7d28456e64..1cca615ab6 100644 --- a/tests/boolean/bopfuse_complex/C9 +++ b/tests/boolean/bopfuse_complex/C9 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopfuse cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopfuse_complex/D1 b/tests/boolean/bopfuse_complex/D1 index 54c0cf4da4..cf0dddd681 100644 --- a/tests/boolean/bopfuse_complex/D1 +++ b/tests/boolean/bopfuse_complex/D1 @@ -1,6 +1,13 @@ puts "TODO #22911 ALL: Error : The bopfuse cannot be built." +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] sh + +sfixpcu sh sh -f +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopfuse_complex/E1 b/tests/boolean/bopfuse_complex/E1 index 5cbc776112..b459545833 100644 --- a/tests/boolean/bopfuse_complex/E1 +++ b/tests/boolean/bopfuse_complex/E1 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_1 sh_2 diff --git a/tests/boolean/bopfuse_complex/E2 b/tests/boolean/bopfuse_complex/E2 index 35b1ff4470..986158860e 100644 --- a/tests/boolean/bopfuse_complex/E2 +++ b/tests/boolean/bopfuse_complex/E2 @@ -1,4 +1,12 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337.brep] sh + +sfixpcu sh sh -f +fixshape sh sh +checkshape sh + explode sh bop sh_2 sh_1 diff --git a/tests/boolean/bopfuse_complex/J8 b/tests/boolean/bopfuse_complex/J8 index d876991df1..1d865e4ad1 100644 --- a/tests/boolean/bopfuse_complex/J8 +++ b/tests/boolean/bopfuse_complex/J8 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a restore [locate_data_file fra60275b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + tcopy b w mkplane f w diff --git a/tests/boolean/bopfuse_complex/K6 b/tests/boolean/bopfuse_complex/K6 index 2920983f19..1a70be5b6a 100644 --- a/tests/boolean/bopfuse_complex/K6 +++ b/tests/boolean/bopfuse_complex/K6 @@ -1,9 +1,18 @@ # Original bug : cts20280 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a restore [locate_data_file CTO904_cts20280b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopfuse result diff --git a/tests/boolean/bopsection/A2 b/tests/boolean/bopsection/A2 index 86be9b147f..b53dd6d918 100644 --- a/tests/boolean/bopsection/A2 +++ b/tests/boolean/bopsection/A2 @@ -1,8 +1,18 @@ # Original bug : fra60275 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a restore [locate_data_file fra60275b.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + tcopy b w mkplane f w diff --git a/tests/boolean/bopsection/A4 b/tests/boolean/bopsection/A4 index 6827fbdbe7..a289ce5be7 100644 --- a/tests/boolean/bopsection/A4 +++ b/tests/boolean/bopsection/A4 @@ -1,9 +1,18 @@ # Original bug : pro13075 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a restore [locate_data_file CTO904_pro13075b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bopsection/A5 b/tests/boolean/bopsection/A5 index 2588e1a711..bcdb3f0a3a 100644 --- a/tests/boolean/bopsection/A5 +++ b/tests/boolean/bopsection/A5 @@ -1,9 +1,18 @@ # Original bug : pro13495 # Date : 19Mai98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a restore [locate_data_file pro13495b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bopsection/B5 b/tests/boolean/bopsection/B5 index 0b39b5d9dc..c4a19a997e 100644 --- a/tests/boolean/bopsection/B5 +++ b/tests/boolean/bopsection/B5 @@ -1,9 +1,18 @@ # Original bug : cts20280 # Date : 4June98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a restore [locate_data_file CTO904_cts20280b.rle] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bop a b bopsection result diff --git a/tests/boolean/bsection/O8 b/tests/boolean/bsection/O8 index 0b8fb047b9..cce464447e 100644 --- a/tests/boolean/bsection/O8 +++ b/tests/boolean/bsection/O8 @@ -1,5 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlq.rle] a restore [locate_data_file CIN900_cts21hlr.rle] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + bsection result a b set length 79.1327 diff --git a/tests/bugs/heal/bug208 b/tests/bugs/heal/bug208 index 35ea345138..6735ca22a8 100755 --- a/tests/bugs/heal/bug208 +++ b/tests/bugs/heal/bug208 @@ -9,6 +9,7 @@ puts "========" restore [locate_data_file OCC208.brep] a fixshape result a 0.01 0.01 +sfixpcu result result -f checkshape result set 2dviewer 0 diff --git a/tests/bugs/modalg_1/buc60708 b/tests/bugs/modalg_1/buc60708 index 906f393778..6ea376adc7 100755 --- a/tests/bugs/modalg_1/buc60708 +++ b/tests/bugs/modalg_1/buc60708 @@ -3,9 +3,15 @@ puts "===========" puts "BUC60708" puts "===========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file buc60708a.brep] a +sfixpcu a a -f checkshape a + restore [locate_data_file buc60708b.brep] b +sfixpcu b b -f checkshape b bcommon result a b diff --git a/tests/bugs/modalg_1/buc60839 b/tests/bugs/modalg_1/buc60839 index cad2dbf042..7e502b6530 100755 --- a/tests/bugs/modalg_1/buc60839 +++ b/tests/bugs/modalg_1/buc60839 @@ -4,9 +4,15 @@ puts "BUC60839" puts "============" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file BUC60839-1.brep] a +sfixpcu a a -f checkshape a + restore [locate_data_file BUC60839-2.brep] b +sfixpcu b b -f checkshape b puts "Starting fuse operation" diff --git a/tests/bugs/modalg_1/bug17357_1 b/tests/bugs/modalg_1/bug17357_1 index 1824e6723f..d8f9affb12 100755 --- a/tests/bugs/modalg_1/bug17357_1 +++ b/tests/bugs/modalg_1/bug17357_1 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopcommon result diff --git a/tests/bugs/modalg_1/bug17357_2 b/tests/bugs/modalg_1/bug17357_2 index 7d49291e77..670fa1153e 100755 --- a/tests/bugs/modalg_1/bug17357_2 +++ b/tests/bugs/modalg_1/bug17357_2 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopfuse result diff --git a/tests/bugs/modalg_1/bug17357_3 b/tests/bugs/modalg_1/bug17357_3 index 3e7b43055b..6c8cb74299 100755 --- a/tests/bugs/modalg_1/bug17357_3 +++ b/tests/bugs/modalg_1/bug17357_3 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopcut result diff --git a/tests/bugs/modalg_1/bug17357_4 b/tests/bugs/modalg_1/bug17357_4 index 2083ce5f33..24d5d8b58b 100755 --- a/tests/bugs/modalg_1/bug17357_4 +++ b/tests/bugs/modalg_1/bug17357_4 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 boptuc result diff --git a/tests/bugs/modalg_1/bug17357_5 b/tests/bugs/modalg_1/bug17357_5 index 179c395dd0..c076b49354 100755 --- a/tests/bugs/modalg_1/bug17357_5 +++ b/tests/bugs/modalg_1/bug17357_5 @@ -6,9 +6,18 @@ puts "" # Any boolean operation is impossible between attached shapes ####################################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17357-1.brep] b1 restore [locate_data_file OCC17357-2.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + bop b1 b2 bopsection result diff --git a/tests/bugs/modalg_2/bug22557 b/tests/bugs/modalg_2/bug22557 index 4913814064..bc148e3306 100755 --- a/tests/bugs/modalg_2/bug22557 +++ b/tests/bugs/modalg_2/bug22557 @@ -8,12 +8,21 @@ puts "" set BugNumber OCC22557 +# for "sfixpcu" command +pload XSDRAW + puts "Load first shape ..." restore [locate_data_file bug22557_Bloc_racine_70deg.brep] b1 puts "Load second shape ..." restore [locate_data_file bug22557_PaveEntree.brep] b2 +sfixpcu b1 b1 -f +sfixpcu b2 b2 -f + +checkshape b1 +checkshape b2 + puts "Prepare boolean operation ..." bop b1 b2 diff --git a/tests/bugs/modalg_2/bug22770_10 b/tests/bugs/modalg_2/bug22770_10 index a3cf744931..e3e567b7fb 100755 --- a/tests/bugs/modalg_2/bug22770_10 +++ b/tests/bugs/modalg_2/bug22770_10 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 -a set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_11 b/tests/bugs/modalg_2/bug22770_11 index 66c4e02873..c784760f8d 100755 --- a/tests/bugs/modalg_2/bug22770_11 +++ b/tests/bugs/modalg_2/bug22770_11 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 +s set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_12 b/tests/bugs/modalg_2/bug22770_12 index 1175d274f4..6c47bfe450 100755 --- a/tests/bugs/modalg_2/bug22770_12 +++ b/tests/bugs/modalg_2/bug22770_12 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b -c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_13 b/tests/bugs/modalg_2/bug22770_13 index a8a71313f9..8397dfe2ed 100755 --- a/tests/bugs/modalg_2/bug22770_13 +++ b/tests/bugs/modalg_2/bug22770_13 @@ -18,8 +18,18 @@ catch { pload XDE } # Open a transaction # NewCommand D +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b +c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_14 b/tests/bugs/modalg_2/bug22770_14 index 5adb151355..aae9f8db43 100755 --- a/tests/bugs/modalg_2/bug22770_14 +++ b/tests/bugs/modalg_2/bug22770_14 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b +c -f set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_15 b/tests/bugs/modalg_2/bug22770_15 index 6e18d39952..581ffff375 100755 --- a/tests/bugs/modalg_2/bug22770_15 +++ b/tests/bugs/modalg_2/bug22770_15 @@ -18,8 +18,18 @@ catch { pload XDE } # Open a transaction # NewCommand D +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result a b -p set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_23 b/tests/bugs/modalg_2/bug22770_23 index bc31bc4fb6..367161c308 100755 --- a/tests/bugs/modalg_2/bug22770_23 +++ b/tests/bugs/modalg_2/bug22770_23 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_24 b/tests/bugs/modalg_2/bug22770_24 index 514f25b65a..2dfda9e05a 100755 --- a/tests/bugs/modalg_2/bug22770_24 +++ b/tests/bugs/modalg_2/bug22770_24 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_25 b/tests/bugs/modalg_2/bug22770_25 index b598450d54..2cdb20a5f6 100755 --- a/tests/bugs/modalg_2/bug22770_25 +++ b/tests/bugs/modalg_2/bug22770_25 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 -a set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_26 b/tests/bugs/modalg_2/bug22770_26 index 458b9bbf1b..f2f6fa0a8d 100755 --- a/tests/bugs/modalg_2/bug22770_26 +++ b/tests/bugs/modalg_2/bug22770_26 @@ -10,9 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +mint 0.01 +s set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_27 b/tests/bugs/modalg_2/bug22770_27 index 434392e1e7..0e691686a3 100755 --- a/tests/bugs/modalg_2/bug22770_27 +++ b/tests/bugs/modalg_2/bug22770_27 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b -c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_28 b/tests/bugs/modalg_2/bug22770_28 index 3ea3fffc4e..4a0fd57c42 100755 --- a/tests/bugs/modalg_2/bug22770_28 +++ b/tests/bugs/modalg_2/bug22770_28 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +c set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_29 b/tests/bugs/modalg_2/bug22770_29 index dd81aead93..f1863601d1 100755 --- a/tests/bugs/modalg_2/bug22770_29 +++ b/tests/bugs/modalg_2/bug22770_29 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b +c -f set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_30 b/tests/bugs/modalg_2/bug22770_30 index 41710a7d22..1b7512f933 100755 --- a/tests/bugs/modalg_2/bug22770_30 +++ b/tests/bugs/modalg_2/bug22770_30 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result 0.1 a b -p set square 1.8847e+07 diff --git a/tests/bugs/modalg_2/bug22770_8 b/tests/bugs/modalg_2/bug22770_8 index af0acc45fb..58fbb6712e 100755 --- a/tests/bugs/modalg_2/bug22770_8 +++ b/tests/bugs/modalg_2/bug22770_8 @@ -10,8 +10,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug22770_9 b/tests/bugs/modalg_2/bug22770_9 index 41b7b405f9..87a2482805 100755 --- a/tests/bugs/modalg_2/bug22770_9 +++ b/tests/bugs/modalg_2/bug22770_9 @@ -8,8 +8,18 @@ puts "" set BugNumber OCC22770 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file 22770-tramp.brep] a restore [locate_data_file 22770-trans.brep] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + sewing result +t 0.01 a b +mint 0.01 set square 1.88469e+07 diff --git a/tests/bugs/modalg_2/bug23530 b/tests/bugs/modalg_2/bug23530 index ae2158e407..4667e126e0 100755 --- a/tests/bugs/modalg_2/bug23530 +++ b/tests/bugs/modalg_2/bug23530 @@ -6,7 +6,11 @@ puts "" ## Error in Draw command "checkshape": invalid face is not recognized ################################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23530_BadFace.brep] result +sfixpcu result result -f pcurve result decho off diff --git a/tests/bugs/modalg_2/bug263 b/tests/bugs/modalg_2/bug263 index 35d5f52d13..18b7afa43b 100755 --- a/tests/bugs/modalg_2/bug263 +++ b/tests/bugs/modalg_2/bug263 @@ -1,12 +1,18 @@ puts "TODO OCC11111 ALL: Faulty OCC263: here is shading problem" puts "TODO OCC11111 ALL: Error : The square of result shape is" +# for "sfixpcu" command +pload XSDRAW + + puts "========" puts "OCC263" puts "========" restore [locate_data_file OCC263.brep] result +sfixpcu result result -f + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug264_1 b/tests/bugs/modalg_2/bug264_1 index 83974cb1b2..cffc32ea19 100755 --- a/tests/bugs/modalg_2/bug264_1 +++ b/tests/bugs/modalg_2/bug264_1 @@ -6,7 +6,11 @@ puts "OCC264" puts " (case 1)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_01.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug264_11 b/tests/bugs/modalg_2/bug264_11 index 0d0348eb7a..01c429373a 100755 --- a/tests/bugs/modalg_2/bug264_11 +++ b/tests/bugs/modalg_2/bug264_11 @@ -6,7 +6,11 @@ puts "OCC264" puts " (case 11)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_11.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug264_7 b/tests/bugs/modalg_2/bug264_7 index f129ed91c0..48542e96d3 100755 --- a/tests/bugs/modalg_2/bug264_7 +++ b/tests/bugs/modalg_2/bug264_7 @@ -4,7 +4,11 @@ puts "OCC264" puts " (case 7)" puts "========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC264_07.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug269_1 b/tests/bugs/modalg_2/bug269_1 index db76719f71..ef9c011b63 100755 --- a/tests/bugs/modalg_2/bug269_1 +++ b/tests/bugs/modalg_2/bug269_1 @@ -1,8 +1,14 @@ puts "======== OCC269 ========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC269-1.brep] result + +sfixpcu result result -f checkshape result + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug269_3 b/tests/bugs/modalg_2/bug269_3 index 0c73a2ee92..ee8eeb1569 100755 --- a/tests/bugs/modalg_2/bug269_3 +++ b/tests/bugs/modalg_2/bug269_3 @@ -1,8 +1,14 @@ puts "======== OCC269 ========" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC269-3.brep] result + +sfixpcu result result -f checkshape result + isos result 0 tclean result diff --git a/tests/bugs/modalg_2/bug287 b/tests/bugs/modalg_2/bug287 index e7d41ac308..27ba390d89 100755 --- a/tests/bugs/modalg_2/bug287 +++ b/tests/bugs/modalg_2/bug287 @@ -5,7 +5,12 @@ puts "========================" puts " OCC287 " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_170.brep] result + +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug302_3 b/tests/bugs/modalg_2/bug302_3 index cc6d332634..0562dae529 100755 --- a/tests/bugs/modalg_2/bug302_3 +++ b/tests/bugs/modalg_2/bug302_3 @@ -8,7 +8,11 @@ puts "" ## but I believe that orientation of this face is correct. ################################################################# +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC302c.brep] result +fixshape result result set che [checkshape result r] if { [regexp {OK} $che] !=1 } { diff --git a/tests/bugs/modalg_2/bug337 b/tests/bugs/modalg_2/bug337 index 0d821463b4..cf7b4307f8 100755 --- a/tests/bugs/modalg_2/bug337 +++ b/tests/bugs/modalg_2/bug337 @@ -7,7 +7,11 @@ puts "" ## It's impossible to fuse two solids in the file attached. ############################################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC337_clone1.brep] a +sfixpcu a a -f explode a set che [checkshape a_1] diff --git a/tests/bugs/modalg_2/bug347_1 b/tests/bugs/modalg_2/bug347_1 index 3471512529..c2d63bde3a 100755 --- a/tests/bugs/modalg_2/bug347_1 +++ b/tests/bugs/modalg_2/bug347_1 @@ -5,7 +5,11 @@ puts " OCC347 " puts " (case 1) " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC347a.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug347_2 b/tests/bugs/modalg_2/bug347_2 index 635521d079..615f1d934c 100755 --- a/tests/bugs/modalg_2/bug347_2 +++ b/tests/bugs/modalg_2/bug347_2 @@ -5,7 +5,12 @@ puts " OCC347 " puts " (case 2) " puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC347b.brep] result + +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug416 b/tests/bugs/modalg_2/bug416 index 82e9091d50..71e919642f 100755 --- a/tests/bugs/modalg_2/bug416 +++ b/tests/bugs/modalg_2/bug416 @@ -5,10 +5,15 @@ puts "CTS19305" puts "========================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] part +sfixpcu part part -f checkshape part restore [locate_data_file CTO900_cts19305-tool.rle] tool +sfixpcu tool tool -f checkshape tool bcut result part tool diff --git a/tests/bugs/modalg_2/bug446_2 b/tests/bugs/modalg_2/bug446_2 index f6fcfd0ebf..5938c51db1 100755 --- a/tests/bugs/modalg_2/bug446_2 +++ b/tests/bugs/modalg_2/bug446_2 @@ -9,8 +9,13 @@ puts "" ## As result I have fail on shape that it is not closed. ###################################### +# for "ffixpcu" command +pload XSDRAW + restore [locate_data_file OCC446b.brep] result +ffixpcu result -f -s + set che [checkshape result] if { [regexp {Faulty} $che ] == 1} { puts "Faulty OCC446 (case 2): Source shape is NotClosed" diff --git a/tests/bugs/modalg_2/bug446_3 b/tests/bugs/modalg_2/bug446_3 index cf1efa8ae9..83e84a9d52 100755 --- a/tests/bugs/modalg_2/bug446_3 +++ b/tests/bugs/modalg_2/bug446_3 @@ -9,8 +9,13 @@ puts "" ## As result I have fail on shape that it is not closed. ###################################### +# for "ffixpcu" command +pload XSDRAW + restore [locate_data_file OCC446c.brep] result +ffixpcu result -f -s + set che [checkshape result] if { [regexp {Faulty} $che ] == 1} { puts "Faulty OCC446 (case 3): Source shape is NotClosed" diff --git a/tests/bugs/modalg_2/bug452_2 b/tests/bugs/modalg_2/bug452_2 index a938728c05..a7642ca22f 100755 --- a/tests/bugs/modalg_2/bug452_2 +++ b/tests/bugs/modalg_2/bug452_2 @@ -6,7 +6,11 @@ puts "(case 2)" puts "========" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file mds-part1.rle] a +sfixpcu a a -f set che [checkshape a] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 1): Source shape is invalid. It was detected by Checkshape command" @@ -15,6 +19,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file mds-part2.rle] b +sfixpcu b b -f set che [checkshape b] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 2): Source shape is invalid. It was detected by Checkshape command" @@ -23,6 +28,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239a.rle] c +sfixpcu c c -f set che [checkshape c] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 3): Source shape is invalid. It was detected by Checkshape command" @@ -31,6 +37,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239b.rle] d +sfixpcu d d -f set che [checkshape d] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 4): Source shape is invalid. It was detected by Checkshape command" diff --git a/tests/bugs/modalg_2/bug452_3 b/tests/bugs/modalg_2/bug452_3 index 3ec86b68f2..b0426dd3d0 100755 --- a/tests/bugs/modalg_2/bug452_3 +++ b/tests/bugs/modalg_2/bug452_3 @@ -6,7 +6,11 @@ puts "(case 3)" puts "========" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239a.rle] a +sfixpcu a a -f set che [checkshape a] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 5): Source shape is invalid. It was detected by Checkshape command" @@ -15,6 +19,7 @@ if { [regexp {Faulty} $che ] == 1 } { } restore [locate_data_file CTO900_ger60239b.rle] b +sfixpcu b b -f set che [checkshape b] if { [regexp {Faulty} $che ] == 1 } { puts "Faulty OCC452 (shape 6): Source shape is invalid. It was detected by Checkshape command" diff --git a/tests/bugs/modalg_2/bug472_1 b/tests/bugs/modalg_2/bug472_1 index bc835520cf..e06498de26 100755 --- a/tests/bugs/modalg_2/bug472_1 +++ b/tests/bugs/modalg_2/bug472_1 @@ -10,10 +10,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bcut result b1 b2 diff --git a/tests/bugs/modalg_2/bug472_2 b/tests/bugs/modalg_2/bug472_2 index 4860fd4b15..5b049d7620 100755 --- a/tests/bugs/modalg_2/bug472_2 +++ b/tests/bugs/modalg_2/bug472_2 @@ -8,10 +8,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bcommon result b1 b2 diff --git a/tests/bugs/modalg_2/bug472_3 b/tests/bugs/modalg_2/bug472_3 index ab4d5b556f..5dcee9ee3c 100755 --- a/tests/bugs/modalg_2/bug472_3 +++ b/tests/bugs/modalg_2/bug472_3 @@ -11,10 +11,15 @@ puts "" ## Bad result of Fuse Operation (Cut&Common - bad too). SAM1470 (#2634) ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC472a.brep] b1 +sfixpcu b1 b1 -f checkshape b1 restore [locate_data_file OCC472b.brep] b2 +sfixpcu b2 b2 -f checkshape b2 bfuse result b1 b2 diff --git a/tests/bugs/modalg_2/bug476_1 b/tests/bugs/modalg_2/bug476_1 index e05d8c9dc0..6801af0a6f 100755 --- a/tests/bugs/modalg_2/bug476_1 +++ b/tests/bugs/modalg_2/bug476_1 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_2 b/tests/bugs/modalg_2/bug476_2 index 892685e680..ba0506cc96 100755 --- a/tests/bugs/modalg_2/bug476_2 +++ b/tests/bugs/modalg_2/bug476_2 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_3 b/tests/bugs/modalg_2/bug476_3 index ef5d6ff58b..d3c7f95347 100755 --- a/tests/bugs/modalg_2/bug476_3 +++ b/tests/bugs/modalg_2/bug476_3 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_4 b/tests/bugs/modalg_2/bug476_4 index 55739ac89c..4338257282 100755 --- a/tests/bugs/modalg_2/bug476_4 +++ b/tests/bugs/modalg_2/bug476_4 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_5 b/tests/bugs/modalg_2/bug476_5 index b7a375c85a..c75ef637fa 100755 --- a/tests/bugs/modalg_2/bug476_5 +++ b/tests/bugs/modalg_2/bug476_5 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_6 b/tests/bugs/modalg_2/bug476_6 index a43243998f..f2bd7e36b9 100755 --- a/tests/bugs/modalg_2/bug476_6 +++ b/tests/bugs/modalg_2/bug476_6 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_7 b/tests/bugs/modalg_2/bug476_7 index e8c9a7efb9..cadf193133 100755 --- a/tests/bugs/modalg_2/bug476_7 +++ b/tests/bugs/modalg_2/bug476_7 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug476_8 b/tests/bugs/modalg_2/bug476_8 index f519b5abb6..cf7b4fe7e9 100755 --- a/tests/bugs/modalg_2/bug476_8 +++ b/tests/bugs/modalg_2/bug476_8 @@ -6,9 +6,15 @@ puts "" # Regression on reading e3i files with respect of OCC30 and OCC40 ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485b.brep] s1 restore [locate_data_file OCC485a.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_2/bug481 b/tests/bugs/modalg_2/bug481 index 367af52bcb..33780a56ac 100755 --- a/tests/bugs/modalg_2/bug481 +++ b/tests/bugs/modalg_2/bug481 @@ -7,7 +7,11 @@ puts "" ##Attached shape could not be displayed in the Shading mode. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC481.rle] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/modalg_2/bug485 b/tests/bugs/modalg_2/bug485 index b33b0806cb..b46b1d35ae 100755 --- a/tests/bugs/modalg_2/bug485 +++ b/tests/bugs/modalg_2/bug485 @@ -7,10 +7,15 @@ puts "" ## Draw hangs up during performing fuse operation ####################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC485a.brep] a_1 +sfixpcu a_1 a_1 -f checkshape a_1 restore [locate_data_file OCC485a.brep] a_2 +sfixpcu a_2 a_2 -f checkshape a_2 if [catch {bfuse result a_1 a_2 } result] { diff --git a/tests/bugs/modalg_4/bug6181 b/tests/bugs/modalg_4/bug6181 index 5a5667d9e1..3697723624 100755 --- a/tests/bugs/modalg_4/bug6181 +++ b/tests/bugs/modalg_4/bug6181 @@ -8,9 +8,18 @@ puts "" set BugNumber OCC6181 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC6181_A.brep] s1 restore [locate_data_file OCC6181_B.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + +checkshape s1 +checkshape s2 + decho off set che_s1 [checkshape s1] set che_s2 [checkshape s2] diff --git a/tests/bugs/modalg_4/bug6182 b/tests/bugs/modalg_4/bug6182 index f0b12771a4..bb31f67fc8 100755 --- a/tests/bugs/modalg_4/bug6182 +++ b/tests/bugs/modalg_4/bug6182 @@ -8,9 +8,15 @@ puts "" set BugNumber OCC6182 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC6182_A.brep] s1 restore [locate_data_file OCC6182_B.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + decho off set che_s1 [checkshape s1] set che_s2 [checkshape s2] diff --git a/tests/bugs/modalg_4/bug620_1 b/tests/bugs/modalg_4/bug620_1 index cdf6464683..1c1693e53d 100755 --- a/tests/bugs/modalg_4/bug620_1 +++ b/tests/bugs/modalg_4/bug620_1 @@ -7,9 +7,14 @@ puts "" ## No possibility to cut the shapes. ############################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC620a.brep] a +sfixpcu a a -f checkshape a restore [locate_data_file OCC620b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/modalg_4/bug620_2 b/tests/bugs/modalg_4/bug620_2 index 94eb0c211b..2ddd1972c0 100755 --- a/tests/bugs/modalg_4/bug620_2 +++ b/tests/bugs/modalg_4/bug620_2 @@ -7,9 +7,14 @@ puts "" ## No possibility to cut the shapes. ############################ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC620a.brep] a +sfixpcu a a -f checkshape a restore [locate_data_file OCC620b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/modalg_4/bug6272_5 b/tests/bugs/modalg_4/bug6272_5 index fc46efeeb1..b69ef16cf1 100755 --- a/tests/bugs/modalg_4/bug6272_5 +++ b/tests/bugs/modalg_4/bug6272_5 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + explode a1 bop a1_1 a1_2 diff --git a/tests/bugs/modalg_4/bug6272_6 b/tests/bugs/modalg_4/bug6272_6 index 4bc54718e4..5734eb9767 100755 --- a/tests/bugs/modalg_4/bug6272_6 +++ b/tests/bugs/modalg_4/bug6272_6 @@ -11,9 +11,16 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 restore [locate_data_file OCC6272_revolution.brep] a2 +sfixpcu a1 a1 -f +sfixpcu a2 a2 -f + bop a1 a2 bopfuse result diff --git a/tests/bugs/modalg_4/bug6272_710 b/tests/bugs/modalg_4/bug6272_710 index 12b3ca8ffb..bd7803920b 100755 --- a/tests/bugs/modalg_4/bug6272_710 +++ b/tests/bugs/modalg_4/bug6272_710 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_77 b/tests/bugs/modalg_4/bug6272_77 index 05d7c48819..6d95c6406f 100755 --- a/tests/bugs/modalg_4/bug6272_77 +++ b/tests/bugs/modalg_4/bug6272_77 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_78 b/tests/bugs/modalg_4/bug6272_78 index 7ed242a4f8..31438c0f32 100755 --- a/tests/bugs/modalg_4/bug6272_78 +++ b/tests/bugs/modalg_4/bug6272_78 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug6272_79 b/tests/bugs/modalg_4/bug6272_79 index 987aa25e56..fcd537b42e 100755 --- a/tests/bugs/modalg_4/bug6272_79 +++ b/tests/bugs/modalg_4/bug6272_79 @@ -8,8 +8,14 @@ puts "" set BugNumber OCC6272 +# for "sfixpcu" command +pload XSDRAW + + restore [locate_data_file OCC6272_bridge2.brep] a1 +sfixpcu a1 a1 -f + # # a1 is compound. It containes a_3, a_5, a_1, a_2, a_4, a_6 solids # diff --git a/tests/bugs/modalg_4/bug714 b/tests/bugs/modalg_4/bug714 index 41152a8658..fd1b868c88 100755 --- a/tests/bugs/modalg_4/bug714 +++ b/tests/bugs/modalg_4/bug714 @@ -7,7 +7,11 @@ puts "" ## After command sew in DRAW on attached shape free wires are disappeared. #################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC714.brep] a +sfixpcu a a -f checkshape a set nb_info1 [nbshapes a] diff --git a/tests/bugs/modalg_4/bug774_1 b/tests/bugs/modalg_4/bug774_1 index b8a4a1a21e..b81ebb7d64 100755 --- a/tests/bugs/modalg_4/bug774_1 +++ b/tests/bugs/modalg_4/bug774_1 @@ -9,7 +9,12 @@ puts "" ## It's impossible to cut one shape from another. ################################# +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC774.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug774_2 b/tests/bugs/modalg_4/bug774_2 index 8d902616ce..e4da6eaddc 100755 --- a/tests/bugs/modalg_4/bug774_2 +++ b/tests/bugs/modalg_4/bug774_2 @@ -9,7 +9,13 @@ puts "========" puts "" ################################# ## + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC774.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug778_1 b/tests/bugs/modalg_4/bug778_1 index 8dfba8f219..d7abc7396e 100755 --- a/tests/bugs/modalg_4/bug778_1 +++ b/tests/bugs/modalg_4/bug778_1 @@ -9,7 +9,12 @@ puts "" ## Incorrect result of cut of the cylinder from the shape. ###################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC778.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug778_2 b/tests/bugs/modalg_4/bug778_2 index 0fead207eb..2e319ea09d 100755 --- a/tests/bugs/modalg_4/bug778_2 +++ b/tests/bugs/modalg_4/bug778_2 @@ -9,7 +9,12 @@ puts "" ## Incorrect result of cut of the cylinder from the shape ##################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC778.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/modalg_4/bug951_1 b/tests/bugs/modalg_4/bug951_1 index ea45927a6d..7b8a8cd563 100755 --- a/tests/bugs/modalg_4/bug951_1 +++ b/tests/bugs/modalg_4/bug951_1 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_2 b/tests/bugs/modalg_4/bug951_2 index fd39ccdf8d..b2932c163a 100755 --- a/tests/bugs/modalg_4/bug951_2 +++ b/tests/bugs/modalg_4/bug951_2 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_3 b/tests/bugs/modalg_4/bug951_3 index bf8f0a239d..3a94121dc1 100755 --- a/tests/bugs/modalg_4/bug951_3 +++ b/tests/bugs/modalg_4/bug951_3 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_31 b/tests/bugs/modalg_4/bug951_31 index 0cbdd41ef4..688ba28413 100755 --- a/tests/bugs/modalg_4/bug951_31 +++ b/tests/bugs/modalg_4/bug951_31 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_32 b/tests/bugs/modalg_4/bug951_32 index 8d181b16eb..7a5e9bc4e7 100755 --- a/tests/bugs/modalg_4/bug951_32 +++ b/tests/bugs/modalg_4/bug951_32 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_4 b/tests/bugs/modalg_4/bug951_4 index 3dd6465216..a722b8e035 100755 --- a/tests/bugs/modalg_4/bug951_4 +++ b/tests/bugs/modalg_4/bug951_4 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_41 b/tests/bugs/modalg_4/bug951_41 index dcf984e10d..bf737339bd 100755 --- a/tests/bugs/modalg_4/bug951_41 +++ b/tests/bugs/modalg_4/bug951_41 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_42 b/tests/bugs/modalg_4/bug951_42 index e801200b83..2f7f7392f7 100755 --- a/tests/bugs/modalg_4/bug951_42 +++ b/tests/bugs/modalg_4/bug951_42 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_5 b/tests/bugs/modalg_4/bug951_5 index b82848fa0b..317ebf2132 100755 --- a/tests/bugs/modalg_4/bug951_5 +++ b/tests/bugs/modalg_4/bug951_5 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_51 b/tests/bugs/modalg_4/bug951_51 index 3f561bf95a..1e19d4be29 100755 --- a/tests/bugs/modalg_4/bug951_51 +++ b/tests/bugs/modalg_4/bug951_51 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_52 b/tests/bugs/modalg_4/bug951_52 index 79fd3a630b..be36e2c923 100755 --- a/tests/bugs/modalg_4/bug951_52 +++ b/tests/bugs/modalg_4/bug951_52 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_6 b/tests/bugs/modalg_4/bug951_6 index 8b0800d618..3b96a27829 100755 --- a/tests/bugs/modalg_4/bug951_6 +++ b/tests/bugs/modalg_4/bug951_6 @@ -10,9 +10,15 @@ puts "" ## (bopsection) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] b restore [locate_data_file OCC951_2.brep] a +sfixpcu a a -f +sfixpcu b b -f + checkshape b checkshape a diff --git a/tests/bugs/modalg_4/bug951_61 b/tests/bugs/modalg_4/bug951_61 index 23e752c547..c88ed867da 100755 --- a/tests/bugs/modalg_4/bug951_61 +++ b/tests/bugs/modalg_4/bug951_61 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_62 b/tests/bugs/modalg_4/bug951_62 index 50ebc0733e..7213cd37c7 100755 --- a/tests/bugs/modalg_4/bug951_62 +++ b/tests/bugs/modalg_4/bug951_62 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_71 b/tests/bugs/modalg_4/bug951_71 index 8217619dd2..938a48c01f 100755 --- a/tests/bugs/modalg_4/bug951_71 +++ b/tests/bugs/modalg_4/bug951_71 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_4/bug951_72 b/tests/bugs/modalg_4/bug951_72 index 82a31c9976..d2e7ca38e4 100755 --- a/tests/bugs/modalg_4/bug951_72 +++ b/tests/bugs/modalg_4/bug951_72 @@ -10,9 +10,15 @@ puts "" ## (section) ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC951_1.brep] s1 restore [locate_data_file OCC951_2.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + checkshape s1 checkshape s2 diff --git a/tests/bugs/modalg_5/bug23122 b/tests/bugs/modalg_5/bug23122 index 1f5696c348..60621351d8 100644 --- a/tests/bugs/modalg_5/bug23122 +++ b/tests/bugs/modalg_5/bug23122 @@ -6,9 +6,18 @@ puts "" # Operation "cut" crashes on attached shapes ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23122_ExtTor.brep] s1 restore [locate_data_file bug23122_IntTor.brep] s2 +sfixpcu s1 s1 -f +sfixpcu s2 s2 -f + +checkshape s1 +checkshape s2 + bcut result s1 s2 set square 6962.25 diff --git a/tests/bugs/modalg_5/bug23933 b/tests/bugs/modalg_5/bug23933 index 9248daf618..0f4eecfb1b 100755 --- a/tests/bugs/modalg_5/bug23933 +++ b/tests/bugs/modalg_5/bug23933 @@ -6,9 +6,15 @@ puts "" # Self intersection reported after Fuse operation ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file bug23933_a.brep] a restore [locate_data_file bug23933_b.brep] b +sfixpcu a a -f +sfixpcu b b -f + checkshape a checkshape b bopargcheck a b -F diff --git a/tests/bugs/moddata_1/bug107 b/tests/bugs/moddata_1/bug107 index 00b8f43a38..7d707c366b 100755 --- a/tests/bugs/moddata_1/bug107 +++ b/tests/bugs/moddata_1/bug107 @@ -5,9 +5,15 @@ puts "OCC107" puts "================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC107-1.brep] ee +sfixpcu ee ee -f checkshape ee + restore [locate_data_file OCC107-2.brep] ff +sfixpcu ff ff -f checkshape ff distmini dd1 ee ff diff --git a/tests/bugs/moddata_1/bug15 b/tests/bugs/moddata_1/bug15 index 044e6e6ac1..2ce5f570f3 100755 --- a/tests/bugs/moddata_1/bug15 +++ b/tests/bugs/moddata_1/bug15 @@ -4,8 +4,11 @@ puts "OCC15" puts "================" puts "" -restore [locate_data_file OCC15.brep] result +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file OCC15.brep] result +sfixpcu result result -f checkshape result vinit diff --git a/tests/bugs/moddata_1/bug1651 b/tests/bugs/moddata_1/bug1651 index a3cba8df8b..69b2168cac 100755 --- a/tests/bugs/moddata_1/bug1651 +++ b/tests/bugs/moddata_1/bug1651 @@ -10,7 +10,11 @@ puts "" # No intersection found using BRepClass3d_Intersector3d ###################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC1651.brep] face +sfixpcu face face -f checkshape face diff --git a/tests/bugs/moddata_1/bug17 b/tests/bugs/moddata_1/bug17 index 85ae54b4df..d1e888a58e 100755 --- a/tests/bugs/moddata_1/bug17 +++ b/tests/bugs/moddata_1/bug17 @@ -9,7 +9,11 @@ puts "" puts " Solid_14 will be the face which is unvisible during displaying entire solid." ##################################################### +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC17.brep] sh +sfixpcu sh sh -f checkshape sh diff --git a/tests/bugs/moddata_1/bug183_6 b/tests/bugs/moddata_1/bug183_6 index 674c216e21..8bc52ce6fd 100755 --- a/tests/bugs/moddata_1/bug183_6 +++ b/tests/bugs/moddata_1/bug183_6 @@ -6,9 +6,15 @@ puts "(case 6)" puts "========================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a +sfixpcu a a -f checkshape a + restore [locate_data_file cts16184b.brep] b +sfixpcu b b -f checkshape b bop a b diff --git a/tests/bugs/moddata_1/bug211_1 b/tests/bugs/moddata_1/bug211_1 index 4223a4cd49..d865ea651e 100755 --- a/tests/bugs/moddata_1/bug211_1 +++ b/tests/bugs/moddata_1/bug211_1 @@ -7,7 +7,12 @@ puts "========" ##Error of fillet prolongation. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC211.brep] a +sfixpcu a a -f +checkshape a explode a e diff --git a/tests/bugs/moddata_1/bug211_2 b/tests/bugs/moddata_1/bug211_2 index 5857e5b5be..5398b38b10 100755 --- a/tests/bugs/moddata_1/bug211_2 +++ b/tests/bugs/moddata_1/bug211_2 @@ -7,7 +7,12 @@ puts "========" ##Error of fillet prolongation. ########################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC211.brep] a +sfixpcu a a -f +checkshape a explode a e diff --git a/tests/bugs/moddata_2/bug228 b/tests/bugs/moddata_2/bug228 index ea1a863db9..e9c7c9579a 100755 --- a/tests/bugs/moddata_2/bug228 +++ b/tests/bugs/moddata_2/bug228 @@ -9,7 +9,12 @@ puts "" cpulimit 4000 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC228.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug25 b/tests/bugs/moddata_2/bug25 index b949e02e00..af502a7970 100755 --- a/tests/bugs/moddata_2/bug25 +++ b/tests/bugs/moddata_2/bug25 @@ -3,7 +3,11 @@ puts "OCC25" puts "================" puts "" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC25-1.brep] sh1 +sfixpcu sh1 sh1 -f decho off set che [checkshape sh1] @@ -17,6 +21,7 @@ if { [regexp {Faulty} $che ] == 1 } { # ================================================ restore [locate_data_file OCC25-2.brep] sh2 +sfixpcu sh2 sh2 -f decho off set che [checkshape sh2] diff --git a/tests/bugs/moddata_2/bug258_1 b/tests/bugs/moddata_2/bug258_1 index 5a5c898f2f..fb174fd5f4 100755 --- a/tests/bugs/moddata_2/bug258_1 +++ b/tests/bugs/moddata_2/bug258_1 @@ -4,7 +4,11 @@ puts " OCC258 " puts "(case 1)" puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_143.brep] result +sfixpcu result result -f -s checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug258_2 b/tests/bugs/moddata_2/bug258_2 index de68cd1703..894831982a 100755 --- a/tests/bugs/moddata_2/bug258_2 +++ b/tests/bugs/moddata_2/bug258_2 @@ -4,7 +4,11 @@ puts " OCC258 " puts "(case 2)" puts "========================" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file shading_144.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug26_1 b/tests/bugs/moddata_2/bug26_1 index 42b88a6350..9895784afd 100755 --- a/tests/bugs/moddata_2/bug26_1 +++ b/tests/bugs/moddata_2/bug26_1 @@ -5,7 +5,12 @@ puts "================" puts "" puts "TODO OCC12345 ALL: Error : The square of result shape is" +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC26.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug26_2 b/tests/bugs/moddata_2/bug26_2 index c312158cbb..cf8e0a2eb4 100755 --- a/tests/bugs/moddata_2/bug26_2 +++ b/tests/bugs/moddata_2/bug26_2 @@ -4,7 +4,13 @@ puts "OCC26" puts "================" puts "" puts "TODO OCC12345 ALL: Error : The square of result shape is" + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC26.brep] a +sfixpcu a a -f + explode a checkshape a_1 checkshape a_2 diff --git a/tests/bugs/moddata_2/bug368 b/tests/bugs/moddata_2/bug368 index a3c733f480..d407f0818b 100755 --- a/tests/bugs/moddata_2/bug368 +++ b/tests/bugs/moddata_2/bug368 @@ -8,7 +8,11 @@ puts "" ## Visualization is too slow. ############################################## +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file OCC368.brep] result +sfixpcu result result -f checkshape result tclean result diff --git a/tests/bugs/moddata_2/bug496 b/tests/bugs/moddata_2/bug496 index d2b2a15e97..1371bcaa67 100755 --- a/tests/bugs/moddata_2/bug496 +++ b/tests/bugs/moddata_2/bug496 @@ -5,11 +5,15 @@ puts "" ############################## ## Exception occurs during fuse operation ############################## +# for "sfixpcu" command +pload XSDRAW restore [locate_data_file OCC496a.brep] a_1 +sfixpcu a_1 a_1 -f checkshape a_1 restore [locate_data_file OCC496b.brep] a_2 +sfixpcu a_2 a_2 -f checkshape a_2 bfuse result a_1 a_2 diff --git a/tests/bugs/moddata_2/bug8 b/tests/bugs/moddata_2/bug8 index 75e16f53c6..660e8667a4 100755 --- a/tests/bugs/moddata_2/bug8 +++ b/tests/bugs/moddata_2/bug8 @@ -6,8 +6,12 @@ puts "" ## BRepTools_WireExplorere gives not all edges from a wire ################################################### +# for "sfixpcu" command +pload XSDRAW + pload XDE restore [locate_data_file OCC8.brep] result +sfixpcu result result -f -s checkshape result diff --git a/tests/bugs/xde/bug169 b/tests/bugs/xde/bug169 index 285356f4b1..2531a6a722 100755 --- a/tests/bugs/xde/bug169 +++ b/tests/bugs/xde/bug169 @@ -6,6 +6,7 @@ puts "" restore [locate_data_file OCC169.brep] a fixshape result a 1e-7 +sfixpcu result result -f checkshape result set square 6.27959 diff --git a/tests/bugs/xde/bug22535_1 b/tests/bugs/xde/bug22535_1 index f958faa47b..3f285290ae 100755 --- a/tests/bugs/xde/bug22535_1 +++ b/tests/bugs/xde/bug22535_1 @@ -2,12 +2,19 @@ puts "===========" puts "OCC22535" puts "===========" ###################################################### -# Cut cphere: invalid shape after reading from STEP +# Cut sphere: invalid shape after reading from STEP ###################################################### +# for "fixshape" command +pload XSDRAW + set BugNumber OCC22535 restore [locate_data_file OCC22535-sphere_cyl2_cut.brep] a + +fixshape a a +checkshape a + testwritestep $imagedir/${test_image}.stp a stepread $imagedir/${test_image}.stp b * renamevar b_1 result diff --git a/tests/bugs/xde/bug22535_2 b/tests/bugs/xde/bug22535_2 index bc216c97d6..43c2e2c684 100755 --- a/tests/bugs/xde/bug22535_2 +++ b/tests/bugs/xde/bug22535_2 @@ -5,9 +5,16 @@ puts "===========" # Cut cphere: invalid shape after reading from STEP ###################################################### +# for "fixshape" command +pload XSDRAW + set BugNumber OCC22535 restore [locate_data_file OCC22535-cut_comp.brep] a + +fixshape a a +checkshape a + testwritestep $imagedir/${test_image}.stp a stepread $imagedir/${test_image}.stp b * renamevar b_1 result diff --git a/tests/de/step_1/E3 b/tests/de/step_1/E3 index 5e961c4536..429937a74a 100644 --- a/tests/de/step_1/E3 +++ b/tests/de/step_1/E3 @@ -12,9 +12,9 @@ set ref_data { DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) TPSTAT : Faulties = 0 ( 0 ) Warnings = 21 ( 12 ) Summary = 21 ( 12 ) CHECKSHAPE : Wires = 2 ( 0 ) Faces = 2 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) -NBSHAPES : Solid = 4 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) Summary = 289 ( 266 ) -STATSHAPE : Solid = 4 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) FreeWire = 0 ( 0 ) FreeEdge = 24 ( 24 ) SharedEdge = 103 ( 103 ) -TOLERANCE : MaxTol = 6.104502198e-06 ( 1e-05 ) AvgTol = 9.682983037e-07 ( 2.91037487e-06 ) +NBSHAPES : Solid = 3 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) Summary = 292 ( 266 ) +STATSHAPE : Solid = 3 ( 4 ) Shell = 4 ( 4 ) Face = 35 ( 35 ) FreeWire = 0 ( 0 ) FreeEdge = 24 ( 24 ) SharedEdge = 105 ( 103 ) +TOLERANCE : MaxTol = 6.104502198e-06 ( 1e-05 ) AvgTol = 9.694977451e-07 ( 2.91037487e-06 ) LABELS : N0Labels = 4 ( 4 ) N1Labels = 31 ( 31 ) N2Labels = 0 ( 0 ) TotalLabels = 35 ( 35 ) NameLabels = 7 ( 7 ) ColorLabels = 0 ( 0 ) LayerLabels = 28 ( 28 ) PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) NCOLORS : NColors = 0 ( 0 ) diff --git a/tests/draft/angle/L1 b/tests/draft/angle/L1 index 1817468d8c..8555a8f043 100644 --- a/tests/draft/angle/L1 +++ b/tests/draft/angle/L1 @@ -1,4 +1,10 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CDA900_pro10142.rle] shp +sfixpcu shp shp -f +checkshape shp + explode shp f depouille result shp 0 0 1 shp_2 -3 0 0 0 0 0 1 shp_3 -3 0 0 0 0 0 1 shp_4 -3 0 0 0 0 0 1 shp_5 -3 0 0 0 0 0 1 shp_6 -3 0 0 0 0 0 1 shp_7 -3 0 0 0 0 0 1 shp_8 -3 0 0 0 0 0 1 shp_9 -3 0 0 0 0 0 1 shp_10 -3 0 0 0 0 0 1 shp_11 -3 0 0 0 0 0 1 shp_12 -3 0 0 0 0 0 1 shp_13 -3 0 0 0 0 0 1 shp_14 -3 0 0 0 0 0 1 shp_15 -3 0 0 0 0 0 1 shp_16 -3 0 0 0 0 0 1 shp_17 -3 0 0 0 0 0 1 shp_18 -3 0 0 0 0 0 1 shp_19 -3 0 0 0 0 0 1 shp_20 -3 0 0 0 0 0 1 shp_21 -3 0 0 0 0 0 1 diff --git a/tests/draft/angle/L2 b/tests/draft/angle/L2 index f35ed74257..3f32d9199c 100644 --- a/tests/draft/angle/L2 +++ b/tests/draft/angle/L2 @@ -1,8 +1,14 @@ # Original bug : cts21764 # Date : 23 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts21ggr.rle] base +sfixpcu base base -f +checkshape base + explode base face copy base_14 facdep vertex v1 12.9980200374864 -13 16.2268812577167 diff --git a/tests/draft/angle/M4 b/tests/draft/angle/M4 index 9b55646153..dba70d33f5 100644 --- a/tests/draft/angle/M4 +++ b/tests/draft/angle/M4 @@ -1,9 +1,14 @@ # Original bug : pro16449 # Date : 18 Dec 98 +# for "sfixpcu" command +pload XSDRAW + puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to faulty_4" restore [locate_data_file CFE903_pro16gha.rle] base +sfixpcu base base -f +checkshape base explode base face diff --git a/tests/draft/angle/M5 b/tests/draft/angle/M5 index b84ca0e020..4357456dc3 100644 --- a/tests/draft/angle/M5 +++ b/tests/draft/angle/M5 @@ -1,7 +1,12 @@ # Original bug : cts20610 # Date : 21 Dec 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts20ghb.rle] base +sfixpcu base base -f +checkshape base explode base face diff --git a/tests/feat/featlf/B8 b/tests/feat/featlf/B8 index 8f31d324c8..d47b4552ce 100644 --- a/tests/feat/featlf/B8 +++ b/tests/feat/featlf/B8 @@ -1,9 +1,15 @@ # Original bug : cts21832 # Date : 26 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21832_base.brep] base restore [locate_data_file cts21832_cont.brep] cont +sfixpcu base base -f +sfixpcu base base -f + explode cont wire copy cont_1 wire plane plan 0 0 0 -1 0 0 diff --git a/tests/feat/featprism/K1 b/tests/feat/featprism/K1 index 7cc8a77654..5d9a1fac93 100644 --- a/tests/feat/featprism/K1 +++ b/tests/feat/featprism/K1 @@ -1,9 +1,18 @@ # Original bug : cts20170 # Date : 8April98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20170_base.rle] base restore [locate_data_file cts20170_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face featprism base cont cont 0 0 1 1 1 diff --git a/tests/feat/featprism/K2 b/tests/feat/featprism/K2 index 3dfb50aa94..3d57c44b4b 100644 --- a/tests/feat/featprism/K2 +++ b/tests/feat/featprism/K2 @@ -1,9 +1,18 @@ # Original bug : cts20168 # Date : 8April98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20gaj.rle] base restore [locate_data_file cts20168_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_1 ffrom copy base_4 funtil diff --git a/tests/feat/featprism/K7 b/tests/feat/featprism/K7 index 0fdeecba16..b299c09665 100644 --- a/tests/feat/featprism/K7 +++ b/tests/feat/featprism/K7 @@ -1,10 +1,17 @@ # Original bug : cts20722 # Date : 21August98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20722c.rle] base restore [locate_data_file cts20722b.rle] cont restore [locate_data_file cts20722c.rle] funtil +sfixpcu base base -f +sfixpcu cont cont -f +sfixpcu funtil funtil -f + explode cont face #explode base face #copy base_14 funtil diff --git a/tests/feat/featprism/M4 b/tests/feat/featprism/M4 index c50c5046b3..33cc751605 100644 --- a/tests/feat/featprism/M4 +++ b/tests/feat/featprism/M4 @@ -1,10 +1,22 @@ # Original bug : cts21180 # Date : 17 Sept 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] base restore [locate_data_file cts21180_face.rle] cont restore [locate_data_file cts21180_until.rle] funtil +sfixpcu base base -f +sfixpcu cont cont -f +sfixpcu funtil funtil -f + +checkshape base +checkshape cont +checkshape funtil + + featprism base cont cont 0 0 -1 1 1 featperform prism result funtil diff --git a/tests/feat/featprism/O6 b/tests/feat/featprism/O6 index 838df0cdaf..b03a895755 100644 --- a/tests/feat/featprism/O6 +++ b/tests/feat/featprism/O6 @@ -6,9 +6,18 @@ #miv cpulimit 2000 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] base restore [locate_data_file cts20960_face.brep] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face #copy base_26 funtil copy base_28 funtil diff --git a/tests/feat/featprism/R1 b/tests/feat/featprism/R1 index 51fea72bdc..df5d3b77f0 100644 --- a/tests/feat/featprism/R1 +++ b/tests/feat/featprism/R1 @@ -1,9 +1,15 @@ # Original bug : pro16769 # Date : 02 Dec 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gff.rle] base restore [locate_data_file pro16769_face.brep] cont +sfixpcu base base -f +sfixpcu cont cont -f + explode base face mksurface p28 base_28 diff --git a/tests/feat/featprism/R6 b/tests/feat/featprism/R6 index 13306b32b2..c7db9e458e 100644 --- a/tests/feat/featprism/R6 +++ b/tests/feat/featprism/R6 @@ -1,5 +1,15 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE_osa_sgad.rle] a restore [locate_data_file osa-contour] b + +sfixpcu a a -f +sfixpcu b b -f + +checkshape a +checkshape b + mkplane f b featprism a f f 1 0 0 0 1 diff --git a/tests/feat/featrevol/B7 b/tests/feat/featrevol/B7 index 49bfbc3f54..cec7b7b70e 100644 --- a/tests/feat/featrevol/B7 +++ b/tests/feat/featrevol/B7 @@ -1,9 +1,18 @@ # Original bug : pro16290 # Date : 12 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] base restore [locate_data_file pro16290_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_7 funtil diff --git a/tests/feat/featrevol/B8 b/tests/feat/featrevol/B8 index 528dcff036..7127ead35c 100644 --- a/tests/feat/featrevol/B8 +++ b/tests/feat/featrevol/B8 @@ -1,9 +1,18 @@ # Original bug : pro16290 # Date : 12 Nov 98 +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] base restore [locate_data_file pro16290_face.rle] cont +sfixpcu base base -f +sfixpcu cont cont -f + +checkshape base +checkshape cont + explode base face copy base_7 funtil copy base_7 skface diff --git a/tests/heal/data/advanced/B6 b/tests/heal/data/advanced/B6 index d81cc62a52..9cc95a01ba 100644 --- a/tests/heal/data/advanced/B6 +++ b/tests/heal/data/advanced/B6 @@ -1,2 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a +fixshape a a +checkshape a diff --git a/tests/heal/data/advanced/B8 b/tests/heal/data/advanced/B8 index dac9331b25..8147476937 100644 --- a/tests/heal/data/advanced/B8 +++ b/tests/heal/data/advanced/B8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a +fixshape a a +checkshape a diff --git a/tests/heal/data/advanced/G1 b/tests/heal/data/advanced/G1 index d5f4b49b55..e8a13e4e12 100644 --- a/tests/heal/data/advanced/G1 +++ b/tests/heal/data/advanced/G1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/G8 b/tests/heal/data/advanced/G8 index 334b5c304e..9288611710 100644 --- a/tests/heal/data/advanced/G8 +++ b/tests/heal/data/advanced/G8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file ger60054a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/G9 b/tests/heal/data/advanced/G9 index 47fd996896..14f1d65d2e 100644 --- a/tests/heal/data/advanced/G9 +++ b/tests/heal/data/advanced/G9 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_ger60065-part.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_ger60065-part.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/H4 b/tests/heal/data/advanced/H4 index 54b6b1abdf..56c2e93249 100644 --- a/tests/heal/data/advanced/H4 +++ b/tests/heal/data/advanced/H4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/H5 b/tests/heal/data/advanced/H5 index 7f326ece13..efdbdaffd9 100644 --- a/tests/heal/data/advanced/H5 +++ b/tests/heal/data/advanced/H5 @@ -4,6 +4,11 @@ if {[string compare $command "ShapeConvertRev"] == 0 } { if {[string compare $command "SplitAngle"] == 0 } { puts "TODO OCC23127 ALL: Faulty shapes in variables faulty_1 to faulty_9 " } + +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/H9 b/tests/heal/data/advanced/H9 index e6a48fb4c9..d12236df55 100644 --- a/tests/heal/data/advanced/H9 +++ b/tests/heal/data/advanced/H9 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_pro10505b.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro10505b.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/I4 b/tests/heal/data/advanced/I4 index f1d220d48d..5ca3861ac9 100644 --- a/tests/heal/data/advanced/I4 +++ b/tests/heal/data/advanced/I4 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO900_pro12663-part.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro12663-part.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/I5 b/tests/heal/data/advanced/I5 index b8a62e96b2..e13149118f 100644 --- a/tests/heal/data/advanced/I5 +++ b/tests/heal/data/advanced/I5 @@ -1,2 +1,6 @@ -restore [locate_data_file CTO900_pro12663-tool.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO900_pro12663-tool.rle] a +sfixpcu a a -f +checkshape a \ No newline at end of file diff --git a/tests/heal/data/advanced/J6 b/tests/heal/data/advanced/J6 index 29a830c514..95b60d0362 100644 --- a/tests/heal/data/advanced/J6 +++ b/tests/heal/data/advanced/J6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K1 b/tests/heal/data/advanced/K1 index eead01e85f..89124f9cd1 100644 --- a/tests/heal/data/advanced/K1 +++ b/tests/heal/data/advanced/K1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K5 b/tests/heal/data/advanced/K5 index 85498e0e51..634d4b6b90 100644 --- a/tests/heal/data/advanced/K5 +++ b/tests/heal/data/advanced/K5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/K8 b/tests/heal/data/advanced/K8 index 29c5e88d5d..22eeb18b63 100644 --- a/tests/heal/data/advanced/K8 +++ b/tests/heal/data/advanced/K8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L3 b/tests/heal/data/advanced/L3 index 3a034a1665..9629f2327b 100644 --- a/tests/heal/data/advanced/L3 +++ b/tests/heal/data/advanced/L3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L5 b/tests/heal/data/advanced/L5 index 643fab3f64..62fde92e18 100644 --- a/tests/heal/data/advanced/L5 +++ b/tests/heal/data/advanced/L5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L6 b/tests/heal/data/advanced/L6 index be15fdadc8..a1a523f352 100644 --- a/tests/heal/data/advanced/L6 +++ b/tests/heal/data/advanced/L6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L8 b/tests/heal/data/advanced/L8 index 3bae218670..7bf21e58d3 100644 --- a/tests/heal/data/advanced/L8 +++ b/tests/heal/data/advanced/L8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21200a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/L9 b/tests/heal/data/advanced/L9 index 44ada1bc32..eb63450040 100644 --- a/tests/heal/data/advanced/L9 +++ b/tests/heal/data/advanced/L9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M1 b/tests/heal/data/advanced/M1 index 7f9fd8f4e5..a70cc818f8 100644 --- a/tests/heal/data/advanced/M1 +++ b/tests/heal/data/advanced/M1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M5 b/tests/heal/data/advanced/M5 index e3aab5ca7e..86b17d6468 100644 --- a/tests/heal/data/advanced/M5 +++ b/tests/heal/data/advanced/M5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M6 b/tests/heal/data/advanced/M6 index 4c6700ab66..bdb280ee31 100644 --- a/tests/heal/data/advanced/M6 +++ b/tests/heal/data/advanced/M6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/M7 b/tests/heal/data/advanced/M7 index b13bd89f4f..d05841230a 100644 --- a/tests/heal/data/advanced/M7 +++ b/tests/heal/data/advanced/M7 @@ -1,2 +1,5 @@ -restore [locate_data_file CTO904_fra61199a.rle] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file CTO904_fra61199a.rle] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/N1 b/tests/heal/data/advanced/N1 index 6ec1bc79b5..deae14f0e2 100644 --- a/tests/heal/data/advanced/N1 +++ b/tests/heal/data/advanced/N1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N3 b/tests/heal/data/advanced/N3 index 087ecd6b9a..692cfc080c 100644 --- a/tests/heal/data/advanced/N3 +++ b/tests/heal/data/advanced/N3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13494a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N4 b/tests/heal/data/advanced/N4 index fac15258ef..a1a392271f 100644 --- a/tests/heal/data/advanced/N4 +++ b/tests/heal/data/advanced/N4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N6 b/tests/heal/data/advanced/N6 index 1159ffa1ac..fe7c8ffc31 100644 --- a/tests/heal/data/advanced/N6 +++ b/tests/heal/data/advanced/N6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/N7 b/tests/heal/data/advanced/N7 index b67891fc62..a7229f2000 100644 --- a/tests/heal/data/advanced/N7 +++ b/tests/heal/data/advanced/N7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro13555b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/S6 b/tests/heal/data/advanced/S6 index 393353fe28..ebd05fe6eb 100644 --- a/tests/heal/data/advanced/S6 +++ b/tests/heal/data/advanced/S6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20461.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/advanced/U2 b/tests/heal/data/advanced/U2 index bae6d4a67f..9d595554a7 100644 --- a/tests/heal/data/advanced/U2 +++ b/tests/heal/data/advanced/U2 @@ -1,2 +1,8 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] a +sfixpcu a a -f +checkshape a + diff --git a/tests/heal/data/advanced/ZF1 b/tests/heal/data/advanced/ZF1 index fddef1abbb..72717ec518 100644 --- a/tests/heal/data/advanced/ZF1 +++ b/tests/heal/data/advanced/ZF1 @@ -1,3 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + if {[string compare $command "SplitAngle"] == 0 } { set os "ALL" if {[array get env os_type] != ""} { @@ -14,3 +17,4 @@ if {[string compare $command "SplitAngle"] == 0 } { restore [locate_data_file cd.brep] a +sfixpcu a a -f \ No newline at end of file diff --git a/tests/heal/data/advanced/ZF2 b/tests/heal/data/advanced/ZF2 index 4d1cb5c72b..da90c59d0f 100644 --- a/tests/heal/data/advanced/ZF2 +++ b/tests/heal/data/advanced/ZF2 @@ -1,3 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + if {[string compare $command "SplitAngle"] == 0 } { set os "ALL" if {[array get env os_type] != ""} { @@ -14,3 +17,4 @@ if {[string compare $command "SplitAngle"] == 0 } { restore [locate_data_file cg.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/ZF7 b/tests/heal/data/advanced/ZF7 index 349893a696..a3952b07c0 100644 --- a/tests/heal/data/advanced/ZF7 +++ b/tests/heal/data/advanced/ZF7 @@ -1,2 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pd.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/advanced/ZF8 b/tests/heal/data/advanced/ZF8 index c0e3420db7..e50010a14e 100644 --- a/tests/heal/data/advanced/ZF8 +++ b/tests/heal/data/advanced/ZF8 @@ -1,2 +1,5 @@ -restore [locate_data_file pg.brep] a +# for "sfixpcu" command +pload XSDRAW +restore [locate_data_file pg.brep] a +sfixpcu a a -f diff --git a/tests/heal/data/standard/F3 b/tests/heal/data/standard/F3 index 29dcccd1d0..067625c56b 100644 --- a/tests/heal/data/standard/F3 +++ b/tests/heal/data/standard/F3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I1 b/tests/heal/data/standard/I1 index b5235cca24..d66038834a 100644 --- a/tests/heal/data/standard/I1 +++ b/tests/heal/data/standard/I1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I5 b/tests/heal/data/standard/I5 index 64893d370a..ec4eb1ab7c 100644 --- a/tests/heal/data/standard/I5 +++ b/tests/heal/data/standard/I5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/I9 b/tests/heal/data/standard/I9 index 51dad41514..1fdd74478e 100644 --- a/tests/heal/data/standard/I9 +++ b/tests/heal/data/standard/I9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/J4 b/tests/heal/data/standard/J4 index 84147ad487..b723a2f64b 100644 --- a/tests/heal/data/standard/J4 +++ b/tests/heal/data/standard/J4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/J9 b/tests/heal/data/standard/J9 index adb4356107..d7addf13f2 100644 --- a/tests/heal/data/standard/J9 +++ b/tests/heal/data/standard/J9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts60005b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K6 b/tests/heal/data/standard/K6 index ed3ba5bbcc..2e64de7807 100644 --- a/tests/heal/data/standard/K6 +++ b/tests/heal/data/standard/K6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K7 b/tests/heal/data/standard/K7 index 44adca40b6..027117f943 100644 --- a/tests/heal/data/standard/K7 +++ b/tests/heal/data/standard/K7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K8 b/tests/heal/data/standard/K8 index ef2fe293ec..c30e4ca606 100644 --- a/tests/heal/data/standard/K8 +++ b/tests/heal/data/standard/K8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/K9 b/tests/heal/data/standard/K9 index 9c38c227a1..36bdccaccb 100644 --- a/tests/heal/data/standard/K9 +++ b/tests/heal/data/standard/K9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M2 b/tests/heal/data/standard/M2 index d69615ef23..b4ea48d7ca 100644 --- a/tests/heal/data/standard/M2 +++ b/tests/heal/data/standard/M2 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M3 b/tests/heal/data/standard/M3 index eea0254842..2d352c2678 100644 --- a/tests/heal/data/standard/M3 +++ b/tests/heal/data/standard/M3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/M8 b/tests/heal/data/standard/M8 index a5bf94398c..f69af51095 100644 --- a/tests/heal/data/standard/M8 +++ b/tests/heal/data/standard/M8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/N1 b/tests/heal/data/standard/N1 index f935c1e3d4..b4a129b2b4 100644 --- a/tests/heal/data/standard/N1 +++ b/tests/heal/data/standard/N1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/P1 b/tests/heal/data/standard/P1 index 79d5ad224a..276b82303f 100644 --- a/tests/heal/data/standard/P1 +++ b/tests/heal/data/standard/P1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/R5 b/tests/heal/data/standard/R5 index 57b3955c3d..1a85b5f7b3 100644 --- a/tests/heal/data/standard/R5 +++ b/tests/heal/data/standard/R5 @@ -4,5 +4,12 @@ if { [string compare $command "ShapeConvertRev"] == 0 } { if {[string compare $command "SplitAngle"] == 0 } { puts "TODO OCC23127 ALL: Faulty shapes in variables faulty_1 to faulty_4 " } + +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_pro5363c.rle] a +fixshape a a +checkshape a + diff --git a/tests/heal/data/standard/T9 b/tests/heal/data/standard/T9 index 68bfb4c7d9..055b521700 100644 --- a/tests/heal/data/standard/T9 +++ b/tests/heal/data/standard/T9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro7637c_prism_oblong_dsg.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/U6 b/tests/heal/data/standard/U6 index 15c6a5d05f..0e8eb3a797 100644 --- a/tests/heal/data/standard/U6 +++ b/tests/heal/data/standard/U6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V5 b/tests/heal/data/standard/V5 index cdd219272f..829ae4f211 100644 --- a/tests/heal/data/standard/V5 +++ b/tests/heal/data/standard/V5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_outil.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V6 b/tests/heal/data/standard/V6 index 81e7f4ed10..42ae71e39d 100644 --- a/tests/heal/data/standard/V6 +++ b/tests/heal/data/standard/V6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/V7 b/tests/heal/data/standard/V7 index aafb36e3b4..611ce11f3c 100644 --- a/tests/heal/data/standard/V7 +++ b/tests/heal/data/standard/V7 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_outil.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/X8 b/tests/heal/data/standard/X8 index 7a6e6a177d..239b58e9ab 100644 --- a/tests/heal/data/standard/X8 +++ b/tests/heal/data/standard/X8 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/Y5 b/tests/heal/data/standard/Y5 index 363a105529..aa0c85544d 100644 --- a/tests/heal/data/standard/Y5 +++ b/tests/heal/data/standard/Y5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/Z5 b/tests/heal/data/standard/Z5 index 6922d37866..25860c5c9d 100644 --- a/tests/heal/data/standard/Z5 +++ b/tests/heal/data/standard/Z5 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZB6 b/tests/heal/data/standard/ZB6 index 8187c6253d..228af23942 100644 --- a/tests/heal/data/standard/ZB6 +++ b/tests/heal/data/standard/ZB6 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZD1 b/tests/heal/data/standard/ZD1 index bf96d7220f..af483e62a3 100644 --- a/tests/heal/data/standard/ZD1 +++ b/tests/heal/data/standard/ZD1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZD3 b/tests/heal/data/standard/ZD3 index 7d4b41c996..6c0bbf5b92 100644 --- a/tests/heal/data/standard/ZD3 +++ b/tests/heal/data/standard/ZD3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZF4 b/tests/heal/data/standard/ZF4 index 9e0707727a..1da0255554 100644 --- a/tests/heal/data/standard/ZF4 +++ b/tests/heal/data/standard/ZF4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20551-tool.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZI1 b/tests/heal/data/standard/ZI1 index bc61a7ccb6..d3a4f6c9e5 100644 --- a/tests/heal/data/standard/ZI1 +++ b/tests/heal/data/standard/ZI1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZM4 b/tests/heal/data/standard/ZM4 index 95f3c49450..d33e068177 100644 --- a/tests/heal/data/standard/ZM4 +++ b/tests/heal/data/standard/ZM4 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts21208b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZQ2 b/tests/heal/data/standard/ZQ2 index c7fa83017b..075a1dca58 100644 --- a/tests/heal/data/standard/ZQ2 +++ b/tests/heal/data/standard/ZQ2 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZR9 b/tests/heal/data/standard/ZR9 index 6ea622fa38..a2058f3a03 100644 --- a/tests/heal/data/standard/ZR9 +++ b/tests/heal/data/standard/ZR9 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro12956b.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZS1 b/tests/heal/data/standard/ZS1 index b5c9268a7a..e11378fc4f 100644 --- a/tests/heal/data/standard/ZS1 +++ b/tests/heal/data/standard/ZS1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZT1 b/tests/heal/data/standard/ZT1 index dd42e80c0a..6ecdb08737 100644 --- a/tests/heal/data/standard/ZT1 +++ b/tests/heal/data/standard/ZT1 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file pro14892a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/data/standard/ZT3 b/tests/heal/data/standard/ZT3 index ad8c3b0168..2d90a8a225 100644 --- a/tests/heal/data/standard/ZT3 +++ b/tests/heal/data/standard/ZT3 @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/heal/direct_faces/A3 b/tests/heal/direct_faces/A3 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/direct_faces/A3 +++ b/tests/heal/direct_faces/A3 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/direct_faces/A9 b/tests/heal/direct_faces/A9 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/direct_faces/A9 +++ b/tests/heal/direct_faces/A9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/drop_small_edges/A1 b/tests/heal/drop_small_edges/A1 index dfa064dcc2..c460548a5b 100644 --- a/tests/heal/drop_small_edges/A1 +++ b/tests/heal/drop_small_edges/A1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/fix_face_size/end b/tests/heal/fix_face_size/end index 26b85aef23..642a237c1a 100644 --- a/tests/heal/fix_face_size/end +++ b/tests/heal/fix_face_size/end @@ -1,2 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + puts [DT_ApplySeq result a MDTV ToV4] +sfixpcu result result -f puts [checkshape result] diff --git a/tests/heal/fix_gaps/end b/tests/heal/fix_gaps/end index f02df9b4bc..bd67c4a78e 100644 --- a/tests/heal/fix_gaps/end +++ b/tests/heal/fix_gaps/end @@ -1,2 +1,6 @@ +# for "fixshape" command +pload XSDRAW + fixwgaps result a 0.001 +sfixpcu result result -f puts [checkshape result] diff --git a/tests/heal/fix_shape/end b/tests/heal/fix_shape/end index b17db0351a..87ef36b9f8 100644 --- a/tests/heal/fix_shape/end +++ b/tests/heal/fix_shape/end @@ -1,2 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + puts [fixshape result a 0.001 0.005] +sfixpcu result result -f + puts [checkshape result] diff --git a/tests/heal/same_parameter/A1 b/tests/heal/same_parameter/A1 index 59747f9eec..51c597f279 100644 --- a/tests/heal/same_parameter/A1 +++ b/tests/heal/same_parameter/A1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_ger60ggw.rle] result + +sfixpcu result result -f diff --git a/tests/heal/split_angle/A5 b/tests/heal/split_angle/A5 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/split_angle/A5 +++ b/tests/heal/split_angle/A5 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/split_angle/A9 b/tests/heal/split_angle/A9 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/split_angle/A9 +++ b/tests/heal/split_angle/A9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/B9 b/tests/heal/split_angle/B9 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/split_angle/B9 +++ b/tests/heal/split_angle/B9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E3 b/tests/heal/split_angle/E3 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_angle/E3 +++ b/tests/heal/split_angle/E3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E4 b/tests/heal/split_angle/E4 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/split_angle/E4 +++ b/tests/heal/split_angle/E4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_angle/E5 b/tests/heal/split_angle/E5 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/split_angle/E5 +++ b/tests/heal/split_angle/E5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/A1 b/tests/heal/split_closed_faces/A1 index f6eca858f5..23c991e1c3 100644 --- a/tests/heal/split_closed_faces/A1 +++ b/tests/heal/split_closed_faces/A1 @@ -1 +1,2 @@ restore [locate_data_file aaa.rle] a +checkshape a diff --git a/tests/heal/split_closed_faces/A9 b/tests/heal/split_closed_faces/A9 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/split_closed_faces/A9 +++ b/tests/heal/split_closed_faces/A9 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/split_closed_faces/B4 b/tests/heal/split_closed_faces/B4 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/split_closed_faces/B4 +++ b/tests/heal/split_closed_faces/B4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/C4 b/tests/heal/split_closed_faces/C4 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/split_closed_faces/C4 +++ b/tests/heal/split_closed_faces/C4 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D5 b/tests/heal/split_closed_faces/D5 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_closed_faces/D5 +++ b/tests/heal/split_closed_faces/D5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D6 b/tests/heal/split_closed_faces/D6 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/split_closed_faces/D6 +++ b/tests/heal/split_closed_faces/D6 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_closed_faces/D7 b/tests/heal/split_closed_faces/D7 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/split_closed_faces/D7 +++ b/tests/heal/split_closed_faces/D7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_continuity/A4 b/tests/heal/split_continuity/A4 index ba59400f6c..723a6d07a3 100644 --- a/tests/heal/split_continuity/A4 +++ b/tests/heal/split_continuity/A4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/B2 b/tests/heal/split_continuity/B2 index b39d73e313..c181638d71 100644 --- a/tests/heal/split_continuity/B2 +++ b/tests/heal/split_continuity/B2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/C1 b/tests/heal/split_continuity/C1 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/split_continuity/C1 +++ b/tests/heal/split_continuity/C1 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/split_continuity/C3 b/tests/heal/split_continuity/C3 index 18dbcff20e..9a9a6e20da 100644 --- a/tests/heal/split_continuity/C3 +++ b/tests/heal/split_continuity/C3 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a + +sfixpcu a a -f diff --git a/tests/heal/split_continuity/C8 b/tests/heal/split_continuity/C8 index becbc0d3a2..0e8eb3a797 100644 --- a/tests/heal/split_continuity/C8 +++ b/tests/heal/split_continuity/C8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/D1 b/tests/heal/split_continuity/D1 index fa408efdf8..9629f2327b 100644 --- a/tests/heal/split_continuity/D1 +++ b/tests/heal/split_continuity/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/split_continuity/D2 b/tests/heal/split_continuity/D2 index a38afd788b..86b17d6468 100644 --- a/tests/heal/split_continuity/D2 +++ b/tests/heal/split_continuity/D2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/B3 b/tests/heal/surface_to_bezier/B3 index ba59400f6c..723a6d07a3 100644 --- a/tests/heal/surface_to_bezier/B3 +++ b/tests/heal/surface_to_bezier/B3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/D1 b/tests/heal/surface_to_bezier/D1 index 9897b4f9f7..637c5d3a9c 100644 --- a/tests/heal/surface_to_bezier/D1 +++ b/tests/heal/surface_to_bezier/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/heal/surface_to_bezier/E3 b/tests/heal/surface_to_bezier/E3 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/surface_to_bezier/E3 +++ b/tests/heal/surface_to_bezier/E3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/B1 b/tests/heal/surface_to_bspline/B1 index eec5e0c3c3..5882d4698c 100644 --- a/tests/heal/surface_to_bspline/B1 +++ b/tests/heal/surface_to_bspline/B1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f diff --git a/tests/heal/surface_to_bspline/B5 b/tests/heal/surface_to_bspline/B5 index 8141ff8ae0..54728a3afe 100644 --- a/tests/heal/surface_to_bspline/B5 +++ b/tests/heal/surface_to_bspline/B5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/C5 b/tests/heal/surface_to_bspline/C5 index 4b4421c99e..2689a5105a 100644 --- a/tests/heal/surface_to_bspline/C5 +++ b/tests/heal/surface_to_bspline/C5 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/C7 b/tests/heal/surface_to_bspline/C7 index 85817a2321..7ce7ba6f3c 100644 --- a/tests/heal/surface_to_bspline/C7 +++ b/tests/heal/surface_to_bspline/C7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CHE_cc4.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D6 b/tests/heal/surface_to_bspline/D6 index 3a56303df6..b5b908915d 100644 --- a/tests/heal/surface_to_bspline/D6 +++ b/tests/heal/surface_to_bspline/D6 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D7 b/tests/heal/surface_to_bspline/D7 index 37a1ea83d0..fba9dd2cfb 100644 --- a/tests/heal/surface_to_bspline/D7 +++ b/tests/heal/surface_to_bspline/D7 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18683.rle] a + +fixshape a a +checkshape a diff --git a/tests/heal/surface_to_bspline/D8 b/tests/heal/surface_to_bspline/D8 index de2a8d1dd9..9cc95a01ba 100644 --- a/tests/heal/surface_to_bspline/D8 +++ b/tests/heal/surface_to_bspline/D8 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTS18826.rle] a + +fixshape a a +checkshape a diff --git a/tests/offset/faces_type_a/A1 b/tests/offset/faces_type_a/A1 index 13ee3b2de0..e27bfcb4ed 100644 --- a/tests/offset/faces_type_a/A1 +++ b/tests/offset/faces_type_a/A1 @@ -1,6 +1,12 @@ #old file filtercb +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CHE_filter.rle] s +sfixpcu s s -f +checkshape s + OFFSETSHAPE -.0015 {s_26 s_27 s_28 s_29} $calcul $type set volume 6.38048e-05 diff --git a/tests/sewing/tol_0_01/K8 b/tests/sewing/tol_0_01/K8 index e485d55842..ae34dbd06c 100644 --- a/tests/sewing/tol_0_01/K8 +++ b/tests/sewing/tol_0_01/K8 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CDA900_pro10142.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L1 b/tests/sewing/tol_0_01/L1 index 41bceda462..81fa10f4c3 100644 --- a/tests/sewing/tol_0_01/L1 +++ b/tests/sewing/tol_0_01/L1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20gaj.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L3 b/tests/sewing/tol_0_01/L3 index c61a85d989..3be328cf90 100644 --- a/tests/sewing/tol_0_01/L3 +++ b/tests/sewing/tol_0_01/L3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file cts20170_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/L8 b/tests/sewing/tol_0_01/L8 index 245f9f17bc..276b82303f 100644 --- a/tests/sewing/tol_0_01/L8 +++ b/tests/sewing/tol_0_01/L8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro11828-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/P2 b/tests/sewing/tol_0_01/P2 index ba59400f6c..723a6d07a3 100644 --- a/tests/sewing/tol_0_01/P2 +++ b/tests/sewing/tol_0_01/P2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_cts20geq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/R3 b/tests/sewing/tol_0_01/R3 index cf06abb26b..067625c56b 100644 --- a/tests/sewing/tol_0_01/R3 +++ b/tests/sewing/tol_0_01/R3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts16184a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/S2 b/tests/sewing/tol_0_01/S2 index b5c6168409..e8a13e4e12 100644 --- a/tests/sewing/tol_0_01/S2 +++ b/tests/sewing/tol_0_01/S2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts19305-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/T9 b/tests/sewing/tol_0_01/T9 index eec5e0c3c3..ec6d62aafc 100644 --- a/tests/sewing/tol_0_01/T9 +++ b/tests/sewing/tol_0_01/T9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE901_cts21gft.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/U5 b/tests/sewing/tol_0_01/U5 index b66afebba0..f69af51095 100644 --- a/tests/sewing/tol_0_01/U5 +++ b/tests/sewing/tol_0_01/U5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_jap60038-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/U8 b/tests/sewing/tol_0_01/U8 index 877acd65f6..b4a129b2b4 100644 --- a/tests/sewing/tol_0_01/U8 +++ b/tests/sewing/tol_0_01/U8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ksi0014a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V1 b/tests/sewing/tol_0_01/V1 index d6d8d84112..136032ed63 100644 --- a/tests/sewing/tol_0_01/V1 +++ b/tests/sewing/tol_0_01/V1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts20ghb.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V2 b/tests/sewing/tol_0_01/V2 index f0aa4156ea..7a3510f05d 100644 --- a/tests/sewing/tol_0_01/V2 +++ b/tests/sewing/tol_0_01/V2 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_cts21ggr.rle] a +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/V6 b/tests/sewing/tol_0_01/V6 index c54aa6e648..fba052c3fa 100644 --- a/tests/sewing/tol_0_01/V6 +++ b/tests/sewing/tol_0_01/V6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_ger60ggw.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_0_01/W2 b/tests/sewing/tol_0_01/W2 index 7ff8b79661..9d3f946c9a 100644 --- a/tests/sewing/tol_0_01/W2 +++ b/tests/sewing/tol_0_01/W2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE903_pro16gha.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/B5 b/tests/sewing/tol_1/B5 index 5990035b99..8436ba83fc 100644 --- a/tests/sewing/tol_1/B5 +++ b/tests/sewing/tol_1/B5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE900_pro16gdq.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D1 b/tests/sewing/tol_1/D1 index 04ae245b24..239b58e9ab 100644 --- a/tests/sewing/tol_1/D1 +++ b/tests/sewing/tol_1/D1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20452b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D2 b/tests/sewing/tol_1/D2 index 14a1b1fb7b..2d90a8a225 100644 --- a/tests/sewing/tol_1/D2 +++ b/tests/sewing/tol_1/D2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro14893a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/D6 b/tests/sewing/tol_1/D6 index 547d235c28..aa0c85544d 100644 --- a/tests/sewing/tol_1/D6 +++ b/tests/sewing/tol_1/D6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20455-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/E2 b/tests/sewing/tol_1/E2 index 7740634220..bcdb0bef5f 100644 --- a/tests/sewing/tol_1/E2 +++ b/tests/sewing/tol_1/E2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFE_osa_sgad.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/J9 b/tests/sewing/tol_1/J9 index 8141ff8ae0..54728a3afe 100644 --- a/tests/sewing/tol_1/J9 +++ b/tests/sewing/tol_1/J9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjb.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_1/K1 b/tests/sewing/tol_1/K1 index f1c634b7ee..b65121f46b 100644 --- a/tests/sewing/tol_1/K1 +++ b/tests/sewing/tol_1/K1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_cfi90fjc.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/N7 b/tests/sewing/tol_1/N7 index 9897b4f9f7..637c5d3a9c 100644 --- a/tests/sewing/tol_1/N7 +++ b/tests/sewing/tol_1/N7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro10117.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/O6 b/tests/sewing/tol_1/O6 index 403194583b..e5b6880069 100644 --- a/tests/sewing/tol_1/O6 +++ b/tests/sewing/tol_1/O6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro11850.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/P8 b/tests/sewing/tol_1/P8 index b39d73e313..c181638d71 100644 --- a/tests/sewing/tol_1/P8 +++ b/tests/sewing/tol_1/P8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro5545.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/P9 b/tests/sewing/tol_1/P9 index 4b4421c99e..2689a5105a 100644 --- a/tests/sewing/tol_1/P9 +++ b/tests/sewing/tol_1/P9 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CFI_pro5807.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_1/Q4 b/tests/sewing/tol_1/Q4 index 8f797d6115..25860c5c9d 100644 --- a/tests/sewing/tol_1/Q4 +++ b/tests/sewing/tol_1/Q4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20459-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q5 b/tests/sewing/tol_1/Q5 index 5fba89429d..9f35434c97 100644 --- a/tests/sewing/tol_1/Q5 +++ b/tests/sewing/tol_1/Q5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro6944.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q6 b/tests/sewing/tol_1/Q6 index a5cf807bed..ef0851331e 100644 --- a/tests/sewing/tol_1/Q6 +++ b/tests/sewing/tol_1/Q6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8783.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Q7 b/tests/sewing/tol_1/Q7 index 97773f234e..c055357a32 100644 --- a/tests/sewing/tol_1/Q7 +++ b/tests/sewing/tol_1/Q7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CFI_pro8792.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/U2 b/tests/sewing/tol_1/U2 index 7a93af3e24..228af23942 100644 --- a/tests/sewing/tol_1/U2 +++ b/tests/sewing/tol_1/U2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20489-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/V4 b/tests/sewing/tol_1/V4 index 02e03b7d0a..af483e62a3 100644 --- a/tests/sewing/tol_1/V4 +++ b/tests/sewing/tol_1/V4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20498-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/V7 b/tests/sewing/tol_1/V7 index 43aecd596a..6c0bbf5b92 100644 --- a/tests/sewing/tol_1/V7 +++ b/tests/sewing/tol_1/V7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO902_cts20503-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/X6 b/tests/sewing/tol_1/X6 index c67082ec99..1e5ea3f764 100644 --- a/tests/sewing/tol_1/X6 +++ b/tests/sewing/tol_1/X6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts20hlh.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_1/Y4 b/tests/sewing/tol_1/Y4 index 7c5e425520..60be48fdb0 100644 --- a/tests/sewing/tol_1/Y4 +++ b/tests/sewing/tol_1/Y4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CIN900_cts21hlr.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/F1 b/tests/sewing/tol_100/F1 index 5d9ae65753..bdb280ee31 100644 --- a/tests/sewing/tol_100/F1 +++ b/tests/sewing/tol_100/F1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_fra60275a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/F6 b/tests/sewing/tol_100/F6 index a976796de3..e11378fc4f 100644 --- a/tests/sewing/tol_100/F6 +++ b/tests/sewing/tol_100/F6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13075a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/H1 b/tests/sewing/tol_100/H1 index 3a401f6866..4d715fa6a1 100644 --- a/tests/sewing/tol_100/H1 +++ b/tests/sewing/tol_100/H1 @@ -1,2 +1,8 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CHE_filter.rle] a +sfixpcu a a -f +checkshape a + set nb_f 16 diff --git a/tests/sewing/tol_100/H4 b/tests/sewing/tol_100/H4 index 3776524c89..22eeb18b63 100644 --- a/tests/sewing/tol_100/H4 +++ b/tests/sewing/tol_100/H4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20907a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/I1 b/tests/sewing/tol_100/I1 index fa408efdf8..9629f2327b 100644 --- a/tests/sewing/tol_100/I1 +++ b/tests/sewing/tol_100/I1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20960a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/I7 b/tests/sewing/tol_100/I7 index 1c3216d2f1..62fde92e18 100644 --- a/tests/sewing/tol_100/I7 +++ b/tests/sewing/tol_100/I7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20974b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/J7 b/tests/sewing/tol_100/J7 index 778808b60e..a1a523f352 100644 --- a/tests/sewing/tol_100/J7 +++ b/tests/sewing/tol_100/J7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21124a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/J9 b/tests/sewing/tol_100/J9 index b4052b52bc..eb63450040 100644 --- a/tests/sewing/tol_100/J9 +++ b/tests/sewing/tol_100/J9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21208a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/K9 b/tests/sewing/tol_100/K9 index 08fadfd50c..a70cc818f8 100644 --- a/tests/sewing/tol_100/K9 +++ b/tests/sewing/tol_100/K9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21210a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/L6 b/tests/sewing/tol_100/L6 index c27faf3d86..d66038834a 100644 --- a/tests/sewing/tol_100/L6 +++ b/tests/sewing/tol_100/L6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20374-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/L9 b/tests/sewing/tol_100/L9 index 37f59f928f..ec4eb1ab7c 100644 --- a/tests/sewing/tol_100/L9 +++ b/tests/sewing/tol_100/L9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts20736a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M1 b/tests/sewing/tol_100/M1 index 203d8fd8ae..a1a392271f 100644 --- a/tests/sewing/tol_100/M1 +++ b/tests/sewing/tol_100/M1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13495a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M2 b/tests/sewing/tol_100/M2 index 7df324a2ae..1fdd74478e 100644 --- a/tests/sewing/tol_100/M2 +++ b/tests/sewing/tol_100/M2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21180c.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/M5 b/tests/sewing/tol_100/M5 index 8d53a0b8c7..b723a2f64b 100644 --- a/tests/sewing/tol_100/M5 +++ b/tests/sewing/tol_100/M5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts21453a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/N2 b/tests/sewing/tol_100/N2 index 6259b2b6bd..d7addf13f2 100644 --- a/tests/sewing/tol_100/N2 +++ b/tests/sewing/tol_100/N2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_cts60005b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/N9 b/tests/sewing/tol_100/N9 index da7f411993..2e64de7807 100644 --- a/tests/sewing/tol_100/N9 +++ b/tests/sewing/tol_100/N9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O1 b/tests/sewing/tol_100/O1 index c98674f63e..027117f943 100644 --- a/tests/sewing/tol_100/O1 +++ b/tests/sewing/tol_100/O1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60656-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O2 b/tests/sewing/tol_100/O2 index c79e72c7ea..c30e4ca606 100644 --- a/tests/sewing/tol_100/O2 +++ b/tests/sewing/tol_100/O2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-part.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/O3 b/tests/sewing/tol_100/O3 index 9c8ef2b19b..36bdccaccb 100644 --- a/tests/sewing/tol_100/O3 +++ b/tests/sewing/tol_100/O3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_fra60810-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P2 b/tests/sewing/tol_100/P2 index b75002a737..b4ea48d7ca 100644 --- a/tests/sewing/tol_100/P2 +++ b/tests/sewing/tol_100/P2 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60043-tool.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P3 b/tests/sewing/tol_100/P3 index 3a56303df6..b5b908915d 100644 --- a/tests/sewing/tol_100/P3 +++ b/tests/sewing/tol_100/P3 @@ -1 +1,7 @@ +# for "fixshape" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054a.rle] a + +fixshape a a +checkshape a diff --git a/tests/sewing/tol_100/P4 b/tests/sewing/tol_100/P4 index 7d3a8de262..2d352c2678 100644 --- a/tests/sewing/tol_100/P4 +++ b/tests/sewing/tol_100/P4 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60054b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/P9 b/tests/sewing/tol_100/P9 index ccf8cd0431..56c2e93249 100644 --- a/tests/sewing/tol_100/P9 +++ b/tests/sewing/tol_100/P9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60239b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Q1 b/tests/sewing/tol_100/Q1 index 18dbcff20e..9a9a6e20da 100644 --- a/tests/sewing/tol_100/Q1 +++ b/tests/sewing/tol_100/Q1 @@ -1 +1,6 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_ger60598c.rle] a + +sfixpcu a a -f diff --git a/tests/sewing/tol_100/S9 b/tests/sewing/tol_100/S9 index 4ade6718a9..055b521700 100644 --- a/tests/sewing/tol_100/S9 +++ b/tests/sewing/tol_100/S9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro7637c_prism_oblong_dsg.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/T5 b/tests/sewing/tol_100/T5 index becbc0d3a2..0e8eb3a797 100644 --- a/tests/sewing/tol_100/T5 +++ b/tests/sewing/tol_100/T5 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/T6 b/tests/sewing/tol_100/T6 index 0592537508..95b60d0362 100644 --- a/tests/sewing/tol_100/T6 +++ b/tests/sewing/tol_100/T6 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO900_pro8934b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U7 b/tests/sewing/tol_100/U7 index 38a1a82316..89124f9cd1 100644 --- a/tests/sewing/tol_100/U7 +++ b/tests/sewing/tol_100/U7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U8 b/tests/sewing/tol_100/U8 index bd74df0eaa..829ae4f211 100644 --- a/tests/sewing/tol_100/U8 +++ b/tests/sewing/tol_100/U8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20150_outil.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/U9 b/tests/sewing/tol_100/U9 index 9781fff712..42ae71e39d 100644 --- a/tests/sewing/tol_100/U9 +++ b/tests/sewing/tol_100/U9 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_base.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/V1 b/tests/sewing/tol_100/V1 index 0401c96e04..611ce11f3c 100644 --- a/tests/sewing/tol_100/V1 +++ b/tests/sewing/tol_100/V1 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO901_cts20171_outil.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/W7 b/tests/sewing/tol_100/W7 index bb7c99db3d..634d4b6b90 100644 --- a/tests/sewing/tol_100/W7 +++ b/tests/sewing/tol_100/W7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/W8 b/tests/sewing/tol_100/W8 index 0873c0bf9f..d3a4f6c9e5 100644 --- a/tests/sewing/tol_100/W8 +++ b/tests/sewing/tol_100/W8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts20280b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/X3 b/tests/sewing/tol_100/X3 index a38afd788b..86b17d6468 100644 --- a/tests/sewing/tol_100/X3 +++ b/tests/sewing/tol_100/X3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_cts21364a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/X8 b/tests/sewing/tol_100/X8 index 655a544394..deae14f0e2 100644 --- a/tests/sewing/tol_100/X8 +++ b/tests/sewing/tol_100/X8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60150a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Y3 b/tests/sewing/tol_100/Y3 index fd30f76a83..075a1dca58 100644 --- a/tests/sewing/tol_100/Y3 +++ b/tests/sewing/tol_100/Y3 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_hkg60156a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Z7 b/tests/sewing/tol_100/Z7 index 879598aed1..a2058f3a03 100644 --- a/tests/sewing/tol_100/Z7 +++ b/tests/sewing/tol_100/Z7 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro12956b.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/sewing/tol_100/Z8 b/tests/sewing/tol_100/Z8 index 29249ce1d3..fe7c8ffc31 100644 --- a/tests/sewing/tol_100/Z8 +++ b/tests/sewing/tol_100/Z8 @@ -1 +1,7 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO904_pro13555a.rle] a + +sfixpcu a a -f +checkshape a diff --git a/tests/xcaf/brep_add_CL/G8 b/tests/xcaf/brep_add_CL/G8 index ab8d47065e..4e480f714f 100644 --- a/tests/xcaf/brep_add_CL/G8 +++ b/tests/xcaf/brep_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_dxc/G8 b/tests/xcaf/brep_to_dxc/G8 index 7e95ccfa3d..58bcfe0412 100644 --- a/tests/xcaf/brep_to_dxc/G8 +++ b/tests/xcaf/brep_to_dxc/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_igs_add_CL/G8 b/tests/xcaf/brep_to_igs_add_CL/G8 index cbdf500e89..817f508336 100644 --- a/tests/xcaf/brep_to_igs_add_CL/G8 +++ b/tests/xcaf/brep_to_igs_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/brep_to_stp_add_CL/G8 b/tests/xcaf/brep_to_stp_add_CL/G8 index bf52405f8e..4770cdc960 100644 --- a/tests/xcaf/brep_to_stp_add_CL/G8 +++ b/tests/xcaf/brep_to_stp_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1 diff --git a/tests/xcaf/dxc_add_CL/G8 b/tests/xcaf/dxc_add_CL/G8 index 0b1fbaa3d5..cf6c9ffc4a 100644 --- a/tests/xcaf/dxc_add_CL/G8 +++ b/tests/xcaf/dxc_add_CL/G8 @@ -1,4 +1,11 @@ +# for "sfixpcu" command +pload XSDRAW + restore [locate_data_file CTO909_tool_2.brep] Shape1 + +sfixpcu Shape1 Shape1 -f +checkshape Shape1 + XNewDoc D_First XAddShape D_First Shape1