mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4fe93acc64 | ||
|
4ac85f1a6b | ||
|
c9232a6349 | ||
|
e168d693ed |
@@ -414,7 +414,8 @@ void ProcessVertex(const TopoDS_Vertex& aV,
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
// Update Tolerance
|
// Update Tolerance
|
||||||
TV->Tolerance(aTolMax2);
|
// with a small margin
|
||||||
|
TV->Tolerance(aTolMax2 + aTolMax2*0.0001);
|
||||||
}
|
}
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : breducetolerance
|
//function : breducetolerance
|
||||||
|
@@ -42,7 +42,7 @@ void BRepCheck::Add(BRepCheck_ListOfStatus& lst, const BRepCheck_Status stat)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (it.Value() == stat) {
|
if (it.Value() == stat) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
it.Next();
|
it.Next();
|
||||||
}
|
}
|
||||||
@@ -55,15 +55,15 @@ void BRepCheck::Add(BRepCheck_ListOfStatus& lst, const BRepCheck_Status stat)
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
Standard_Boolean BRepCheck::SelfIntersection(const TopoDS_Wire& W,
|
Standard_Boolean BRepCheck::SelfIntersection(const TopoDS_Wire& W,
|
||||||
const TopoDS_Face& myFace,
|
const TopoDS_Face& myFace,
|
||||||
TopoDS_Edge& RetE1,
|
TopoDS_Edge& RetE1,
|
||||||
TopoDS_Edge& RetE2)
|
TopoDS_Edge& RetE2)
|
||||||
{
|
{
|
||||||
Handle(BRepCheck_Wire) chkw = new BRepCheck_Wire(W);
|
Handle(BRepCheck_Wire) chkw = new BRepCheck_Wire(W);
|
||||||
BRepCheck_Status stat = chkw->SelfIntersect(myFace,RetE1,RetE2);
|
BRepCheck_Status stat = chkw->SelfIntersect(myFace,RetE1,RetE2);
|
||||||
return (stat == BRepCheck_SelfIntersectingWire);
|
return (stat == BRepCheck_SelfIntersectingWire);
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : PrecCurve
|
//function : PrecCurve
|
||||||
//purpose :
|
//purpose :
|
||||||
@@ -129,7 +129,7 @@ Standard_Real BRepCheck::PrecSurface(const Handle(Adaptor3d_Surface)& aAHSurf)
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void BRepCheck::Print(const BRepCheck_Status stat,
|
void BRepCheck::Print(const BRepCheck_Status stat,
|
||||||
Standard_OStream& OS)
|
Standard_OStream& OS)
|
||||||
{
|
{
|
||||||
|
|
||||||
switch (stat) {
|
switch (stat) {
|
||||||
@@ -244,6 +244,10 @@ void BRepCheck::Print(const BRepCheck_Status stat,
|
|||||||
case BRepCheck_EnclosedRegion:
|
case BRepCheck_EnclosedRegion:
|
||||||
OS << "BRepCheck_EnclosedRegion\n";
|
OS << "BRepCheck_EnclosedRegion\n";
|
||||||
break;
|
break;
|
||||||
|
case BRepCheck_CollapsedEdge:
|
||||||
|
OS << "BRepCheck_CollapsedEdge\n";
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void BRepCheck_Analyzer::Init(const TopoDS_Shape& S,
|
void BRepCheck_Analyzer::Init(const TopoDS_Shape& S,
|
||||||
const Standard_Boolean B)
|
const Standard_Boolean B)
|
||||||
{
|
{
|
||||||
if (S.IsNull()) {
|
if (S.IsNull()) {
|
||||||
throw Standard_NullObject();
|
throw Standard_NullObject();
|
||||||
@@ -55,7 +55,7 @@ void BRepCheck_Analyzer::Init(const TopoDS_Shape& S,
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void BRepCheck_Analyzer::Put(const TopoDS_Shape& S,
|
void BRepCheck_Analyzer::Put(const TopoDS_Shape& S,
|
||||||
const Standard_Boolean B)
|
const Standard_Boolean B)
|
||||||
{
|
{
|
||||||
if (!myMap.IsBound(S)) {
|
if (!myMap.IsBound(S)) {
|
||||||
Handle(BRepCheck_Result) HR;
|
Handle(BRepCheck_Result) HR;
|
||||||
@@ -114,7 +114,7 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
// modified by NIZHNY-MKK Wed May 19 16:56:16 2004.BEGIN
|
// modified by NIZHNY-MKK Wed May 19 16:56:16 2004.BEGIN
|
||||||
// There is no need to check anything.
|
// There is no need to check anything.
|
||||||
// if (myShape.IsSame(S)) {
|
// if (myShape.IsSame(S)) {
|
||||||
// myMap(S)->Blind();
|
// myMap(S)->Blind();
|
||||||
// }
|
// }
|
||||||
// modified by NIZHNY-MKK Wed May 19 16:56:23 2004.END
|
// modified by NIZHNY-MKK Wed May 19 16:56:23 2004.END
|
||||||
|
|
||||||
@@ -123,6 +123,66 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
{
|
{
|
||||||
Handle(BRepCheck_Result)& aRes = myMap(S);
|
Handle(BRepCheck_Result)& aRes = myMap(S);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
BRepCheck_Status ste = Handle(BRepCheck_Edge)::
|
||||||
|
DownCast(aRes)->CheckTolerance(TopoDS::Edge(S));
|
||||||
|
|
||||||
|
if(ste != BRepCheck_NoError)
|
||||||
|
{
|
||||||
|
Handle(BRepCheck_Edge)::DownCast(aRes)->SetStatus(ste);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Standard_Failure)
|
||||||
|
{
|
||||||
|
#ifdef DEB
|
||||||
|
cout<<"BRepCheck_Analyzer : ";
|
||||||
|
Standard_Failure::Caught()->Print(cout);
|
||||||
|
cout<<endl;
|
||||||
|
#endif
|
||||||
|
if ( ! myMap(S).IsNull() )
|
||||||
|
{
|
||||||
|
myMap(S)->SetFailStatus(S);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! aRes.IsNull() )
|
||||||
|
{
|
||||||
|
aRes->SetFailStatus(exp.Current());
|
||||||
|
aRes->SetFailStatus(S);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 << endl;
|
||||||
|
#endif
|
||||||
|
if (!myMap(S).IsNull())
|
||||||
|
myMap(S)->SetFailStatus(S);
|
||||||
|
|
||||||
|
Handle(BRepCheck_Result) aVertexRes = myMap(aVertex);
|
||||||
|
|
||||||
|
if (!aVertexRes.IsNull())
|
||||||
|
{
|
||||||
|
aVertexRes->SetFailStatus(aVertex);
|
||||||
|
aVertexRes->SetFailStatus(S);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BRepCheck_Status ste = Handle(BRepCheck_Edge)::
|
BRepCheck_Status ste = Handle(BRepCheck_Edge)::
|
||||||
@@ -140,18 +200,18 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
std::cout<<std::endl;
|
std::cout<<std::endl;
|
||||||
#endif
|
#endif
|
||||||
(void)anException;
|
(void)anException;
|
||||||
if ( ! myMap(S).IsNull() )
|
if (!myMap(S).IsNull())
|
||||||
{
|
{
|
||||||
myMap(S)->SetFailStatus(S);
|
myMap(S)->SetFailStatus(S);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! aRes.IsNull() )
|
if ( ! aRes.IsNull() )
|
||||||
{
|
{
|
||||||
aRes->SetFailStatus(S);
|
aRes->SetFailStatus(S);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TopTools_MapOfShape MapS;
|
TopTools_MapOfShape avertexMap;
|
||||||
|
|
||||||
for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next())
|
for (exp.Init(S,TopAbs_VERTEX);exp.More(); exp.Next())
|
||||||
{
|
{
|
||||||
@@ -159,7 +219,7 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
OCC_CATCH_SIGNALS
|
OCC_CATCH_SIGNALS
|
||||||
if (MapS.Add(aVertex))
|
if (avertexMap.Add(aVertex))
|
||||||
myMap(aVertex)->InContext(S);
|
myMap(aVertex)->InContext(S);
|
||||||
}
|
}
|
||||||
catch(Standard_Failure const& anException) {
|
catch(Standard_Failure const& anException) {
|
||||||
@@ -256,6 +316,12 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
performwire = Standard_False;
|
performwire = Standard_False;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if(ste == BRepCheck_CollapsedEdge)
|
||||||
|
//{
|
||||||
|
// isInvalidTolerance = Standard_True;
|
||||||
|
// break;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -392,15 +458,15 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
|
|
||||||
case TopAbs_SOLID:
|
case TopAbs_SOLID:
|
||||||
{
|
{
|
||||||
exp.Init(S,TopAbs_SHELL);
|
exp.Init(S,TopAbs_SHELL);
|
||||||
for (; exp.More(); exp.Next())
|
for (; exp.More(); exp.Next())
|
||||||
{
|
{
|
||||||
const TopoDS_Shape& aShell=exp.Current();
|
const TopoDS_Shape& aShell=exp.Current();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
OCC_CATCH_SIGNALS
|
OCC_CATCH_SIGNALS
|
||||||
myMap(aShell)->InContext(S);
|
myMap(aShell)->InContext(S);
|
||||||
}
|
}
|
||||||
catch(Standard_Failure const& anException) {
|
catch(Standard_Failure const& anException) {
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
std::cout<<"BRepCheck_Analyzer : ";
|
std::cout<<"BRepCheck_Analyzer : ";
|
||||||
@@ -410,19 +476,19 @@ void BRepCheck_Analyzer::Perform(const TopoDS_Shape& S)
|
|||||||
(void)anException;
|
(void)anException;
|
||||||
if ( ! myMap(S).IsNull() )
|
if ( ! myMap(S).IsNull() )
|
||||||
{
|
{
|
||||||
myMap(S)->SetFailStatus(S);
|
myMap(S)->SetFailStatus(S);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
Handle(BRepCheck_Result) aRes = myMap(aShell);
|
Handle(BRepCheck_Result) aRes = myMap(aShell);
|
||||||
if (!aRes.IsNull() )
|
if (!aRes.IsNull() )
|
||||||
{
|
{
|
||||||
aRes->SetFailStatus(exp.Current());
|
aRes->SetFailStatus(exp.Current());
|
||||||
aRes->SetFailStatus(S);
|
aRes->SetFailStatus(S);
|
||||||
}
|
}
|
||||||
}//catch(Standard_Failure)
|
}//catch(Standard_Failure)
|
||||||
}//for (; exp.More(); exp.Next())
|
}//for (; exp.More(); exp.Next())
|
||||||
}
|
}
|
||||||
break;//case TopAbs_SOLID
|
break;//case TopAbs_SOLID
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -496,10 +562,10 @@ Standard_Boolean BRepCheck_Analyzer::ValidSub
|
|||||||
// for (TopExp_Explorer exp(S,SubType);exp.More(); exp.Next()) {
|
// for (TopExp_Explorer exp(S,SubType);exp.More(); exp.Next()) {
|
||||||
const Handle(BRepCheck_Result)& RV = myMap(exp.Current());
|
const Handle(BRepCheck_Result)& RV = myMap(exp.Current());
|
||||||
for (RV->InitContextIterator();
|
for (RV->InitContextIterator();
|
||||||
RV->MoreShapeInContext();
|
RV->MoreShapeInContext();
|
||||||
RV->NextShapeInContext()) {
|
RV->NextShapeInContext()) {
|
||||||
if (RV->ContextualShape().IsSame(S)) {
|
if (RV->ContextualShape().IsSame(S)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -507,7 +573,7 @@ Standard_Boolean BRepCheck_Analyzer::ValidSub
|
|||||||
|
|
||||||
for (itl.Initialize(RV->StatusOnShape()); itl.More(); itl.Next()) {
|
for (itl.Initialize(RV->StatusOnShape()); itl.More(); itl.Next()) {
|
||||||
if (itl.Value() != BRepCheck_NoError) {
|
if (itl.Value() != BRepCheck_NoError) {
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,6 +27,15 @@
|
|||||||
#include <BRep_PolygonOnTriangulation.hxx>
|
#include <BRep_PolygonOnTriangulation.hxx>
|
||||||
#include <BRep_TEdge.hxx>
|
#include <BRep_TEdge.hxx>
|
||||||
#include <BRep_TFace.hxx>
|
#include <BRep_TFace.hxx>
|
||||||
|
|
||||||
|
#include <BRepAdaptor_Curve.hxx>
|
||||||
|
|
||||||
|
#include <BRep_CurveRepresentation.hxx>
|
||||||
|
#include <BRep_ListOfCurveRepresentation.hxx>
|
||||||
|
#include <BRep_ListIteratorOfListOfCurveRepresentation.hxx>
|
||||||
|
#include <BRep_GCurve.hxx>
|
||||||
|
#include <BRep_CurveOnSurface.hxx>
|
||||||
|
|
||||||
#include <BRep_Tool.hxx>
|
#include <BRep_Tool.hxx>
|
||||||
#include <BRepAdaptor_Curve.hxx>
|
#include <BRepAdaptor_Curve.hxx>
|
||||||
#include <BRepCheck.hxx>
|
#include <BRepCheck.hxx>
|
||||||
@@ -40,6 +49,10 @@
|
|||||||
#include <Geom_Curve.hxx>
|
#include <Geom_Curve.hxx>
|
||||||
#include <Geom_Plane.hxx>
|
#include <Geom_Plane.hxx>
|
||||||
#include <Geom_RectangularTrimmedSurface.hxx>
|
#include <Geom_RectangularTrimmedSurface.hxx>
|
||||||
|
|
||||||
|
#include <TopExp.hxx>
|
||||||
|
#include <TopExp_Explorer.hxx>
|
||||||
|
|
||||||
#include <Geom_Surface.hxx>
|
#include <Geom_Surface.hxx>
|
||||||
#include <Geom_TrimmedCurve.hxx>
|
#include <Geom_TrimmedCurve.hxx>
|
||||||
#include <Geom2d_TrimmedCurve.hxx>
|
#include <Geom2d_TrimmedCurve.hxx>
|
||||||
@@ -60,23 +73,39 @@
|
|||||||
#include <TopoDS_Edge.hxx>
|
#include <TopoDS_Edge.hxx>
|
||||||
#include <TopoDS_Face.hxx>
|
#include <TopoDS_Face.hxx>
|
||||||
#include <TopoDS_Shape.hxx>
|
#include <TopoDS_Shape.hxx>
|
||||||
|
#include <TopoDS_Vertex.hxx>
|
||||||
|
#include <Precision.hxx>
|
||||||
|
|
||||||
IMPLEMENT_STANDARD_RTTIEXT(BRepCheck_Edge,BRepCheck_Result)
|
IMPLEMENT_STANDARD_RTTIEXT(BRepCheck_Edge,BRepCheck_Result)
|
||||||
|
//Golden ratio
|
||||||
|
static const Standard_Real GoldRatio = (sqrt(5.0)-1)/2.0;
|
||||||
|
|
||||||
|
static const Standard_Real DivPoints[] = {
|
||||||
|
GoldRatio,
|
||||||
|
1.0-GoldRatio,
|
||||||
|
4.0*GoldRatio-2.0,
|
||||||
|
3.0-4.0*GoldRatio,
|
||||||
|
0.5
|
||||||
|
};
|
||||||
|
|
||||||
|
static const Standard_Integer maxNIter = sizeof(DivPoints)/sizeof(DivPoints[0]);
|
||||||
|
|
||||||
|
|
||||||
//modified by NIZNHY-PKV Thu May 05 09:01:57 2011f
|
//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&,
|
||||||
const Standard_Real,
|
const Standard_Real,
|
||||||
const Standard_Boolean);
|
const Standard_Boolean);
|
||||||
|
|
||||||
static
|
static
|
||||||
void PrintProblematicPoint(const gp_Pnt&,
|
void PrintProblematicPoint(const gp_Pnt&,
|
||||||
const Standard_Real,
|
const Standard_Real,
|
||||||
const Standard_Real);
|
const Standard_Real);
|
||||||
|
|
||||||
static
|
static
|
||||||
Standard_Real Prec(const Adaptor3d_Curve& aAC3D,
|
Standard_Real Prec(const Adaptor3d_Curve& aAC3D,
|
||||||
const Adaptor3d_CurveOnSurface& aACS);
|
const Adaptor3d_CurveOnSurface& aACS);
|
||||||
|
|
||||||
//static Standard_Boolean Validate(const Adaptor3d_Curve&,
|
//static Standard_Boolean Validate(const Adaptor3d_Curve&,
|
||||||
// const Adaptor3d_Curve&,
|
// const Adaptor3d_Curve&,
|
||||||
@@ -118,27 +147,27 @@ void BRepCheck_Edge::Minimum()
|
|||||||
Standard_Boolean unique = Standard_True;
|
Standard_Boolean unique = Standard_True;
|
||||||
// Search for a 3D reference. If no existent one, creates it with the
|
// Search for a 3D reference. If no existent one, creates it with the
|
||||||
// first encountered CurveOnSurf; if multiple, chooses the first one...
|
// first encountered CurveOnSurf; if multiple, chooses the first one...
|
||||||
|
|
||||||
Standard_Boolean Degenerated = TE->Degenerated();
|
Standard_Boolean Degenerated = TE->Degenerated();
|
||||||
Standard_Boolean SameParameter = TE->SameParameter();
|
Standard_Boolean SameParameter = TE->SameParameter();
|
||||||
Standard_Boolean SameRange = TE->SameRange();
|
Standard_Boolean SameRange = TE->SameRange();
|
||||||
if (!SameRange && SameParameter) {
|
if (!SameRange && SameParameter) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
||||||
}
|
}
|
||||||
// Handle(Geom_Curve) C3d;
|
// Handle(Geom_Curve) C3d;
|
||||||
|
|
||||||
while (itcr.More()) {
|
while (itcr.More()) {
|
||||||
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
||||||
if (cr->IsCurve3D()) {
|
if (cr->IsCurve3D()) {
|
||||||
if (!exist) {
|
if (!exist) {
|
||||||
exist = Standard_True;
|
exist = Standard_True;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
unique = Standard_False;
|
unique = Standard_False;
|
||||||
}
|
}
|
||||||
if (myCref.IsNull() && !cr->Curve3D().IsNull()) {
|
if (myCref.IsNull() && !cr->Curve3D().IsNull()) {
|
||||||
myCref = cr;
|
myCref = cr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
itcr.Next();
|
itcr.Next();
|
||||||
}
|
}
|
||||||
@@ -154,12 +183,12 @@ void BRepCheck_Edge::Minimum()
|
|||||||
if (myCref.IsNull() && !Degenerated) {
|
if (myCref.IsNull() && !Degenerated) {
|
||||||
itcr.Initialize(TE->Curves());
|
itcr.Initialize(TE->Curves());
|
||||||
while (itcr.More()) {
|
while (itcr.More()) {
|
||||||
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
||||||
if (cr->IsCurveOnSurface()) {
|
if (cr->IsCurveOnSurface()) {
|
||||||
myCref = cr;
|
myCref = cr;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
itcr.Next();
|
itcr.Next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!myCref.IsNull() && Degenerated){
|
else if (!myCref.IsNull() && Degenerated){
|
||||||
@@ -172,24 +201,24 @@ void BRepCheck_Edge::Minimum()
|
|||||||
Standard_Real First,Last;
|
Standard_Real First,Last;
|
||||||
GCref->Range(First,Last);
|
GCref->Range(First,Last);
|
||||||
if (Last<=First) {
|
if (Last<=First) {
|
||||||
myCref.Nullify();
|
myCref.Nullify();
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidRange);
|
BRepCheck::Add(lst,BRepCheck_InvalidRange);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (myCref->IsCurve3D()) {
|
if (myCref->IsCurve3D()) {
|
||||||
// eap 6 Jun 2002 occ332
|
// eap 6 Jun 2002 occ332
|
||||||
// better transform C3d instead of transforming Surf upto C3d initial location,
|
// better transform C3d instead of transforming Surf upto C3d initial location,
|
||||||
// on transformed BSpline surface 'same parameter' may seem wrong
|
// on transformed BSpline surface 'same parameter' may seem wrong
|
||||||
TopLoc_Location L = myShape.Location() * myCref->Location();
|
TopLoc_Location L = myShape.Location() * myCref->Location();
|
||||||
Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast
|
Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast
|
||||||
(myCref->Curve3D()->Transformed
|
(myCref->Curve3D()->Transformed
|
||||||
(/*myCref->Location()*/L.Transformation()));
|
(/*myCref->Location()*/L.Transformation()));
|
||||||
Standard_Boolean IsPeriodic = C3d->IsPeriodic();
|
Standard_Boolean IsPeriodic = C3d->IsPeriodic();
|
||||||
Standard_Real aPeriod = RealLast();
|
Standard_Real aPeriod = RealLast();
|
||||||
if(IsPeriodic)
|
if(IsPeriodic)
|
||||||
{
|
{
|
||||||
aPeriod = C3d->Period();
|
aPeriod = C3d->Period();
|
||||||
}
|
}
|
||||||
Standard_Real f = C3d->FirstParameter(), l = C3d->LastParameter();
|
Standard_Real f = C3d->FirstParameter(), l = C3d->LastParameter();
|
||||||
if (C3d->DynamicType() == STANDARD_TYPE(Geom_TrimmedCurve))
|
if (C3d->DynamicType() == STANDARD_TYPE(Geom_TrimmedCurve))
|
||||||
{
|
{
|
||||||
@@ -219,11 +248,11 @@ void BRepCheck_Edge::Minimum()
|
|||||||
myHCurve = new GeomAdaptor_Curve(GAC3d);
|
myHCurve = new GeomAdaptor_Curve(GAC3d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { // curve on surface
|
else { // curve on surface
|
||||||
Handle(Geom_Surface) Sref = myCref->Surface();
|
Handle(Geom_Surface) Sref = myCref->Surface();
|
||||||
Sref = Handle(Geom_Surface)::DownCast
|
Sref = Handle(Geom_Surface)::DownCast
|
||||||
(Sref->Transformed(myCref->Location().Transformation()));
|
(Sref->Transformed(myCref->Location().Transformation()));
|
||||||
const Handle(Geom2d_Curve)& PCref = myCref->PCurve();
|
const Handle(Geom2d_Curve)& PCref = myCref->PCurve();
|
||||||
Standard_Boolean IsPeriodic = PCref->IsPeriodic();
|
Standard_Boolean IsPeriodic = PCref->IsPeriodic();
|
||||||
Standard_Real aPeriod = RealLast();
|
Standard_Real aPeriod = RealLast();
|
||||||
if(IsPeriodic)
|
if(IsPeriodic)
|
||||||
@@ -257,12 +286,12 @@ void BRepCheck_Edge::Minimum()
|
|||||||
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
||||||
Handle(Geom2dAdaptor_Curve) GHPCref =
|
Handle(Geom2dAdaptor_Curve) GHPCref =
|
||||||
new Geom2dAdaptor_Curve(PCref,First,Last);
|
new Geom2dAdaptor_Curve(PCref,First,Last);
|
||||||
Adaptor3d_CurveOnSurface ACSref(GHPCref,GAHSref);
|
Adaptor3d_CurveOnSurface ACSref(GHPCref,GAHSref);
|
||||||
myHCurve = new Adaptor3d_CurveOnSurface(ACSref);
|
myHCurve = new Adaptor3d_CurveOnSurface(ACSref);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (lst.IsEmpty()) {
|
if (lst.IsEmpty()) {
|
||||||
lst.Append(BRepCheck_NoError);
|
lst.Append(BRepCheck_NoError);
|
||||||
}
|
}
|
||||||
@@ -289,7 +318,7 @@ 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()) {
|
// 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)) {
|
||||||
@@ -300,29 +329,35 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
BRepCheck::Add(lst,BRepCheck_SubshapeNotInShape);
|
BRepCheck::Add(lst,BRepCheck_SubshapeNotInShape);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (styp)
|
switch (styp)
|
||||||
{
|
{
|
||||||
case TopAbs_WIRE:
|
case TopAbs_WIRE:
|
||||||
{
|
{
|
||||||
|
//if (CheckTolerance(TopoDS::Edge(myShape)) == BRepCheck_CollapsedEdge)
|
||||||
|
//{
|
||||||
|
// BRepCheck::Add(lst,BRepCheck_CollapsedEdge);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TopAbs_FACE:
|
case TopAbs_FACE:
|
||||||
if (!myCref.IsNull()) {
|
if (!myCref.IsNull()) {
|
||||||
|
|
||||||
Standard_Boolean SameParameter = TE->SameParameter();
|
Standard_Boolean SameParameter = TE->SameParameter();
|
||||||
Standard_Boolean SameRange = TE->SameRange();
|
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: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
|
// Modified by skv - Tue Apr 27 11:48:14 2004 End
|
||||||
Standard_Real First = myHCurve->FirstParameter();
|
Standard_Real First = myHCurve->FirstParameter();
|
||||||
Standard_Real Last = myHCurve->LastParameter();
|
Standard_Real Last = myHCurve->LastParameter();
|
||||||
|
|
||||||
@@ -338,12 +373,12 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
|
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
|
||||||
Standard_Real eps = Precision::PConfusion();
|
Standard_Real eps = Precision::PConfusion();
|
||||||
while (itcr.More()) {
|
while (itcr.More()) {
|
||||||
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
||||||
if (cr != myCref && cr->IsCurveOnSurface(Su,L)) {
|
if (cr != myCref && cr->IsCurveOnSurface(Su,L)) {
|
||||||
pcurvefound = Standard_True;
|
pcurvefound = Standard_True;
|
||||||
Handle(BRep_GCurve) GC (Handle(BRep_GCurve)::DownCast (cr));
|
Handle(BRep_GCurve) GC (Handle(BRep_GCurve)::DownCast (cr));
|
||||||
Standard_Real f,l;
|
Standard_Real f,l;
|
||||||
GC->Range(f,l);
|
GC->Range(f,l);
|
||||||
Standard_Real ff = f, ll = l;
|
Standard_Real ff = f, ll = l;
|
||||||
if(myCref->IsCurve3D())
|
if(myCref->IsCurve3D())
|
||||||
{
|
{
|
||||||
@@ -351,13 +386,13 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
ll = myCref->Curve3D()->TransformedParameter(l, Etrsf);
|
ll = myCref->Curve3D()->TransformedParameter(l, Etrsf);
|
||||||
}
|
}
|
||||||
// gka OCC
|
// gka OCC
|
||||||
// Modified by skv - Tue Apr 27 11:50:35 2004 Begin
|
// Modified by skv - Tue Apr 27 11:50:35 2004 Begin
|
||||||
if (Abs(ff-First) > eps ||
|
if (Abs(ff-First) > eps ||
|
||||||
Abs(ll-Last) > eps) {
|
Abs(ll-Last) > eps) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag);
|
BRepCheck::Add(lst,BRepCheck_InvalidSameRangeFlag);
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
||||||
}
|
}
|
||||||
// Modified by skv - Tue Apr 27 11:50:37 2004 End
|
// Modified by skv - Tue Apr 27 11:50:37 2004 End
|
||||||
//
|
//
|
||||||
const Handle(Geom2d_Curve)& pc = cr->PCurve();
|
const Handle(Geom2d_Curve)& pc = cr->PCurve();
|
||||||
Standard_Boolean IsPeriodic = pc->IsPeriodic();
|
Standard_Boolean IsPeriodic = pc->IsPeriodic();
|
||||||
@@ -389,95 +424,95 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myGctrl) {
|
if (myGctrl) {
|
||||||
Handle(Geom_Surface) Sb = cr->Surface();
|
Handle(Geom_Surface) Sb = cr->Surface();
|
||||||
Sb = Handle(Geom_Surface)::DownCast
|
Sb = Handle(Geom_Surface)::DownCast
|
||||||
// (Su->Transformed(L.Transformation()));
|
// (Su->Transformed(L.Transformation()));
|
||||||
(Su->Transformed(/*L*/(Floc * TFloc).Transformation()));
|
(Su->Transformed(/*L*/(Floc * TFloc).Transformation()));
|
||||||
Handle(Geom2d_Curve) PC = cr->PCurve();
|
Handle(Geom2d_Curve) PC = cr->PCurve();
|
||||||
Handle(GeomAdaptor_Surface) GAHS = new GeomAdaptor_Surface(Sb);
|
Handle(GeomAdaptor_Surface) GAHS = new GeomAdaptor_Surface(Sb);
|
||||||
Handle(Geom2dAdaptor_Curve) GHPC = new Geom2dAdaptor_Curve(PC,f,l);
|
Handle(Geom2dAdaptor_Curve) GHPC = new Geom2dAdaptor_Curve(PC,f,l);
|
||||||
Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
|
Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
|
||||||
Standard_Boolean ok = Validate (*myHCurve, ACS, Tol, SameParameter);
|
Standard_Boolean ok = Validate (*myHCurve, ACS, Tol, SameParameter);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
if (cr->IsCurveOnClosedSurface()) {
|
if (cr->IsCurveOnClosedSurface()) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
|
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
|
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
|
||||||
}
|
}
|
||||||
// Modified by skv - Tue Apr 27 11:53:00 2004 Begin
|
// Modified by skv - Tue Apr 27 11:53:00 2004 Begin
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
||||||
// if (SameParameter) {
|
// if (SameParameter) {
|
||||||
// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
// BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
||||||
// }
|
// }
|
||||||
// Modified by skv - Tue Apr 27 11:53:01 2004 End
|
// Modified by skv - Tue Apr 27 11:53:01 2004 End
|
||||||
}
|
}
|
||||||
if (cr->IsCurveOnClosedSurface()) {
|
if (cr->IsCurveOnClosedSurface()) {
|
||||||
GHPC->Load(cr->PCurve2(),f,l); // same bounds
|
GHPC->Load(cr->PCurve2(),f,l); // same bounds
|
||||||
ACS.Load(GHPC, GAHS); // sans doute inutile
|
ACS.Load(GHPC, GAHS); // sans doute inutile
|
||||||
ok = Validate(*myHCurve,ACS,Tol,SameParameter);
|
ok = Validate(*myHCurve,ACS,Tol,SameParameter);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
|
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
|
||||||
// Modified by skv - Tue Apr 27 11:53:20 2004 Begin
|
// Modified by skv - Tue Apr 27 11:53:20 2004 Begin
|
||||||
if (SameParameter) {
|
if (SameParameter) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
|
||||||
}
|
}
|
||||||
// Modified by skv - Tue Apr 27 11:53:23 2004 End
|
// Modified by skv - Tue Apr 27 11:53:23 2004 End
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
itcr.Next();
|
itcr.Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pcurvefound) {
|
if (!pcurvefound) {
|
||||||
Handle(Geom_Plane) P;
|
Handle(Geom_Plane) P;
|
||||||
Handle(Standard_Type) dtyp = Su->DynamicType();
|
Handle(Standard_Type) dtyp = Su->DynamicType();
|
||||||
if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
|
if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
|
||||||
P = Handle(Geom_Plane)::DownCast
|
P = Handle(Geom_Plane)::DownCast
|
||||||
(Handle(Geom_RectangularTrimmedSurface)::
|
(Handle(Geom_RectangularTrimmedSurface)::
|
||||||
DownCast(Su)->BasisSurface());
|
DownCast(Su)->BasisSurface());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
P = Handle(Geom_Plane)::DownCast(Su);
|
P = Handle(Geom_Plane)::DownCast(Su);
|
||||||
}
|
}
|
||||||
if (P.IsNull()) { // not a plane
|
if (P.IsNull()) { // not a plane
|
||||||
BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface);
|
BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface);
|
||||||
}
|
}
|
||||||
else { // on fait la projection a la volee, comme BRep_Tool
|
else { // on fait la projection a la volee, comme BRep_Tool
|
||||||
// plan en position
|
// plan en position
|
||||||
if (myGctrl) {
|
if (myGctrl) {
|
||||||
P = Handle(Geom_Plane)::
|
P = Handle(Geom_Plane)::
|
||||||
DownCast(P->Transformed(/*L*/(Floc * TFloc).Transformation()));// eap occ332
|
DownCast(P->Transformed(/*L*/(Floc * TFloc).Transformation()));// eap occ332
|
||||||
//on projette Cref sur ce plan
|
//on projette Cref sur ce plan
|
||||||
Handle(GeomAdaptor_Surface) GAHS = new GeomAdaptor_Surface(P);
|
Handle(GeomAdaptor_Surface) GAHS = new GeomAdaptor_Surface(P);
|
||||||
|
|
||||||
// Dub - Normalement myHCurve est une GeomAdaptor_Curve
|
// Dub - Normalement myHCurve est une GeomAdaptor_Curve
|
||||||
Handle(GeomAdaptor_Curve) Gac = Handle(GeomAdaptor_Curve)::DownCast(myHCurve);
|
Handle(GeomAdaptor_Curve) Gac = Handle(GeomAdaptor_Curve)::DownCast(myHCurve);
|
||||||
Handle(Geom_Curve) C3d = Gac->Curve();
|
Handle(Geom_Curve) C3d = Gac->Curve();
|
||||||
Handle(Geom_Curve) ProjOnPlane =
|
Handle(Geom_Curve) ProjOnPlane =
|
||||||
GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last),
|
GeomProjLib::ProjectOnPlane(new Geom_TrimmedCurve(C3d,First,Last),
|
||||||
P, P->Position().Direction(),
|
P, P->Position().Direction(),
|
||||||
Standard_True);
|
Standard_True);
|
||||||
Handle(GeomAdaptor_Curve) aHCurve =
|
Handle(GeomAdaptor_Curve) aHCurve =
|
||||||
new GeomAdaptor_Curve(ProjOnPlane);
|
new GeomAdaptor_Curve(ProjOnPlane);
|
||||||
|
|
||||||
ProjLib_ProjectedCurve proj(GAHS,aHCurve);
|
ProjLib_ProjectedCurve proj(GAHS,aHCurve);
|
||||||
Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj);
|
Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj);
|
||||||
Handle(Geom2dAdaptor_Curve) GHPC =
|
Handle(Geom2dAdaptor_Curve) GHPC =
|
||||||
new Geom2dAdaptor_Curve(PC,
|
new Geom2dAdaptor_Curve(PC,
|
||||||
myHCurve->FirstParameter(),
|
myHCurve->FirstParameter(),
|
||||||
myHCurve->LastParameter());
|
myHCurve->LastParameter());
|
||||||
|
|
||||||
Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
|
|
||||||
|
|
||||||
|
Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
|
||||||
|
|
||||||
Standard_Boolean ok = Validate (*myHCurve, ACS, Tol,Standard_True); // voir dub...
|
Standard_Boolean ok = Validate (*myHCurve, ACS, Tol,Standard_True); // voir dub...
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
|
BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -487,22 +522,22 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
Standard_Integer nbconnection = 0;
|
Standard_Integer nbconnection = 0;
|
||||||
//TopExp_Explorer exp;
|
//TopExp_Explorer exp;
|
||||||
for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) {
|
for (exp.Init(S,TopAbs_FACE); exp.More(); exp.Next()) {
|
||||||
const TopoDS_Face& fac = TopoDS::Face(exp.Current());
|
const TopoDS_Face& fac = TopoDS::Face(exp.Current());
|
||||||
TopExp_Explorer exp2;
|
TopExp_Explorer exp2;
|
||||||
for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) {
|
for (exp2.Init(fac,TopAbs_EDGE); exp2.More(); exp2.Next()) {
|
||||||
if (exp2.Current().IsSame(myShape)) {
|
if (exp2.Current().IsSame(myShape)) {
|
||||||
nbconnection++;
|
nbconnection++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nbconnection < 2 && !TE->Degenerated()) {
|
if (nbconnection < 2 && !TE->Degenerated()) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_FreeEdge);
|
BRepCheck::Add(myMap(S),BRepCheck_FreeEdge);
|
||||||
}
|
}
|
||||||
else if (nbconnection > 2) {
|
else if (nbconnection > 2) {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity);
|
BRepCheck::Add(myMap(S),BRepCheck_InvalidMultiConnexity);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BRepCheck::Add(myMap(S),BRepCheck_NoError);
|
BRepCheck::Add(myMap(S),BRepCheck_NoError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -522,12 +557,12 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
|
|||||||
|
|
||||||
void BRepCheck_Edge::Blind()
|
void BRepCheck_Edge::Blind()
|
||||||
{
|
{
|
||||||
// Modified by skv - Tue Apr 27 11:36:01 2004 Begin
|
// Modified by skv - Tue Apr 27 11:36:01 2004 Begin
|
||||||
// The body of this function is removed because of its useless.
|
// The body of this function is removed because of its useless.
|
||||||
if (!myBlind) {
|
if (!myBlind) {
|
||||||
myBlind = Standard_True;
|
myBlind = Standard_True;
|
||||||
}
|
}
|
||||||
// Modified by skv - Tue Apr 27 11:36:02 2004 End
|
// Modified by skv - Tue Apr 27 11:36:02 2004 End
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -556,12 +591,14 @@ Standard_Boolean BRepCheck_Edge::GeometricControls() const
|
|||||||
//function : SetStatus
|
//function : SetStatus
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
void BRepCheck_Edge::SetStatus(const BRepCheck_Status theStatus)
|
void BRepCheck_Edge::SetStatus(const BRepCheck_Status theStatus)
|
||||||
{
|
{
|
||||||
BRepCheck::Add(myMap(myShape),theStatus);
|
BRepCheck::Add(myMap(myShape),theStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : Tolerance
|
//function : Tolerance
|
||||||
//purpose :
|
//purpose :
|
||||||
@@ -591,13 +628,13 @@ Standard_Real BRepCheck_Edge::Tolerance()
|
|||||||
//// modified by jgv, 20.03.03 ////
|
//// modified by jgv, 20.03.03 ////
|
||||||
TopLoc_Location Loc = myShape.Location() * cr->Location();
|
TopLoc_Location Loc = myShape.Location() * cr->Location();
|
||||||
Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast
|
Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast
|
||||||
(cr->Curve3D()->Transformed( Loc.Transformation() ));
|
(cr->Curve3D()->Transformed( Loc.Transformation() ));
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
GeomAdaptor_Curve GAC3d(C3d,First,Last);
|
GeomAdaptor_Curve GAC3d(C3d,First,Last);
|
||||||
it=iRep;
|
it=iRep;
|
||||||
if (iRep>1) {
|
if (iRep>1) {
|
||||||
theRep(iRep)=theRep(1);
|
theRep(iRep)=theRep(1);
|
||||||
it=1;
|
it=1;
|
||||||
}
|
}
|
||||||
theRep(it) = new GeomAdaptor_Curve(GAC3d);
|
theRep(it) = new GeomAdaptor_Curve(GAC3d);
|
||||||
iRep++;
|
iRep++;
|
||||||
@@ -605,11 +642,11 @@ Standard_Real BRepCheck_Edge::Tolerance()
|
|||||||
else if (cr->IsCurveOnSurface()) {
|
else if (cr->IsCurveOnSurface()) {
|
||||||
{
|
{
|
||||||
Handle(Geom_Surface) Sref = cr->Surface();
|
Handle(Geom_Surface) Sref = cr->Surface();
|
||||||
//// modified by jgv, 20.03.03 ////
|
//// modified by jgv, 20.03.03 ////
|
||||||
TopLoc_Location Loc = myShape.Location() * cr->Location();
|
TopLoc_Location Loc = myShape.Location() * cr->Location();
|
||||||
Sref = Handle(Geom_Surface)::DownCast
|
Sref = Handle(Geom_Surface)::DownCast
|
||||||
(Sref->Transformed( Loc.Transformation() ));
|
(Sref->Transformed( Loc.Transformation() ));
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
const Handle(Geom2d_Curve)& PCref = cr->PCurve();
|
const Handle(Geom2d_Curve)& PCref = cr->PCurve();
|
||||||
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
||||||
Handle(Geom2dAdaptor_Curve) GHPCref =
|
Handle(Geom2dAdaptor_Curve) GHPCref =
|
||||||
@@ -619,17 +656,17 @@ Standard_Real BRepCheck_Edge::Tolerance()
|
|||||||
iRep++;
|
iRep++;
|
||||||
}
|
}
|
||||||
if (cr->IsCurveOnClosedSurface()) {
|
if (cr->IsCurveOnClosedSurface()) {
|
||||||
Handle(Geom_Surface) Sref = cr->Surface();
|
Handle(Geom_Surface) Sref = cr->Surface();
|
||||||
Sref = Handle(Geom_Surface)::DownCast
|
Sref = Handle(Geom_Surface)::DownCast
|
||||||
(Sref->Transformed(cr->Location().Transformation()));
|
(Sref->Transformed(cr->Location().Transformation()));
|
||||||
const Handle(Geom2d_Curve)& PCref = cr->PCurve2();
|
const Handle(Geom2d_Curve)& PCref = cr->PCurve2();
|
||||||
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
Handle(GeomAdaptor_Surface) GAHSref = new GeomAdaptor_Surface(Sref);
|
||||||
Handle(Geom2dAdaptor_Curve) GHPCref =
|
Handle(Geom2dAdaptor_Curve) GHPCref =
|
||||||
new Geom2dAdaptor_Curve(PCref,First,Last);
|
new Geom2dAdaptor_Curve(PCref,First,Last);
|
||||||
Adaptor3d_CurveOnSurface ACSref(GHPCref,GAHSref);
|
Adaptor3d_CurveOnSurface ACSref(GHPCref,GAHSref);
|
||||||
theRep(iRep) = new Adaptor3d_CurveOnSurface(ACSref);
|
theRep(iRep) = new Adaptor3d_CurveOnSurface(ACSref);
|
||||||
iRep++;
|
iRep++;
|
||||||
nbRep++;
|
nbRep++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -777,15 +814,136 @@ BRepCheck_Status BRepCheck_Edge::
|
|||||||
|
|
||||||
return BRepCheck_NoError;
|
return BRepCheck_NoError;
|
||||||
}
|
}
|
||||||
|
#include <BRepBuilderAPI_MakeVertex.hxx>
|
||||||
|
#include <BRep_TVertex.hxx>
|
||||||
|
#include <DBRep.hxx>
|
||||||
|
//=======================================================================
|
||||||
|
//function : CheckTolerance
|
||||||
|
//purpose : Cheks, if theEdge lies entirely into sphere, center of which
|
||||||
|
// is middle point of line segment, which joins first and last
|
||||||
|
// vertex of an edge, and radius is aTol (see function's body).
|
||||||
|
//=======================================================================
|
||||||
|
BRepCheck_Status BRepCheck_Edge::CheckTolerance(const TopoDS_Edge& theEdge)
|
||||||
|
{
|
||||||
|
BRepCheck_Status aStatus = BRepCheck_NoError;
|
||||||
|
Standard_Real aTol1 = 1.0e-7, aTol2 = 1.0e-7;
|
||||||
|
|
||||||
|
if(BRep_Tool::Degenerated(theEdge))
|
||||||
|
{
|
||||||
|
aStatus = BRepCheck_NoError;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
TopoDS_Vertex aV1 = TopExp::FirstVertex(theEdge),
|
||||||
|
aV2 = TopExp::LastVertex(theEdge);
|
||||||
|
|
||||||
|
if(aV2.IsNull() || aV1.IsNull())
|
||||||
|
{
|
||||||
|
aStatus = BRepCheck_NoError;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
gp_Pnt aPnt1, aPnt2;
|
||||||
|
|
||||||
|
aPnt1 = BRep_Tool::Pnt(aV1);
|
||||||
|
aPnt2 = BRep_Tool::Pnt(aV2);
|
||||||
|
|
||||||
|
aTol1 = BRep_Tool::Tolerance(aV1);
|
||||||
|
aTol2 = BRep_Tool::Tolerance(aV2);
|
||||||
|
|
||||||
|
if( Precision::IsInfinite(aTol1) ||
|
||||||
|
Precision::IsInfinite(aTol2))
|
||||||
|
{
|
||||||
|
aStatus = BRepCheck_CollapsedEdge;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
Standard_Real st = aTol1 + aTol2;
|
||||||
|
|
||||||
|
if(aPnt1.SquareDistance(aPnt2) >= st*st)
|
||||||
|
{
|
||||||
|
aStatus = BRepCheck_NoError;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
gp_Pnt aPn( (aPnt1.X() + aPnt2.X())/2.0,
|
||||||
|
(aPnt1.Y() + aPnt2.Y())/2.0,
|
||||||
|
(aPnt1.Z() + aPnt2.Z())/2.0);
|
||||||
|
|
||||||
|
|
||||||
|
const Standard_Real aTol = Max(aTol1,aTol2) + aPnt1.Distance(aPnt2)/2.0;
|
||||||
|
const Standard_Real aTols = aTol*aTol;
|
||||||
|
|
||||||
|
BRepAdaptor_Curve BACurve(theEdge);
|
||||||
|
|
||||||
|
const Standard_Real aFirst = BACurve.FirstParameter(),
|
||||||
|
aLast = BACurve.LastParameter();
|
||||||
|
|
||||||
|
const Standard_Real dParam = aLast - aFirst;
|
||||||
|
|
||||||
|
for(Standard_Integer i = 0; i < maxNIter; i++)
|
||||||
|
{
|
||||||
|
const Standard_Real ParOnC = aFirst + DivPoints[i]*dParam;
|
||||||
|
|
||||||
|
gp_Pnt pt = BACurve.Value(ParOnC);
|
||||||
|
if((aPn.SquareDistance(pt) >= aTols))
|
||||||
|
{
|
||||||
|
aStatus = BRepCheck_NoError;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gp_Pnt aPFirst = BACurve.Value(aFirst);
|
||||||
|
gp_Pnt aPLast = BACurve.Value(aLast);
|
||||||
|
double aFirstLastDist = aPFirst.Distance(aPLast);
|
||||||
|
double aV1V2Dist = aPnt1.Distance(aPnt2);
|
||||||
|
TopoDS_Vertex aVFirst = BRepBuilderAPI_MakeVertex(aPFirst);
|
||||||
|
TopoDS_Vertex aVLast = BRepBuilderAPI_MakeVertex(aPLast);
|
||||||
|
|
||||||
|
const Handle(BRep_TEdge)& theTEdge = Handle(BRep_TEdge)::DownCast(theEdge.TShape());
|
||||||
|
|
||||||
|
Standard_Boolean sp1 = theTEdge->SameParameter();
|
||||||
|
Standard_Boolean sr1 = theTEdge->SameRange();
|
||||||
|
Standard_Boolean dg1 = theTEdge->Degenerated();
|
||||||
|
Standard_Boolean ch1 = theTEdge->Checked();
|
||||||
|
Standard_Boolean or1 = theTEdge->Orientable();
|
||||||
|
Standard_Boolean cl1 = theTEdge->Closed();
|
||||||
|
Standard_Boolean in1 = theTEdge->Infinite();
|
||||||
|
Standard_Boolean cv1 = theTEdge->Convex();
|
||||||
|
|
||||||
|
//std::cout << std::endl;
|
||||||
|
//std::cout << (aV1.IsEqual(aV2) ? "Vertexes are equal" : "Vertexes are different") << std::endl;
|
||||||
|
//std::cout << "aPnt1: " << aPnt1.X() << " " << aPnt1.Y() << " " << aPnt1.Z() << std::endl;
|
||||||
|
//std::cout << "aPnt2: " << aPnt2.X() << " " << aPnt2.Y() << " " << aPnt2.Z() << std::endl;
|
||||||
|
//std::cout << (aPnt1.IsEqual(aPFirst, 1E-6) ? "aPnt1 & aPFirst are equal" : "aPnt1 & aPFirst are different") << std::endl;
|
||||||
|
//std::cout << (aPnt2.IsEqual(aPLast, 1E-6) ? "aPnt2 & aPLast are equal" : "aPnt2 & aPLast are different") << std::endl;
|
||||||
|
//std::cout << "aPFirst: " << aPFirst.X() << " " << aPFirst.Y() << " " << aPFirst.Z() << std::endl;
|
||||||
|
//std::cout << "aPLast: " << aPLast.X() << " " << aPLast.Y() << " " << aPLast.Z() << std::endl;
|
||||||
|
|
||||||
|
//std::cout << "aTol1: " << aTol1 << " aTol2: " << aTol2 << std::endl;
|
||||||
|
//std::cout << "aFirstLastDist: " << aFirstLastDist << std::endl;
|
||||||
|
//std::cout << "aV1V2Dist: " << aV1V2Dist << std::endl;
|
||||||
|
//std::cout << "Degenerated: " << theTEdge->Degenerated() << std::endl;
|
||||||
|
//std::cout << "Closed: " << theTEdge->Closed() << std::endl;
|
||||||
|
|
||||||
|
static int num(0);
|
||||||
|
num++;
|
||||||
|
std::cout << "vertex vf" << num << " " << aPnt1.X() << " " << aPnt1.Y() << " " << aPnt1.Z() << std::endl;
|
||||||
|
std::cout << "vertex vl" << num << " " << aPnt2.X() << " " << aPnt2.Y() << " " << aPnt2.Z() << std::endl;
|
||||||
|
|
||||||
|
|
||||||
|
aStatus = BRepCheck_CollapsedEdge;
|
||||||
|
return aStatus;
|
||||||
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : Validate
|
//function : Validate
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
|
Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
|
||||||
const Adaptor3d_CurveOnSurface& Other,
|
const Adaptor3d_CurveOnSurface& Other,
|
||||||
const Standard_Real Tol,
|
const Standard_Real Tol,
|
||||||
const Standard_Boolean SameParameter)
|
const Standard_Boolean SameParameter)
|
||||||
{
|
{
|
||||||
Standard_Boolean Status, proj;
|
Standard_Boolean Status, proj;
|
||||||
Standard_Real aPC, First, Last, Error;
|
Standard_Real aPC, First, Last, Error;
|
||||||
@@ -812,17 +970,17 @@ Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
|
|||||||
Tol2=Tol2*Tol2;
|
Tol2=Tol2*Tol2;
|
||||||
//Tol2=Tol*Tol;
|
//Tol2=Tol*Tol;
|
||||||
//modified by NIZNHY-PKV Thu May 05 09:06:47 2011t
|
//modified by NIZNHY-PKV Thu May 05 09:06:47 2011t
|
||||||
|
|
||||||
for (i = 0; i < NCONTROL; ++i) {
|
for (i = 0; i < NCONTROL; ++i) {
|
||||||
prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1);
|
prm = ((NCONTROL-1-i)*First + i*Last)/(NCONTROL-1);
|
||||||
pref = CRef.Value(prm);
|
pref = CRef.Value(prm);
|
||||||
pother = Other.Value(prm);
|
pother = Other.Value(prm);
|
||||||
if (pref.SquareDistance(pother) > Tol2) {
|
if (pref.SquareDistance(pother) > Tol2) {
|
||||||
problematic_point = pref ;
|
problematic_point = pref ;
|
||||||
Status = Standard_False;
|
Status = Standard_False;
|
||||||
Error = pref.Distance(pother);
|
Error = pref.Distance(pother);
|
||||||
PrintProblematicPoint(problematic_point, Error, Tol);
|
PrintProblematicPoint(problematic_point, Error, Tol);
|
||||||
return Status;
|
return Status;
|
||||||
//goto FINISH ;
|
//goto FINISH ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -863,37 +1021,37 @@ Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
|
|||||||
gp_Pnt pother = Other.Value(oprm);
|
gp_Pnt pother = Other.Value(oprm);
|
||||||
refd.Perform(pother,rprm);
|
refd.Perform(pother,rprm);
|
||||||
if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) {
|
if (!refd.IsDone() || refd.SquareDistance() > Tol * Tol) {
|
||||||
problematic_point = pref ;
|
problematic_point = pref ;
|
||||||
Status = Standard_False ;
|
Status = Standard_False ;
|
||||||
if (refd.IsDone()) {
|
if (refd.IsDone()) {
|
||||||
Error = sqrt (refd.SquareDistance());
|
Error = sqrt (refd.SquareDistance());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Error = RealLast();
|
Error = RealLast();
|
||||||
}
|
}
|
||||||
PrintProblematicPoint(problematic_point, Error, Tol);
|
PrintProblematicPoint(problematic_point, Error, Tol);
|
||||||
return Status;
|
return Status;
|
||||||
//goto FINISH ;
|
//goto FINISH ;
|
||||||
}
|
}
|
||||||
otherd.Perform(pref,oprm);
|
otherd.Perform(pref,oprm);
|
||||||
if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) {
|
if (!otherd.IsDone() || otherd.SquareDistance() > Tol * Tol) {
|
||||||
problematic_point = pref ;
|
problematic_point = pref ;
|
||||||
Status = Standard_False ;
|
Status = Standard_False ;
|
||||||
if (otherd.IsDone()) {
|
if (otherd.IsDone()) {
|
||||||
Error = sqrt (otherd.SquareDistance());
|
Error = sqrt (otherd.SquareDistance());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Error = RealLast();
|
Error = RealLast();
|
||||||
}
|
}
|
||||||
PrintProblematicPoint(problematic_point, Error, Tol);
|
PrintProblematicPoint(problematic_point, Error, Tol);
|
||||||
return Status;
|
return Status;
|
||||||
//goto FINISH ;
|
//goto FINISH ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status ;
|
return Status ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@@ -901,14 +1059,14 @@ Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
Standard_Real Prec(const Adaptor3d_Curve& aAC3D,
|
Standard_Real Prec(const Adaptor3d_Curve& aAC3D,
|
||||||
const Adaptor3d_CurveOnSurface& aACS)
|
const Adaptor3d_CurveOnSurface& aACS)
|
||||||
{
|
{
|
||||||
Standard_Real aXEmax, aXC, aXS;
|
Standard_Real aXEmax, aXC, aXS;
|
||||||
const Handle(Adaptor3d_Surface)& aAHS = aACS.GetSurface();
|
const Handle(Adaptor3d_Surface)& aAHS = aACS.GetSurface();
|
||||||
//
|
//
|
||||||
aXC = BRepCheck::PrecCurve(aAC3D);
|
aXC = BRepCheck::PrecCurve(aAC3D);
|
||||||
aXS = BRepCheck::PrecSurface(aAHS);
|
aXS = BRepCheck::PrecSurface(aAHS);
|
||||||
aXEmax = (aXC>aXS) ? aXC: aXS;
|
aXEmax=(aXC>aXS) ? aXC: aXS;
|
||||||
return aXEmax;
|
return aXEmax;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -918,8 +1076,8 @@ Standard_Real Prec(const Adaptor3d_Curve& aAC3D,
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
void PrintProblematicPoint(const gp_Pnt& problematic_point,
|
void PrintProblematicPoint(const gp_Pnt& problematic_point,
|
||||||
const Standard_Real Error,
|
const Standard_Real Error,
|
||||||
const Standard_Real Tol)
|
const Standard_Real Tol)
|
||||||
{
|
{
|
||||||
std::cout << " **** probleme de SameParameter au point :" << std::endl;
|
std::cout << " **** probleme de SameParameter au point :" << std::endl;
|
||||||
std::cout << " " << problematic_point.Coord(1) << " "
|
std::cout << " " << problematic_point.Coord(1) << " "
|
||||||
@@ -928,8 +1086,8 @@ void PrintProblematicPoint(const gp_Pnt& problematic_point,
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void PrintProblematicPoint(const gp_Pnt&,
|
void PrintProblematicPoint(const gp_Pnt&,
|
||||||
const Standard_Real,
|
const Standard_Real,
|
||||||
const Standard_Real)
|
const Standard_Real)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -48,6 +48,8 @@ public:
|
|||||||
Standard_EXPORT void GeometricControls (const Standard_Boolean B);
|
Standard_EXPORT void GeometricControls (const Standard_Boolean B);
|
||||||
|
|
||||||
Standard_EXPORT Standard_Real Tolerance();
|
Standard_EXPORT Standard_Real Tolerance();
|
||||||
|
|
||||||
|
Standard_EXPORT BRepCheck_Status CheckTolerance(const TopoDS_Edge& theEdge);
|
||||||
|
|
||||||
//! Sets status of Edge;
|
//! Sets status of Edge;
|
||||||
Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus);
|
Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus);
|
||||||
|
@@ -56,6 +56,7 @@ BRepCheck_BadOrientationOfSubshape,
|
|||||||
BRepCheck_InvalidPolygonOnTriangulation,
|
BRepCheck_InvalidPolygonOnTriangulation,
|
||||||
BRepCheck_InvalidToleranceValue,
|
BRepCheck_InvalidToleranceValue,
|
||||||
BRepCheck_EnclosedRegion,
|
BRepCheck_EnclosedRegion,
|
||||||
|
BRepCheck_CollapsedEdge,
|
||||||
BRepCheck_CheckFail
|
BRepCheck_CheckFail
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -75,7 +75,7 @@
|
|||||||
//Number of BRepCheck_Statuses in BRepCheck_Status.hxx file
|
//Number of BRepCheck_Statuses in BRepCheck_Status.hxx file
|
||||||
//(BRepCheck_NoError is not considered, i.e. general status
|
//(BRepCheck_NoError is not considered, i.e. general status
|
||||||
//is smaller by one specified in file)
|
//is smaller by one specified in file)
|
||||||
static const Standard_Integer NumberOfStatus = 36;
|
static const Standard_Integer NumberOfStatus = 37;
|
||||||
|
|
||||||
static char* checkfaultyname = NULL;
|
static char* checkfaultyname = NULL;
|
||||||
Standard_EXPORT void BRepTest_CheckCommands_SetFaultyName(const char* name)
|
Standard_EXPORT void BRepTest_CheckCommands_SetFaultyName(const char* name)
|
||||||
@@ -516,7 +516,6 @@ void ContextualDump(Draw_Interpretor& theCommands,
|
|||||||
static void FillProblems(const BRepCheck_Status stat,
|
static void FillProblems(const BRepCheck_Status stat,
|
||||||
Handle(TColStd_HArray1OfInteger)& NbProblems)
|
Handle(TColStd_HArray1OfInteger)& NbProblems)
|
||||||
{
|
{
|
||||||
|
|
||||||
const Standard_Integer anID = static_cast<Standard_Integer> (stat);
|
const Standard_Integer anID = static_cast<Standard_Integer> (stat);
|
||||||
|
|
||||||
if((NbProblems->Upper() < anID) || (NbProblems->Lower() > anID))
|
if((NbProblems->Upper() < anID) || (NbProblems->Lower() > anID))
|
||||||
@@ -655,9 +654,78 @@ void StructuralDump(Draw_Interpretor& theCommands,
|
|||||||
GetProblemShapes(theAna, theShape, sl, NbProblems);
|
GetProblemShapes(theAna, theShape, sl, NbProblems);
|
||||||
theMap.Clear();
|
theMap.Clear();
|
||||||
|
|
||||||
|
if(NbProblems->Value(13)>0)
|
||||||
|
theCommands<<" Edge is collapsed in vertex............... "<<NbProblems->Value(13)<<"\n";
|
||||||
|
//cout<<" Invalid Degenerated Flag ................. "<<NbProblems->Value(12)<<endl;
|
||||||
|
if(NbProblems->Value(14)>0)
|
||||||
|
theCommands<<" Free Edge ................................ "<<NbProblems->Value(14)<<"\n";
|
||||||
|
//cout<<" Free Edge ................................ "<<NbProblems->Value(14)<<endl;
|
||||||
|
if(NbProblems->Value(15)>0)
|
||||||
|
theCommands<<" Invalid MultiConnexity ................... "<<NbProblems->Value(15)<<"\n";
|
||||||
|
//cout<<" Invalid MultiConnexity ................... "<<NbProblems->Value(15)<<endl;
|
||||||
|
if(NbProblems->Value(16)>0)
|
||||||
|
theCommands<<" Invalid Range ............................ "<<NbProblems->Value(16)<<"\n";
|
||||||
|
//cout<<" Invalid Range ............................ "<<NbProblems->Value(16)<<endl;
|
||||||
|
if(NbProblems->Value(17)>0)
|
||||||
|
theCommands<<" Empty Wire ............................... "<<NbProblems->Value(17)<<"\n";
|
||||||
|
//cout<<" Empty Wire ............................... "<<NbProblems->Value(17)<<endl;
|
||||||
|
if(NbProblems->Value(18)>0)
|
||||||
|
theCommands<<" Redundant Edge ........................... "<<NbProblems->Value(18)<<"\n";
|
||||||
|
//cout<<" Redundant Edge ........................... "<<NbProblems->Value(18)<<endl;
|
||||||
|
if(NbProblems->Value(19)>0)
|
||||||
|
theCommands<<" Self Intersecting Wire ................... "<<NbProblems->Value(19)<<"\n";
|
||||||
|
//cout<<" Self Intersecting Wire ................... "<<NbProblems->Value(19)<<endl;
|
||||||
|
if(NbProblems->Value(20)>0)
|
||||||
|
theCommands<<" No Surface ............................... "<<NbProblems->Value(20)<<"\n";
|
||||||
|
//cout<<" No Surface ............................... "<<NbProblems->Value(20)<<endl;
|
||||||
|
if(NbProblems->Value(21)>0)
|
||||||
|
theCommands<<" Invalid Wire ............................. "<<NbProblems->Value(21)<<"\n";
|
||||||
|
//cout<<" Invalid Wire ............................. "<<NbProblems->Value(21)<<endl;
|
||||||
|
if(NbProblems->Value(22)>0)
|
||||||
|
theCommands<<" Redundant Wire ........................... "<<NbProblems->Value(22)<<"\n";
|
||||||
|
//cout<<" Redundant Wire ........................... "<<NbProblems->Value(22)<<endl;
|
||||||
|
if(NbProblems->Value(23)>0)
|
||||||
|
theCommands<<" Intersecting Wires ....................... "<<NbProblems->Value(23)<<"\n";
|
||||||
|
//cout<<" Intersecting Wires ....................... "<<NbProblems->Value(23)<<endl;
|
||||||
|
if(NbProblems->Value(24)>0)
|
||||||
|
theCommands<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(24)<<"\n";
|
||||||
|
//cout<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(24)<<endl;
|
||||||
|
if(NbProblems->Value(25)>0)
|
||||||
|
theCommands<<" Empty Shell .............................. "<<NbProblems->Value(25)<<"\n";
|
||||||
|
//cout<<" Empty Shell .............................. "<<NbProblems->Value(25)<<endl;
|
||||||
|
if(NbProblems->Value(26)>0)
|
||||||
|
theCommands<<" Redundant Face ........................... "<<NbProblems->Value(26)<<"\n";
|
||||||
|
//cout<<" Redundant Face ........................... "<<NbProblems->Value(26)<<endl;
|
||||||
|
if(NbProblems->Value(27)>0)
|
||||||
|
theCommands<<" Unorientable Shape ....................... "<<NbProblems->Value(27)<<"\n";
|
||||||
|
//cout<<" Unorientable Shape ....................... "<<NbProblems->Value(27)<<endl;
|
||||||
|
if(NbProblems->Value(28)>0)
|
||||||
|
theCommands<<" Not Closed ............................... "<<NbProblems->Value(28)<<"\n";
|
||||||
|
//cout<<" Not Closed ............................... "<<NbProblems->Value(28)<<endl;
|
||||||
|
if(NbProblems->Value(29)>0)
|
||||||
|
theCommands<<" Not Connected ............................ "<<NbProblems->Value(29)<<"\n";
|
||||||
|
//cout<<" Not Connected ............................ "<<NbProblems->Value(29)<<endl;
|
||||||
|
if(NbProblems->Value(30)>0)
|
||||||
|
theCommands<<" Subshape not in Shape .................... "<<NbProblems->Value(30)<<"\n";
|
||||||
|
//cout<<" Subshape not in Shape .................... "<<NbProblems->Value(30)<<endl;
|
||||||
|
if(NbProblems->Value(31)>0)
|
||||||
|
theCommands<<" Bad Orientation .......................... "<<NbProblems->Value(31)<<"\n";
|
||||||
|
//cout<<" Bad Orientation .......................... "<<NbProblems->Value(31)<<endl;
|
||||||
|
if(NbProblems->Value(32)>0)
|
||||||
|
theCommands<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(32)<<"\n";
|
||||||
|
//cout<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(32)<<endl;
|
||||||
|
if(NbProblems->Value(33)>0)
|
||||||
|
theCommands<<" Invalid tolerance value................... "<<NbProblems->Value(33)<<"\n";
|
||||||
|
//cout<<" checkshape failure......... .............. "<<NbProblems->Value(33)<<endl;
|
||||||
|
if(NbProblems->Value(34)>0)
|
||||||
|
theCommands<<" checkshape failure......... .............. "<<NbProblems->Value(34)<<"\n";
|
||||||
|
//cout<<" checkshape failure......... .............. "<<NbProblems->Value(34)<<endl;
|
||||||
Standard_Integer aProblemID = static_cast<Standard_Integer>(BRepCheck_InvalidPointOnCurve);
|
Standard_Integer aProblemID = static_cast<Standard_Integer>(BRepCheck_InvalidPointOnCurve);
|
||||||
if(NbProblems->Value(aProblemID) > 0)
|
if(NbProblems->Value(aProblemID) > 0)
|
||||||
theCommands<<" Invalid Point on Curve ................... "<<NbProblems->Value(aProblemID)<<"\n";
|
theCommands<<" Invalid Point on Curve ................... "<<NbProblems->Value(aProblemID)<<"\n";
|
||||||
|
if(NbProblems->Value(34)>0)
|
||||||
|
theCommands<<" checkshape failure........................ "<<NbProblems->Value(34)<<"\n";
|
||||||
|
//cout<<" checkshape failure......... .............. "<<NbProblems->Value(32)<<endl;
|
||||||
|
|
||||||
aProblemID = static_cast<Standard_Integer>(BRepCheck_InvalidPointOnCurveOnSurface);
|
aProblemID = static_cast<Standard_Integer>(BRepCheck_InvalidPointOnCurveOnSurface);
|
||||||
if(NbProblems->Value(aProblemID)>0)
|
if(NbProblems->Value(aProblemID)>0)
|
||||||
@@ -1082,7 +1150,7 @@ static Standard_Integer shapeG1continuity (Draw_Interpretor& di, Standard_Intege
|
|||||||
face1=TopoDS::Face(It.Value());
|
face1=TopoDS::Face(It.Value());
|
||||||
It.Next();
|
It.Next();
|
||||||
face2=TopoDS::Face(It.Value());
|
face2=TopoDS::Face(It.Value());
|
||||||
|
|
||||||
Standard_Boolean IsSeam = face1.IsEqual(face2);
|
Standard_Boolean IsSeam = face1.IsEqual(face2);
|
||||||
|
|
||||||
// calcul des deux pcurves
|
// calcul des deux pcurves
|
||||||
@@ -1129,13 +1197,13 @@ static Standard_Integer shapeG1continuity (Draw_Interpretor& di, Standard_Intege
|
|||||||
{
|
{
|
||||||
case 7 : epsG1 = Draw::Atof(a[6]);
|
case 7 : epsG1 = Draw::Atof(a[6]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 6 : epsC0 = Draw::Atof(a[5]);
|
case 6 : epsC0 = Draw::Atof(a[5]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 5 : epsnl = Draw::Atof(a[4]);
|
case 5 : epsnl = Draw::Atof(a[4]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 4 : break;
|
case 4 : break;
|
||||||
default : return 1;
|
default : return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
||||||
@@ -1263,11 +1331,11 @@ static Standard_Integer shapeG0continuity (Draw_Interpretor& di, Standard_Intege
|
|||||||
{
|
{
|
||||||
case 6 : epsC0 = Draw::Atof(a[5]);
|
case 6 : epsC0 = Draw::Atof(a[5]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 5 : epsnl = Draw::Atof(a[4]);
|
case 5 : epsnl = Draw::Atof(a[4]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 4 : break;
|
case 4 : break;
|
||||||
default : return 1;
|
default : return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
||||||
Standard_Boolean isconti = Standard_True;
|
Standard_Boolean isconti = Standard_True;
|
||||||
@@ -1389,20 +1457,20 @@ static Standard_Integer shapeG2continuity (Draw_Interpretor& di, Standard_Intege
|
|||||||
nbeval = (Standard_Integer ) Draw::Atof( a[3]);
|
nbeval = (Standard_Integer ) Draw::Atof( a[3]);
|
||||||
|
|
||||||
switch(n)
|
switch(n)
|
||||||
{
|
{
|
||||||
case 9 : maxlen = Draw::Atof(a[8]);
|
case 9 : maxlen = Draw::Atof(a[8]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 8 : percent = Draw::Atof(a[7]);
|
case 8 : percent = Draw::Atof(a[7]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 7 : epsG1 = Draw::Atof(a[6]);
|
case 7 : epsG1 = Draw::Atof(a[6]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 6 : epsC0 = Draw::Atof(a[5]);
|
case 6 : epsC0 = Draw::Atof(a[5]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 5 : epsnl = Draw::Atof(a[4]);
|
case 5 : epsnl = Draw::Atof(a[4]);
|
||||||
Standard_FALLTHROUGH
|
Standard_FALLTHROUGH
|
||||||
case 4 : break;
|
case 4 : break;
|
||||||
default : return 1;
|
default : return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
Standard_Real pard1, parf1, U, Uf, deltaU, nb = 0;
|
||||||
|
@@ -19,7 +19,11 @@
|
|||||||
#include <Draw_Interpretor.hxx>
|
#include <Draw_Interpretor.hxx>
|
||||||
#include <Draw_Appli.hxx>
|
#include <Draw_Appli.hxx>
|
||||||
#include <DrawTrSurf.hxx>
|
#include <DrawTrSurf.hxx>
|
||||||
|
#include <TopExp.hxx>
|
||||||
|
#include <TopoDS.hxx>
|
||||||
#include <TopoDS_Solid.hxx>
|
#include <TopoDS_Solid.hxx>
|
||||||
|
#include <TopoDS_Vertex.hxx>
|
||||||
|
#include <TopoDS_Edge.hxx>
|
||||||
#include <BRep_Builder.hxx>
|
#include <BRep_Builder.hxx>
|
||||||
#include <BRepBuilderAPI.hxx>
|
#include <BRepBuilderAPI.hxx>
|
||||||
#include <BRepPreviewAPI_MakeBox.hxx>
|
#include <BRepPreviewAPI_MakeBox.hxx>
|
||||||
@@ -118,7 +122,7 @@ static Standard_Integer box(Draw_Interpretor& , Standard_Integer n, const char**
|
|||||||
aParams.SetY (Draw::Atof(a[anArgIter + 4]));
|
aParams.SetY (Draw::Atof(a[anArgIter + 4]));
|
||||||
aParams.SetZ (Draw::Atof(a[anArgIter + 5]));
|
aParams.SetZ (Draw::Atof(a[anArgIter + 5]));
|
||||||
anArgIter += 5;
|
anArgIter += 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (aCountReal == 3)
|
else if (aCountReal == 3)
|
||||||
{
|
{
|
||||||
@@ -126,7 +130,7 @@ static Standard_Integer box(Draw_Interpretor& , Standard_Integer n, const char**
|
|||||||
aParams.SetY (Draw::Atof(a[anArgIter + 1]));
|
aParams.SetY (Draw::Atof(a[anArgIter + 1]));
|
||||||
aParams.SetZ (Draw::Atof(a[anArgIter + 2]));
|
aParams.SetZ (Draw::Atof(a[anArgIter + 2]));
|
||||||
anArgIter += 2;
|
anArgIter += 2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Message::SendFail() << "Syntax error";
|
Message::SendFail() << "Syntax error";
|
||||||
@@ -159,7 +163,7 @@ static Standard_Integer box(Draw_Interpretor& , Standard_Integer n, const char**
|
|||||||
}
|
}
|
||||||
|
|
||||||
S = aPreview;
|
S = aPreview;
|
||||||
DBRep::Set(a[1],S);
|
DBRep::Set(a[1],S);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -383,6 +387,78 @@ static Standard_Integer torus(Draw_Interpretor& , Standard_Integer n, const char
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : DrawTolerance
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
|
static Standard_Integer DrawTolerance(Draw_Interpretor& theDI, Standard_Integer theNArg, const char** a)
|
||||||
|
{
|
||||||
|
if(theNArg != 3)
|
||||||
|
{
|
||||||
|
theDI << "use toolsphere name vertex\\edge\n";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
TopoDS_Shape aS = DBRep::Get(a[2]);
|
||||||
|
if(aS.IsNull())
|
||||||
|
{
|
||||||
|
theDI << "No source shape found\n";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Standard_Real aRadius;
|
||||||
|
gp_Pnt aCenter;
|
||||||
|
|
||||||
|
switch(aS.ShapeType())
|
||||||
|
{
|
||||||
|
case TopAbs_VERTEX:
|
||||||
|
{
|
||||||
|
TopoDS_Vertex aV = TopoDS::Vertex(aS);
|
||||||
|
aRadius = BRep_Tool::Tolerance(aV);
|
||||||
|
aCenter = BRep_Tool::Pnt(aV);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case TopAbs_EDGE:
|
||||||
|
{
|
||||||
|
TopoDS_Edge anE = TopoDS::Edge(DBRep::Get(a[2]));
|
||||||
|
TopoDS_Vertex aV1 = TopExp::FirstVertex(anE),
|
||||||
|
aV2 = TopExp::LastVertex(anE);
|
||||||
|
|
||||||
|
Standard_Real aTol1 = BRep_Tool::Tolerance(aV1);
|
||||||
|
Standard_Real aTol2 = BRep_Tool::Tolerance(aV2);
|
||||||
|
|
||||||
|
if( Precision::IsInfinite(aTol1) ||
|
||||||
|
Precision::IsInfinite(aTol2))
|
||||||
|
{
|
||||||
|
theDI << "Tolerance is infinity\n";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
gp_Pnt aPnt1 = BRep_Tool::Pnt(aV1);
|
||||||
|
gp_Pnt aPnt2 = BRep_Tool::Pnt(aV2);
|
||||||
|
|
||||||
|
aCenter = gp_Pnt( (aPnt1.X() + aPnt2.X())/2.0,
|
||||||
|
(aPnt1.Y() + aPnt2.Y())/2.0,
|
||||||
|
(aPnt1.Z() + aPnt2.Z())/2.0);
|
||||||
|
|
||||||
|
aRadius = Max(aTol1,aTol2) + aPnt1.Distance(aPnt2)/2.0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
theDI << "Enter a vertex or an edge (see help)\n";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TopoDS_Solid S = BRepPrimAPI_MakeSphere(aCenter,aRadius);
|
||||||
|
|
||||||
|
DBRep::Set(a[1],S);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@@ -459,6 +535,9 @@ void BRepTest::PrimitiveCommands(Draw_Interpretor& theCommands)
|
|||||||
"\n\t\t: - angle2 second angle to create a torus ring segment"
|
"\n\t\t: - angle2 second angle to create a torus ring segment"
|
||||||
"\n\t\t: - angle angle to create a torus pipe segment",
|
"\n\t\t: - angle angle to create a torus pipe segment",
|
||||||
__FILE__, torus, g);
|
__FILE__, torus, g);
|
||||||
|
theCommands.Add("tolsphere", "toolsphere name vertex\\edge (if vertex is given, center of sphere is the \"vertex\", "
|
||||||
|
"radius is a tolerance of vertex; if edge is given, sphere is built, which is determined in "
|
||||||
|
"BRepCheck_Edge::CheckTolerance(...) function)",__FILE__,DrawTolerance,g);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -412,6 +412,7 @@ static Standard_Integer fixshape (Draw_Interpretor& di, Standard_Integer argc, c
|
|||||||
Standard_Integer par = 0, mess=0;
|
Standard_Integer par = 0, mess=0;
|
||||||
for ( Standard_Integer i=1; i < argc; i++ )
|
for ( Standard_Integer i=1; i < argc; i++ )
|
||||||
{
|
{
|
||||||
|
const char* ai = argv[i];
|
||||||
if (strlen(argv[i]) == 2 &&
|
if (strlen(argv[i]) == 2 &&
|
||||||
(argv[i][0] == '-' || argv[i][0] == '+' || argv[i][0] == '*'))
|
(argv[i][0] == '-' || argv[i][0] == '+' || argv[i][0] == '*'))
|
||||||
{
|
{
|
||||||
|
@@ -688,7 +688,8 @@ Standard_Boolean ShapeAnalysis_Wire::CheckSmall (const Standard_Integer num,
|
|||||||
Standard_Real dist = p1.Distance(p2);
|
Standard_Real dist = p1.Distance(p2);
|
||||||
Standard_Real prec = precsmall;//Min ( myPrecision, precsmall );
|
Standard_Real prec = precsmall;//Min ( myPrecision, precsmall );
|
||||||
//Standard_Real prec = Min(BRep_Tool::Tolerance(V1),BRep_Tool::Tolerance(V2)); //skl
|
//Standard_Real prec = Min(BRep_Tool::Tolerance(V1),BRep_Tool::Tolerance(V2)); //skl
|
||||||
if (dist > prec) return Standard_False; // pas nulle
|
if (dist > prec)
|
||||||
|
return Standard_False; // pas nulle
|
||||||
|
|
||||||
// La courbe 3D a present : est-elle FERMEE ou DE LONGUEUR NULLE ... ???
|
// La courbe 3D a present : est-elle FERMEE ou DE LONGUEUR NULLE ... ???
|
||||||
// Pour cela on prend le point milieu (y a-t-il mieux)
|
// Pour cela on prend le point milieu (y a-t-il mieux)
|
||||||
@@ -697,7 +698,8 @@ Standard_Boolean ShapeAnalysis_Wire::CheckSmall (const Standard_Integer num,
|
|||||||
gp_Pnt Pm;
|
gp_Pnt Pm;
|
||||||
Standard_Real cf,cl;
|
Standard_Real cf,cl;
|
||||||
Handle(Geom_Curve) c3d;
|
Handle(Geom_Curve) c3d;
|
||||||
if ( sae.Curve3d (E,c3d,cf,cl,Standard_False) ) Pm = c3d->Value ( (cf+cl)/2. );
|
if ( sae.Curve3d (E,c3d,cf,cl,Standard_False) )
|
||||||
|
Pm = c3d->Value ( (cf+cl)/2. );
|
||||||
else {
|
else {
|
||||||
Handle(Geom2d_Curve) c2d;
|
Handle(Geom2d_Curve) c2d;
|
||||||
if ( ! myFace.IsNull() && sae.PCurve (E,myFace,c2d,cf,cl,Standard_False)) {
|
if ( ! myFace.IsNull() && sae.PCurve (E,myFace,c2d,cf,cl,Standard_False)) {
|
||||||
@@ -710,7 +712,8 @@ Standard_Boolean ShapeAnalysis_Wire::CheckSmall (const Standard_Integer num,
|
|||||||
//:n2 return Standard_False;
|
//:n2 return Standard_False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( Pm.Distance(p1) > prec || Pm.Distance(p2) > prec ) return Standard_False;
|
if ( Pm.Distance(p1) > prec || Pm.Distance(p2) > prec )
|
||||||
|
return Standard_False;
|
||||||
|
|
||||||
myStatus |= ShapeExtend::EncodeStatus ( V1.IsSame(V2) ? ShapeExtend_DONE1 : ShapeExtend_DONE2 );
|
myStatus |= ShapeExtend::EncodeStatus ( V1.IsSame(V2) ? ShapeExtend_DONE1 : ShapeExtend_DONE2 );
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
puts "TODO CR32185 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
ellipse w1 0 0 0 15 10
|
ellipse w1 0 0 0 15 10
|
||||||
mkedge w1 w1 0 pi/2
|
mkedge w1 w1 0 pi/2
|
||||||
trotate w1 0 0 0 1 0 0 90
|
trotate w1 0 0 0 1 0 0 90
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
puts "TODO CR32185 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
ellipse w1 0 0 0 15 10
|
ellipse w1 0 0 0 15 10
|
||||||
mkedge w1 w1 0 pi/2
|
mkedge w1 w1 0 pi/2
|
||||||
trotate w1 0 0 0 1 0 0 90
|
trotate w1 0 0 0 1 0 0 90
|
||||||
|
@@ -11,5 +11,6 @@ fsameparameter part
|
|||||||
restore [locate_data_file cts18078-tool.rle] tool
|
restore [locate_data_file cts18078-tool.rle] tool
|
||||||
|
|
||||||
bcut result part tool
|
bcut result part tool
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 147330
|
checkprops result -s 147330
|
||||||
checkview -display result -2d -s -otherwise { part tool } -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -s -otherwise { part tool } -path ${imagedir}/${test_image}.png
|
||||||
|
@@ -7,6 +7,7 @@ restore [locate_data_file pro14942b.rle] b
|
|||||||
|
|
||||||
bcut result a b
|
bcut result a b
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
|
|
||||||
checkprops result -s 192941
|
checkprops result -s 192941
|
||||||
|
@@ -6,6 +6,7 @@ restore [locate_data_file pro14260d.rle] d
|
|||||||
|
|
||||||
bfuse result c d
|
bfuse result c d
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 46305.1
|
checkprops result -s 46305.1
|
||||||
checknbshapes result -solid 1 -shell 1 -face 35
|
checknbshapes result -solid 1 -shell 1 -face 35
|
||||||
checkview -display result -2d -otherwise { c d } -s -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -otherwise { c d } -s -path ${imagedir}/${test_image}.png
|
@@ -1,6 +1,9 @@
|
|||||||
# Original bug : cts20176
|
# Original bug : cts20176
|
||||||
# Date : 16July98
|
# Date : 16July98
|
||||||
|
|
||||||
|
# because CTO904_cts20176a.rle has a bad topology vertex
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file CTO904_cts20176a.rle] a
|
restore [locate_data_file CTO904_cts20176a.rle] a
|
||||||
restore [locate_data_file cts20176b.rle] b
|
restore [locate_data_file cts20176b.rle] b
|
||||||
|
|
||||||
@@ -8,6 +11,6 @@ restore [locate_data_file cts20176b.rle] b
|
|||||||
tclean a
|
tclean a
|
||||||
|
|
||||||
bfuse result a b
|
bfuse result a b
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 70265.2
|
checkprops result -s 70265.2
|
||||||
checkview -display result -2d -otherwise { a b } -s -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -otherwise { a b } -s -path ${imagedir}/${test_image}.png
|
@@ -1,3 +1,5 @@
|
|||||||
|
# because b201 has a bad topology vertex
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
restore [locate_data_file a201] a
|
restore [locate_data_file a201] a
|
||||||
restore [locate_data_file b201] b
|
restore [locate_data_file b201] b
|
||||||
|
|
||||||
|
@@ -4,5 +4,6 @@ explode sh
|
|||||||
bop sh_1 sh_2
|
bop sh_1 sh_2
|
||||||
bopcut result
|
bopcut result
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 29167.3
|
checkprops result -s 29167.3
|
||||||
checkview -display result -2d -otherwise { sh_1 sh_2 } -s -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -otherwise { sh_1 sh_2 } -s -path ${imagedir}/${test_image}.png
|
||||||
|
@@ -4,5 +4,6 @@ explode sh
|
|||||||
bop sh_1 sh_2
|
bop sh_1 sh_2
|
||||||
bopfuse result
|
bopfuse result
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 35009.9
|
checkprops result -s 35009.9
|
||||||
checkview -display result -2d -otherwise { sh_1 sh_2 } -s -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -otherwise { sh_1 sh_2 } -s -path ${imagedir}/${test_image}.png
|
||||||
|
@@ -4,5 +4,6 @@ explode sh
|
|||||||
bop sh_2 sh_1
|
bop sh_2 sh_1
|
||||||
bopfuse result
|
bopfuse result
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 35009.9
|
checkprops result -s 35009.9
|
||||||
checkview -display result -2d -otherwise { sh_2 sh_1 } -s -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -otherwise { sh_2 sh_1 } -s -path ${imagedir}/${test_image}.png
|
||||||
|
@@ -6,6 +6,8 @@ puts ""
|
|||||||
# Shape Healing fails to correct a face with missing seam
|
# Shape Healing fails to correct a face with missing seam
|
||||||
#############################################
|
#############################################
|
||||||
|
|
||||||
|
puts "TODO CR32272 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file bug22919_ss.brep] ss
|
restore [locate_data_file bug22919_ss.brep] ss
|
||||||
explode ss
|
explode ss
|
||||||
|
|
||||||
|
@@ -1,10 +1,14 @@
|
|||||||
puts "========================"
|
puts "========================"
|
||||||
puts "BUC60823"
|
puts "BUC60823"
|
||||||
puts "========================"
|
puts "========================"
|
||||||
|
|
||||||
|
# because buc60823.igs has one too small edge with too much tolerance
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
igesbrep [locate_data_file buc60823.igs] a *
|
igesbrep [locate_data_file buc60823.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -2,9 +2,13 @@ puts "==========="
|
|||||||
puts "BUC60850"
|
puts "BUC60850"
|
||||||
puts "==========="
|
puts "==========="
|
||||||
|
|
||||||
|
# because BUC60850.igs has 2 bad faces
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
igesbrep [locate_data_file BUC60850.igs] a *
|
igesbrep [locate_data_file BUC60850.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -2,10 +2,13 @@ puts "========"
|
|||||||
puts "OCC131"
|
puts "OCC131"
|
||||||
puts "========"
|
puts "========"
|
||||||
puts ""
|
puts ""
|
||||||
|
# because OCC58a.igs has 6 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_6"
|
||||||
|
|
||||||
igesbrep [locate_data_file OCC131-7.igs] a *
|
igesbrep [locate_data_file OCC131-7.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -7,10 +7,13 @@ puts ""
|
|||||||
##############################################
|
##############################################
|
||||||
##Loading phase returns error status (though no exception raised).
|
##Loading phase returns error status (though no exception raised).
|
||||||
##############################################
|
##############################################
|
||||||
|
# because igsBF5.igs has 6 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_6"
|
||||||
|
|
||||||
igesbrep [locate_data_file igsBF5.igs] a *
|
igesbrep [locate_data_file igsBF5.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -5,8 +5,11 @@ puts ""
|
|||||||
##############################################
|
##############################################
|
||||||
# Exception in reading of attached IGES file
|
# Exception in reading of attached IGES file
|
||||||
##############################################
|
##############################################
|
||||||
|
# because file has too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_8"
|
||||||
|
|
||||||
igesread [locate_data_file bug16424_s554_tassello_per_punzone_pos09.igs] a *
|
igesread [locate_data_file bug16424_s554_tassello_per_punzone_pos09.igs] a *
|
||||||
|
breducetolerance a
|
||||||
checkshape a
|
checkshape a
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
@@ -5,10 +5,12 @@ puts ""
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
# Problem with reading of attached IGES file
|
# Problem with reading of attached IGES file
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
# because file has too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
igesbrep [locate_data_file bug22283_Mtwz_Training_Part.iges] a *
|
igesbrep [locate_data_file bug22283_Mtwz_Training_Part.iges] a *
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkprops result -s 46235.4
|
checkprops result -s 46235.4
|
||||||
checkshape result
|
checkshape result
|
||||||
|
|
||||||
|
@@ -1,10 +1,13 @@
|
|||||||
puts "========"
|
puts "========"
|
||||||
puts "OCC272"
|
puts "OCC272"
|
||||||
puts "========"
|
puts "========"
|
||||||
|
# because OCC58a.igs has 21 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_21"
|
||||||
|
|
||||||
igesbrep [locate_data_file 919-001-T02-04-CP-VL.igs] a *
|
igesbrep [locate_data_file 919-001-T02-04-CP-VL.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -1,10 +1,13 @@
|
|||||||
puts "========"
|
puts "========"
|
||||||
puts "OCC272"
|
puts "OCC272"
|
||||||
puts "========"
|
puts "========"
|
||||||
|
# because OCC58a.igs has 2 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
igesbrep [locate_data_file 919-001-T02-04-FT-VL.igs] a *
|
igesbrep [locate_data_file 919-001-T02-04-FT-VL.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -2,10 +2,13 @@ puts "========"
|
|||||||
puts "OCC283"
|
puts "OCC283"
|
||||||
puts "========"
|
puts "========"
|
||||||
puts ""
|
puts ""
|
||||||
|
# because BUC50030.igs has too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_10"
|
||||||
|
|
||||||
igesbrep [locate_data_file BUC50030.igs] a *
|
igesbrep [locate_data_file BUC50030.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
puts "========"
|
puts "========"
|
||||||
puts "OCC285"
|
puts "OCC285"
|
||||||
puts "========"
|
puts "========"
|
||||||
|
# because OCC285.igs has edges with too much tolerances
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_35"
|
||||||
|
|
||||||
igesbrep [locate_data_file OCC285.igs] a *
|
igesbrep [locate_data_file OCC285.igs] a *
|
||||||
|
|
||||||
|
@@ -5,6 +5,8 @@ puts ""
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
##After applying sewing on the model from the file TibTray_Size3.igs (see the attachment) one surface is not shaded.
|
##After applying sewing on the model from the file TibTray_Size3.igs (see the attachment) one surface is not shaded.
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
# because TibTray_Size3.igs has 3 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
igesbrep [locate_data_file TibTray_Size3.igs] a *
|
igesbrep [locate_data_file TibTray_Size3.igs] a *
|
||||||
|
|
||||||
@@ -13,6 +15,7 @@ tclean a
|
|||||||
|
|
||||||
sewing result a
|
sewing result a
|
||||||
|
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
|
|
||||||
vinit
|
vinit
|
||||||
@@ -22,7 +25,7 @@ vfit
|
|||||||
|
|
||||||
checktrinfo result -tri 5812 -nod 5809
|
checktrinfo result -tri 5812 -nod 5809
|
||||||
|
|
||||||
checkmaxtol result -ref 0.92213088179312575
|
checkmaxtol result -ref 0.37347422132393693
|
||||||
checknbshapes result -shell 1
|
checknbshapes result -shell 1
|
||||||
checkfreebounds result 239
|
checkfreebounds result 239
|
||||||
checkview -display result -3d -path ${imagedir}/${test_image}.png
|
checkview -display result -3d -path ${imagedir}/${test_image}.png
|
||||||
|
@@ -2,10 +2,13 @@ puts "========"
|
|||||||
puts "OCC365"
|
puts "OCC365"
|
||||||
puts "========"
|
puts "========"
|
||||||
puts ""
|
puts ""
|
||||||
|
# because file has too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
igesbrep [locate_data_file BUC61004-2.igs] a *
|
igesbrep [locate_data_file BUC61004-2.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -5,10 +5,13 @@ puts ""
|
|||||||
puts "Shape is incorrect after translation"
|
puts "Shape is incorrect after translation"
|
||||||
puts "case 1 (6546a01.igs)"
|
puts "case 1 (6546a01.igs)"
|
||||||
puts ""
|
puts ""
|
||||||
|
# because OCC58a.igs has 5 too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_5"
|
||||||
|
|
||||||
igesbrep [locate_data_file OCC58a.igs] a *
|
igesbrep [locate_data_file OCC58a.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -1,12 +1,15 @@
|
|||||||
puts "==========="
|
puts "==========="
|
||||||
puts "GER61337"
|
puts "GER61337"
|
||||||
puts "=================================="
|
puts "=================================="
|
||||||
|
# because file has too small bad edges with too much tolerances
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
cpulimit 3000
|
cpulimit 3000
|
||||||
|
|
||||||
igesbrep [locate_data_file ger61337a.igs] a *
|
igesbrep [locate_data_file ger61337a.igs] a *
|
||||||
|
|
||||||
tpcompound result
|
tpcompound result
|
||||||
|
breducetolerance result
|
||||||
checkshape result
|
checkshape result
|
||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
|
@@ -3,6 +3,8 @@ puts "CR25628: BRepMesh fails to mesh face with open wire, considered as correct
|
|||||||
puts "========="
|
puts "========="
|
||||||
puts ""
|
puts ""
|
||||||
|
|
||||||
|
puts "TODO CR32223 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
pload XDE
|
pload XDE
|
||||||
|
|
||||||
stepread [locate_data_file bug25628_twr_hull.stp] a *
|
stepread [locate_data_file bug25628_twr_hull.stp] a *
|
||||||
|
@@ -3,6 +3,7 @@ puts "0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid
|
|||||||
puts "======="
|
puts "======="
|
||||||
puts ""
|
puts ""
|
||||||
puts "REQUIRED ALL: Meshing statuses: Failure"
|
puts "REQUIRED ALL: Meshing statuses: Failure"
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
cpulimit 10
|
cpulimit 10
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
puts "TODO OCC27024 ALL: Error : operation bfuse is WRONG because number of SOLID entities in shape"
|
puts "TODO OCC27024 ALL: Error : operation bfuse is WRONG because number of SOLID entities in shape"
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_6"
|
||||||
puts "=========="
|
puts "=========="
|
||||||
puts "BUC60462"
|
puts "BUC60462"
|
||||||
puts "=========="
|
puts "=========="
|
||||||
|
@@ -3,8 +3,9 @@ puts "========================"
|
|||||||
puts "BUC60585"
|
puts "BUC60585"
|
||||||
puts "========================"
|
puts "========================"
|
||||||
|
|
||||||
restore [locate_data_file buc60585b.brep] t
|
restore [locate_data_file buc60585b.brep] a
|
||||||
checkshape t
|
fixshape t a
|
||||||
|
checkshape t
|
||||||
plane pt 2036.25 -97.5 -1460.499755859375 0.0 -1.0 0.0 1.0 0.0 0.0
|
plane pt 2036.25 -97.5 -1460.499755859375 0.0 -1.0 0.0 1.0 0.0 0.0
|
||||||
|
|
||||||
psection result t pt
|
psection result t pt
|
||||||
|
@@ -6,6 +6,8 @@ puts ""
|
|||||||
######################################
|
######################################
|
||||||
## Exception ConstructionError in LocOpe_SplitShape.
|
## Exception ConstructionError in LocOpe_SplitShape.
|
||||||
######################################
|
######################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file BUC60930_splitshape.brep] c
|
restore [locate_data_file BUC60930_splitshape.brep] c
|
||||||
explode c
|
explode c
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
puts "TODO OCC11111 ALL: Error : is WRONG because number of "
|
puts "TODO OCC11111 ALL: Error : is WRONG because number of "
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_6"
|
||||||
|
|
||||||
puts "============"
|
puts "============"
|
||||||
puts "OCC10232"
|
puts "OCC10232"
|
||||||
@@ -8,6 +9,7 @@ puts ""
|
|||||||
# Exception "Segmentation violation" in Boolean Operations
|
# Exception "Segmentation violation" in Boolean Operations
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
|
|
||||||
set BugNumber OCC10232
|
set BugNumber OCC10232
|
||||||
|
|
||||||
puts "Load first shape ..."
|
puts "Load first shape ..."
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#########################################################
|
#########################################################
|
||||||
## Fillet is created incorrectly on attached shape.
|
## Fillet is created incorrectly on attached shape.
|
||||||
#########################################################
|
#########################################################
|
||||||
|
puts "TODO CR32185 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
restore [locate_data_file shading_137.brep] s
|
restore [locate_data_file shading_137.brep] s
|
||||||
checkshape s
|
checkshape s
|
||||||
|
@@ -6,6 +6,7 @@ puts ""
|
|||||||
## After analyze given face (file ff97.brep) using BRepCheck we receive problem - "Bad Orientation of Subshape".
|
## After analyze given face (file ff97.brep) using BRepCheck we receive problem - "Bad Orientation of Subshape".
|
||||||
## But we believe that this shape must be OK or we have to receive more detail another reply from BRepCheck.
|
## But we believe that this shape must be OK or we have to receive more detail another reply from BRepCheck.
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
puts "TODO CR32229 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file OCC174.brep] result
|
restore [locate_data_file OCC174.brep] result
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
puts "TODO OCC11111 ALL: Error : The area of result shape is"
|
puts "TODO OCC11111 ALL: Error : The area of result shape is"
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
pload QAcommands
|
pload QAcommands
|
||||||
|
|
||||||
puts "============"
|
puts "============"
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Regression in visualization for b-spline surface
|
# Regression in visualization for b-spline surface
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_63"
|
||||||
|
|
||||||
set BugNumber OCC22631
|
set BugNumber OCC22631
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
puts "TODO OCC11111 ALL: Error : The area of result shape is"
|
puts "TODO OCC11111 ALL: Error : The area of result shape is"
|
||||||
puts "TODO OCC11111 ALL: Error : is WRONG because number of"
|
puts "TODO OCC11111 ALL: Error : is WRONG because number of"
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_10"
|
||||||
|
|
||||||
puts "================"
|
puts "================"
|
||||||
puts "OCC22641"
|
puts "OCC22641"
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# Improve command sewing in DRAW
|
# Improve command sewing in DRAW
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC22770
|
set BugNumber OCC22770
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################
|
#######################################################################
|
||||||
# Sewing increases tolerance of vertices for redundant value.
|
# Sewing increases tolerance of vertices for redundant value.
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
set BugNumber OCC22804
|
set BugNumber OCC22804
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
# Possible regression is tessellation algorithm of OCCT 6.5.2
|
# Possible regression is tessellation algorithm of OCCT 6.5.2
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_75"
|
||||||
|
|
||||||
set BugNumber OCC22893
|
set BugNumber OCC22893
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
puts "TODO OCC12345 ALL: Error : The area of result shape is"
|
puts "TODO OCC12345 ALL: Error : The area of result shape is"
|
||||||
#puts "TODO OCC12345 ALL: Error: Number of triangles"
|
#puts "TODO OCC12345 ALL: Error: Number of triangles"
|
||||||
#puts "TODO OCC12345 ALL: Error: Number of nodes"
|
#puts "TODO OCC12345 ALL: Error: Number of nodes"
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_12"
|
||||||
|
|
||||||
puts "========================"
|
puts "========================"
|
||||||
puts " OCC287 "
|
puts " OCC287 "
|
||||||
|
@@ -4,6 +4,7 @@ puts "================= OCC291 ==================="
|
|||||||
#################################################################
|
#################################################################
|
||||||
## Some triangles of shading mesh are outside of shape boundaries. (See attached shape).
|
## Some triangles of shading mesh are outside of shape boundaries. (See attached shape).
|
||||||
#################################################################
|
#################################################################
|
||||||
|
puts "TODO CR32229 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file shading_171.brep] result
|
restore [locate_data_file shading_171.brep] result
|
||||||
checkshape result
|
checkshape result
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
## After performing command "checkbrep" to attached face I receive "Bad Orientation of Subshape"
|
## After performing command "checkbrep" to attached face I receive "Bad Orientation of Subshape"
|
||||||
## but I believe that orientation of this face is correct.
|
## but I believe that orientation of this face is correct.
|
||||||
#################################################################
|
#################################################################
|
||||||
|
puts "TODO CR32210 ALL: checkbrep works wrongly"
|
||||||
|
|
||||||
restore [locate_data_file OCC302a.brep] result
|
restore [locate_data_file OCC302a.brep] result
|
||||||
|
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
## After performing command "checkshape" to attached face I receive "Bad Orientation of Subshape"
|
## After performing command "checkshape" to attached face I receive "Bad Orientation of Subshape"
|
||||||
## but I believe that orientation of this face is correct.
|
## but I believe that orientation of this face is correct.
|
||||||
#################################################################
|
#################################################################
|
||||||
|
puts "TODO CR32229 ALL: checkshape works wrongly"
|
||||||
|
|
||||||
restore [locate_data_file OCC302c.brep] result
|
restore [locate_data_file OCC302c.brep] result
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ puts ""
|
|||||||
############################################
|
############################################
|
||||||
|
|
||||||
restore [locate_data_file OCC337_clone1.brep] a
|
restore [locate_data_file OCC337_clone1.brep] a
|
||||||
|
breducetolerance a
|
||||||
explode a
|
explode a
|
||||||
|
|
||||||
set che [checkshape a_1]
|
set che [checkshape a_1]
|
||||||
|
@@ -4,6 +4,7 @@ puts " BUC60959 "
|
|||||||
puts " OCC347 "
|
puts " OCC347 "
|
||||||
puts " (case 1) "
|
puts " (case 1) "
|
||||||
puts "========================"
|
puts "========================"
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file OCC347a.brep] result
|
restore [locate_data_file OCC347a.brep] result
|
||||||
checkshape result
|
checkshape result
|
||||||
|
@@ -4,8 +4,10 @@ puts " BUC60959 "
|
|||||||
puts " OCC347 "
|
puts " OCC347 "
|
||||||
puts " (case 2) "
|
puts " (case 2) "
|
||||||
puts "========================"
|
puts "========================"
|
||||||
|
puts "TODO CR32229 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file OCC347b.brep] result
|
restore [locate_data_file OCC347b.brep] r1
|
||||||
|
fixshape result r1
|
||||||
checkshape result
|
checkshape result
|
||||||
|
|
||||||
tclean result
|
tclean result
|
||||||
|
@@ -8,6 +8,7 @@ puts ""
|
|||||||
#################################################################
|
#################################################################
|
||||||
## BndLib_Add3dCurve raised an exception on edges which range is out of the domain of the curve.
|
## BndLib_Add3dCurve raised an exception on edges which range is out of the domain of the curve.
|
||||||
#################################################################
|
#################################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file OCC369.brep] result
|
restore [locate_data_file OCC369.brep] result
|
||||||
OCC369 result
|
OCC369 result
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
puts "========================"
|
puts "========================"
|
||||||
puts " OCC397 "
|
puts " OCC397 "
|
||||||
puts "========================"
|
puts "========================"
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
pload QAcommands
|
pload QAcommands
|
||||||
|
|
||||||
restore [locate_data_file OCC397.brep] a
|
restore [locate_data_file OCC397.brep] a
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
puts "TODO OCC12345 ALL: Faulty OCC406: Command checkshape works wrongly: Source shape looks invalid"
|
puts "TODO OCC12345 ALL: Faulty OCC406: Command checkshape works wrongly: Source shape looks invalid"
|
||||||
puts "TODO OCC12345 ALL: Error : The area of result shape is"
|
puts "TODO OCC12345 ALL: Error : The area of result shape is"
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
puts "========"
|
puts "========"
|
||||||
puts "OCC406"
|
puts "OCC406"
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
puts "TODO OCC25917 ALL: Error : The area of result shape is"
|
puts "TODO OCC25917 ALL: Error : The area of result shape is"
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
puts "========================"
|
puts "========================"
|
||||||
puts " OCC472 "
|
puts " OCC472 "
|
||||||
|
@@ -11,8 +11,8 @@ restore [locate_data_file OCC497e.brep] a_1
|
|||||||
checkshape a_1
|
checkshape a_1
|
||||||
|
|
||||||
restore [locate_data_file OCC497f.brep] a_2
|
restore [locate_data_file OCC497f.brep] a_2
|
||||||
checkshape a_2
|
|
||||||
breducetolerance a_2
|
breducetolerance a_2
|
||||||
|
checkshape a_2
|
||||||
|
|
||||||
bcut result a_1 a_2
|
bcut result a_1 a_2
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# Application crashed with "Segmentation Fault" message. Red Hat Linux 8.0
|
# Application crashed with "Segmentation Fault" message. Red Hat Linux 8.0
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
set BugNumber OCC6725
|
set BugNumber OCC6725
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@ puts ""
|
|||||||
####################################################
|
####################################################
|
||||||
## After command sew in DRAW on attached shape free wires are disappeared.
|
## After command sew in DRAW on attached shape free wires are disappeared.
|
||||||
####################################################
|
####################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file OCC714.brep] a
|
restore [locate_data_file OCC714.brep] a
|
||||||
checkshape a
|
checkshape a
|
||||||
|
@@ -6,6 +6,7 @@ puts ""
|
|||||||
############################################
|
############################################
|
||||||
## Command sameparameter in DRAW hangs on attached edge.
|
## Command sameparameter in DRAW hangs on attached edge.
|
||||||
############################################
|
############################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file OCC767.brep] result
|
restore [locate_data_file OCC767.brep] result
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#####################################################
|
#####################################################
|
||||||
# BUC60875. Pipe is created incorrectly on two wires.
|
# BUC60875. Pipe is created incorrectly on two wires.
|
||||||
#####################################################
|
#####################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
restore [locate_data_file BUC60875_wire.brep] wire
|
restore [locate_data_file BUC60875_wire.brep] wire
|
||||||
restore [locate_data_file BUC60875_profile.brep] profile
|
restore [locate_data_file BUC60875_profile.brep] profile
|
||||||
|
@@ -6,6 +6,7 @@ puts ""
|
|||||||
##########################################################
|
##########################################################
|
||||||
## The command "section" in Draw gives exception "attempt to access to null object "
|
## The command "section" in Draw gives exception "attempt to access to null object "
|
||||||
##########################################################
|
##########################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
restore [locate_data_file BUC60877_lh.brep] sh
|
restore [locate_data_file BUC60877_lh.brep] sh
|
||||||
checkshape sh
|
checkshape sh
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# exception is raised during the vprops in DRAW on the attached shape
|
# exception is raised during the vprops in DRAW on the attached shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
set BugNumber OCC8228
|
set BugNumber OCC8228
|
||||||
|
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
###############################
|
###############################
|
||||||
## BRepFilletAPI_MakeFillet fails on prism
|
## BRepFilletAPI_MakeFillet fails on prism
|
||||||
###############################
|
###############################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
if { [ catch { set info_result [OCC828 a1] } ] } {
|
if { [ catch { set info_result [OCC828 a1] } ] } {
|
||||||
puts "Faulty : an exception was caught"
|
puts "Faulty : an exception was caught"
|
||||||
|
@@ -39,7 +39,8 @@ if { [catch { mkoffset result a_1 1 5 } status] } {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkprops result -l 8577.24
|
checkprops result -l 8577.24
|
||||||
checkshape result
|
fixshape r1 result
|
||||||
checksection result
|
checkshape r1
|
||||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
checksection r1
|
||||||
|
checkview -display r1 -2d -path ${imagedir}/${test_image}.png
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,10 @@ puts ""
|
|||||||
###################################
|
###################################
|
||||||
## BRepOffsetAPI_MakeOffset fails on given wires
|
## BRepOffsetAPI_MakeOffset fails on given wires
|
||||||
###################################
|
###################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
restore [locate_data_file OCC829_w2.brep] a
|
restore [locate_data_file OCC829_w2.brep] a
|
||||||
|
breducetolerance a
|
||||||
checkshape a
|
checkshape a
|
||||||
explode a w
|
explode a w
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################################
|
#######################################################################################
|
||||||
# One face is not displayed in shading mode
|
# One face is not displayed in shading mode
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_155"
|
||||||
|
|
||||||
set BugNumber OCC8370
|
set BugNumber OCC8370
|
||||||
|
|
||||||
|
@@ -7,15 +7,17 @@ puts ""
|
|||||||
#############################
|
#############################
|
||||||
## Impossible to fuse the shapes.
|
## Impossible to fuse the shapes.
|
||||||
##############################
|
##############################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_18"
|
||||||
|
|
||||||
restore [locate_data_file OCC919.brep] a
|
restore [locate_data_file OCC919.brep] a
|
||||||
|
breducetolerance a
|
||||||
explode a
|
explode a
|
||||||
|
|
||||||
# See comment in CR23244:
|
# See comment in CR23244:
|
||||||
restore [locate_data_file OCC919-PROC.brep] a_1
|
restore [locate_data_file OCC919-PROC.brep] a_1
|
||||||
#
|
#
|
||||||
fixshape a_1 a_1
|
fixshape a_1 a_1
|
||||||
|
breducetolerance a_1
|
||||||
checkshape a_1
|
checkshape a_1
|
||||||
checkshape a_2
|
checkshape a_2
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# New functionality building reflect lines on a shape
|
# New functionality building reflect lines on a shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# New functionality building reflect lines on a shape
|
# New functionality building reflect lines on a shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_1"
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# New functionality building reflect lines on a shape
|
# New functionality building reflect lines on a shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# New functionality building reflect lines on a shape
|
# New functionality building reflect lines on a shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
######################################################
|
######################################################
|
||||||
# New functionality building reflect lines on a shape
|
# New functionality building reflect lines on a shape
|
||||||
######################################################
|
######################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
smallview
|
smallview
|
||||||
|
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
restore [locate_data_file bug23708_invalidface.brep] result
|
restore [locate_data_file bug23708_invalidface.brep] result
|
||||||
|
fixshape result result
|
||||||
checkshape result
|
checkshape result
|
||||||
|
|
||||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||||
|
24
tests/bugs/modalg_5/bug23731
Normal file
24
tests/bugs/modalg_5/bug23731
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
puts "============"
|
||||||
|
puts "CR23731"
|
||||||
|
puts "============"
|
||||||
|
puts ""
|
||||||
|
######################################################
|
||||||
|
# The shape obtained by stepread is valid in terms of checkshape but it is not valid in terms of usability.
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
catch { pload XDE }
|
||||||
|
|
||||||
|
set filepath [locate_data_file OCC6289.stp]
|
||||||
|
stepread $filepath a *
|
||||||
|
|
||||||
|
explode a_1 f
|
||||||
|
|
||||||
|
renamevar a_1_24 result
|
||||||
|
|
||||||
|
smallview
|
||||||
|
donly result
|
||||||
|
fit
|
||||||
|
|
||||||
|
set square 1
|
||||||
|
|
||||||
|
set only_screen_axo 1
|
@@ -17,6 +17,7 @@ donly a_4 e
|
|||||||
fit
|
fit
|
||||||
|
|
||||||
splitshape result a_4 a_4 e
|
splitshape result a_4 a_4 e
|
||||||
|
breducetolerance result
|
||||||
|
|
||||||
set bug_info [checkshape result]
|
set bug_info [checkshape result]
|
||||||
if {[string compare $bug_info "This shape seems to be valid"] != 0} {
|
if {[string compare $bug_info "This shape seems to be valid"] != 0} {
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#######################################################################
|
#######################################################################
|
||||||
# New option of BRepOffsetAPI_MakeOffset algorithm: processing of sharp corners in mode GeomAbs_Intersection
|
# New option of BRepOffsetAPI_MakeOffset algorithm: processing of sharp corners in mode GeomAbs_Intersection
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
puts "TODO CR32256 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
polyline pp 0 0 0 10 0 0 10 10 0 6 10 0 6 15 0 4 15 0 4 10 0 0 10 0 0 0 0
|
polyline pp 0 0 0 10 0 0 10 10 0 6 10 0 6 15 0 4 15 0 4 10 0 0 10 0 0 0 0
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file bug26440_plate.brep] sh1
|
restore [locate_data_file bug26440_plate.brep] sh1
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_4"
|
||||||
|
|
||||||
restore [locate_data_file bug26440_plate2.brep] sh1
|
restore [locate_data_file bug26440_plate2.brep] sh1
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
# Invalid shape as a result of solid construction in BRepOffset_MakeOffset
|
||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file bug26440_plate3.brep] sh1
|
restore [locate_data_file bug26440_plate3.brep] sh1
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#################################################
|
#################################################
|
||||||
# Solid becomes invalid after scaling
|
# Solid becomes invalid after scaling
|
||||||
#################################################
|
#################################################
|
||||||
|
puts "TODO CR32209 ALL: Faulty shapes in variables faulty_1 to faulty_46"
|
||||||
|
|
||||||
pload XDE
|
pload XDE
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ puts ""
|
|||||||
#################################################
|
#################################################
|
||||||
# Incomplete result of offset operation in mode Complete with Join type intersection
|
# Incomplete result of offset operation in mode Complete with Join type intersection
|
||||||
#################################################
|
#################################################
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_2"
|
||||||
|
|
||||||
restore [locate_data_file bug28501_N9_lf.brep] ls
|
restore [locate_data_file bug28501_N9_lf.brep] ls
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@ puts "============"
|
|||||||
puts "OCC22886: Bug in boolean"
|
puts "OCC22886: Bug in boolean"
|
||||||
puts "============"
|
puts "============"
|
||||||
puts ""
|
puts ""
|
||||||
|
puts "TODO CR32210 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
restore [locate_data_file bug22886_solid1.brep] solid1
|
restore [locate_data_file bug22886_solid1.brep] solid1
|
||||||
restore [locate_data_file bug22886_solid2.brep] solid2
|
restore [locate_data_file bug22886_solid2.brep] solid2
|
||||||
|
@@ -10,7 +10,8 @@ restore [locate_data_file bug25856_threeWires.brep] t
|
|||||||
|
|
||||||
explode t
|
explode t
|
||||||
|
|
||||||
thrusections -N r 0 0 t_1 t_2 t_3
|
thrusections -N r_1 0 0 t_1 t_2 t_3
|
||||||
|
fixshape r r_1
|
||||||
checkshape r
|
checkshape r
|
||||||
|
|
||||||
fixshape rr r
|
fixshape rr r
|
||||||
|
@@ -7,6 +7,7 @@ puts ""
|
|||||||
#################################################
|
#################################################
|
||||||
# Sewing returns result with too high tolerance
|
# Sewing returns result with too high tolerance
|
||||||
#################################################
|
#################################################
|
||||||
|
puts "TODO CR32226 ALL: Faulty shapes in variables faulty_1 to faulty_3"
|
||||||
|
|
||||||
set sew_Tol 0.2
|
set sew_Tol 0.2
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user