mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0031568: Data Exchange - invalid model produced after STEP import
Add protection against reference to reference in STEP import.
This commit is contained in:
parent
faff37677c
commit
ae58f70718
@ -810,7 +810,9 @@ TDF_Label STEPCAFControl_Reader::AddShape(const TopoDS_Shape &S,
|
||||
TDF_Label subL = AddShape(Sub0, STool, NewShapesMap, ShapePDMap, PDFileMap, ShapeLabelMap);
|
||||
if (!subL.IsNull()) {
|
||||
TDF_Label instL = STool->AddComponent(L, subL, it.Value().Location());
|
||||
ShapeLabelMap.Bind(it.Value(), instL);
|
||||
if (!ShapeLabelMap.IsBound(it.Value())) {
|
||||
ShapeLabelMap.Bind(it.Value(), instL);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SHAS.Length() > 0) STool->SetExternRefs(L, SHAS);
|
||||
|
13
tests/bugs/step/bug31568
Normal file
13
tests/bugs/step/bug31568
Normal file
@ -0,0 +1,13 @@
|
||||
puts "================================================================="
|
||||
puts "0031568: Data Exchange - invalid model produced after STEP import"
|
||||
puts "================================================================="
|
||||
|
||||
pload DCAF
|
||||
|
||||
ReadStep D [locate_data_file bug31568_Konecranes_Sample_3D.stp]
|
||||
set ref [XGetReferredShape D 0:1:1:41:11]
|
||||
if {$ref != "0:1:1:23"} {
|
||||
puts "Error: wrong reference in data model"
|
||||
}
|
||||
|
||||
Close D
|
Loading…
x
Reference in New Issue
Block a user