From ff77ee8103603979a9b3ce7e695ee17b1bbb4711 Mon Sep 17 00:00:00 2001 From: atychini Date: Fri, 21 Jan 2022 21:55:45 +0300 Subject: [PATCH] 0032748: Data Exchange, Step Import - xstep.cascade.unit doesn't work [regression since OCCT 7.6.0] Added new condition in STEPControl_ActorRead::Transfer: if StepData_StepModel is not an initialized Unit - we set unit to this step model --- src/STEPControl/STEPControl_ActorRead.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/STEPControl/STEPControl_ActorRead.cxx b/src/STEPControl/STEPControl_ActorRead.cxx index b1443ce6a5..0ce99cd8c6 100644 --- a/src/STEPControl/STEPControl_ActorRead.cxx +++ b/src/STEPControl/STEPControl_ActorRead.cxx @@ -284,6 +284,11 @@ Handle(Transfer_Binder) STEPControl_ActorRead::Transfer { // [BEGIN] Get version of preprocessor (to detect I-Deas case) (ssv; 23.11.2010) Handle(StepData_StepModel) aStepModel = Handle(StepData_StepModel)::DownCast ( TP->Model() ); + if (!aStepModel->IsInitializedUnit()) + { + XSAlgo::AlgoContainer()->PrepareForTransfer(); // update unit info + aStepModel->SetLocalLengthUnit(UnitsMethods::GetCasCadeLengthUnit()); + } Interface_EntityIterator anEntIt = aStepModel->Header(); for ( anEntIt.Start(); anEntIt.More(); anEntIt.Next() ) { DeclareAndCast( HeaderSection_FileName, aFileNameEntity, anEntIt.Value() ); @@ -1614,7 +1619,6 @@ Handle(Transfer_Binder) STEPControl_ActorRead::TransferShape( const Message_ProgressRange& theProgress) { if (start.IsNull()) return NullResult(); - XSAlgo::AlgoContainer()->PrepareForTransfer(); Message_Messenger::StreamBuffer sout = TP->Messenger()->SendInfo(); #ifdef TRANSLOG