// Access face bounds
Handle(StepShape_HArray1OfFaceBound) aWires = aFace->Bounds();
+ if (aWires.IsNull())
+ continue;
for (Standard_Integer w = aWires->Lower(); w <= aWires->Upper(); ++w)
{
const Handle(StepShape_Loop)& aWire = aWires->Value(w)->Bound();
Handle(StepShape_HArray1OfOrientedEdge) anEdges = anEdgeLoop->EdgeList();
for (Standard_Integer e = anEdges->Lower(); e <= anEdges->Upper(); ++e)
{
- Handle(StepShape_Edge) anEdge = anEdges->Value(e)->EdgeElement();
+ Handle(StepShape_OrientedEdge) anOrientedEdge = anEdges->Value(e);
+ if (anOrientedEdge.IsNull())
+ continue;
+ Handle(StepShape_Edge) anEdge = anOrientedEdge->EdgeElement();
+ if (anEdge.IsNull())
+ continue;
// Record CAF data
SettleShapeData(anEdge, RootLab, ShapeTool, TP);
--- /dev/null
+puts "==================================================="
+puts " 0030533: Data Exchange - Crash during STEP import."
+puts "==================================================="
+puts ""
+
+pload DCAF
+
+param read.stepcaf.subshapes.name On
+
+ReadStep D [locate_data_file bug30533.stp]
+
+# Check imported names
+set name [GetName D 0:1:1:5:1]
+if {$name != "NONE"} {
+ puts "Error: wrong name of subshape"
+}
+set name [GetName D 0:1:1:5:2]
+if {$name != "NONE"} {
+ puts "Error: wrong name of subshape"
+}
+
+Close D
+
+# return param to default value
+param read.stepcaf.subshapes.name Off