mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0025013: ShapeFix_Wire tweaks for better results
Recalculate of tolerance before edge cutting Test case for issue CR25013 add try to increase tolerance before splitting in singularity during PCurve adding. Correction of test cases for issue CR25013
This commit is contained in:
parent
4c5133866b
commit
3163e9fdeb
@ -109,6 +109,7 @@
|
|||||||
#include <Geom_OffsetCurve.hxx>
|
#include <Geom_OffsetCurve.hxx>
|
||||||
|
|
||||||
#include <TColStd_HSequenceOfReal.hxx>
|
#include <TColStd_HSequenceOfReal.hxx>
|
||||||
|
#include <Handle_Geom2dAdaptor_HCurve.hxx>
|
||||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||||
#include <Geom2dAdaptor_HCurve.hxx>
|
#include <Geom2dAdaptor_HCurve.hxx>
|
||||||
#include <GeomAPI_ProjectPointOnCurve.hxx>
|
#include <GeomAPI_ProjectPointOnCurve.hxx>
|
||||||
@ -569,66 +570,92 @@ Standard_Boolean ShapeFix_Wire::FixEdgeCurves()
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
cout << "Edge going over singularity detected; splitted" << endl;
|
cout << "Edge going over singularity detected; splitted" << endl;
|
||||||
#endif
|
#endif
|
||||||
Standard_Boolean isFwd = ( E.Orientation() == TopAbs_FORWARD );
|
Standard_Boolean isFwd = ( E.Orientation() == TopAbs_FORWARD );
|
||||||
E.Orientation ( TopAbs_FORWARD );
|
E.Orientation ( TopAbs_FORWARD );
|
||||||
|
|
||||||
//if( BRep_Tool::SameParameter(sbwd->Edge(i)) )
|
//if( BRep_Tool::SameParameter(sbwd->Edge(i)) )
|
||||||
// sbe.RemovePCurve ( E, face );
|
// sbe.RemovePCurve ( E, face );
|
||||||
|
|
||||||
//10.04.2003 skl for using trimmed lines as pcurves
|
//10.04.2003 skl for using trimmed lines as pcurves
|
||||||
ShapeAnalysis_Edge sae;
|
ShapeAnalysis_Edge sae;
|
||||||
if( BRep_Tool::SameParameter(sbwd->Edge(i)) )
|
if( BRep_Tool::SameParameter(sbwd->Edge(i)) )
|
||||||
sbe.RemovePCurve ( E, face );
|
sbe.RemovePCurve ( E, face );
|
||||||
else {
|
else {
|
||||||
if(sae.HasPCurve(E,face)) {
|
if(sae.HasPCurve(E,face)) {
|
||||||
Handle(Geom2d_Curve) C2d;
|
Handle(Geom2d_Curve) C2d;
|
||||||
Standard_Real fp2d,lp2d;
|
Standard_Real fp2d,lp2d;
|
||||||
if(sae.PCurve(E,face,C2d,fp2d,lp2d)) {
|
if(sae.PCurve(E,face,C2d,fp2d,lp2d)) {
|
||||||
if( !C2d->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve)) )
|
if( !C2d->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve)) )
|
||||||
sbe.RemovePCurve(E,face);
|
sbe.RemovePCurve(E,face);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// myFixEdge->FixSameParameter ( E ); // to ensure SameRange & SP
|
||||||
|
BRep_Builder B;
|
||||||
|
TopoDS_Vertex V1, V2, V;
|
||||||
|
//ShapeAnalysis_Edge sae;
|
||||||
|
V1 = sae.FirstVertex ( E );
|
||||||
|
V2 = sae.LastVertex ( E );
|
||||||
|
|
||||||
|
Handle(ShapeExtend_WireData) sw = new ShapeExtend_WireData;
|
||||||
|
for ( Standard_Integer k=0; k <= seq.Length(); k++ )
|
||||||
|
{
|
||||||
|
Standard_Real split = ( k < seq.Length() ? seq(k+1) : b );
|
||||||
|
if ( k < seq.Length() )
|
||||||
|
{
|
||||||
|
B.MakeVertex ( V, C->Value(split), BRep_Tool::Tolerance(E) );
|
||||||
|
//try increase tolerance before splitting
|
||||||
|
Standard_Real aDist = BRep_Tool::Pnt(V1).Distance(BRep_Tool::Pnt(V));
|
||||||
|
if (aDist < BRep_Tool::Tolerance(V1) * 1.01) {
|
||||||
|
B.UpdateVertex(V1, Max(aDist, BRep_Tool::Tolerance(V1)));
|
||||||
|
a = split;
|
||||||
|
V1 = V;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aDist = BRep_Tool::Pnt(V2).Distance(BRep_Tool::Pnt(V));
|
||||||
|
if (aDist < BRep_Tool::Tolerance(V2) * 1.01) {
|
||||||
|
B.UpdateVertex(V, Max(aDist, BRep_Tool::Tolerance(V2)));
|
||||||
|
b = split;
|
||||||
|
V2 = V;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
V = V2;
|
||||||
|
}
|
||||||
|
|
||||||
// myFixEdge->FixSameParameter ( E ); // to ensure SameRange & SP
|
TopoDS_Edge edge = sbe.CopyReplaceVertices ( E, V1, V );
|
||||||
BRep_Builder B;
|
if( BRep_Tool::SameParameter(sbwd->Edge(i)) ) {
|
||||||
TopoDS_Vertex V1, V2, V;
|
//TopoDS_Edge edge = sbe.CopyReplaceVertices ( E, V1, V );
|
||||||
//ShapeAnalysis_Edge sae;
|
B.Range ( edge, a, split );
|
||||||
V1 = sae.FirstVertex ( E );
|
sw->Add ( edge );
|
||||||
V2 = sae.LastVertex ( E );
|
}
|
||||||
Handle(ShapeExtend_WireData) sw = new ShapeExtend_WireData;
|
else {
|
||||||
for ( Standard_Integer k=0; k <= seq.Length(); k++ ) {
|
//TopoDS_Edge edge = sbe.CopyReplaceVertices(sbwd->Edge(i),V1,V);
|
||||||
Standard_Real split = ( k < seq.Length() ? seq(k+1) : b );
|
Handle(ShapeAnalysis_TransferParameters) sftp =
|
||||||
if ( k < seq.Length() )
|
new ShapeAnalysis_TransferParameters(E,face);
|
||||||
B.MakeVertex ( V, C->Value(split), BRep_Tool::Tolerance(E) );
|
sftp->TransferRange(edge, a, split, Standard_False);
|
||||||
else V = V2;
|
sw->Add(edge);
|
||||||
TopoDS_Edge edge = sbe.CopyReplaceVertices ( E, V1, V );
|
}
|
||||||
if( BRep_Tool::SameParameter(sbwd->Edge(i)) ) {
|
//sw->Add(edge);
|
||||||
//TopoDS_Edge edge = sbe.CopyReplaceVertices ( E, V1, V );
|
a = split;
|
||||||
B.Range ( edge, a, split );
|
V1 = V;
|
||||||
sw->Add ( edge );
|
}
|
||||||
}
|
if ( ! isFwd ) {
|
||||||
else {
|
sw->Reverse();
|
||||||
//TopoDS_Edge edge = sbe.CopyReplaceVertices(sbwd->Edge(i),V1,V);
|
E.Orientation ( TopAbs_REVERSED );
|
||||||
Handle(ShapeAnalysis_TransferParameters) sftp =
|
}
|
||||||
new ShapeAnalysis_TransferParameters(E,face);
|
Context()->Replace ( E, sw->Wire() );
|
||||||
sftp->TransferRange(edge, a, split, Standard_False);
|
UpdateWire();
|
||||||
sw->Add(edge);
|
nb = sbwd->NbEdges();
|
||||||
}
|
i--;
|
||||||
//sw->Add(edge);
|
continue;
|
||||||
a = split;
|
}
|
||||||
V1 = V;
|
|
||||||
}
|
|
||||||
if ( ! isFwd ) {
|
|
||||||
sw->Reverse();
|
|
||||||
E.Orientation ( TopAbs_REVERSED );
|
|
||||||
}
|
|
||||||
Context()->Replace ( E, sw->Wire() );
|
|
||||||
UpdateWire();
|
|
||||||
nb = sbwd->NbEdges();
|
|
||||||
i--;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
overdegen = i;
|
overdegen = i;
|
||||||
@ -844,13 +871,14 @@ Standard_Boolean ShapeFix_Wire::FixSelfIntersection()
|
|||||||
if(LastFixStatus (ShapeExtend_DONE6))
|
if(LastFixStatus (ShapeExtend_DONE6))
|
||||||
myStatusSelfIntersection |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE6 );
|
myStatusSelfIntersection |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE6 );
|
||||||
|
|
||||||
if ( ! myTopoMode || nb < 3 ) {
|
if ( /*! myTopoMode ||*/ nb < 3 ) {
|
||||||
//#86 rln 22.03.99 sim2.igs, entity 4292: After fixing of self-intersecting
|
//#86 rln 22.03.99 sim2.igs, entity 4292: After fixing of self-intersecting
|
||||||
//BRepCheck finds one more self-intersection not found by ShapeAnalysis
|
//BRepCheck finds one more self-intersection not found by ShapeAnalysis
|
||||||
//%15 pdn 06.04.99 repeat until fixed CTS18546-2 entity 777
|
//%15 pdn 06.04.99 repeat until fixed CTS18546-2 entity 777
|
||||||
//FixIntersectingEdges ( num );
|
|
||||||
if ( LastFixStatus ( ShapeExtend_DONE7 ) ) num--;
|
// if the tolerance was modified we should recheck the result, if it was enough
|
||||||
continue;
|
if ( LastFixStatus ( ShapeExtend_DONE7 ) ) num--;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( LastFixStatus ( ShapeExtend_DONE4 ) ) sbwd->Remove ( num );
|
if ( LastFixStatus ( ShapeExtend_DONE4 ) ) sbwd->Remove ( num );
|
||||||
@ -868,7 +896,9 @@ Standard_Boolean ShapeFix_Wire::FixSelfIntersection()
|
|||||||
//#86 rln 22.03.99
|
//#86 rln 22.03.99
|
||||||
//%15 pdn 06.04.99 repeat until fixed CTS18546-2 entity 777
|
//%15 pdn 06.04.99 repeat until fixed CTS18546-2 entity 777
|
||||||
//FixIntersectingEdges ( num );
|
//FixIntersectingEdges ( num );
|
||||||
if ( LastFixStatus ( ShapeExtend_DONE7 ) ) num--;
|
/*if ( LastFixStatus ( ShapeExtend_DONE7 ) )*/
|
||||||
|
// Always revisit the fixed edge
|
||||||
|
num--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1331,8 +1361,13 @@ Standard_Boolean ShapeFix_Wire::FixShifted()
|
|||||||
TopoDS_Edge E1 = sbwd->Edge ( n1 );
|
TopoDS_Edge E1 = sbwd->Edge ( n1 );
|
||||||
TopoDS_Edge E2 = sbwd->Edge ( n2 );
|
TopoDS_Edge E2 = sbwd->Edge ( n2 );
|
||||||
|
|
||||||
if ( BRep_Tool::Degenerated(E1) || BRep_Tool::Degenerated(E2) ) {
|
if ( BRep_Tool::Degenerated(E1) || BRep_Tool::Degenerated(E2) )
|
||||||
if ( ! degstop ) { stop = n2; degstop = Standard_True; }
|
{
|
||||||
|
if ( ! degstop )
|
||||||
|
{
|
||||||
|
stop = n2;
|
||||||
|
degstop = Standard_True;
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1376,82 +1411,100 @@ Standard_Boolean ShapeFix_Wire::FixShifted()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isDeg ) {
|
if ( isDeg )
|
||||||
if ( ! degstop ) { stop = n2; degstop = Standard_True; }
|
{
|
||||||
if ( ! degn2 ) { degn2 = n2; pdeg = p; }
|
if ( ! degstop )
|
||||||
else if ( pdeg.SquareDistance(p) < Precision()*Precision() ) {
|
{
|
||||||
degn2 = n2;
|
stop = n2;
|
||||||
// if ( stop < n2 ) { stop = n2; degstop = Standard_True; }
|
degstop = Standard_True;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
Standard_Real ax1 = 0., bx1 = 0., ax2 = 0., bx2 = 0.;
|
if ( ! degn2 )
|
||||||
Handle(Geom2d_Curve) cx1, cx2;
|
{
|
||||||
if ( ( c2d1.IsNull() && ! sae.PCurve ( E1, Face(), c2d1, a1, b1, Standard_True ) ) ||
|
degn2 = n2;
|
||||||
( c2d2.IsNull() && ! sae.PCurve ( E2, Face(), c2d2, a2, b2, Standard_True ) ) ||
|
pdeg = p;
|
||||||
! sae.PCurve ( sbwd->Edge ( degn2 >1 ? degn2-1 : nb ), Face(), cx1, ax1, bx1, Standard_True ) ||
|
}
|
||||||
! sae.PCurve ( sbwd->Edge ( degn2 ), Face(), cx2, ax2, bx2, Standard_True ) ) {
|
else
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_FAIL1 );
|
{
|
||||||
continue;
|
if ( pdeg.SquareDistance(p) < Precision() * Precision() )
|
||||||
}
|
{
|
||||||
gp_Pnt2d pd1 = cx1->Value ( bx1 );
|
degn2 = n2;
|
||||||
gp_Pnt2d pd2 = cx2->Value ( ax2 );
|
//if ( stop < n2 ) { stop = n2; degstop = Standard_True; }
|
||||||
gp_Pnt2d pn1 = c2d1->Value ( b1 );
|
}
|
||||||
gp_Pnt2d pn2 = c2d2->Value ( a2 );
|
else
|
||||||
gp_Vec2d x(0.,0.); // shift vector
|
{
|
||||||
Standard_Real period;
|
Standard_Real ax1 = 0., bx1 = 0., ax2 = 0., bx2 = 0.;
|
||||||
if ( uclosed ) { x.SetX ( 1. ); period = URange; }
|
Handle(Geom2d_Curve) cx1, cx2;
|
||||||
else { x.SetY ( 1. ); period = VRange; }
|
if ( ( c2d1.IsNull() && ! sae.PCurve ( E1, Face(), c2d1, a1, b1, Standard_True ) ) ||
|
||||||
Standard_Real rot1 = ( pn1.XY() - pd2.XY() ) ^ x.XY();
|
( c2d2.IsNull() && ! sae.PCurve ( E2, Face(), c2d2, a2, b2, Standard_True ) ) ||
|
||||||
Standard_Real rot2 = ( pd1.XY() - pn2.XY() ) ^ x.XY();
|
! sae.PCurve ( sbwd->Edge ( degn2 >1 ? degn2-1 : nb ), Face(), cx1, ax1, bx1, Standard_True ) ||
|
||||||
Standard_Real scld = ( pd2.XY() - pd1.XY() ) * x.XY();
|
! sae.PCurve ( sbwd->Edge ( degn2 ), Face(), cx2, ax2, bx2, Standard_True ) )
|
||||||
Standard_Real scln = ( pn2.XY() - pn1.XY() ) * x.XY();
|
{
|
||||||
if ( rot1 * rot2 < -::Precision::PConfusion() &&
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_FAIL1 );
|
||||||
scld * scln < -::Precision::PConfusion() &&
|
continue;
|
||||||
Abs ( scln ) > 0.1 * period && Abs ( scld ) > 0.1 * period &&
|
}
|
||||||
rot1 * scld > ::Precision::PConfusion() &&
|
gp_Pnt2d pd1 = cx1->Value ( bx1 );
|
||||||
rot2 * scln > ::Precision::PConfusion() ) {
|
gp_Pnt2d pd2 = cx2->Value ( ax2 );
|
||||||
// abv 02 Mar 00: trying more sophisticated analysis (ie_exhaust-A.stp #37520)
|
gp_Pnt2d pn1 = c2d1->Value ( b1 );
|
||||||
Standard_Real sign = ( rot2 >0 ? 1. : -1. );
|
gp_Pnt2d pn2 = c2d2->Value ( a2 );
|
||||||
Standard_Real deep1 = Min ( sign * ( pn2.XY() * x.XY() ),
|
gp_Vec2d x(0.,0.); // shift vector
|
||||||
Min ( sign * ( pd1.XY() * x.XY() ),
|
Standard_Real period;
|
||||||
Min ( sign * ( c2d2->Value(b2 ).XY() * x.XY() ),
|
if ( uclosed ) { x.SetX ( 1. ); period = URange; }
|
||||||
Min ( sign * ( cx1->Value(ax1).XY() * x.XY() ),
|
else { x.SetY ( 1. ); period = VRange; }
|
||||||
Min ( sign * ( c2d2->Value(0.5*(a2 +b2 )).XY() * x.XY() ),
|
Standard_Real rot1 = ( pn1.XY() - pd2.XY() ) ^ x.XY();
|
||||||
sign * ( cx1->Value(0.5*(ax1+bx1)).XY() * x.XY() ) ) ) ) ) );
|
Standard_Real rot2 = ( pd1.XY() - pn2.XY() ) ^ x.XY();
|
||||||
Standard_Real deep2 = Max ( sign * ( pn1.XY() * x.XY() ),
|
Standard_Real scld = ( pd2.XY() - pd1.XY() ) * x.XY();
|
||||||
Max ( sign * ( pd2.XY() * x.XY() ),
|
Standard_Real scln = ( pn2.XY() - pn1.XY() ) * x.XY();
|
||||||
Max ( sign * ( c2d1->Value(a1 ).XY() * x.XY() ),
|
if ( rot1 * rot2 < -::Precision::PConfusion() &&
|
||||||
Max ( sign * ( cx2->Value(bx2).XY() * x.XY() ),
|
scld * scln < -::Precision::PConfusion() &&
|
||||||
Max ( sign * ( c2d1->Value(0.5*(a1 +b1 )).XY() * x.XY() ),
|
Abs ( scln ) > 0.1 * period && Abs ( scld ) > 0.1 * period &&
|
||||||
sign * ( cx2->Value(0.5*(ax2+bx2)).XY() * x.XY() ) ) ) ) ) );
|
rot1 * scld > ::Precision::PConfusion() &&
|
||||||
Standard_Real deep = deep2 - deep1; // estimated current size of wire by x
|
rot2 * scln > ::Precision::PConfusion() )
|
||||||
// pdn 30 Oct 00: trying correct period [0,period] (trj5_k1-tc-203.stp #4698)
|
{
|
||||||
Standard_Real dx = ShapeAnalysis::AdjustToPeriod ( deep, ::Precision::PConfusion(), period+::Precision::PConfusion());
|
// abv 02 Mar 00: trying more sophisticated analysis (ie_exhaust-A.stp #37520)
|
||||||
x *= ( scld >0 ? -dx : dx );
|
Standard_Real sign = ( rot2 >0 ? 1. : -1. );
|
||||||
// x *= ( Abs(scld-scln) > 1.5 * period ? 2. : 1. ) *
|
Standard_Real deep1 = Min ( sign * ( pn2.XY() * x.XY() ),
|
||||||
// ( scld >0 ? -period : period );
|
Min ( sign * ( pd1.XY() * x.XY() ),
|
||||||
gp_Trsf2d Shift;
|
Min ( sign * ( c2d2->Value(b2 ).XY() * x.XY() ),
|
||||||
Shift.SetTranslation ( x );
|
Min ( sign * ( cx1->Value(ax1).XY() * x.XY() ),
|
||||||
for ( Standard_Integer k=degn2; ; k++ ) {
|
Min ( sign * ( c2d2->Value(0.5*(a2 +b2 )).XY() * x.XY() ),
|
||||||
if ( k > nb ) k = 1;
|
sign * ( cx1->Value(0.5*(ax1+bx1)).XY() * x.XY() ) ) ) ) ) );
|
||||||
if ( k == n2 ) break;
|
Standard_Real deep2 = Max ( sign * ( pn1.XY() * x.XY() ),
|
||||||
TopoDS_Edge edge = sbwd->Edge ( k );
|
Max ( sign * ( pd2.XY() * x.XY() ),
|
||||||
if ( ! sae.PCurve ( edge, Face(), cx1, ax1, bx1, Standard_True ) ) continue;
|
Max ( sign * ( c2d1->Value(a1 ).XY() * x.XY() ),
|
||||||
//cx1->Transform ( Shift );
|
Max ( sign * ( cx2->Value(bx2).XY() * x.XY() ),
|
||||||
// skl 15.05.2002 for OCC208 (if few edges have reference to one pcurve)
|
Max ( sign * ( c2d1->Value(0.5*(a1 +b1 )).XY() * x.XY() ),
|
||||||
Handle(Geom2d_Curve) cx1new = Handle(Geom2d_Curve)::DownCast(cx1->Transformed(Shift));
|
sign * ( cx2->Value(0.5*(ax2+bx2)).XY() * x.XY() ) ) ) ) ) );
|
||||||
sbe.ReplacePCurve(edge,cx1new,Face());
|
Standard_Real deep = deep2 - deep1; // estimated current size of wire by x
|
||||||
UpdateEdgeUVPoints ( edge, Face() );
|
// pdn 30 Oct 00: trying correct period [0,period] (trj5_k1-tc-203.stp #4698)
|
||||||
}
|
Standard_Real dx = ShapeAnalysis::AdjustToPeriod ( deep, ::Precision::PConfusion(), period+::Precision::PConfusion());
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
x *= ( scld >0 ? -dx : dx );
|
||||||
|
//x *= ( Abs(scld-scln) > 1.5 * period ? 2. : 1. ) *
|
||||||
|
// ( scld >0 ? -period : period );
|
||||||
|
gp_Trsf2d Shift;
|
||||||
|
Shift.SetTranslation ( x );
|
||||||
|
for ( Standard_Integer k=degn2; ; k++ )
|
||||||
|
{
|
||||||
|
if ( k > nb ) k = 1;
|
||||||
|
if ( k == n2 ) break;
|
||||||
|
TopoDS_Edge edge = sbwd->Edge ( k );
|
||||||
|
if ( ! sae.PCurve ( edge, Face(), cx1, ax1, bx1, Standard_True ) ) continue;
|
||||||
|
//cx1->Transform ( Shift );
|
||||||
|
// skl 15.05.2002 for OCC208 (if few edges have reference to one pcurve)
|
||||||
|
Handle(Geom2d_Curve) cx1new = Handle(Geom2d_Curve)::DownCast(cx1->Transformed(Shift));
|
||||||
|
sbe.ReplacePCurve(edge,cx1new,Face());
|
||||||
|
UpdateEdgeUVPoints ( edge, Face() );
|
||||||
|
}
|
||||||
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
cout << "Info: ShapeFix_Wire::FixShifted(): bi - meridian case fixed" << endl;
|
cout << "Info: ShapeFix_Wire::FixShifted(): bi - meridian case fixed" << endl;
|
||||||
#endif
|
#endif
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// degn2 = n2; pdeg = p; // ie_exhaust-A.stp #37520
|
//degn2 = n2; pdeg = p; // ie_exhaust-A.stp #37520
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// pdn to fix half sphere
|
// pdn to fix half sphere
|
||||||
TopoDS_Vertex VE = sae.LastVertex ( E2 );
|
TopoDS_Vertex VE = sae.LastVertex ( E2 );
|
||||||
gp_Pnt pe = BRep_Tool::Pnt ( VE );
|
gp_Pnt pe = BRep_Tool::Pnt ( VE );
|
||||||
@ -2333,77 +2386,100 @@ Standard_Boolean ShapeFix_Wire::FixIntersectingEdges (const Standard_Integer num
|
|||||||
Standard_Real rad = errors.Value(i);
|
Standard_Real rad = errors.Value(i);
|
||||||
Standard_Real newtol = 1.0001 * ( pnt.Distance ( pint ) + rad );
|
Standard_Real newtol = 1.0001 * ( pnt.Distance ( pint ) + rad );
|
||||||
|
|
||||||
// GeomAdaptor_Surface& Ads = myAnalyzer->Surface()->Adaptor3d()->ChangeSurface();
|
//GeomAdaptor_Surface& Ads = myAnalyzer->Surface()->Adaptor3d()->ChangeSurface();
|
||||||
|
|
||||||
//:r8 abv 12 Apr 99: try increasing tolerance of edge
|
//:r8 abv 12 Apr 99: try increasing tolerance of edge
|
||||||
if ( ! myTopoMode && newtol > tol ) {
|
|
||||||
|
Standard_Boolean locMayEdit = myTopoMode;
|
||||||
|
// Always try to modify the tolerance firstly as a better solution
|
||||||
|
if ( /*! myTopoMode &&*/ newtol > tol ) {
|
||||||
Standard_Real te1 = rad + ComputeLocalDeviation (E1, pint, pnt,
|
Standard_Real te1 = rad + ComputeLocalDeviation (E1, pint, pnt,
|
||||||
param1, ( isForward1 ? b1 : a1 ), Face() );
|
param1, ( isForward1 ? b1 : a1 ), Face() );
|
||||||
Standard_Real te2 = rad + ComputeLocalDeviation (E2, pint, pnt,
|
Standard_Real te2 = rad + ComputeLocalDeviation (E2, pint, pnt,
|
||||||
( isForward2 ? a2 : b2 ), param2, Face() );
|
( isForward2 ? a2 : b2 ), param2, Face() );
|
||||||
Standard_Real maxte = Max ( te1, te2 );
|
Standard_Real maxte = Max ( te1, te2 );
|
||||||
if ( maxte < MaxTolerance() && maxte < newtol ) {
|
if ( maxte < MaxTolerance() && maxte < newtol ) {
|
||||||
if ( BRep_Tool::Tolerance(E1) < te1 || BRep_Tool::Tolerance(E2) < te2 ) {
|
if ( BRep_Tool::Tolerance(E1) < te1 || BRep_Tool::Tolerance(E2) < te2 ) {
|
||||||
B.UpdateEdge ( E1, 1.000001 * te1 );
|
#ifdef OCCT_DEBUG
|
||||||
B.UpdateVertex ( sae.FirstVertex ( E1 ), 1.000001 * te1 );
|
cout << "Warning: ShapeFix_Wire::FixIE: edges tolerance increased: (" <<
|
||||||
B.UpdateVertex ( sae.LastVertex ( E1 ), 1.000001 * te1 );
|
te1 << ", " << te2 << ") / " << newtol << endl;
|
||||||
B.UpdateEdge ( E2, 1.000001 * te2 );
|
#endif
|
||||||
B.UpdateVertex ( sae.FirstVertex ( E2 ), 1.000001 * te2 );
|
B.UpdateEdge ( E1, 1.000001 * te1 );
|
||||||
B.UpdateVertex ( sae.LastVertex ( E2 ), 1.000001 * te2 );
|
B.UpdateVertex ( sae.FirstVertex ( E1 ), 1.000001 * te1 );
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE6 );
|
B.UpdateVertex ( sae.LastVertex ( E1 ), 1.000001 * te1 );
|
||||||
}
|
B.UpdateEdge ( E2, 1.000001 * te2 );
|
||||||
newtol = 1.000001 * maxte;
|
B.UpdateVertex ( sae.FirstVertex ( E2 ), 1.000001 * te2 );
|
||||||
|
B.UpdateVertex ( sae.LastVertex ( E2 ), 1.000001 * te2 );
|
||||||
|
|
||||||
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE6 );
|
||||||
|
locMayEdit = Standard_False;
|
||||||
|
}
|
||||||
|
newtol = 1.000001 * maxte;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( myTopoMode || newtol <= MaxTolerance() ) {
|
if ( locMayEdit || newtol <= MaxTolerance() )
|
||||||
|
{
|
||||||
prevRange1 = newRange1;
|
prevRange1 = newRange1;
|
||||||
prevRange2 = newRange2;
|
prevRange2 = newRange2;
|
||||||
Standard_Boolean locMayEdit = myTopoMode;
|
if ( locMayEdit )
|
||||||
if ( myTopoMode ) { //:j6 abv 7 Dec 98: ProSTEP TR10 r0601_id.stp #57676 & #58586: do not cut edges because of influence on adjacent faces
|
{
|
||||||
|
newtol = 1.0001 * ( pnt.Distance ( pint ) + rad );
|
||||||
|
//:j6 abv 7 Dec 98: ProSTEP TR10 r0601_id.stp #57676 & #58586: do not cut edges because of influence on adjacent faces
|
||||||
ShapeFix_SplitTool aTool;
|
ShapeFix_SplitTool aTool;
|
||||||
//if ( ! ShapeFix::CutEdge ( E1, ( isForward1 ? a1 : b1 ), param1, Face(), IsCutLine ) ) {
|
|
||||||
if ( ! aTool.CutEdge ( E1, ( isForward1 ? a1 : b1 ), param1, Face(), IsCutLine ) ) {
|
if ( ! aTool.CutEdge ( E1, ( isForward1 ? a1 : b1 ), param1, Face(), IsCutLine ) ) {
|
||||||
if ( V1.IsSame ( Vp ) )
|
if ( V1.IsSame ( Vp ) )
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE3 );
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE3 );
|
||||||
else locMayEdit = Standard_False;
|
else locMayEdit = Standard_False;
|
||||||
}
|
}
|
||||||
else cutEdge1 = Standard_True; //:h4
|
else cutEdge1 = Standard_True; //:h4
|
||||||
//if ( ! ShapeFix::CutEdge ( E2, ( isForward2 ? b2 : a2 ), param2, Face(), IsCutLine ) ) {
|
|
||||||
if ( ! aTool.CutEdge ( E2, ( isForward2 ? b2 : a2 ), param2, Face(), IsCutLine ) ) {
|
if ( ! aTool.CutEdge ( E2, ( isForward2 ? b2 : a2 ), param2, Face(), IsCutLine ) ) {
|
||||||
if ( V2.IsSame ( Vn ) )
|
if ( V2.IsSame ( Vn ) )
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE4 );
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE4 );
|
||||||
else locMayEdit = Standard_False;
|
else locMayEdit = Standard_False;
|
||||||
}
|
}
|
||||||
else cutEdge2 = Standard_True; //:h4
|
else cutEdge2 = Standard_True; //:h4
|
||||||
}
|
}
|
||||||
if ( locMayEdit &&
|
|
||||||
newRange1 <= prevRange1 && newRange2 <= prevRange2 && //rln 09/01/98
|
if ( locMayEdit &&
|
||||||
BRep_Tool::SameParameter ( E1 ) &&
|
newRange1 <= prevRange1 && newRange2 <= prevRange2 && //rln 09/01/98
|
||||||
BRep_Tool::SameParameter ( E2 ) ) {
|
BRep_Tool::SameParameter ( E1 ) &&
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE2 );
|
BRep_Tool::SameParameter ( E2 ) )
|
||||||
pnt = pint;
|
{
|
||||||
if ( tol <= rad ) {
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE2 );
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
pnt = pint;
|
||||||
tol = 1.001 * rad;
|
if ( tol <= rad ) {
|
||||||
}
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
||||||
|
tol = 1.001 * rad;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(IsCutLine) {
|
else
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE2 );
|
{
|
||||||
pnt = pint;
|
if(IsCutLine)
|
||||||
if ( tol <= rad ) {
|
{
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE2 );
|
||||||
tol = 1.001 * rad;
|
pnt = pint;
|
||||||
}
|
if ( tol <= rad ) {
|
||||||
}
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
||||||
else { // else increase tolerance
|
tol = 1.001 * rad;
|
||||||
if (tol < newtol) { //rln 07.04.99 CCI60005-brep.igs
|
}
|
||||||
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
}
|
||||||
tol = newtol;
|
else
|
||||||
}
|
{ // else increase tolerance
|
||||||
|
if (tol < newtol)
|
||||||
|
{ //rln 07.04.99 CCI60005-brep.igs
|
||||||
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE1 );
|
||||||
|
tol = newtol;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_FAIL2 );
|
else
|
||||||
|
{
|
||||||
|
myLastFixStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_FAIL2 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! LastFixStatus ( ShapeExtend_DONE ) ) return Standard_False;
|
if ( ! LastFixStatus ( ShapeExtend_DONE ) ) return Standard_False;
|
||||||
@ -2679,6 +2755,8 @@ static Standard_Boolean TryBendingPCurve (const TopoDS_Edge &E, const TopoDS_Fac
|
|||||||
else return Standard_False;
|
else return Standard_False;
|
||||||
}
|
}
|
||||||
c2d = bs;
|
c2d = bs;
|
||||||
|
|
||||||
|
if ( ! TryNewPCurve ( E, face, c2d, first, last, tol ) ) return Standard_False;
|
||||||
}
|
}
|
||||||
catch ( Standard_Failure ) {
|
catch ( Standard_Failure ) {
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
@ -2687,8 +2765,7 @@ static Standard_Boolean TryBendingPCurve (const TopoDS_Edge &E, const TopoDS_Fac
|
|||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! TryNewPCurve ( E, face, c2d, first, last, tol ) ) return Standard_False;
|
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
tests/bugs/heal/bug25013_1
Executable file
14
tests/bugs/heal/bug25013_1
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
puts "========="
|
||||||
|
puts " OCC25013"
|
||||||
|
puts "========="
|
||||||
|
puts ""
|
||||||
|
##################################################
|
||||||
|
# ShapeFix_Wire tweaks for better results
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
stepread [locate_data_file bug25013_25013faces.stp] a *
|
||||||
|
|
||||||
|
tpcompound result
|
||||||
|
checkshape result
|
||||||
|
|
||||||
|
set 2dviewer 1
|
14
tests/bugs/heal/bug25013_2
Executable file
14
tests/bugs/heal/bug25013_2
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
puts "========="
|
||||||
|
puts " OCC25013"
|
||||||
|
puts "========="
|
||||||
|
puts ""
|
||||||
|
##################################################
|
||||||
|
# ShapeFix_Wire tweaks for better results
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
stepread [locate_data_file bug25013_25013face.stp] a *
|
||||||
|
|
||||||
|
tpcompound result
|
||||||
|
checkshape result
|
||||||
|
|
||||||
|
set 2dviewer 1
|
@ -1,6 +1,6 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
set filename CTS18546-2.igs
|
set filename CTS18546-2.igs
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
|
puts "TODO CR25013 ALL: Error : 2 differences with reference data found"
|
||||||
|
|
||||||
set filename lh93wsddr3370z2.igs
|
set filename lh93wsddr3370z2.igs
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename CCI60011.igs
|
set filename CCI60011.igs
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 1
|
set LinuxDiff 1
|
||||||
set filename pro5101.igs
|
set filename pro5101.igs
|
||||||
|
@ -3,6 +3,7 @@ puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
|||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 2
|
set LinuxDiff 2
|
||||||
set LinuxFaulties {NBSHAPES}
|
set LinuxFaulties {NBSHAPES}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 2 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename kegel.igs
|
set filename kegel.igs
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename CATIA01.igs
|
set filename CATIA01.igs
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: TOLERANCE : Faulty"
|
puts "TODO CR23096 ALL: TOLERANCE : Faulty"
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 2 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename bmarkmdl.igs
|
set filename bmarkmdl.igs
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename cts17801.igs
|
set filename cts17801.igs
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 4 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 4
|
set LinuxDiff 4
|
||||||
set filename PRO11641.igs
|
set filename PRO11641.igs
|
||||||
|
@ -3,6 +3,7 @@ puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
|||||||
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename PRO18777-3.igs
|
set filename PRO18777-3.igs
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 4
|
set LinuxDiff 4
|
||||||
set LinuxFaulties {STATSHAPE}
|
set LinuxFaulties {STATSHAPE}
|
||||||
|
@ -4,6 +4,7 @@ puts "TODO CR23096 ALL: NBSHAPES : Faulty"
|
|||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename BUC60215.igs
|
set filename BUC60215.igs
|
||||||
|
@ -5,6 +5,7 @@ puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
|||||||
puts "TODO CR23096 ALL: LABELS : Faulty"
|
puts "TODO CR23096 ALL: LABELS : Faulty"
|
||||||
puts "TODO CR23096 ALL: COLORS : Faulty"
|
puts "TODO CR23096 ALL: COLORS : Faulty"
|
||||||
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
puts "TODO CR23096 ALL: LAYERS : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
|
||||||
|
|
||||||
set filename BUC40132.igs
|
set filename BUC40132.igs
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
|
puts "TODO CR25013 ALL: Error : 3 differences with reference data found"
|
||||||
|
puts "TODO CR25013 ALL: NBSHAPES : Faulty"
|
||||||
|
|
||||||
set LinuxDiff 2
|
set LinuxDiff 2
|
||||||
set LinuxFaulties {STATSHAPE}
|
set LinuxFaulties {STATSHAPE}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# !!!! This file is generated automatically, do not edit manually! See end script
|
# !!!! This file is generated automatically, do not edit manually! See end script
|
||||||
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 1 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 2
|
set LinuxDiff 2
|
||||||
set filename wgehaeuse_surface.stp
|
set filename wgehaeuse_surface.stp
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
puts "TODO CR23096 ALL: TPSTAT : Faulty"
|
puts "TODO CR23096 ALL: TPSTAT : Faulty"
|
||||||
puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
|
||||||
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
puts "TODO CR23096 ALL: STATSHAPE : Faulty"
|
||||||
|
puts "TODO CR25013 ALL: Error : 4 differences with reference data found"
|
||||||
|
|
||||||
set LinuxDiff 3
|
set LinuxDiff 3
|
||||||
set filename Z8M6SAT.stp
|
set filename Z8M6SAT.stp
|
||||||
|
Loading…
x
Reference in New Issue
Block a user