]> OCCT Git - occt.git/commitdiff
Data Exchange - STP provider missed parameters #257
authordpasukhi <dpasukhi@opencascade.com>
Wed, 15 Jan 2025 16:31:15 +0000 (16:31 +0000)
committerdpasukhi <dpasukhi@opencascade.com>
Thu, 16 Jan 2025 14:48:00 +0000 (14:48 +0000)
Update STEPCAFControl_Provider and StepData_ConfParameters for improved parameter handling.
Update the default write parameters for WriteMode_Assembly to auto

src/STEPCAFControl/STEPCAFControl_ConfigurationNode.cxx
src/STEPCAFControl/STEPCAFControl_Provider.cxx
src/StepData/StepData_ConfParameters.hxx
tests/de_wrapper/configuration/A3
tests/de_wrapper/configuration/A4

index f93174e070c4bf06105584b5e9f37127b8763ae8..702a06193b86a937f5007f9b56da9cb98d3d65af 100644 (file)
@@ -397,7 +397,7 @@ TCollection_AsciiString STEPCAFControl_ConfigurationNode::Save() const
 
   aResult += "!\n";
   aResult += "!Writing assembly mode\n";
-  aResult += "!Default value: 0(\"Off\"). Available values: 0(\"Off\"), 1(\"On\"), 2(\"Auto\")\n";
+  aResult += "!Default value: 2(\"Auto\"). Available values: 0(\"Off\"), 1(\"On\"), 2(\"Auto\")\n";
   aResult += aScope + "write.assembly :\t " + InternalParameters.WriteAssembly + "\n";
   aResult += "!\n";
 
index f66a70900a27bff59ef6d5613297161af13876f4..127db75e1a6b24f0073f39793041108af590f1b2 100644 (file)
@@ -75,7 +75,7 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
   aReader.SetMetaMode(aNode->InternalParameters.ReadMetadata);
 
   IFSelect_ReturnStatus aReadStat = IFSelect_RetVoid;
-  StepData_ConfParameters aParams;
+  StepData_ConfParameters aParams = aNode->InternalParameters;
   aReadStat = aReader.ReadFile(thePath.ToCString(), aParams);
   if (aReadStat != IFSelect_RetDone)
   {
@@ -119,7 +119,7 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
   aWriter.SetNameMode(aNode->InternalParameters.WriteName);
   aWriter.SetLayerMode(aNode->InternalParameters.WriteLayer);
   aWriter.SetPropsMode(aNode->InternalParameters.WriteProps);
-  StepData_ConfParameters aParams;
+  StepData_ConfParameters aParams = aNode->InternalParameters;
   Standard_Real aScaleFactorMM = 1.;
   if (XCAFDoc_DocumentTool::GetLengthUnit(theDocument, aScaleFactorMM, UnitsMethods_LengthUnit_Millimeter))
   {
@@ -209,7 +209,7 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
   STEPControl_Reader aReader;
   aReader.SetWS(theWS);
   IFSelect_ReturnStatus aReadstat = IFSelect_RetVoid;
-  StepData_ConfParameters aParams;
+  StepData_ConfParameters aParams = aNode->InternalParameters;
   aReadstat = aReader.ReadFile(thePath.ToCString(), aParams);
   Handle(StepData_StepModel) aModel = aReader.StepModel();
   if (aReadstat != IFSelect_RetDone)
@@ -251,7 +251,7 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
   aWriter.SetWS(theWS);
   IFSelect_ReturnStatus aWritestat = IFSelect_RetVoid;
   Handle(StepData_StepModel) aModel = aWriter.Model();;
-  StepData_ConfParameters aParams;
+  StepData_ConfParameters aParams = aNode->InternalParameters;
   aModel->SetLocalLengthUnit(aNode->GlobalParameters.SystemUnit);
   UnitsMethods_LengthUnit aTargetUnit = UnitsMethods::GetLengthUnitByFactorValue(aNode->GlobalParameters.LengthUnit, UnitsMethods_LengthUnit_Millimeter);
   aParams.WriteUnit = aTargetUnit;
index 6228cb3f4024ee0884ad2d19bbf9d56485c48409..a63ebf0295e259b5aa853c9826c694c6c19a64cb 100644 (file)
@@ -171,7 +171,7 @@ public:
   // Write
   WriteMode_PrecisionMode WritePrecisionMode = WriteMode_PrecisionMode_Average; //<! Specifies the mode of writing the resolution value into the STEP file
   double WritePrecisionVal = 0.0001; //<! Resolution value for an STEP file when WriteMode_PrecisionMode is Greatest
-  WriteMode_Assembly WriteAssembly = WriteMode_Assembly_Off; //<! Writing assembly mode
+  WriteMode_Assembly WriteAssembly = WriteMode_Assembly_Auto; //<! Writing assembly mode
   WriteMode_StepSchema WriteSchema = WriteMode_StepSchema_AP214CD; //<! Defines the version of schema used for the output STEP file
   RWMode_Tessellated WriteTessellated = RWMode_Tessellated_OnNoBRep; //!< Defines whether tessellated shapes should be translated
   TCollection_AsciiString WriteProductName; //<! Defines the text string that will be used for field 'name' of PRODUCT entities written to the STEP file
index 3b9471f19772354de1b8ee3e23ac96aa260c2e54..73ad2d30c551d3b5eef762aa07b59969cf07a8d9 100644 (file)
@@ -48,7 +48,7 @@ provider.STEP.OCC.read.props :   1
 provider.STEP.OCC.read.metadata :   1
 provider.STEP.OCC.write.precision.mode :         0
 provider.STEP.OCC.write.precision.val :  0.0001
-provider.STEP.OCC.write.assembly :       0
+provider.STEP.OCC.write.assembly :       2
 provider.STEP.OCC.write.schema :         1
 provider.STEP.OCC.write.tessellated :      2
 provider.STEP.OCC.write.product.name :
index c91f2454775114f72d28b6e56177b0add3b6de5e..b7aec9dd319b617ef4e1626a493aaafc52c2a694 100644 (file)
@@ -48,7 +48,7 @@ provider.STEP.OCC.read.props :   1
 provider.STEP.OCC.read.metadata :   1
 provider.STEP.OCC.write.precision.mode :         0
 provider.STEP.OCC.write.precision.val :  0.0001
-provider.STEP.OCC.write.assembly :       0
+provider.STEP.OCC.write.assembly :       2
 provider.STEP.OCC.write.schema :         1
 provider.STEP.OCC.write.tessellated :    2
 provider.STEP.OCC.write.product.name :