mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0023610: checkshape command does not detect mismatch of the tolerance values among the sub-shapes of the shape
In BRepCheck, added check for tolerance of face to be not greater than tolerance of edge, and tolerance of edge not greater than tolerance of its vertices
This commit is contained in:
parent
d27ea0ef51
commit
935f8c002e
@ -80,112 +80,44 @@ Standard_Boolean BRepCheck::SelfIntersection(const TopoDS_Wire& W,
|
|||||||
void BRepCheck::Print(const BRepCheck_Status stat,
|
void BRepCheck::Print(const BRepCheck_Status stat,
|
||||||
Standard_OStream& OS)
|
Standard_OStream& OS)
|
||||||
{
|
{
|
||||||
|
#define PRINT_CASE(stat) case stat: OS << #stat "\n"; break
|
||||||
|
|
||||||
switch (stat) {
|
switch (stat) {
|
||||||
case BRepCheck_NoError:
|
PRINT_CASE(BRepCheck_NoError);
|
||||||
OS << "BRepCheck_NoError\n";
|
PRINT_CASE(BRepCheck_InvalidPointOnCurve);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidPointOnCurveOnSurface);
|
||||||
case BRepCheck_InvalidPointOnCurve:
|
PRINT_CASE(BRepCheck_InvalidPointOnSurface);
|
||||||
OS << "BRepCheck_InvalidPointOnCurve\n";
|
PRINT_CASE(BRepCheck_No3DCurve);
|
||||||
break;
|
PRINT_CASE(BRepCheck_Multiple3DCurve);
|
||||||
case BRepCheck_InvalidPointOnCurveOnSurface:
|
PRINT_CASE(BRepCheck_Invalid3DCurve);
|
||||||
OS << "BRepCheck_InvalidPointOnCurveOnSurface\n";
|
PRINT_CASE(BRepCheck_NoCurveOnSurface);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidCurveOnSurface);
|
||||||
case BRepCheck_InvalidPointOnSurface:
|
PRINT_CASE(BRepCheck_InvalidCurveOnClosedSurface);
|
||||||
OS << "BRepCheck_InvalidPointOnSurface\n";
|
PRINT_CASE(BRepCheck_InvalidSameRangeFlag);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidSameParameterFlag);
|
||||||
case BRepCheck_No3DCurve:
|
PRINT_CASE(BRepCheck_InvalidDegeneratedFlag);
|
||||||
OS << "BRepCheck_No3DCurve\n";
|
PRINT_CASE(BRepCheck_FreeEdge);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidMultiConnexity);
|
||||||
case BRepCheck_Multiple3DCurve:
|
PRINT_CASE(BRepCheck_InvalidRange);
|
||||||
OS << "BRepCheck_Multiple3DCurve\n";
|
PRINT_CASE(BRepCheck_EmptyWire);
|
||||||
break;
|
PRINT_CASE(BRepCheck_RedundantEdge);
|
||||||
case BRepCheck_Invalid3DCurve:
|
PRINT_CASE(BRepCheck_SelfIntersectingWire);
|
||||||
OS << "BRepCheck_Invalid3DCurve\n";
|
PRINT_CASE(BRepCheck_NoSurface);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidWire);
|
||||||
case BRepCheck_NoCurveOnSurface:
|
PRINT_CASE(BRepCheck_RedundantWire);
|
||||||
OS << "BRepCheck_NoCurveOnSurface\n";
|
PRINT_CASE(BRepCheck_IntersectingWires);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidImbricationOfWires);
|
||||||
case BRepCheck_InvalidCurveOnSurface:
|
PRINT_CASE(BRepCheck_EmptyShell);
|
||||||
OS << "BRepCheck_InvalidCurveOnSurface\n";
|
PRINT_CASE(BRepCheck_RedundantFace);
|
||||||
break;
|
PRINT_CASE(BRepCheck_UnorientableShape);
|
||||||
case BRepCheck_InvalidCurveOnClosedSurface:
|
PRINT_CASE(BRepCheck_NotClosed);
|
||||||
OS << "BRepCheck_InvalidCurveOnClosedSurface\n";
|
PRINT_CASE(BRepCheck_NotConnected);
|
||||||
break;
|
PRINT_CASE(BRepCheck_SubshapeNotInShape);
|
||||||
case BRepCheck_InvalidSameRangeFlag:
|
PRINT_CASE(BRepCheck_BadOrientation);
|
||||||
OS << "BRepCheck_InvalidSameRangeFlag\n";
|
PRINT_CASE(BRepCheck_BadOrientationOfSubshape);
|
||||||
break;
|
PRINT_CASE(BRepCheck_InvalidToleranceValue);
|
||||||
case BRepCheck_InvalidSameParameterFlag:
|
PRINT_CASE(BRepCheck_CheckFail);
|
||||||
OS << "BRepCheck_InvalidSameParameterFlag\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_InvalidDegeneratedFlag:
|
|
||||||
OS << "BRepCheck_InvalidDegeneratedFlag\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_FreeEdge:
|
|
||||||
OS << "BRepCheck_FreeEdge\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_InvalidMultiConnexity:
|
|
||||||
OS << "BRepCheck_InvalidMultiConnexity\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_InvalidRange:
|
|
||||||
OS << "BRepCheck_InvalidRange\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_EmptyWire:
|
|
||||||
OS << "BRepCheck_EmptyWire\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_RedundantEdge:
|
|
||||||
OS << "BRepCheck_RedundantEdge\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_SelfIntersectingWire:
|
|
||||||
OS << "BRepCheck_SelfIntersectingWire\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_NoSurface:
|
|
||||||
OS << "BRepCheck_NoSurface\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_InvalidWire:
|
|
||||||
OS << "BRepCheck_InvalidWire\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_RedundantWire:
|
|
||||||
OS << "BRepCheck_RedundantWire\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_IntersectingWires:
|
|
||||||
OS << "BRepCheck_IntersectingWires\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_InvalidImbricationOfWires:
|
|
||||||
OS << "BRepCheck_InvalidImbricationOfWires\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_EmptyShell:
|
|
||||||
OS << "BRepCheck_EmptyShell\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_RedundantFace:
|
|
||||||
OS << "BRepCheck_RedundantFace\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_UnorientableShape:
|
|
||||||
OS << "BRepCheck_UnorientableShape\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_NotClosed:
|
|
||||||
OS << "BRepCheck_NotClosed\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_NotConnected:
|
|
||||||
OS << "BRepCheck_NotConnected\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_SubshapeNotInShape:
|
|
||||||
OS << "BRepCheck_SubshapeNotInShape\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_BadOrientation:
|
|
||||||
OS << "BRepCheck_BadOrientation\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_BadOrientationOfSubshape:
|
|
||||||
OS << "BRepCheck_BadOrientationOfSubshape\n";
|
|
||||||
break;
|
|
||||||
case BRepCheck_CheckFail:
|
|
||||||
OS << "BRepCheck_CheckFail\n";
|
|
||||||
break;
|
|
||||||
#ifndef DEB
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,8 +63,6 @@
|
|||||||
#include <TopoDS_Face.hxx>
|
#include <TopoDS_Face.hxx>
|
||||||
#include <Precision.hxx>
|
#include <Precision.hxx>
|
||||||
|
|
||||||
|
|
||||||
//modified by NIZNHY-PKV Thu May 05 09:01:57 2011f
|
|
||||||
static
|
static
|
||||||
Standard_Boolean Validate(const Adaptor3d_Curve&,
|
Standard_Boolean Validate(const Adaptor3d_Curve&,
|
||||||
const Adaptor3d_CurveOnSurface&,
|
const Adaptor3d_CurveOnSurface&,
|
||||||
@ -83,12 +81,6 @@ static
|
|||||||
static
|
static
|
||||||
Standard_Real PrecSurface(const Adaptor3d_CurveOnSurface& aACS);
|
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
|
#define NCONTROL 23
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -230,7 +222,6 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Edge(myShape));
|
Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Edge(myShape));
|
||||||
|
|
||||||
TopAbs_ShapeEnum styp = S.ShapeType();
|
TopAbs_ShapeEnum styp = S.ShapeType();
|
||||||
// for (TopExp_Explorer exp(S,TopAbs_EDGE); exp.More(); exp.Next()) {
|
|
||||||
TopExp_Explorer exp(S,TopAbs_EDGE) ;
|
TopExp_Explorer exp(S,TopAbs_EDGE) ;
|
||||||
for ( ; exp.More(); exp.Next()) {
|
for ( ; exp.More(); exp.Next()) {
|
||||||
if (exp.Current().IsSame(myShape)) {
|
if (exp.Current().IsSame(myShape)) {
|
||||||
@ -244,6 +235,9 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
|
|
||||||
switch (styp) {
|
switch (styp) {
|
||||||
case TopAbs_FACE:
|
case TopAbs_FACE:
|
||||||
|
if(BRep_Tool::Tolerance(TopoDS::Face(S)) - Tol > Precision::Confusion())
|
||||||
|
BRepCheck::Add(lst,BRepCheck_InvalidToleranceValue);
|
||||||
|
|
||||||
if (!myCref.IsNull()) {
|
if (!myCref.IsNull()) {
|
||||||
|
|
||||||
Standard_Boolean SameParameter = TE->SameParameter();
|
Standard_Boolean SameParameter = TE->SameParameter();
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include <BRepCheck_Vertex.ixx>
|
#include <BRepCheck_Vertex.ixx>
|
||||||
|
|
||||||
|
#include <BRepCheck.hxx>
|
||||||
#include <BRepCheck_ListOfStatus.hxx>
|
#include <BRepCheck_ListOfStatus.hxx>
|
||||||
|
|
||||||
#include <BRep_TVertex.hxx>
|
#include <BRep_TVertex.hxx>
|
||||||
@ -46,9 +47,9 @@
|
|||||||
#include <TopExp_Explorer.hxx>
|
#include <TopExp_Explorer.hxx>
|
||||||
#include <TopoDS_Iterator.hxx>
|
#include <TopoDS_Iterator.hxx>
|
||||||
|
|
||||||
#include <BRepCheck.hxx>
|
|
||||||
#include <TopoDS.hxx>
|
#include <TopoDS.hxx>
|
||||||
#include <TopoDS_Edge.hxx>
|
#include <TopoDS_Edge.hxx>
|
||||||
|
#include <Precision.hxx>
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : BRepCheck_Vertex
|
//function : BRepCheck_Vertex
|
||||||
@ -115,7 +116,6 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
case TopAbs_EDGE:
|
case TopAbs_EDGE:
|
||||||
{
|
{
|
||||||
// Try to find the vertex on the edge
|
// Try to find the vertex on the edge
|
||||||
|
|
||||||
const TopoDS_Edge& E = TopoDS::Edge(S);
|
const TopoDS_Edge& E = TopoDS::Edge(S);
|
||||||
TopoDS_Iterator itv(E.Oriented(TopAbs_FORWARD));
|
TopoDS_Iterator itv(E.Oriented(TopAbs_FORWARD));
|
||||||
TopoDS_Vertex VFind;
|
TopoDS_Vertex VFind;
|
||||||
@ -149,9 +149,15 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
// VFind is not null for sure
|
// VFind is not null for sure
|
||||||
TopAbs_Orientation orv = VFind.Orientation();
|
TopAbs_Orientation orv = VFind.Orientation();
|
||||||
|
|
||||||
Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Vertex(myShape));
|
Standard_Real TolV = TV->Tolerance();
|
||||||
Tol = Max(Tol,BRep_Tool::Tolerance(E)); // to check
|
Standard_Real TolE = BRep_Tool::Tolerance(E);
|
||||||
Tol *= Tol;
|
if (TolE > TolV)
|
||||||
|
{
|
||||||
|
if (TolE - TolV > Precision::Confusion())
|
||||||
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidToleranceValue);
|
||||||
|
TolV = TolE;
|
||||||
|
}
|
||||||
|
Standard_Real aTol2 = TolV * TolV;
|
||||||
|
|
||||||
Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*)&E.TShape());
|
Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*)&E.TShape());
|
||||||
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
|
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
|
||||||
@ -173,7 +179,7 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
if (pr->IsPointOnCurve(C,L)) {
|
if (pr->IsPointOnCurve(C,L)) {
|
||||||
Controlp = C->Value(pr->Parameter());
|
Controlp = C->Value(pr->Parameter());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -184,14 +190,14 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
if (orv == TopAbs_FORWARD || multiple) {
|
if (orv == TopAbs_FORWARD || multiple) {
|
||||||
Controlp = C->Value(GC->First());
|
Controlp = C->Value(GC->First());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (orv == TopAbs_REVERSED || multiple) {
|
if (orv == TopAbs_REVERSED || multiple) {
|
||||||
Controlp = C->Value(GC->Last());
|
Controlp = C->Value(GC->Last());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -212,18 +218,16 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
gp_Pnt2d p2d = PC->Value(pr->Parameter());
|
gp_Pnt2d p2d = PC->Value(pr->Parameter());
|
||||||
Controlp = Su->Value(p2d.X(),p2d.Y());
|
Controlp = Su->Value(p2d.X(),p2d.Y());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),
|
BRepCheck::Add(myMap(S), BRepCheck_InvalidPointOnCurveOnSurface);
|
||||||
BRepCheck_InvalidPointOnCurveOnSurface);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!PC2.IsNull() && pr->IsPointOnCurveOnSurface(PC2,Su,L)) {
|
if (!PC2.IsNull() && pr->IsPointOnCurveOnSurface(PC2,Su,L)) {
|
||||||
gp_Pnt2d p2d = PC2->Value(pr->Parameter());
|
gp_Pnt2d p2d = PC2->Value(pr->Parameter());
|
||||||
Controlp = Su->Value(p2d.X(),p2d.Y());
|
Controlp = Su->Value(p2d.X(),p2d.Y());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),
|
BRepCheck::Add(myMap(S), BRepCheck_InvalidPointOnCurveOnSurface);
|
||||||
BRepCheck_InvalidPointOnCurveOnSurface);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
itpr.Next();
|
itpr.Next();
|
||||||
@ -247,9 +251,15 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
const Handle(Geom_Surface)& Su = TF->Surface();
|
const Handle(Geom_Surface)& Su = TF->Surface();
|
||||||
TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location());
|
TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location());
|
||||||
|
|
||||||
Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Vertex(myShape));
|
Standard_Real TolV = TV->Tolerance();
|
||||||
Tol = Max(Tol,BRep_Tool::Tolerance(TopoDS::Face(S))); // to check
|
Standard_Real TolF = TF->Tolerance();
|
||||||
Tol *= Tol;
|
if (TolF > TolV)
|
||||||
|
{
|
||||||
|
if (TolF - TolV > Precision::Confusion())
|
||||||
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidToleranceValue);
|
||||||
|
TolV = TolF;
|
||||||
|
}
|
||||||
|
Standard_Real aTol2 = TolV * TolV;
|
||||||
|
|
||||||
BRep_ListIteratorOfListOfPointRepresentation itpr(TV->Points());
|
BRep_ListIteratorOfListOfPointRepresentation itpr(TV->Points());
|
||||||
while (itpr.More()) {
|
while (itpr.More()) {
|
||||||
@ -257,7 +267,7 @@ void BRepCheck_Vertex::InContext(const TopoDS_Shape& S)
|
|||||||
if (pr->IsPointOnSurface(Su,L)) {
|
if (pr->IsPointOnSurface(Su,L)) {
|
||||||
Controlp = Su->Value(pr->Parameter(),pr->Parameter2());
|
Controlp = Su->Value(pr->Parameter(),pr->Parameter2());
|
||||||
Controlp.Transform(L.Transformation());
|
Controlp.Transform(L.Transformation());
|
||||||
if (prep.SquareDistance(Controlp)> Tol) {
|
if (prep.SquareDistance(Controlp) > aTol2) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnSurface);
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnSurface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
|
|
||||||
#include <Standard_ErrorHandler.hxx>
|
#include <Standard_ErrorHandler.hxx>
|
||||||
#include <Standard_Failure.hxx>
|
#include <Standard_Failure.hxx>
|
||||||
|
#include <NCollection_Array1.hxx>
|
||||||
|
|
||||||
//#ifdef WNT
|
//#ifdef WNT
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -114,13 +115,13 @@ Standard_IMPORT Standard_Integer BRepCheck_Trace(const Standard_Integer phase);
|
|||||||
//function : FindNamed
|
//function : FindNamed
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
static Standard_Boolean FindNamed(const TopoDS_Shape& S,
|
static Standard_Boolean FindNamed(const TopoDS_Shape& S,
|
||||||
char*& Name)
|
const char*& Name)
|
||||||
{
|
{
|
||||||
for (Standard_Integer i = 1 ;i <= lfaulty.Length(); i++) {
|
for (Standard_Integer i = 1 ;i <= lfaulty.Length(); i++) {
|
||||||
Handle(DBRep_DrawableShape) DS =
|
Handle(DBRep_DrawableShape) DS =
|
||||||
Handle(DBRep_DrawableShape)::DownCast(lfaulty(i));
|
Handle(DBRep_DrawableShape)::DownCast(lfaulty(i));
|
||||||
if (DS->Shape().IsSame(S)) {
|
if (DS->Shape().IsSame(S)) {
|
||||||
Name = (char*)DS->Name();
|
Name = DS->Name();
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,7 +155,6 @@ static void PrintSub(Standard_OStream& OS,
|
|||||||
const TopAbs_ShapeEnum Subtype)
|
const TopAbs_ShapeEnum Subtype)
|
||||||
|
|
||||||
{
|
{
|
||||||
char* Name;
|
|
||||||
BRepCheck_ListIteratorOfListOfStatus itl;
|
BRepCheck_ListIteratorOfListOfStatus itl;
|
||||||
TopExp_Explorer exp;
|
TopExp_Explorer exp;
|
||||||
for (exp.Init(S,Subtype); exp.More(); exp.Next()) {
|
for (exp.Init(S,Subtype); exp.More(); exp.Next()) {
|
||||||
@ -168,25 +168,27 @@ static void PrintSub(Standard_OStream& OS,
|
|||||||
theMap(sub).Append(S);
|
theMap(sub).Append(S);
|
||||||
itl.Initialize(res->StatusOnShape());
|
itl.Initialize(res->StatusOnShape());
|
||||||
if (itl.Value() != BRepCheck_NoError) {
|
if (itl.Value() != BRepCheck_NoError) {
|
||||||
if (!FindNamed(sub,Name)) {
|
const char* pName;
|
||||||
|
if (!FindNamed(sub,pName)) {
|
||||||
nbfaulty++;
|
nbfaulty++;
|
||||||
Name = (char*)malloc(18*sizeof(char));
|
char aName[256];
|
||||||
sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
|
sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
|
||||||
DBRep::Set(Name,sub);
|
DBRep::Set(aName,sub);
|
||||||
lfaulty.Append(Draw::Get((Standard_CString&)Name));
|
pName = aName;
|
||||||
}
|
lfaulty.Append(Draw::Get(pName));
|
||||||
OS << "Shape " << Name << " ";
|
OS << "Shape " << pName << " ";
|
||||||
if (!FindNamed(S,Name)) {
|
if (!FindNamed(S,pName)) {
|
||||||
nbfaulty++;
|
nbfaulty++;
|
||||||
Name = (char*)malloc(18*sizeof(char));
|
sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
|
||||||
sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
|
DBRep::Set(aName,S);
|
||||||
DBRep::Set(Name,S);
|
pName = aName;
|
||||||
lfaulty.Append(Draw::Get((Standard_CString&)Name));
|
lfaulty.Append(Draw::Get(pName));
|
||||||
}
|
}
|
||||||
OS << " on shape " << Name << " :\n";
|
OS << " on shape " << pName << " :\n";
|
||||||
for (;itl.More(); itl.Next()) {
|
for (;itl.More(); itl.Next()) {
|
||||||
BRepCheck::Print(itl.Value(),OS);
|
BRepCheck::Print(itl.Value(),OS);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -206,20 +208,21 @@ static void Print(Standard_OStream& OS,
|
|||||||
Print(OS,Ana,iter.Value());
|
Print(OS,Ana,iter.Value());
|
||||||
}
|
}
|
||||||
|
|
||||||
char* Name;
|
|
||||||
TopAbs_ShapeEnum styp = S.ShapeType();
|
TopAbs_ShapeEnum styp = S.ShapeType();
|
||||||
BRepCheck_ListIteratorOfListOfStatus itl;
|
BRepCheck_ListIteratorOfListOfStatus itl;
|
||||||
if (!Ana.Result(S).IsNull() && !theMap.IsBound(S)) {
|
if (!Ana.Result(S).IsNull() && !theMap.IsBound(S)) {
|
||||||
itl.Initialize(Ana.Result(S)->Status());
|
itl.Initialize(Ana.Result(S)->Status());
|
||||||
if (itl.Value() != BRepCheck_NoError) {
|
if (itl.Value() != BRepCheck_NoError) {
|
||||||
if (!FindNamed(S,Name)) {
|
const char* pName;
|
||||||
|
char aName[256];
|
||||||
|
if (!FindNamed(S,pName)) {
|
||||||
nbfaulty++;
|
nbfaulty++;
|
||||||
Name = (char*)malloc(18*sizeof(char));
|
sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
|
||||||
sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
|
DBRep::Set(aName,S);
|
||||||
DBRep::Set(Name,S);
|
pName = aName;
|
||||||
lfaulty.Append(Draw::Get((Standard_CString&)Name));
|
lfaulty.Append(Draw::Get(pName));
|
||||||
}
|
}
|
||||||
OS << "On Shape " << Name << " :\n";
|
OS << "On Shape " << pName << " :\n";
|
||||||
|
|
||||||
for (;itl.More(); itl.Next()) {
|
for (;itl.More(); itl.Next()) {
|
||||||
BRepCheck::Print(itl.Value(),OS);
|
BRepCheck::Print(itl.Value(),OS);
|
||||||
@ -466,99 +469,18 @@ void ContextualDump(Draw_Interpretor& theCommands,
|
|||||||
nbfaulty = 0;
|
nbfaulty = 0;
|
||||||
lfaulty.Clear();
|
lfaulty.Clear();
|
||||||
|
|
||||||
//Print(cout, theAna, theShape);
|
|
||||||
Standard_SStream aSStream;
|
Standard_SStream aSStream;
|
||||||
Print(aSStream, theAna, theShape);
|
Print(aSStream, theAna, theShape);
|
||||||
theCommands << aSStream;
|
theCommands << aSStream;
|
||||||
//cout<<"\n";
|
|
||||||
theCommands<<"\n";
|
theCommands<<"\n";
|
||||||
theMap.Clear();
|
theMap.Clear();
|
||||||
|
|
||||||
if (nbfaulty !=0)
|
if (nbfaulty !=0)
|
||||||
theCommands<<"Faulty shapes in variables "<<checkfaultyname<<"1 to "<<checkfaultyname<<nbfaulty<<" \n";
|
theCommands<<"Faulty shapes in variables "<<checkfaultyname<<"1 to "<<checkfaultyname<<nbfaulty<<" \n";
|
||||||
//cout<<"Faulty shapes in variables "<<checkfaultyname<<"1 to "<<checkfaultyname<<nbfaulty<<" \n";
|
|
||||||
|
|
||||||
//cout<<endl;
|
|
||||||
theCommands<<"\n";
|
theCommands<<"\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
|
||||||
//function : FillProblems
|
|
||||||
// purpose : auxilary for StructuralDump
|
|
||||||
//=======================================================================
|
|
||||||
static void FillProblems(const BRepCheck_Status stat,
|
|
||||||
Handle(TColStd_HArray1OfInteger)& NbProblems)
|
|
||||||
{
|
|
||||||
switch (stat) {
|
|
||||||
case BRepCheck_InvalidPointOnCurve:
|
|
||||||
NbProblems->SetValue(1,NbProblems->Value(1)+1); break;
|
|
||||||
case BRepCheck_InvalidPointOnCurveOnSurface:
|
|
||||||
NbProblems->SetValue(2,NbProblems->Value(2)+1); break;
|
|
||||||
case BRepCheck_InvalidPointOnSurface:
|
|
||||||
NbProblems->SetValue(3,NbProblems->Value(3)+1); break;
|
|
||||||
case BRepCheck_No3DCurve:
|
|
||||||
NbProblems->SetValue(4,NbProblems->Value(4)+1); break;
|
|
||||||
case BRepCheck_Multiple3DCurve:
|
|
||||||
NbProblems->SetValue(5,NbProblems->Value(5)+1); break;
|
|
||||||
case BRepCheck_Invalid3DCurve:
|
|
||||||
NbProblems->SetValue(6,NbProblems->Value(6)+1); break;
|
|
||||||
case BRepCheck_NoCurveOnSurface:
|
|
||||||
NbProblems->SetValue(7,NbProblems->Value(7)+1); break;
|
|
||||||
case BRepCheck_InvalidCurveOnSurface:
|
|
||||||
NbProblems->SetValue(8,NbProblems->Value(8)+1); break;
|
|
||||||
case BRepCheck_InvalidCurveOnClosedSurface:
|
|
||||||
NbProblems->SetValue(9,NbProblems->Value(9)+1); break;
|
|
||||||
case BRepCheck_InvalidSameRangeFlag:
|
|
||||||
NbProblems->SetValue(10,NbProblems->Value(10)+1); break;
|
|
||||||
case BRepCheck_InvalidSameParameterFlag:
|
|
||||||
NbProblems->SetValue(11,NbProblems->Value(11)+1); break;
|
|
||||||
case BRepCheck_InvalidDegeneratedFlag:
|
|
||||||
NbProblems->SetValue(12,NbProblems->Value(12)+1); break;
|
|
||||||
case BRepCheck_FreeEdge:
|
|
||||||
NbProblems->SetValue(13,NbProblems->Value(13)+1); break;
|
|
||||||
case BRepCheck_InvalidMultiConnexity:
|
|
||||||
NbProblems->SetValue(14,NbProblems->Value(14)+1); break;
|
|
||||||
case BRepCheck_InvalidRange:
|
|
||||||
NbProblems->SetValue(15,NbProblems->Value(15)+1); break;
|
|
||||||
case BRepCheck_EmptyWire:
|
|
||||||
NbProblems->SetValue(16,NbProblems->Value(16)+1); break;
|
|
||||||
case BRepCheck_RedundantEdge:
|
|
||||||
NbProblems->SetValue(17,NbProblems->Value(17)+1); break;
|
|
||||||
case BRepCheck_SelfIntersectingWire:
|
|
||||||
NbProblems->SetValue(18,NbProblems->Value(18)+1); break;
|
|
||||||
case BRepCheck_NoSurface:
|
|
||||||
NbProblems->SetValue(19,NbProblems->Value(19)+1); break;
|
|
||||||
case BRepCheck_InvalidWire:
|
|
||||||
NbProblems->SetValue(20,NbProblems->Value(20)+1); break;
|
|
||||||
case BRepCheck_RedundantWire:
|
|
||||||
NbProblems->SetValue(21,NbProblems->Value(21)+1); break;
|
|
||||||
case BRepCheck_IntersectingWires:
|
|
||||||
NbProblems->SetValue(22,NbProblems->Value(22)+1); break;
|
|
||||||
case BRepCheck_InvalidImbricationOfWires:
|
|
||||||
NbProblems->SetValue(23,NbProblems->Value(23)+1); break;
|
|
||||||
case BRepCheck_EmptyShell:
|
|
||||||
NbProblems->SetValue(24,NbProblems->Value(24)+1); break;
|
|
||||||
case BRepCheck_RedundantFace:
|
|
||||||
NbProblems->SetValue(25,NbProblems->Value(25)+1); break;
|
|
||||||
case BRepCheck_UnorientableShape:
|
|
||||||
NbProblems->SetValue(26,NbProblems->Value(26)+1); break;
|
|
||||||
case BRepCheck_NotClosed:
|
|
||||||
NbProblems->SetValue(27,NbProblems->Value(27)+1); break;
|
|
||||||
case BRepCheck_NotConnected:
|
|
||||||
NbProblems->SetValue(28,NbProblems->Value(28)+1); break;
|
|
||||||
case BRepCheck_SubshapeNotInShape:
|
|
||||||
NbProblems->SetValue(29,NbProblems->Value(29)+1); break;
|
|
||||||
case BRepCheck_BadOrientation:
|
|
||||||
NbProblems->SetValue(30,NbProblems->Value(30)+1); break;
|
|
||||||
case BRepCheck_BadOrientationOfSubshape:
|
|
||||||
NbProblems->SetValue(31,NbProblems->Value(31)+1); break;
|
|
||||||
case BRepCheck_CheckFail:
|
|
||||||
NbProblems->SetValue(32,NbProblems->Value(32)+1); break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -593,13 +515,13 @@ static void GetProblemSub(const BRepCheck_Analyzer& Ana,
|
|||||||
|
|
||||||
if(ii>sl->Length()) {
|
if(ii>sl->Length()) {
|
||||||
sl->Append(sub);
|
sl->Append(sub);
|
||||||
FillProblems(itl.Value(),NbProblems);
|
NbProblems->ChangeValue(itl.Value())++;
|
||||||
}
|
}
|
||||||
for(ii=1; ii<=sl->Length(); ii++)
|
for(ii=1; ii<=sl->Length(); ii++)
|
||||||
if(sl->Value(ii).IsSame(Shape)) break;
|
if(sl->Value(ii).IsSame(Shape)) break;
|
||||||
if(ii>sl->Length()) {
|
if(ii>sl->Length()) {
|
||||||
sl->Append(Shape);
|
sl->Append(Shape);
|
||||||
FillProblems(itl.Value(),NbProblems);
|
NbProblems->ChangeValue(itl.Value())++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -628,7 +550,7 @@ static void GetProblemShapes(const BRepCheck_Analyzer& Ana,
|
|||||||
|
|
||||||
if (itl.Value() != BRepCheck_NoError) {
|
if (itl.Value() != BRepCheck_NoError) {
|
||||||
sl->Append(Shape);
|
sl->Append(Shape);
|
||||||
FillProblems(itl.Value(),NbProblems);
|
NbProblems->ChangeValue(itl.Value())++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!theMap.IsBound(Shape)) {
|
if (!theMap.IsBound(Shape)) {
|
||||||
@ -653,7 +575,6 @@ static void GetProblemShapes(const BRepCheck_Analyzer& Ana,
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -672,122 +593,60 @@ void StructuralDump(Draw_Interpretor& theCommands,
|
|||||||
const TopoDS_Shape &theShape)
|
const TopoDS_Shape &theShape)
|
||||||
{
|
{
|
||||||
Standard_Integer i;
|
Standard_Integer i;
|
||||||
//cout << "StructuralDump" << endl;
|
|
||||||
//cout << " -- The Shape " << ShName << " has problems :"<<endl;
|
|
||||||
//cout<<" Check Count"<<endl;
|
|
||||||
//cout<<" ------------------------------------------------"<<endl;
|
|
||||||
theCommands << " -- The Shape " << ShName << " has problems :"<<"\n";
|
theCommands << " -- The Shape " << ShName << " has problems :"<<"\n";
|
||||||
theCommands<<" Check Count"<<"\n";
|
theCommands<<" Check Count"<<"\n";
|
||||||
theCommands<<" ------------------------------------------------"<<"\n";
|
theCommands<<" ------------------------------------------------"<<"\n";
|
||||||
|
|
||||||
Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,32);
|
Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,33);
|
||||||
for(i=1; i<=32; i++) NbProblems->SetValue(i,0);
|
for (i=1; i<=33; i++) NbProblems->SetValue (i,0);
|
||||||
Handle(TopTools_HSequenceOfShape) sl,slv,sle,slw,slf,sls,slo;
|
Handle(TopTools_HSequenceOfShape) sl,slv,sle,slw,slf,sls,slo;
|
||||||
sl = new TopTools_HSequenceOfShape();
|
sl = new TopTools_HSequenceOfShape();
|
||||||
theMap.Clear();
|
theMap.Clear();
|
||||||
GetProblemShapes(theAna, theShape, sl, NbProblems);
|
GetProblemShapes(theAna, theShape, sl, NbProblems);
|
||||||
theMap.Clear();
|
theMap.Clear();
|
||||||
|
|
||||||
if(NbProblems->Value(1)>0)
|
NCollection_Array1<const char*> aProblems (1,33);
|
||||||
theCommands<<" Invalid Point on Curve ................... "<<NbProblems->Value(1)<<"\n";
|
|
||||||
//cout<<" Invalid Point on Curve ................... "<<NbProblems->Value(1)<<endl;
|
aProblems.SetValue( BRepCheck_InvalidPointOnCurve, " Invalid Point on Curve ................... ");
|
||||||
if(NbProblems->Value(2)>0)
|
aProblems.SetValue(BRepCheck_InvalidPointOnCurveOnSurface, " Invalid Point on CurveOnSurface .......... ");
|
||||||
theCommands<<" Invalid Point on CurveOnSurface .......... "<<NbProblems->Value(2)<<"\n";
|
aProblems.SetValue(BRepCheck_InvalidPointOnSurface, " Invalid Point on Surface ................. ");
|
||||||
//cout<<" Invalid Point on CurveOnSurface .......... "<<NbProblems->Value(2)<<endl;
|
aProblems.SetValue(BRepCheck_No3DCurve, " No 3D Curve .............................. ");
|
||||||
if(NbProblems->Value(3)>0)
|
aProblems.SetValue(BRepCheck_Multiple3DCurve, " Multiple 3D Curve ........................ ");
|
||||||
theCommands<<" Invalid Point on Surface ................. "<<NbProblems->Value(3)<<"\n";
|
aProblems.SetValue(BRepCheck_Invalid3DCurve, " Invalid 3D Curve ......................... ");
|
||||||
//cout<<" Invalid Point on Surface ................. "<<NbProblems->Value(3)<<endl;
|
aProblems.SetValue(BRepCheck_NoCurveOnSurface, " No Curve on Surface ...................... ");
|
||||||
if(NbProblems->Value(4)>0)
|
aProblems.SetValue(BRepCheck_InvalidCurveOnSurface, " Invalid Curve on Surface ................. ");
|
||||||
theCommands<<" No 3D Curve .............................. "<<NbProblems->Value(4)<<"\n";
|
aProblems.SetValue(BRepCheck_InvalidCurveOnClosedSurface, " Invalid Curve on Closed Surface ................. ");
|
||||||
//cout<<" No 3D Curve .............................. "<<NbProblems->Value(4)<<endl;
|
aProblems.SetValue(BRepCheck_InvalidSameRangeFlag, " Invalid SameRange Flag ................... ");
|
||||||
if(NbProblems->Value(5)>0)
|
aProblems.SetValue(BRepCheck_InvalidSameParameterFlag, " Invalid SameParameter Flag ............... ");
|
||||||
theCommands<<" Multiple 3D Curve ........................ "<<NbProblems->Value(5)<<"\n";
|
aProblems.SetValue(BRepCheck_InvalidDegeneratedFlag, " Invalid Degenerated Flag ................. ");
|
||||||
//cout<<" Multiple 3D Curve ........................ "<<NbProblems->Value(5)<<endl;
|
aProblems.SetValue(BRepCheck_FreeEdge, " Free Edge ................................ ");
|
||||||
if(NbProblems->Value(6)>0)
|
aProblems.SetValue(BRepCheck_InvalidMultiConnexity, " Invalid Multi Connexity ................... ");
|
||||||
theCommands<<" Invalid 3D Curve ......................... "<<NbProblems->Value(6)<<"\n";
|
aProblems.SetValue(BRepCheck_InvalidRange, " Invalid Range ................... ");
|
||||||
//cout<<" Invalid 3D Curve ......................... "<<NbProblems->Value(6)<<endl;
|
aProblems.SetValue(BRepCheck_EmptyWire, " Empty Wire ................... ");
|
||||||
if(NbProblems->Value(7)>0)
|
aProblems.SetValue(BRepCheck_RedundantEdge, " BRepCheck_RedundantEdge ................... ");
|
||||||
theCommands<<" No Curve on Surface ...................... "<<NbProblems->Value(7)<<"\n";
|
aProblems.SetValue(BRepCheck_SelfIntersectingWire, " Self Intersecting Wire ................... ");
|
||||||
//cout<<" No Curve on Surface ...................... "<<NbProblems->Value(7)<<endl;
|
aProblems.SetValue(BRepCheck_NoSurface, " No Surface ................... ");
|
||||||
if(NbProblems->Value(8)>0)
|
aProblems.SetValue(BRepCheck_InvalidWire, " Invalid Wire ................... ");
|
||||||
theCommands<<" Invalid Curve on Surface ................. "<<NbProblems->Value(8)<<"\n";
|
aProblems.SetValue(BRepCheck_RedundantWire, " Redundant Wire ................... ");
|
||||||
//cout<<" Invalid Curve on Surface ................. "<<NbProblems->Value(8)<<endl;
|
aProblems.SetValue(BRepCheck_IntersectingWires, " Intersecting Wires ................... ");
|
||||||
if(NbProblems->Value(9)>0)
|
aProblems.SetValue(BRepCheck_InvalidImbricationOfWires, " Invalid Imbrication Of Wires .................. ");
|
||||||
theCommands<<" Invalid Curve on closed Surface .......... "<<NbProblems->Value(9)<<"\n";
|
aProblems.SetValue(BRepCheck_EmptyShell, " Empty Shell ................... ");
|
||||||
//cout<<" Invalid Curve on closed Surface .......... "<<NbProblems->Value(9)<<endl;
|
aProblems.SetValue(BRepCheck_RedundantFace, " Redundant Face ................... ");
|
||||||
if(NbProblems->Value(10)>0)
|
aProblems.SetValue(BRepCheck_UnorientableShape, " Unorientable Shape ................... ");
|
||||||
theCommands<<" Invalid SameRange Flag ................... "<<NbProblems->Value(10)<<"\n";
|
aProblems.SetValue(BRepCheck_NotClosed, " Not Closed ................... ");
|
||||||
//cout<<" Invalid SameRange Flag ................... "<<NbProblems->Value(10)<<endl;
|
aProblems.SetValue(BRepCheck_NotConnected, " Not Connected ................... ");
|
||||||
if(NbProblems->Value(11)>0)
|
aProblems.SetValue(BRepCheck_SubshapeNotInShape, " Subshape Not In Shape ................... ");
|
||||||
theCommands<<" Invalid SameParameter Flag ............... "<<NbProblems->Value(11)<<"\n";
|
aProblems.SetValue(BRepCheck_BadOrientation, " Bad Orientation ................... ");
|
||||||
//cout<<" Invalid SameParameter Flag ............... "<<NbProblems->Value(11)<<endl;
|
aProblems.SetValue(BRepCheck_BadOrientationOfSubshape, " Bad Orientation of Subshape .............. ");
|
||||||
if(NbProblems->Value(12)>0)
|
aProblems.SetValue(BRepCheck_InvalidToleranceValue, " Invalid tolerance value................... ");
|
||||||
theCommands<<" Invalid Degenerated Flag ................. "<<NbProblems->Value(12)<<"\n";
|
aProblems.SetValue(BRepCheck_CheckFail, " Checkshape failure....................... ");
|
||||||
//cout<<" Invalid Degenerated Flag ................. "<<NbProblems->Value(12)<<endl;
|
|
||||||
if(NbProblems->Value(13)>0)
|
for (Standard_Integer i = (Standard_Integer)BRepCheck_InvalidPointOnCurve; i <= (Standard_Integer)BRepCheck_CheckFail; ++i)
|
||||||
theCommands<<" Free Edge ................................ "<<NbProblems->Value(13)<<"\n";
|
{
|
||||||
//cout<<" Free Edge ................................ "<<NbProblems->Value(13)<<endl;
|
if (NbProblems->Value (i) > 0)
|
||||||
if(NbProblems->Value(14)>0)
|
theCommands << i << aProblems.Value (i) << "\n";
|
||||||
theCommands<<" Invalid MultiConnexity ................... "<<NbProblems->Value(14)<<"\n";
|
}
|
||||||
//cout<<" Invalid MultiConnexity ................... "<<NbProblems->Value(14)<<endl;
|
|
||||||
if(NbProblems->Value(15)>0)
|
|
||||||
theCommands<<" Invalid Range ............................ "<<NbProblems->Value(15)<<"\n";
|
|
||||||
//cout<<" Invalid Range ............................ "<<NbProblems->Value(15)<<endl;
|
|
||||||
if(NbProblems->Value(16)>0)
|
|
||||||
theCommands<<" Empty Wire ............................... "<<NbProblems->Value(16)<<"\n";
|
|
||||||
//cout<<" Empty Wire ............................... "<<NbProblems->Value(16)<<endl;
|
|
||||||
if(NbProblems->Value(17)>0)
|
|
||||||
theCommands<<" Redundant Edge ........................... "<<NbProblems->Value(17)<<"\n";
|
|
||||||
//cout<<" Redundant Edge ........................... "<<NbProblems->Value(17)<<endl;
|
|
||||||
if(NbProblems->Value(18)>0)
|
|
||||||
theCommands<<" Self Intersecting Wire ................... "<<NbProblems->Value(18)<<"\n";
|
|
||||||
//cout<<" Self Intersecting Wire ................... "<<NbProblems->Value(18)<<endl;
|
|
||||||
if(NbProblems->Value(19)>0)
|
|
||||||
theCommands<<" No Surface ............................... "<<NbProblems->Value(19)<<"\n";
|
|
||||||
//cout<<" No Surface ............................... "<<NbProblems->Value(19)<<endl;
|
|
||||||
if(NbProblems->Value(20)>0)
|
|
||||||
theCommands<<" Invalid Wire ............................. "<<NbProblems->Value(20)<<"\n";
|
|
||||||
//cout<<" Invalid Wire ............................. "<<NbProblems->Value(20)<<endl;
|
|
||||||
if(NbProblems->Value(21)>0)
|
|
||||||
theCommands<<" Redundant Wire ........................... "<<NbProblems->Value(21)<<"\n";
|
|
||||||
//cout<<" Redundant Wire ........................... "<<NbProblems->Value(21)<<endl;
|
|
||||||
if(NbProblems->Value(22)>0)
|
|
||||||
theCommands<<" Intersecting Wires ....................... "<<NbProblems->Value(22)<<"\n";
|
|
||||||
//cout<<" Intersecting Wires ....................... "<<NbProblems->Value(22)<<endl;
|
|
||||||
if(NbProblems->Value(23)>0)
|
|
||||||
theCommands<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(23)<<"\n";
|
|
||||||
//cout<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(23)<<endl;
|
|
||||||
if(NbProblems->Value(24)>0)
|
|
||||||
theCommands<<" Empty Shell .............................. "<<NbProblems->Value(24)<<"\n";
|
|
||||||
//cout<<" Empty Shell .............................. "<<NbProblems->Value(24)<<endl;
|
|
||||||
if(NbProblems->Value(25)>0)
|
|
||||||
theCommands<<" Redundant Face ........................... "<<NbProblems->Value(25)<<"\n";
|
|
||||||
//cout<<" Redundant Face ........................... "<<NbProblems->Value(25)<<endl;
|
|
||||||
if(NbProblems->Value(26)>0)
|
|
||||||
theCommands<<" Unorientable Shape ....................... "<<NbProblems->Value(26)<<"\n";
|
|
||||||
//cout<<" Unorientable Shape ....................... "<<NbProblems->Value(26)<<endl;
|
|
||||||
if(NbProblems->Value(27)>0)
|
|
||||||
theCommands<<" Not Closed ............................... "<<NbProblems->Value(27)<<"\n";
|
|
||||||
//cout<<" Not Closed ............................... "<<NbProblems->Value(27)<<endl;
|
|
||||||
if(NbProblems->Value(28)>0)
|
|
||||||
theCommands<<" Not Connected ............................ "<<NbProblems->Value(28)<<"\n";
|
|
||||||
//cout<<" Not Connected ............................ "<<NbProblems->Value(28)<<endl;
|
|
||||||
if(NbProblems->Value(29)>0)
|
|
||||||
theCommands<<" Subshape not in Shape .................... "<<NbProblems->Value(29)<<"\n";
|
|
||||||
//cout<<" Subshape not in Shape .................... "<<NbProblems->Value(29)<<endl;
|
|
||||||
if(NbProblems->Value(30)>0)
|
|
||||||
theCommands<<" Bad Orientation .......................... "<<NbProblems->Value(30)<<"\n";
|
|
||||||
//cout<<" Bad Orientation .......................... "<<NbProblems->Value(30)<<endl;
|
|
||||||
if(NbProblems->Value(31)>0)
|
|
||||||
theCommands<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(31)<<"\n";
|
|
||||||
//cout<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(31)<<endl;
|
|
||||||
if(NbProblems->Value(32)>0)
|
|
||||||
theCommands<<" checkshape failure......... .............. "<<NbProblems->Value(32)<<"\n";
|
|
||||||
//cout<<" checkshape failure......... .............. "<<NbProblems->Value(32)<<endl;
|
|
||||||
|
|
||||||
//cout<<" ------------------------------------------------"<<endl;
|
|
||||||
//cout<<"*** Shapes with problems : "<<sl->Length()<<endl;
|
|
||||||
//cout<<endl;
|
|
||||||
theCommands<<" ------------------------------------------------"<<"\n";
|
theCommands<<" ------------------------------------------------"<<"\n";
|
||||||
theCommands<<"*** Shapes with problems : "<<sl->Length()<<"\n";
|
theCommands<<"*** Shapes with problems : "<<sl->Length()<<"\n";
|
||||||
|
|
||||||
|
@ -912,7 +912,8 @@ static Standard_Integer cfindp (Draw_Interpretor& , Standard_Integer n, const ch
|
|||||||
|
|
||||||
Draw_Display d = dout.MakeDisplay(view);
|
Draw_Display d = dout.MakeDisplay(view);
|
||||||
|
|
||||||
Handle(Draw_Drawable3D) D = Draw::Get(a[1]);
|
Handle(
|
||||||
|
Draw_Drawable3D) D = Draw::Get(a[1]);
|
||||||
|
|
||||||
Handle(DrawTrSurf_BezierCurve) DBz =
|
Handle(DrawTrSurf_BezierCurve) DBz =
|
||||||
Handle(DrawTrSurf_BezierCurve)::DownCast(D);
|
Handle(DrawTrSurf_BezierCurve)::DownCast(D);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user