TopoDS_Face F;
for (ii=InitialLength+1; ii<=myFaces->ColLength(); ii++) {
for (jj=1; jj<=myFaces->RowLength(); jj++) {
- F = TopoDS::Face(myFaces->Value(ii, jj));
- if (!F.IsNull()) B.Add(result, F);
+ if (myFaces->Value(ii, jj).ShapeType() == TopAbs_FACE)
+ {
+ F = TopoDS::Face(myFaces->Value(ii, jj));
+ if (!F.IsNull()) B.Add(result, F);
+ }
}
}
// (2.2.a) Cylindre
// si la line est orthogonale au plan de rotation
SError = error;
- gp_Ax3 Axis(CentreOfSurf, Dir.Direction(), DS);
+ //
+ gp_Ax3 Axis(CentreOfSurf, Dir.Direction());
+ if (DS.SquareMagnitude() > gp::Resolution())
+ {
+ Axis.SetXDirection(DS);
+ }
S = new (Geom_CylindricalSurface)
(Axis, L.Distance(CentreOfSurf));
Ok = Standard_True;
-puts "TODO OCC26568 ALL: An exception was caught"
-puts "TODO OCC26568 ALL: \\*\\* Exception \\*\\*.*"
-puts "TODO OCC26568 ALL: TEST INCOMPLETE"
-
-puts "========"
-puts "OCC26568"
-puts "========"
+puts "============================================================="
+puts "OCC26568 - Modeling Algorithms - Crash when creating pipe"
+puts "============================================================="
puts ""
################################
# Exception when creating pipe
circle c 0 0 0 0 1 0 10
mkedge e c
wire w e
-pipe p w b_1
+pipe result w b_1
+
+checkshape result
+
+checknbshapes result -solid 1 -shell 1 -face 3 -wire 3 -edge 7 -vertex 4
+
+set tolres [checkmaxtol result]
+
+if { ${tolres} > 2.e-7} {
+ puts "Error: bad tolerance of result"
+}