From 6294fc0aee6229f3e0eeef4fcae4739c0556c7f7 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 4 Oct 2022 11:26:33 +0200 Subject: [PATCH] Part: use separate setting classes for IGES, STEP and OCAF handling --- src/Mod/Part/App/CMakeLists.txt | 6 + .../Part/App/IGES/ImportExportSettings.cpp | 94 +++++++ src/Mod/Part/App/IGES/ImportExportSettings.h | 59 ++++ .../Part/App/OCAF/ImportExportSettings.cpp | 261 ++++++++++++++++++ src/Mod/Part/App/OCAF/ImportExportSettings.h | 111 ++++++++ .../Part/App/STEP/ImportExportSettings.cpp | 119 ++++++++ src/Mod/Part/App/STEP/ImportExportSettings.h | 65 +++++ 7 files changed, 715 insertions(+) create mode 100644 src/Mod/Part/App/IGES/ImportExportSettings.cpp create mode 100644 src/Mod/Part/App/IGES/ImportExportSettings.h create mode 100644 src/Mod/Part/App/OCAF/ImportExportSettings.cpp create mode 100644 src/Mod/Part/App/OCAF/ImportExportSettings.h create mode 100644 src/Mod/Part/App/STEP/ImportExportSettings.cpp create mode 100644 src/Mod/Part/App/STEP/ImportExportSettings.h diff --git a/src/Mod/Part/App/CMakeLists.txt b/src/Mod/Part/App/CMakeLists.txt index 8709bd8947..3134bd062b 100644 --- a/src/Mod/Part/App/CMakeLists.txt +++ b/src/Mod/Part/App/CMakeLists.txt @@ -493,6 +493,12 @@ SET(Part_SRCS ${HLRBRepPy_SRCS} ${ShapeFixPy_SRCS} ${ShapeUpgradePy_SRCS} + IGES/ImportExportSettings.cpp + IGES/ImportExportSettings.h + OCAF/ImportExportSettings.cpp + OCAF/ImportExportSettings.h + STEP/ImportExportSettings.cpp + STEP/ImportExportSettings.h Attacher.cpp Attacher.h AppPart.cpp diff --git a/src/Mod/Part/App/IGES/ImportExportSettings.cpp b/src/Mod/Part/App/IGES/ImportExportSettings.cpp new file mode 100644 index 0000000000..86ea3c5980 --- /dev/null +++ b/src/Mod/Part/App/IGES/ImportExportSettings.cpp @@ -0,0 +1,94 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif + +#include "ImportExportSettings.h" +#include "Interface.h" +#include + + +namespace Part { +namespace IGES { + +ImportExportSettings::ImportExportSettings() +{ + pGroup = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Part/IGES"); +} + +Interface::Unit ImportExportSettings::getUnit() const +{ + return static_cast(pGroup->GetInt("Unit", 0)); +} + +void ImportExportSettings::setUnit(Interface::Unit unit) +{ + pGroup->SetInt("Unit", static_cast(unit)); + + switch (unit) { + case Interface::Unit::Meter: + Interface_Static::SetCVal("write.step.unit","M"); + break; + case Interface::Unit::Inch: + Interface_Static::SetCVal("write.step.unit","INCH"); + break; + default: + Interface_Static::SetCVal("write.step.unit","MM"); + break; + } +} + +std::string ImportExportSettings::getCompany() const +{ + return pGroup->GetASCII("Company"); +} + +void ImportExportSettings::setCompany(const char* name) +{ + pGroup->SetASCII("Company", name); +} + +std::string ImportExportSettings::getAuthor() const +{ + return pGroup->GetASCII("Author"); +} + +void ImportExportSettings::setAuthor(const char* name) +{ + pGroup->SetASCII("Author", name); +} + +std::string ImportExportSettings::getProductName() const +{ + return Part::Interface::writeIgesHeaderProduct(); +} + +void ImportExportSettings::setProductName(const char* name) +{ + Part::Interface::writeIgesHeaderProduct(name); +} + +} // namespace IGES +} // namespace Part diff --git a/src/Mod/Part/App/IGES/ImportExportSettings.h b/src/Mod/Part/App/IGES/ImportExportSettings.h new file mode 100644 index 0000000000..6826c7f6ba --- /dev/null +++ b/src/Mod/Part/App/IGES/ImportExportSettings.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#ifndef PART_IGES_IMPORTEXPORTSETTINGS_H +#define PART_IGES_IMPORTEXPORTSETTINGS_H + +#include +#include + + +namespace Part +{ + +namespace IGES { + +class PartExport ImportExportSettings +{ +public: + ImportExportSettings(); + + Interface::Unit getUnit() const; + void setUnit(Interface::Unit); + + std::string getCompany() const; + void setCompany(const char*); + + std::string getAuthor() const; + void setAuthor(const char*); + + std::string getProductName() const; + void setProductName(const char*); + +private: + ParameterGrp::handle pGroup; +}; + +} //namespace IGES +} //namespace Part + +#endif diff --git a/src/Mod/Part/App/OCAF/ImportExportSettings.cpp b/src/Mod/Part/App/OCAF/ImportExportSettings.cpp new file mode 100644 index 0000000000..b914de11fa --- /dev/null +++ b/src/Mod/Part/App/OCAF/ImportExportSettings.cpp @@ -0,0 +1,261 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif + +#include "ImportExportSettings.h" +#include +#include +#include + + +namespace Part { +namespace OCAF { + +void ImportExportSettings::initialize() +{ + // set the user-defined settings + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part"); + initGeneral(hGrp); + initSTEP(hGrp); + initIGES(hGrp); +} + +void ImportExportSettings::initGeneral(Base::Reference hGrp) +{ + // General + Base::Reference hGenGrp = hGrp->GetGroup("General"); + // http://www.opencascade.org/org/forum/thread_20801/ + // read.surfacecurve.mode: + // A preference for the computation of curves in an entity which has both 2D and 3D representation. + // Each TopoDS_Edge in TopoDS_Face must have a 3D and 2D curve that references the surface. + // If both 2D and 3D representation of the entity are present, the computation of these curves depends on + // the following values of parameter: + // 0: "Default" - no preference, both curves are taken + // 3: "3DUse_Preferred" - 3D curves are used to rebuild 2D ones + // Additional modes for IGES + // 2: "2DUse_Preferred" - the 2D is used to rebuild the 3D in case of their inconsistency + // -2: "2DUse_Forced" - the 2D is always used to rebuild the 3D (even if 2D is present in the file) + // -3: "3DUse_Forced" - the 3D is always used to rebuild the 2D (even if 2D is present in the file) + int readsurfacecurve = hGenGrp->GetInt("ReadSurfaceCurveMode", 0); + Interface_Static::SetIVal("read.surfacecurve.mode", readsurfacecurve); + + // write.surfacecurve.mode (STEP-only): + // This parameter indicates whether parametric curves (curves in parametric space of surface) should be + // written into the STEP file. This parameter can be set to Off in order to minimize the size of the resulting + // STEP file. + // Off (0) : writes STEP files without pcurves. This mode decreases the size of the resulting file. + // On (1) : (default) writes pcurves to STEP file + int writesurfacecurve = hGenGrp->GetInt("WriteSurfaceCurveMode", 0); + Interface_Static::SetIVal("write.surfacecurve.mode", writesurfacecurve); +} + +void ImportExportSettings::initIGES(Base::Reference hGrp) +{ + //IGES handling + Base::Reference hIgesGrp = hGrp->GetGroup("IGES"); + int value = Interface_Static::IVal("write.iges.brep.mode"); + bool brep = hIgesGrp->GetBool("BrepMode", value > 0); + Interface_Static::SetIVal("write.iges.brep.mode",brep ? 1 : 0); + Interface_Static::SetCVal("write.iges.header.company", hIgesGrp->GetASCII("Company").c_str()); + Interface_Static::SetCVal("write.iges.header.author", hIgesGrp->GetASCII("Author").c_str()); + Interface_Static::SetCVal("write.iges.header.product", hIgesGrp->GetASCII("Product", + Interface_Static::CVal("write.iges.header.product")).c_str()); + + int unitIges = hIgesGrp->GetInt("Unit", 0); + switch (unitIges) { + case 1: + Interface_Static::SetCVal("write.iges.unit","M"); + break; + case 2: + Interface_Static::SetCVal("write.iges.unit","INCH"); + break; + default: + Interface_Static::SetCVal("write.iges.unit","MM"); + break; + } +} + +void ImportExportSettings::initSTEP(Base::Reference hGrp) +{ + //STEP handling + Base::Reference hStepGrp = hGrp->GetGroup("STEP"); + int unitStep = hStepGrp->GetInt("Unit", 0); + switch (unitStep) { + case 1: + Interface_Static::SetCVal("write.step.unit","M"); + break; + case 2: + Interface_Static::SetCVal("write.step.unit","INCH"); + break; + default: + Interface_Static::SetCVal("write.step.unit","MM"); + break; + } + + std::string ap = hStepGrp->GetASCII("Scheme", Interface_Static::CVal("write.step.schema")); + Interface_Static::SetCVal("write.step.schema", ap.c_str()); + Interface_Static::SetCVal("write.step.product.name", hStepGrp->GetASCII("Product", + Interface_Static::CVal("write.step.product.name")).c_str()); +} + +ImportExportSettings::ImportExportSettings() +{ + pGroup = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Import"); +} + +STEP::ImportExportSettingsPtr ImportExportSettings::getSTEPSettings() const +{ + if (!step) { + step = std::make_shared(); + } + + return step; +} + +IGES::ImportExportSettingsPtr ImportExportSettings::getIGESSettings() const +{ + if (!iges) { + iges = std::make_shared(); + } + + return iges; +} + +void ImportExportSettings::setReadShapeCompoundMode(bool on) +{ + auto grp = pGroup->GetGroup("hSTEP"); + grp->SetBool("ReadShapeCompoundMode", on); +} + +bool ImportExportSettings::getReadShapeCompoundMode() const +{ + auto grp = pGroup->GetGroup("hSTEP"); + return grp->GetBool("ReadShapeCompoundMode", false); +} + +void ImportExportSettings::setExportHiddenObject(bool on) +{ + pGroup->SetBool("ExportHiddenObject", on); +} + +bool ImportExportSettings::getExportHiddenObject() const +{ + return pGroup->GetBool("ExportHiddenObject", true); +} + +void ImportExportSettings::setImportHiddenObject(bool on) +{ + pGroup->SetBool("ImportHiddenObject", on); +} + +bool ImportExportSettings::getImportHiddenObject() const +{ + return pGroup->GetBool("ImportHiddenObject", true); +} + +void ImportExportSettings::setExportLegacy(bool on) +{ + pGroup->SetBool("ExportLegacy", on); +} + +bool ImportExportSettings::getExportLegacy() const +{ + return pGroup->GetBool("ExportLegacy", false); +} + +void ImportExportSettings::setExportKeepPlacement(bool on) +{ + pGroup->SetBool("ExportKeepPlacement", on); +} + +bool ImportExportSettings::getExportKeepPlacement() const +{ + return pGroup->GetBool("ExportKeepPlacement", false); +} + +void ImportExportSettings::setUseLinkGroup(bool on) +{ + pGroup->SetBool("UseLinkGroup", on); +} + +bool ImportExportSettings::getUseLinkGroup() const +{ + return pGroup->GetBool("UseLinkGroup", false); +} + +void ImportExportSettings::setUseBaseName(bool on) +{ + pGroup->SetBool("UseBaseName", on); +} + +bool ImportExportSettings::getUseBaseName() const +{ + return pGroup->GetBool("UseBaseName", true); +} + +void ImportExportSettings::setReduceObjects(bool on) +{ + pGroup->SetBool("ReduceObjects", on); +} + +bool ImportExportSettings::getReduceObjects() const +{ + return pGroup->GetBool("ReduceObjects", false); +} + +void ImportExportSettings::setExpandCompound(bool on) +{ + pGroup->SetBool("ExpandCompound", on); +} + +bool ImportExportSettings::getExpandCompound() const +{ + return pGroup->GetBool("ExpandCompound", false); +} + +void ImportExportSettings::setShowProgress(bool on) +{ + pGroup->SetBool("ShowProgress", on); +} + +bool ImportExportSettings::getShowProgress() const +{ + return pGroup->GetBool("ShowProgress", true); +} + +void ImportExportSettings::setImportMode(ImportExportSettings::ImportMode mode) +{ + pGroup->SetInt("ImportMode", static_cast(mode)); +} + +ImportExportSettings::ImportMode ImportExportSettings::getImportMode() const +{ + return static_cast(pGroup->GetInt("ImportMode", 0)); +} + +} // namespace OCAF +} // namespace Part diff --git a/src/Mod/Part/App/OCAF/ImportExportSettings.h b/src/Mod/Part/App/OCAF/ImportExportSettings.h new file mode 100644 index 0000000000..22c7294d2b --- /dev/null +++ b/src/Mod/Part/App/OCAF/ImportExportSettings.h @@ -0,0 +1,111 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#ifndef PART_OCAF_IMPORTEXPORTSETTINGS_H +#define PART_OCAF_IMPORTEXPORTSETTINGS_H + +#include +#include +#include + + +namespace Part +{ + +namespace STEP { +class ImportExportSettings; +using ImportExportSettingsPtr = std::shared_ptr; +} + +namespace IGES { +class ImportExportSettings; +using ImportExportSettingsPtr = std::shared_ptr; +} + +namespace OCAF +{ + +class PartExport ImportExportSettings +{ +public: + enum class ImportMode { + SingleDocument = 0, + GroupPerDocument = 1, + GroupPerDirectory = 2, + ObjectPerDocument = 3, + ObjectPerDirectory = 4, + }; + + static void initialize(); + ImportExportSettings(); + + STEP::ImportExportSettingsPtr getSTEPSettings() const; + IGES::ImportExportSettingsPtr getIGESSettings() const; + + void setReadShapeCompoundMode(bool); + bool getReadShapeCompoundMode() const; + + void setExportHiddenObject(bool); + bool getExportHiddenObject() const; + + void setImportHiddenObject(bool); + bool getImportHiddenObject() const; + + void setExportLegacy(bool); + bool getExportLegacy() const; + + void setExportKeepPlacement(bool); + bool getExportKeepPlacement() const; + + void setUseLinkGroup(bool); + bool getUseLinkGroup() const; + + void setUseBaseName(bool); + bool getUseBaseName() const; + + void setReduceObjects(bool); + bool getReduceObjects() const; + + void setExpandCompound(bool); + bool getExpandCompound() const; + + void setShowProgress(bool); + bool getShowProgress() const; + + void setImportMode(ImportMode); + ImportMode getImportMode() const; + +private: + static void initGeneral(Base::Reference hGrp); + static void initSTEP(Base::Reference hGrp); + static void initIGES(Base::Reference hGrp); + +private: + mutable STEP::ImportExportSettingsPtr step; + mutable IGES::ImportExportSettingsPtr iges; + ParameterGrp::handle pGroup; +}; + +} //namespace OCAF +} //namespace Part + +#endif diff --git a/src/Mod/Part/App/STEP/ImportExportSettings.cpp b/src/Mod/Part/App/STEP/ImportExportSettings.cpp new file mode 100644 index 0000000000..a3fc30648f --- /dev/null +++ b/src/Mod/Part/App/STEP/ImportExportSettings.cpp @@ -0,0 +1,119 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif + +#include "ImportExportSettings.h" +#include + + +namespace Part { +namespace STEP { + +ImportExportSettings::ImportExportSettings() +{ + pGroup = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Part/STEP"); +} + +void ImportExportSettings::setWriteSurfaceCurveMode(bool on) +{ + ParameterGrp::handle grp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Part/General"); + grp->SetInt("WriteSurfaceCurveMode", on ? 1 : 0); + Interface_Static::SetIVal("write.surfacecurve.mode", on ? 1 : 0); +} + +bool ImportExportSettings::getWriteSurfaceCurveMode() const +{ + ParameterGrp::handle grp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Part/General"); + int writesurfacecurve = Interface_Static::IVal("write.surfacecurve.mode"); + writesurfacecurve = grp->GetInt("WriteSurfaceCurveMode", writesurfacecurve); + return (writesurfacecurve == 0 ? false : true); +} + +std::string ImportExportSettings::getScheme() const +{ + return pGroup->GetASCII("Scheme", Interface_Static::CVal("write.step.schema")); +} + +void ImportExportSettings::setScheme(const char* scheme) +{ + pGroup->SetASCII("Scheme", scheme); + Interface_Static::SetCVal("write.step.schema", scheme); +} + +Interface::Unit ImportExportSettings::getUnit() const +{ + return static_cast(pGroup->GetInt("Unit", 0)); +} + +void ImportExportSettings::setUnit(Interface::Unit unit) +{ + pGroup->SetInt("Unit", static_cast(unit)); + + switch (unit) { + case Interface::Unit::Meter: + Interface_Static::SetCVal("write.step.unit","M"); + break; + case Interface::Unit::Inch: + Interface_Static::SetCVal("write.step.unit","INCH"); + break; + default: + Interface_Static::SetCVal("write.step.unit","MM"); + break; + } +} + +std::string ImportExportSettings::getCompany() const +{ + return pGroup->GetASCII("Company"); +} + +void ImportExportSettings::setCompany(const char* name) +{ + pGroup->SetASCII("Company", name); +} + +std::string ImportExportSettings::getAuthor() const +{ + return pGroup->GetASCII("Author"); +} + +void ImportExportSettings::setAuthor(const char* name) +{ + pGroup->SetASCII("Author", name); +} + +std::string ImportExportSettings::getProductName() const +{ + return Interface_Static::CVal("write.step.product.name"); +} + +void ImportExportSettings::setProductName(const char* name) +{ + Interface_Static::SetCVal("write.step.product.name", name); +} + +} // namespace STEP +} // namespace Part diff --git a/src/Mod/Part/App/STEP/ImportExportSettings.h b/src/Mod/Part/App/STEP/ImportExportSettings.h new file mode 100644 index 0000000000..aa255959b5 --- /dev/null +++ b/src/Mod/Part/App/STEP/ImportExportSettings.h @@ -0,0 +1,65 @@ +/*************************************************************************** + * Copyright (c) 2022 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#ifndef PART_STEP_IMPORTEXPORTSETTINGS_H +#define PART_STEP_IMPORTEXPORTSETTINGS_H + +#include +#include + + +namespace Part +{ +namespace STEP +{ + +class PartExport ImportExportSettings +{ +public: + ImportExportSettings(); + + void setWriteSurfaceCurveMode(bool); + bool getWriteSurfaceCurveMode() const; + + std::string getScheme() const; + void setScheme(const char*); + + Interface::Unit getUnit() const; + void setUnit(Interface::Unit); + + std::string getCompany() const; + void setCompany(const char*); + + std::string getAuthor() const; + void setAuthor(const char*); + + std::string getProductName() const; + void setProductName(const char*); + +private: + ParameterGrp::handle pGroup; +}; + +} //namespace STEP +} //namespace Part + +#endif