]> OCCT Git - occt.git/commitdiff
0032748: Data Exchange, Step Import - xstep.cascade.unit doesn't work [regression...
authoratychini <atychini@opencascade.com>
Fri, 21 Jan 2022 18:55:45 +0000 (21:55 +0300)
committersmoskvin <smoskvin@opencascade.com>
Fri, 28 Jan 2022 15:29:12 +0000 (18:29 +0300)
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

index b1443ce6a5e8a2c889a5cbbcdacde3151b3909ec..0ce99cd8c68cb81ad8ceb0495d5a296a117dac47 100644 (file)
@@ -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