mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-13 14:27:08 +03:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e4f0e428d0 |
@@ -394,94 +394,85 @@ Standard_Boolean IsDistanceIn3DTolerance (const gp_Pnt& thePnt_f,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : IsDistanceIn3DTolerance
|
//function : IsDistanceIn2DTolerance
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
static
|
static
|
||||||
Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurface,
|
Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurface,
|
||||||
const gp_Pnt2d& thePnt,
|
const gp_Pnt2d& thePnt,
|
||||||
const gp_Pnt2d& thePntRef,
|
const gp_Pnt2d& thePntRef,
|
||||||
const Standard_Real aTol3d,
|
const Standard_Real aTol3d)
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
const Standard_Boolean PrintWarnings = Standard_True)
|
|
||||||
#else
|
|
||||||
const Standard_Boolean = Standard_True)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
Standard_Real dumax = 0.01 * (aFaceSurface.LastUParameter() - aFaceSurface.FirstUParameter());
|
const Standard_Real aFactor = 0.01;
|
||||||
Standard_Real dvmax = 0.01 * (aFaceSurface.LastVParameter() - aFaceSurface.FirstVParameter());
|
const Standard_Real aDeltaUPar = (aFaceSurface.LastUParameter() -
|
||||||
Standard_Real dumin = Abs(thePnt.X() - thePntRef.X());
|
aFaceSurface.FirstUParameter());
|
||||||
Standard_Real dvmin = Abs(thePnt.Y() - thePntRef.Y());
|
const Standard_Real aDeltaVPar = (aFaceSurface.LastVParameter() -
|
||||||
|
aFaceSurface.FirstVParameter());
|
||||||
|
const Standard_Real aDist2dU = Abs(thePnt.X() - thePntRef.X());
|
||||||
|
const Standard_Real aDist2dV = Abs(thePnt.Y() - thePntRef.Y());
|
||||||
|
|
||||||
if((dumin < dumax) && (dvmin < dvmax))
|
if((aDist2dU < (aFactor*aDeltaUPar)) && (aDist2dV < (aFactor*aDeltaVPar)))
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
|
|
||||||
|
Standard_Real aUTol = aFaceSurface.UResolution(aTol3d);
|
||||||
|
Standard_Real aVTol = aFaceSurface.VResolution(aTol3d);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
if(PrintWarnings)
|
|
||||||
{
|
|
||||||
cout << endl;
|
cout << endl;
|
||||||
cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl;
|
cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl;
|
||||||
cout << "--- BRepCheck Wire: Not closed in 2D" << endl;
|
cout << "--- BRepCheck Wire: Not closed in 2D" << endl;
|
||||||
cout << "*****************************************************" << endl;
|
cout << "*****************************************************" << endl;
|
||||||
cout << "*dumin = " << dumin << "; dumax = " << dumax << endl;
|
cout << "*aDist2dU = " << aDist2dU << "; aDeltaUPar = " << aFactor*aDeltaUPar << endl;
|
||||||
cout << "* dvmin = " << dvmin << "; dvmax = " << dvmax << endl;
|
cout << "* aDist2dV = " << aDist2dV << "; aDeltaVPar = " << aFactor*aDeltaVPar << endl;
|
||||||
cout << "* (dumin > dumax) or (dvmin > dvmax)." << endl;
|
cout << "* (aDist2dU > aDeltaUPar) or (aDist2dV > aDeltaVPar)." << endl;
|
||||||
cout << "*****************************************************" << endl;
|
cout << "*****************************************************" << endl;
|
||||||
cout << endl;
|
cout << endl;
|
||||||
cout << "UFirst = " << aFaceSurface.FirstUParameter();
|
cout << "UFirst = " << aFaceSurface.FirstUParameter();
|
||||||
cout << "; ULast = " << aFaceSurface.LastUParameter() << endl;
|
cout << "; ULast = " << aFaceSurface.LastUParameter() << endl;
|
||||||
cout << "VFirst = " << aFaceSurface.FirstVParameter();
|
cout << "VFirst = " << aFaceSurface.FirstVParameter();
|
||||||
cout << "; VLast = " << aFaceSurface.LastVParameter() << endl;
|
cout << "; VLast = " << aFaceSurface.LastVParameter() << endl;
|
||||||
}
|
|
||||||
|
|
||||||
dumax = aFaceSurface.UResolution(aTol3d);
|
|
||||||
dvmax = aFaceSurface.VResolution(aTol3d);
|
|
||||||
|
|
||||||
if(PrintWarnings)
|
|
||||||
{
|
|
||||||
cout << "aTol3d = " << aTol3d <<"; URes = " << dumax << "; VRes = " << dvmax << endl;
|
|
||||||
cout << "thePnt(" << thePnt.X() << "; " << thePnt.Y() << ")" << endl;
|
cout << "thePnt(" << thePnt.X() << "; " << thePnt.Y() << ")" << endl;
|
||||||
cout << "thePntRef(" << thePntRef.X() << "; " << thePntRef.Y() << ")" << endl;
|
cout << "thePntRef(" << thePntRef.X() << "; " << thePntRef.Y() << ")" << endl;
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
dumax = aFaceSurface.UResolution(aTol3d);
|
|
||||||
dvmax = aFaceSurface.VResolution(aTol3d);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Standard_Real aTol2d = 2*Max( dumax, dvmax);
|
if(aUTol >= aDeltaUPar)
|
||||||
|
{//Singular case
|
||||||
|
aUTol = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(aVTol >= aDeltaVPar)
|
||||||
|
{//Singular case
|
||||||
|
aVTol = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Standard_Real aTol2d = 2*Max(aUTol, aVTol);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
if((aTol2d <= 0.0) && (PrintWarnings))
|
if(aTol2d <= 0.0)
|
||||||
{
|
{
|
||||||
cout<<"BRepCheck_Wire : UResolution and VResolution = 0.0 (Face too small ?)"<<endl;
|
cout<<"BRepCheck_Wire : UResolution and VResolution = 0.0 (Face too small ?)"<<endl;
|
||||||
cout.flush();
|
cout.flush();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//Standard_Real Dist = thePntRef.Distance(thePnt);
|
//Standard_Real aDist = thePntRef.Distance(thePnt);
|
||||||
Standard_Real Dist = Max(dumin, dvmin);
|
Standard_Real aDist = Max(aDist2dU, aDist2dV);
|
||||||
|
|
||||||
if (Dist < aTol2d)
|
if (aDist < aTol2d)
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
if(PrintWarnings)
|
|
||||||
{
|
|
||||||
cout << endl;
|
cout << endl;
|
||||||
cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl;
|
cout << "--------Function IsDistanceIn2DTolerance(...)----------" << endl;
|
||||||
cout << "--- BRepCheck Wire: Not closed in 2d" << endl;
|
cout << "--- BRepCheck Wire: Not closed in 2d" << endl;
|
||||||
cout << "*****************************************************" << endl;
|
cout << "*****************************************************" << endl;
|
||||||
cout << "* Dist = " << Dist << " > Tol2d = " << aTol2d << endl;
|
cout << "* Dist = " << aDist << " > Tol2d = " << aTol2d << endl;
|
||||||
cout << "*****************************************************" << endl;
|
cout << "*****************************************************" << endl;
|
||||||
cout << "aTol3d = " << aTol3d <<"; URes = " << dumax << "; VRes = " << dvmax << endl;
|
cout << "aTol3d = " << aTol3d <<"; URes = " << aUTol << "; VRes = " << aVTol << endl;
|
||||||
cout << "thePnt(" << thePnt.X() << "; " << thePnt.Y() << ")" << endl;
|
|
||||||
cout << "thePntRef(" << thePntRef.X() << "; " << thePntRef.Y() << ")" << endl;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : Closed2d
|
//function : Closed2d
|
||||||
@@ -606,7 +597,22 @@ BRepCheck_Status BRepCheck_Wire::Closed2d(const TopoDS_Face& theFace,
|
|||||||
// aUResol = 2*aFaceSurface.UResolution(aTol);
|
// aUResol = 2*aFaceSurface.UResolution(aTol);
|
||||||
// aVResol = 2*aFaceSurface.VResolution(aTol);
|
// aVResol = 2*aFaceSurface.VResolution(aTol);
|
||||||
|
|
||||||
|
Standard_Real aTol3d = Max(BRep_Tool::Tolerance(aFirstVertex),BRep_Tool::Tolerance(aWireExp.CurrentVertex()));
|
||||||
|
|
||||||
// get first point
|
// get first point
|
||||||
|
if(aNbFoundEdges == 1)
|
||||||
|
{
|
||||||
|
BRep_Tool::UVPoints(aFirstEdge, theFace, aP_first, aP_last);
|
||||||
|
if(!IsDistanceIn2DTolerance(aFaceSurface, aP_first, aP_last, aTol3d))
|
||||||
|
{
|
||||||
|
aClosedStat = BRepCheck_NotClosed;
|
||||||
|
|
||||||
|
if (Update)
|
||||||
|
BRepCheck::Add(myMap(myShape),aClosedStat);
|
||||||
|
|
||||||
|
return aClosedStat;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (aFirstEdge.Orientation() == TopAbs_REVERSED)
|
if (aFirstEdge.Orientation() == TopAbs_REVERSED)
|
||||||
BRep_Tool::UVPoints(aFirstEdge, theFace, aP_temp, aP_first);
|
BRep_Tool::UVPoints(aFirstEdge, theFace, aP_temp, aP_first);
|
||||||
else
|
else
|
||||||
@@ -630,8 +636,6 @@ BRepCheck_Status BRepCheck_Wire::Closed2d(const TopoDS_Face& theFace,
|
|||||||
// if (dfUDist > aUResol || dfVDist > aVResol)
|
// if (dfUDist > aUResol || dfVDist > aVResol)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
Standard_Real aTol3d = Max(BRep_Tool::Tolerance(aFirstVertex),BRep_Tool::Tolerance(aWireExp.CurrentVertex()));
|
|
||||||
|
|
||||||
gp_Pnt aPntRef = BRep_Tool::Pnt(aFirstVertex);
|
gp_Pnt aPntRef = BRep_Tool::Pnt(aFirstVertex);
|
||||||
gp_Pnt aPnt = BRep_Tool::Pnt(aWireExp.CurrentVertex());
|
gp_Pnt aPnt = BRep_Tool::Pnt(aWireExp.CurrentVertex());
|
||||||
|
|
||||||
@@ -1653,7 +1657,7 @@ void ChoixUV(const TopoDS_Vertex& theVertex,
|
|||||||
aParam =(aVOrientation != anE.Orientation()) ? aFirstParam : aLastParam;
|
aParam =(aVOrientation != anE.Orientation()) ? aFirstParam : aLastParam;
|
||||||
aPnt = C2d->Value(aParam);
|
aPnt = C2d->Value(aParam);
|
||||||
|
|
||||||
if(!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d, Standard_False))
|
if(!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CurveDirForParameter(C2d, aParam, aPnt, aDer);
|
CurveDirForParameter(C2d, aParam, aPnt, aDer);
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
||||||
|
puts "TODO CR12345 ALL: CHECKSHAPE : Faulty"
|
||||||
|
|
||||||
|
|
||||||
set LinuxDiff 2
|
set LinuxDiff 2
|
||||||
set LinuxFaulties {STATSHAPE}
|
set LinuxFaulties {STATSHAPE}
|
||||||
@@ -8,7 +10,7 @@ set filename bm1_pe_t4.stp
|
|||||||
set ref_data {
|
set ref_data {
|
||||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||||
TPSTAT : Faulties = 0 ( 2 ) Warnings = 19 ( 27 ) Summary = 19 ( 29 )
|
TPSTAT : Faulties = 0 ( 2 ) Warnings = 19 ( 27 ) Summary = 19 ( 29 )
|
||||||
CHECKSHAPE : Wires = 2 ( 3 ) Faces = 2 ( 3 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
CHECKSHAPE : Wires = 4 ( 3 ) Faces = 4 ( 3 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||||
NBSHAPES : Solid = 0 ( 0 ) Shell = 13 ( 12 ) Face = 16 ( 15 ) Summary = 154 ( 151 )
|
NBSHAPES : Solid = 0 ( 0 ) Shell = 13 ( 12 ) Face = 16 ( 15 ) Summary = 154 ( 151 )
|
||||||
STATSHAPE : Solid = 0 ( 0 ) Shell = 13 ( 12 ) Face = 16 ( 15 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 59 ( 60 )
|
STATSHAPE : Solid = 0 ( 0 ) Shell = 13 ( 12 ) Face = 16 ( 15 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 59 ( 60 )
|
||||||
TOLERANCE : MaxTol = 1562.051497 ( 1562.051497 ) AvgTol = 192.5735494 ( 206.7634854 )
|
TOLERANCE : MaxTol = 1562.051497 ( 1562.051497 ) AvgTol = 192.5735494 ( 206.7634854 )
|
||||||
|
@@ -4,7 +4,7 @@ set filename bm1_pe_fuel.stp
|
|||||||
set ref_data {
|
set ref_data {
|
||||||
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
|
||||||
TPSTAT : Faulties = 0 ( 0 ) Warnings = 8 ( 8 ) Summary = 8 ( 8 )
|
TPSTAT : Faulties = 0 ( 0 ) Warnings = 8 ( 8 ) Summary = 8 ( 8 )
|
||||||
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
CHECKSHAPE : Wires = 4 ( 4 ) Faces = 4 ( 4 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
|
||||||
NBSHAPES : Solid = 0 ( 0 ) Shell = 6 ( 6 ) Face = 10 ( 10 ) Summary = 89 ( 89 )
|
NBSHAPES : Solid = 0 ( 0 ) Shell = 6 ( 6 ) Face = 10 ( 10 ) Summary = 89 ( 89 )
|
||||||
STATSHAPE : Solid = 0 ( 0 ) Shell = 6 ( 6 ) Face = 10 ( 10 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 34 ( 34 )
|
STATSHAPE : Solid = 0 ( 0 ) Shell = 6 ( 6 ) Face = 10 ( 10 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 34 ( 34 )
|
||||||
TOLERANCE : MaxTol = 112.7632273 ( 112.7632273 ) AvgTol = 20.07582429 ( 20.07582429 )
|
TOLERANCE : MaxTol = 112.7632273 ( 112.7632273 ) AvgTol = 20.07582429 ( 20.07582429 )
|
||||||
|
Reference in New Issue
Block a user