AddWarning(mywire, "an Edge is a null entity");
}
else {
- ent = TransferEdge(E, Standard_False);
- if (!ent.IsNull()) Seq->Append(ent);
+ ent = TransferEdge(E, Standard_False);
+ if (!ent.IsNull()) Seq->Append(ent);
}
}
}
Standard_Integer nbedges = Seq->Length();
Handle(IGESData_HArray1OfIGESEntity) Tab;
if ( nbedges == 1 ) {
- res = ent;
+ res = GetCasted(IGESData_IGESEntity, Seq->Value(1));
}
else if ( nbedges >= 2) {
Tab = new IGESData_HArray1OfIGESEntity(1,nbedges);
#include <TopExp_Explorer.hxx>
#include <TopLoc_Location.hxx>
+#include <Standard_ErrorHandler.hxx>
+#include <Standard_NullObject.hxx>
+
#include <StepGeom_CartesianPoint.hxx>
#include <StepGeom_Curve.hxx>
#include <StepGeom_SurfaceCurve.hxx>
//?? curveList->Append(Gpms);
return Standard_True;
}
-
- BRepAdaptor_Curve CA ( anEdge );
+
+ BRepAdaptor_Curve CA;
+ try {
+ OCC_CATCH_SIGNALS
+ CA.Initialize (anEdge);
+ }
+ catch (Standard_NullObject) {
+ return Standard_False;
+ }
// Vertices
TopoDS_Vertex Vfirst, Vlast;
--- /dev/null
+puts "============"
+puts "OCC25843"
+puts "============"
+puts ""
+#######################################################################
+# Wire containing degenerated edge is not written to IGES / STEP
+#######################################################################
+
+restore [locate_data_file bug25843_onewire.brep] w
+
+set aFile ${imagedir}/bug25843_onewire.igs
+
+file delete ${aFile}
+
+brepiges w ${aFile}
+
+if { ![file exists ${aFile}] } {
+ puts "Error: Wire containing degenerated edge is not written to IGES file"
+} else {
+ puts "OK: Wire containing degenerated edge is written to IGES file"
+}
+
+catch {exec chmod 777 ${aFile}}
--- /dev/null
+puts "============"
+puts "OCC25843"
+puts "============"
+puts ""
+#######################################################################
+# Wire containing degenerated edge is not written to IGES / STEP
+#######################################################################
+
+restore [locate_data_file bug25843_onewire.brep] w
+
+set aFile ${imagedir}/bug25843_onewire.stp
+
+catch { file delete ${aFile} }
+
+stepwrite 0 w ${aFile}
+
+if { ![file exists ${aFile}] } {
+ puts "Error: Wire containing degenerated edge is not written to STEP file"
+} else {
+ puts "OK: Wire containing degenerated edge is written to STEP file"
+}
+
+catch {exec chmod 777 ${aFile}}