for(;ew.More(); ew.Next()) {
TopoDS_Edge ed = TopoDS::Edge (ew.Value());
Handle(Geom2d_Curve) cw = BRep_Tool::CurveOnSurface (ed,myFace,cf,cl);
+ if (cw.IsNull ())
+ {
+ continue;
+ }
Geom2dAdaptor_Curve gac;
Standard_Real aFirst = cw->FirstParameter();
Standard_Real aLast = cw->LastParameter();
TopoDS_Shape anEmptyCopy = myFace.EmptyCopied();
TopoDS_Face aFace = TopoDS::Face(anEmptyCopy);
+ aFace.Orientation (TopAbs_FORWARD);
const Standard_Real aTolerance3d = ShapeFix_Root::Precision();
for (TopoDS_Iterator aWIt(myFace, Standard_False); aWIt.More(); aWIt.Next())
#ifdef OCCT_DEBUG
std::cout << "Warning: ShapeFix_Face: " << nbRemoved << " small area wire(s) removed" << std::endl;
#endif
- if ( !Context().IsNull() )
- Context()->Replace(myFace, aFace);
+ aFace.Orientation (myFace.Orientation ());
+ if (!Context ().IsNull ())
+ Context ()->Replace (myFace, aFace);
myFace = aFace;
return Standard_True;
-puts "REQUIRED All: Faulty shapes in variables faulty_1 to faulty_"
puts "========"
-puts "OCC25923"
+puts "0025923: Remove small wires on face read from STEP"
puts "========"
puts ""
-#############################################
-# Remove small wires on face read from STEP
-#############################################
-smallview
restore [locate_data_file OCC25923_FixSmallWire_Orientation.brep] a
-fit
checkshape a
-fixshape r1 a +s +o 1e-3
+fixshape r a +s +o 1e-3
-fixshape r2 r1 +o
-
-if {[regexp {This shape seems to be valid} [checkshape r1] ]} {
- puts "ERRROR: OCC25923 is reproduced. Algorythm of removing small wires on face does not work."
-}
-
-if {![regexp {This shape seems to be valid} [checkshape r2] ]} {
- puts "ERRROR: OCC25923 is reproduced. Algorythm of removing small wires on face does not work."
-}
-
-checkview -screenshot -2d -path ${imagedir}/${test_image}.png
+checkshape r
+checknbshapes r -face 1 -wire 2 -edge 32 -vertex 32