From 8c8d262b50e3fc797d0ce0096b83493ddb4e0c5f Mon Sep 17 00:00:00 2001 From: cg246364 Date: Thu, 10 Dec 2020 09:45:01 +0100 Subject: [PATCH] Import STEP with materials and colors --- src/ConnectorAPI/Test/TestImportSTEP.py | 124 ++++++ src/ConnectorAPI/Test/tests.set | 1 + src/ExchangeAPI/ExchangeAPI_Import.cpp | 77 +++- src/ExchangeAPI/ExchangeAPI_Import.h | 39 +- src/ExchangePlugin/CMakeLists.txt | 1 + src/ExchangePlugin/ExchangePlugin_Import.cpp | 111 +++-- src/ExchangePlugin/ExchangePlugin_Import.h | 48 ++ .../ExchangePlugin_ImportFeature.cpp | 217 +++++++++- .../ExchangePlugin_ImportFeature.h | 43 ++ src/ExchangePlugin/ExchangePlugin_msg_fr.ts | 75 +++- src/ExchangePlugin/Test/TestExport.py | 23 +- src/ExchangePlugin/Test/TestImport.py | 36 +- src/ExchangePlugin/doc/TUI_importFeature.rst | 10 + src/ExchangePlugin/doc/examples/importStep.py | 11 + .../doc/images/FileImportedSTEP.png | Bin 0 -> 236238 bytes src/ExchangePlugin/doc/images/ImportSTEP.png | Bin 0 -> 18755 bytes .../doc/images/Import_panel.png | Bin 6329 -> 10094 bytes src/ExchangePlugin/doc/importFeature.rst | 50 ++- src/ExchangePlugin/plugin-Exchange.xml | 62 ++- src/GeomAlgoAPI/CMakeLists.txt | 3 + src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp | 97 ++++- src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.h | 16 +- .../GeomAlgoAPI_STEPImportXCAF.cpp | 409 ++++++++++++++++++ src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.h | 66 +++ src/Model/Model_Objects.cpp | 23 +- src/Model/Model_Objects.h | 6 +- src/Model/Model_ResultBody.cpp | 75 +++- src/Model/Model_ResultBody.h | 27 +- src/ModelAPI/CMakeLists.txt | 6 +- src/ModelAPI/ModelAPI_ResultBody.h | 22 + src/PythonAPI/model/exchange/__init__.py | 2 +- 31 files changed, 1587 insertions(+), 93 deletions(-) create mode 100644 src/ConnectorAPI/Test/TestImportSTEP.py create mode 100644 src/ExchangePlugin/doc/examples/importStep.py create mode 100644 src/ExchangePlugin/doc/images/FileImportedSTEP.png create mode 100644 src/ExchangePlugin/doc/images/ImportSTEP.png create mode 100644 src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.cpp create mode 100644 src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.h diff --git a/src/ConnectorAPI/Test/TestImportSTEP.py b/src/ConnectorAPI/Test/TestImportSTEP.py new file mode 100644 index 000000000..84b6d90ce --- /dev/null +++ b/src/ConnectorAPI/Test/TestImportSTEP.py @@ -0,0 +1,124 @@ +# Copyright (C) 2014-2020 CEA/DEN, EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +""" + TestImportStep.py + Unit test of ExchangePlugin_ImportFeature class for STEP +""" +#========================================================================= +# Initialization of the test +#========================================================================= + +import salome + +import os +import math +from tempfile import TemporaryDirectory + +import GEOM + +from ModelAPI import * + +from salome.shaper import model + +from salome.geom import geomBuilder + +from GeomAPI import GeomAPI_Shape + +from GeomAlgoAPI import * + +__updated__ = "2015-05-22" + +salome.salome_init(1) +geompy = geomBuilder.New() + +#========================================================================= +# Help functions +#========================================================================= +def removeFile(theFileName): + try: os.remove(theFileName) + except OSError: pass + assert not os.path.exists(theFileName), \ + "Can not remove file {0}".format(theFileName) + +#========================================================================= +# test Import STEP +#========================================================================= +def testImportSTEP(): + + model.begin() + partSet = model.moduleDocument() + Part_1 = model.addPart(partSet) + Part_1_doc = Part_1.document() + aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Step", "black_and_white.step") + print("aShapePath=",aShapePath) + Import_1 = model.addImportSTEP(Part_1_doc,aShapePath, True, True, True) + + model.do() + + # Check results + Import_1_Feature = Import_1.feature() + assert Import_1_Feature.error() == '' + assert Import_1_Feature.name() == "black_and_white" + assert len(Import_1_Feature.results()) == 1 + model.testNbSubShapes(Import_1, GeomAPI_Shape.SOLID, [2]) + + aCompositeFeature = featureToCompositeFeature(Import_1_Feature) + assert aCompositeFeature.numberOfSubs(False) == 4 + + aFeature1 = aCompositeFeature.subFeature(0, False) + assert aFeature1.getKind() == "Group" + assert aFeature1.name() == "Color_1" + + aSelectionList = aFeature1.selectionList("group_list") + assert aSelectionList.size() == 1 + + aFeature1 = aCompositeFeature.subFeature(1, False) + assert aFeature1.getKind() == "Group" + assert aFeature1.name() == "Color_2" + + aSelectionList = aFeature1.selectionList("group_list") + assert aSelectionList.size() == 1 + + aFeature1 = aCompositeFeature.subFeature(2, False) + assert aFeature1.getKind() == "Group" + assert aFeature1.name() == "Material_black" + + aSelectionList = aFeature1.selectionList("group_list") + assert aSelectionList.size() == 1 + + + aFeature1 = aCompositeFeature.subFeature(3, False) + assert aFeature1.getKind() == "Group" + assert aFeature1.name() == "Material_white" + + aSelectionList = aFeature1.selectionList("group_list") + assert aSelectionList.size() == 1 + + model.end() + +if __name__ == '__main__': + with TemporaryDirectory() as tmp_dir: + #========================================================================= + # Export a shape into STL + #========================================================================= + testImportSTEP() + #========================================================================= + # End of test + #========================================================================= diff --git a/src/ConnectorAPI/Test/tests.set b/src/ConnectorAPI/Test/tests.set index 31e182ca7..3f4eb7ec2 100644 --- a/src/ConnectorAPI/Test/tests.set +++ b/src/ConnectorAPI/Test/tests.set @@ -28,4 +28,5 @@ SET(TEST_NAMES Test18887 Test3195 TestExportSTL + TestImportSTEP ) diff --git a/src/ExchangeAPI/ExchangeAPI_Import.cpp b/src/ExchangeAPI/ExchangeAPI_Import.cpp index b1a6c832d..f12ea5dc6 100644 --- a/src/ExchangeAPI/ExchangeAPI_Import.cpp +++ b/src/ExchangeAPI/ExchangeAPI_Import.cpp @@ -28,6 +28,7 @@ #include #include #include +#include //-------------------------------------------------------------------------------------- #include @@ -47,17 +48,49 @@ ExchangeAPI_Import::ExchangeAPI_Import( setFilePath(theFilePath); } +ExchangeAPI_Import::ExchangeAPI_Import( + const std::shared_ptr & theFeature, + const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor) +: ModelHighAPI_Interface(theFeature) +{ + if (initialize()) + setParameters(theFilePath, theScalInterUnits, theMaterials, theColor); +} + ExchangeAPI_Import::~ExchangeAPI_Import() { } +//-------------------------------------------------------------------------------------- +void ExchangeAPI_Import::setParameters(const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor) +{ + fillAttribute(theFilePath, mystepFilePath); + fillAttribute("STEP", myimportType); + fillAttribute(theScalInterUnits, myscalInterUnits); + fillAttribute(theMaterials,mymaterials); + fillAttribute(theColor,mycolors); + execute(); +} + //-------------------------------------------------------------------------------------- void ExchangeAPI_Import::setFilePath(const std::string & theFilePath) { - fillAttribute(theFilePath, myfilePath); - execute(); + std::string anExtension = GeomAlgoAPI_Tools::File_Tools::extension(theFilePath); + if (anExtension == "STEP" || anExtension == "STP") { + setParameters(theFilePath,true,false,false); + } else { + fillAttribute(theFilePath, myfilePath); + fillAttribute(anExtension, myimportType); + execute(); + } } //-------------------------------------------------------------------------------------- @@ -66,7 +99,17 @@ void ExchangeAPI_Import::dump(ModelHighAPI_Dumper& theDumper) const FeaturePtr aBase = feature(); std::string aPartName = theDumper.name(aBase->document()); - std::string aFilePath = aBase->string(ExchangePlugin_ImportFeature::FILE_PATH_ID())->value(); + AttributeStringPtr aImportTypeAttr = + aBase->string(ExchangePlugin_ImportFeature::IMPORT_TYPE_ID()); + std::string aFormat = aImportTypeAttr->value(); + std::string aFilePath; + if (aFormat == "STEP" || aFormat == "STP") + { + aFilePath = aBase->string(ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID())->value(); + } else { + aFilePath = aBase->string(ExchangePlugin_ImportFeature::FILE_PATH_ID())->value(); + } + std::string aFrom = "\\"; std::string aTo = "\\\\"; for(std::size_t aPos = aFilePath.find(aFrom); @@ -75,15 +118,25 @@ void ExchangeAPI_Import::dump(ModelHighAPI_Dumper& theDumper) const aFilePath.replace(aPos, aFrom.size(), aTo); aPos += aTo.size(); } - - theDumper << aBase << " = model.addImport(" << aPartName << ", \"" + std::string anExtension = GeomAlgoAPI_Tools::File_Tools::extension(aFilePath); + if (anExtension == "STP" || anExtension == "STEP"){ + theDumper << aBase << " = model.addImportSTEP(" << aPartName << ", \"" + << aFilePath << "\"" ; + + theDumper << ", " << scalInterUnits()->value() + << ", " << materials()->value() + << ", " << colors()->value() << ")"<< std::endl; + } else { + theDumper << aBase << " = model.addImport(" << aPartName << ", \"" << aFilePath << "\")" << std::endl; + } + // to make import have results theDumper << "model.do()" << std::endl; CompositeFeaturePtr aCompositeFeature = std::dynamic_pointer_cast(aBase); - if(aCompositeFeature.get()) { + if (aCompositeFeature.get()) { int aNbOfSubs = aCompositeFeature->numberOfSubs(); for(int anIndex = 0; anIndex < aNbOfSubs; ++anIndex) { std::string aSubFeatureGet = @@ -102,6 +155,18 @@ ImportPtr addImport( return ImportPtr(new ExchangeAPI_Import(aFeature, theFilePath)); } +ImportPtr addImportSTEP( + const std::shared_ptr & thePart, + const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor ) +{ + std::shared_ptr aFeature = thePart->addFeature(ExchangeAPI_Import::ID()); + return ImportPtr(new ExchangeAPI_Import(aFeature, theFilePath, + theScalInterUnits, theMaterials, theColor)); +} + void importPart(const std::shared_ptr & thePart, const std::string & theFilePath, const ModelHighAPI_Reference & theAfterThis) diff --git a/src/ExchangeAPI/ExchangeAPI_Import.h b/src/ExchangeAPI/ExchangeAPI_Import.h index f38db9bbb..d3403e544 100644 --- a/src/ExchangeAPI/ExchangeAPI_Import.h +++ b/src/ExchangeAPI/ExchangeAPI_Import.h @@ -46,19 +46,43 @@ public: EXCHANGEAPI_EXPORT ExchangeAPI_Import(const std::shared_ptr & theFeature, const std::string & theFilePath); + + /// Constructor with values for Step file + EXCHANGEAPI_EXPORT + ExchangeAPI_Import(const std::shared_ptr & theFeature, + const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor); /// Destructor EXCHANGEAPI_EXPORT virtual ~ExchangeAPI_Import(); - INTERFACE_1(ExchangePlugin_ImportFeature::ID(), + INTERFACE_6(ExchangePlugin_ImportFeature::ID(), filePath, ExchangePlugin_ImportFeature::FILE_PATH_ID(), - ModelAPI_AttributeString, /** File path */ + ModelAPI_AttributeString, /** File path */, + importType, ExchangePlugin_ImportFeature::IMPORT_TYPE_ID(), + ModelAPI_AttributeString, /**import type */, + stepFilePath, ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID(), + ModelAPI_AttributeString, /**step File path */, + scalInterUnits, ExchangePlugin_ImportFeature::STEP_SCALE_INTER_UNITS_ID(), + ModelAPI_AttributeBoolean, /** Scale internationals units */, + materials, ExchangePlugin_ImportFeature::STEP_MATERIALS_ID(), + ModelAPI_AttributeBoolean, /** Materials */, + colors, ExchangePlugin_ImportFeature::STEP_COLORS_ID(), + ModelAPI_AttributeBoolean, /** Colors */ ) /// Set point values EXCHANGEAPI_EXPORT void setFilePath(const std::string & theFilePath); + EXCHANGEAPI_EXPORT + void setParameters(const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor); + /// Dump wrapped feature EXCHANGEAPI_EXPORT virtual void dump(ModelHighAPI_Dumper& theDumper) const; @@ -74,6 +98,17 @@ EXCHANGEAPI_EXPORT ImportPtr addImport(const std::shared_ptr & thePart, const std::string & theFilePath); +/**\ingroup CPPHighAPI + * \brief Create Import Step feature + */ +EXCHANGEAPI_EXPORT +ImportPtr addImportSTEP(const std::shared_ptr & thePart, + const std::string & theFilePath, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor); + + /** \ingroup CPPHighAPI * \brief Import features from the file to the document after the current feature (or to the end). */ diff --git a/src/ExchangePlugin/CMakeLists.txt b/src/ExchangePlugin/CMakeLists.txt index 67880c8e6..3df98bece 100644 --- a/src/ExchangePlugin/CMakeLists.txt +++ b/src/ExchangePlugin/CMakeLists.txt @@ -31,6 +31,7 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Events ${PROJECT_SOURCE_DIR}/src/XAO ${PROJECT_SOURCE_DIR}/src/ConstructionPlugin ${PROJECT_SOURCE_DIR}/src/PartSetPlugin + ${OpenCASCADE_INCLUDE_DIR} ) SET(PROJECT_HEADERS diff --git a/src/ExchangePlugin/ExchangePlugin_Import.cpp b/src/ExchangePlugin/ExchangePlugin_Import.cpp index b5a51ff08..e9b041582 100644 --- a/src/ExchangePlugin/ExchangePlugin_Import.cpp +++ b/src/ExchangePlugin/ExchangePlugin_Import.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -81,8 +82,15 @@ ExchangePlugin_Import::~ExchangePlugin_Import() void ExchangePlugin_Import::initAttributes() { data()->addAttribute(FILE_PATH_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(STEP_FILE_PATH_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(IMPORT_TYPE_ID(), ModelAPI_AttributeString::typeId()); data()->addAttribute(TARGET_PART_ID(), ModelAPI_AttributeInteger::typeId()); data()->addAttribute(TARGET_PARTS_LIST_ID(), ModelAPI_AttributeStringArray::typeId()); + data()->addAttribute(STEP_TARGET_PART_ID(), ModelAPI_AttributeInteger::typeId()); + data()->addAttribute(STEP_TARGET_PARTS_LIST_ID(), ModelAPI_AttributeStringArray::typeId()); + data()->addAttribute(STEP_MATERIALS_ID(), ModelAPI_AttributeBoolean::typeId()); + data()->addAttribute(STEP_COLORS_ID(), ModelAPI_AttributeBoolean::typeId()); + data()->addAttribute(STEP_SCALE_INTER_UNITS_ID(), ModelAPI_AttributeBoolean::typeId()); } /* @@ -90,26 +98,62 @@ void ExchangePlugin_Import::initAttributes() */ void ExchangePlugin_Import::execute() { - AttributeStringPtr aFilePathAttr = string(ExchangePlugin_Import::FILE_PATH_ID()); - std::string aFilePath = aFilePathAttr->value(); - if (aFilePath.empty()) { - setError("File path is empty."); - return; + AttributeStringPtr aFormatAttr = + this->string(ExchangePlugin_Import::IMPORT_TYPE_ID()); + std::string aFormat = aFormatAttr->value(); + + AttributeStringPtr aFilePathAttr; + std::string aFilePath; + AttributeStringArrayPtr aPartsAttr; + AttributeIntegerPtr aTargetAttr; + if (aFormat == "STEP" || aFormat == "STP") + { + aFilePathAttr = string(ExchangePlugin_Import::STEP_FILE_PATH_ID()); + aFilePath = aFilePathAttr->value(); + // get the document where to import + aPartsAttr = stringArray(STEP_TARGET_PARTS_LIST_ID()); + aTargetAttr = integer(STEP_TARGET_PART_ID()); + }else{ + aFilePathAttr = string(ExchangePlugin_Import::FILE_PATH_ID()); + aFilePath = aFilePathAttr->value(); + // get the document where to import + aPartsAttr = stringArray(TARGET_PARTS_LIST_ID()); + aTargetAttr = integer(TARGET_PART_ID()); } - // get the document where to import - AttributeStringArrayPtr aPartsAttr = stringArray(TARGET_PARTS_LIST_ID()); - AttributeIntegerPtr aTargetAttr = integer(TARGET_PART_ID()); + if (aFilePath.empty()) { + setError("File path is empty."); + return; + } SessionPtr aSession = ModelAPI_Session::get(); - DocumentPtr aDoc = - findDocument(aSession->moduleDocument(), + DocumentPtr aDoc = findDocument(aSession->moduleDocument(), Locale::Convert::toWString(aPartsAttr->value(aTargetAttr->value()))); if (aDoc.get()) { FeaturePtr aImportFeature = aDoc->addFeature(ExchangePlugin_ImportFeature::ID()); DataPtr aData = aImportFeature->data(); - AttributeStringPtr aPathAttr = aData->string(ExchangePlugin_ImportFeature::FILE_PATH_ID()); + AttributeStringPtr aPathAttr; + if (aFormat == "STEP" || aFormat == "STP") + { + aPathAttr = aData->string(ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID()); + }else + { + aPathAttr = aData->string(ExchangePlugin_ImportFeature::FILE_PATH_ID()); + } + + AttributeStringPtr aImportTypeAttr = + aData->string(ExchangePlugin_ImportFeature::IMPORT_TYPE_ID()); + + aData->boolean(ExchangePlugin_ImportFeature::STEP_MATERIALS_ID()) + ->setValue(boolean(ExchangePlugin_Import::STEP_MATERIALS_ID())->value()); + aData->boolean(ExchangePlugin_ImportFeature::STEP_COLORS_ID()) + ->setValue(boolean(ExchangePlugin_Import::STEP_COLORS_ID())->value()); + aData->boolean(ExchangePlugin_ImportFeature::STEP_SCALE_INTER_UNITS_ID()) + ->setValue(boolean(ExchangePlugin_Import::STEP_SCALE_INTER_UNITS_ID())->value()); + aPathAttr->setValue(aFilePathAttr->value()); + aImportTypeAttr->setValue(aFormat); + aImportFeature->execute(); } } @@ -117,14 +161,32 @@ void ExchangePlugin_Import::execute() void ExchangePlugin_Import::attributeChanged(const std::string& theID) { - if (theID == FILE_PATH_ID()) { - AttributeStringPtr aFilePathAttr = string(FILE_PATH_ID()); - if (aFilePathAttr->value().empty()) + AttributeStringPtr aFilePathAttr; + AttributeStringArrayPtr aPartsAttr; + AttributeIntegerPtr aTargetAttr; + + if (theID == FILE_PATH_ID() ||theID == STEP_FILE_PATH_ID() ) { + aFilePathAttr = string(FILE_PATH_ID()); + if (theID == FILE_PATH_ID() && aFilePathAttr->value().empty()) + return; + aPartsAttr = stringArray(TARGET_PARTS_LIST_ID()); + aTargetAttr = integer(TARGET_PART_ID()); + + updatePart(aPartsAttr, aTargetAttr); + + aFilePathAttr = string(STEP_FILE_PATH_ID()); + if (theID == STEP_FILE_PATH_ID() && aFilePathAttr->value().empty()) return; - AttributeStringArrayPtr aPartsAttr = stringArray(TARGET_PARTS_LIST_ID()); - AttributeIntegerPtr aTargetAttr = integer(TARGET_PART_ID()); + aPartsAttr = stringArray(STEP_TARGET_PARTS_LIST_ID()); + aTargetAttr = integer(STEP_TARGET_PART_ID()); + updatePart(aPartsAttr, aTargetAttr); + } +} +void ExchangePlugin_Import::updatePart(AttributeStringArrayPtr& thePartsAttr, + AttributeIntegerPtr& theTargetAttr) +{ // update the list of target parts SessionPtr aSession = ModelAPI_Session::get(); DocumentPtr aDoc = document(); @@ -141,23 +203,22 @@ void ExchangePlugin_Import::attributeChanged(const std::string& theID) anAcceptedValues.push_back((*aFIt)->name()); } - if ((size_t)aPartsAttr->size() != anAcceptedValues.size()) - aTargetAttr->setValue(0); + if ((size_t)thePartsAttr->size() != anAcceptedValues.size()) + theTargetAttr->setValue(0); - aPartsAttr->setSize((int)anAcceptedValues.size()); + thePartsAttr->setSize((int)anAcceptedValues.size()); std::list::iterator anIt = anAcceptedValues.begin(); for (int anInd = 0; anIt != anAcceptedValues.end(); ++anIt, ++anInd) - aPartsAttr->setValue(anInd, Locale::Convert::toString(*anIt)); + thePartsAttr->setValue(anInd, Locale::Convert::toString(*anIt)); } else { // keep only the name of the current part - if (aPartsAttr->size() == 0) { + if (thePartsAttr->size() == 0) { FeaturePtr aPartFeature = ModelAPI_Tools::findPartFeature(aSession->moduleDocument(), aDoc); - aPartsAttr->setSize(1); - aPartsAttr->setValue(0, Locale::Convert::toString(aPartFeature->name())); - aTargetAttr->setValue(0); + thePartsAttr->setSize(1); + thePartsAttr->setValue(0, Locale::Convert::toString(aPartFeature->name())); + theTargetAttr->setValue(0); } } - } } diff --git a/src/ExchangePlugin/ExchangePlugin_Import.h b/src/ExchangePlugin/ExchangePlugin_Import.h index c09b3ebab..994b3c8be 100644 --- a/src/ExchangePlugin/ExchangePlugin_Import.h +++ b/src/ExchangePlugin/ExchangePlugin_Import.h @@ -24,6 +24,8 @@ #include #include +#include +#include #include @@ -43,6 +45,12 @@ class ExchangePlugin_Import : public ModelAPI_Feature static const std::string MY_IMPORT_ID("ImportMacro"); return MY_IMPORT_ID; } + /// Feature kind + inline static const std::string& IMPORT_TYPE_ID() + { + static const std::string MY_IMPORT_TYPE_ID("ImportType"); + return MY_IMPORT_TYPE_ID; + } /// attribute name of file path inline static const std::string& FILE_PATH_ID() { @@ -61,6 +69,42 @@ class ExchangePlugin_Import : public ModelAPI_Feature static const std::string MY_TARGET_PARTS_LIST_ID("target_parts_list"); return MY_TARGET_PARTS_LIST_ID; } + /// attribute name of step file path + inline static const std::string& STEP_FILE_PATH_ID() + { + static const std::string MY_STEP_FILE_PATH_ID("step_file_path"); + return MY_STEP_FILE_PATH_ID; + } + /// attribute name of step target part + inline static const std::string& STEP_TARGET_PART_ID() + { + static const std::string MY_STEP_TARGET_PART_ID("step_target_part"); + return MY_STEP_TARGET_PART_ID; + } + /// attribute name of list ofstep target parts + inline static const std::string& STEP_TARGET_PARTS_LIST_ID() + { + static const std::string MY_STEP_TARGET_PARTS_LIST_ID("step_target_parts_list"); + return MY_STEP_TARGET_PARTS_LIST_ID; + } + /// attribute name of step Scale to International System Units + inline static const std::string& STEP_SCALE_INTER_UNITS_ID() + { + static const std::string MY_STEP_SCALE_INTER_UNITS_ID("step_scale_inter_units"); + return MY_STEP_SCALE_INTER_UNITS_ID; + } + /// attribute name of step materiels + inline static const std::string& STEP_MATERIALS_ID() + { + static const std::string MY_STEP_MATERIALS_ID("step_materials"); + return MY_STEP_MATERIALS_ID; + } + /// attribute name of step colors + inline static const std::string& STEP_COLORS_ID() + { + static const std::string MY_STEP_COLORS_ID("step_colors"); + return MY_STEP_COLORS_ID; + } /// Default constructor EXCHANGEPLUGIN_EXPORT ExchangePlugin_Import(); /// Default destructor @@ -79,6 +123,10 @@ class ExchangePlugin_Import : public ModelAPI_Feature /// \param theID identifier of changed attribute EXCHANGEPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID); + /// Called to update part + EXCHANGEPLUGIN_EXPORT + void updatePart(AttributeStringArrayPtr& thePartsAttr, AttributeIntegerPtr& theTargetAttr); + /// Computes or recomputes the results EXCHANGEPLUGIN_EXPORT virtual void execute(); diff --git a/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp b/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp index ade0a3115..dc3542679 100644 --- a/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp +++ b/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -42,6 +43,8 @@ #include #include #include +#include +#include #include #include #include @@ -60,6 +63,10 @@ #include +#include +#include + + ExchangePlugin_ImportFeature::ExchangePlugin_ImportFeature() { } @@ -77,12 +84,28 @@ void ExchangePlugin_ImportFeature::initAttributes() data()->addAttribute(ExchangePlugin_ImportFeature::FILE_PATH_ID(), ModelAPI_AttributeString::typeId()); AttributePtr aFeaturesAttribute = - data()->addAttribute(ExchangePlugin_ImportFeature::FEATURES_ID(), + data()->addAttribute(ExchangePlugin_ImportFeature::FEATURES_ID(), ModelAPI_AttributeRefList::typeId()); + data()->addAttribute(STEP_FILE_PATH_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(IMPORT_TYPE_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(STEP_MATERIALS_ID(), ModelAPI_AttributeBoolean::typeId()); + data()->addAttribute(STEP_COLORS_ID(), ModelAPI_AttributeBoolean::typeId()); + data()->addAttribute(STEP_SCALE_INTER_UNITS_ID(), ModelAPI_AttributeBoolean::typeId()); + aFeaturesAttribute->setIsArgument(false); ModelAPI_Session::get()->validators()->registerNotObligatory( getKind(), ExchangePlugin_ImportFeature::FEATURES_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory( + getKind(), ExchangePlugin_ImportFeature::STEP_COLORS_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory( + getKind(), ExchangePlugin_ImportFeature::STEP_MATERIALS_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory( + getKind(), ExchangePlugin_ImportFeature::STEP_SCALE_INTER_UNITS_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory( + getKind(), ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory( + getKind(), ExchangePlugin_ImportFeature::FILE_PATH_ID()); } /* @@ -90,7 +113,15 @@ void ExchangePlugin_ImportFeature::initAttributes() */ void ExchangePlugin_ImportFeature::execute() { - AttributeStringPtr aFilePathAttr = string(ExchangePlugin_ImportFeature::FILE_PATH_ID()); + AttributeStringPtr aImportTypeAttr = string(ExchangePlugin_ImportFeature::IMPORT_TYPE_ID()); + std::string aFormat = aImportTypeAttr->value(); + AttributeStringPtr aFilePathAttr; + if (aFormat == "STEP" || aFormat == "STP") + { + aFilePathAttr = string(ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID()); + } else { + aFilePathAttr = string(ExchangePlugin_ImportFeature::FILE_PATH_ID()); + } std::string aFilePath = aFilePathAttr->value(); if (aFilePath.empty()) { setError("File path is empty."); @@ -101,11 +132,11 @@ void ExchangePlugin_ImportFeature::execute() } std::shared_ptr ExchangePlugin_ImportFeature::createResultBody( - std::shared_ptr aGeomShape) + std::shared_ptr theGeomShape) { std::shared_ptr aResultBody = document()->createBody(data()); //LoadNamingDS of the imported shape - loadNamingDS(aGeomShape, aResultBody); + loadNamingDS(theGeomShape, aResultBody); return aResultBody; } @@ -122,10 +153,49 @@ void ExchangePlugin_ImportFeature::importFile(const std::string& theFileName) // Perform the import std::string anError; std::shared_ptr aGeomShape; + + std::map< std::wstring, std::list> theMaterialShape; + + std::string anObjectName = GeomAlgoAPI_Tools::File_Tools::name(theFileName); + data()->setName(Locale::Convert::toWString(anObjectName)); + + ResultBodyPtr aResult = document()->createBody(data()); + + bool anColorGroupSelected = boolean(ExchangePlugin_ImportFeature::STEP_COLORS_ID())->value(); + bool anMaterialsGroupSelected = + boolean(ExchangePlugin_ImportFeature::STEP_MATERIALS_ID())->value(); + if (anExtension == "BREP" || anExtension == "BRP") { aGeomShape = BREPImport(theFileName, anExtension, anError); } else if (anExtension == "STEP" || anExtension == "STP") { - aGeomShape = STEPImport(theFileName, anExtension, anError); + bool anScalInterUnits = + boolean(ExchangePlugin_ImportFeature::STEP_SCALE_INTER_UNITS_ID())->value(); + + try{ + + aResult->clearShapeNameAndColor(); + // Process groups/fields + std::shared_ptr aRefListOfGroups = + std::dynamic_pointer_cast(data()->attribute(FEATURES_ID())); + + // Remove previous groups/fields stored in RefList + std::list anGroupList = aRefListOfGroups->list(); + std::list::iterator anGroupIt = anGroupList.begin(); + for (; anGroupIt != anGroupList.end(); ++anGroupIt) { + std::shared_ptr aFeature = ModelAPI_Feature::feature(*anGroupIt); + if (aFeature) + document()->removeFeature(aFeature); + } + + aGeomShape = STEPImportAttributs(theFileName, aResult, anScalInterUnits, + anMaterialsGroupSelected, anColorGroupSelected, + theMaterialShape,anError); + + } + catch (OSD_Exception& e) { + //Try to load STEP file without colors... + aGeomShape = STEPImport(theFileName, anExtension,anScalInterUnits,anError); + } } else if (anExtension == "IGES" || anExtension == "IGS") { aGeomShape = IGESImport(theFileName, anExtension, anError); } else { @@ -139,10 +209,140 @@ void ExchangePlugin_ImportFeature::importFile(const std::string& theFileName) } // Pass the results into the model - std::string anObjectName = GeomAlgoAPI_Tools::File_Tools::name(theFileName); - data()->setName(Locale::Convert::toWString(anObjectName)); - setResult(createResultBody(aGeomShape)); + loadNamingDS(aGeomShape, aResult); + + // create color group + if (anColorGroupSelected) + { + setColorGroups(aResult); + } + + // create Materiel group + if (anMaterialsGroupSelected){ + setMaterielGroup(aResult,theMaterialShape); + } + + setResult(aResult); + +} + +void ExchangePlugin_ImportFeature::setColorGroups( + std::shared_ptr theResultBody) +{ + std::vector aColor; + int anIndice = 1; + std::list< std::vector > aColorsRead; + + ModelAPI_Tools::getColor(theResultBody, aColor); + if (!aColor.empty() ){ + std::wstringstream aColorName; + aColorName < allRes; + ModelAPI_Tools::allSubs(theResultBody, allRes); + for(std::list::iterator aRes = allRes.begin(); aRes != allRes.end(); ++aRes) { + ModelAPI_Tools::getColor(*aRes, aColor); + if (!aColor.empty() ){ + auto it = std::find(aColorsRead.begin(), aColorsRead.end(), aColor); + if ( it == aColorsRead.end() ){ + std::wstringstream aColorName; + aColorName< theResultBody, + std::vector &theColor, + const std::wstring& theName ) +{ + std::vector aColor; + std::shared_ptr aGroupFeature = addFeature("Group"); + + // group name + aGroupFeature->data()->setName(theName); + + // fill selection + AttributeSelectionListPtr aSelectionList = aGroupFeature->selectionList("group_list"); + + ModelAPI_Tools::getColor(theResultBody, aColor); + if (!aColor.empty() ){ + if (aColor == theColor ) { + GeomShapePtr aShape = theResultBody->shape(); + aSelectionList->setSelectionType(aShape->shapeTypeStr() ); + aSelectionList->append(theResultBody,aShape); + } + } + // add element with the same color + std::list allRes; + ModelAPI_Tools::allSubs(theResultBody, allRes); + for(std::list::iterator aRes = allRes.begin(); + aRes != allRes.end(); ++aRes) { + ModelAPI_Tools::getColor(*aRes, aColor); + GeomShapePtr aShape = (*aRes)->shape(); + + if (!aColor.empty() ){ + if (aRes->get() && aColor == theColor ) { + aSelectionList->setSelectionType(aShape->shapeTypeStr() ); + aSelectionList->append(theResultBody,aShape); + } + } + } + + // Create the group in the document to be able to set its color + ResultPtr aGroup = document()->createGroup(aGroupFeature->data()); + aGroupFeature->setResult(aGroup); + + ModelAPI_Tools::setColor(aGroupFeature->lastResult(),theColor); + + if (aSelectionList->size() == 0 ){ + document()->removeFeature(aGroupFeature); + } +} + +void ExchangePlugin_ImportFeature::setMaterielGroup( + std::shared_ptr theResultBody, + std::map< std::wstring,std::list>& theMaterialShape) +{ + std::map< std::wstring, std::list>::iterator anIt; + for( anIt = theMaterialShape.begin(); anIt != theMaterialShape.end(); ++anIt) { + + std::shared_ptr aGroupFeature = addFeature("Group"); + // group name + aGroupFeature->data()->setName((*anIt).first); + + // fill selection + AttributeSelectionListPtr aSelectionList = aGroupFeature->selectionList("group_list"); + GeomShapePtr aShape = theResultBody->shape(); + + std::list allRes; + ModelAPI_Tools::allSubs(theResultBody, allRes); + for(std::list::iterator aRes = allRes.begin(); aRes != allRes.end(); ++aRes) { + + GeomShapePtr aShape = (*aRes)->shape(); + for(std::list::iterator aResMat = anIt->second.begin(); + aResMat != anIt->second.end(); ++aResMat) { + if (aRes->get() && ((*aRes)->data()->name() == (*aResMat))) + { + aSelectionList->append(theResultBody,aShape); + aSelectionList->setSelectionType(aShape->shapeTypeStr() ); + break; + } + } + } + if (aSelectionList->size() == 0){ + document()->removeFeature(aGroupFeature); + } + } } void ExchangePlugin_ImportFeature::importXAO(const std::string& theFileName) @@ -415,7 +615,6 @@ void ExchangePlugin_ImportFeature::loadNamingDS( { //load result theResultBody->store(theGeomShape); - std::string aNameMS = "Shape"; theResultBody->loadFirstLevel(theGeomShape, aNameMS); } diff --git a/src/ExchangePlugin/ExchangePlugin_ImportFeature.h b/src/ExchangePlugin/ExchangePlugin_ImportFeature.h index c087af2ab..3c34eced6 100644 --- a/src/ExchangePlugin/ExchangePlugin_ImportFeature.h +++ b/src/ExchangePlugin/ExchangePlugin_ImportFeature.h @@ -24,6 +24,7 @@ #include #include +#include #include @@ -43,18 +44,48 @@ class ExchangePlugin_ImportFeature : public ModelAPI_CompositeFeature static const std::string MY_IMPORT_ID("Import"); return MY_IMPORT_ID; } + /// Feature kind + inline static const std::string& IMPORT_TYPE_ID() + { + static const std::string MY_IMPORT_TYPE_ID("ImportType"); + return MY_IMPORT_TYPE_ID; + } /// attribute name of file path inline static const std::string& FILE_PATH_ID() { static const std::string MY_FILE_PATH_ID("file_path"); return MY_FILE_PATH_ID; } + /// attribute name of file path + inline static const std::string& STEP_FILE_PATH_ID() + { + static const std::string MY_STEP_FILE_PATH_ID("step_file_path"); + return MY_STEP_FILE_PATH_ID; + } /// All features (list of references) inline static const std::string& FEATURES_ID() { static const std::string MY_FEATURES_ID("Features"); return MY_FEATURES_ID; } + /// attribute name of step Scale to International System Units + inline static const std::string& STEP_SCALE_INTER_UNITS_ID() + { + static const std::string MY_STEP_SCALE_INTER_UNITS_ID("step_scale_inter_units"); + return MY_STEP_SCALE_INTER_UNITS_ID; + } + /// attribute name of step materiels + inline static const std::string& STEP_MATERIALS_ID() + { + static const std::string MY_STEP_MATERIALS_ID("step_materials"); + return MY_STEP_MATERIALS_ID; + } + /// attribute name of step colors + inline static const std::string& STEP_COLORS_ID() + { + static const std::string MY_STEP_COLORS_ID("step_colors"); + return MY_STEP_COLORS_ID; + } /// Default constructor EXCHANGEPLUGIN_EXPORT ExchangePlugin_ImportFeature(); /// Default destructor @@ -108,6 +139,18 @@ private: /// Loads Naming data structure to the document void loadNamingDS(std::shared_ptr theGeomShape, std::shared_ptr theResultBody); + /// Set groups of color + void setColorGroups(std::shared_ptr theResultBody); + + /// set a group of color + void setColorGroup(std::shared_ptr theResultBody, + std::vector& theColor, + const std::wstring& theName ); + + /// set Materiel group of color + void setMaterielGroup(std::shared_ptr theResultBody, + std::map< std::wstring, std::list>& theMaterialShape); + }; #endif /* IMPORT_IMPORTFEATURE_H_ */ diff --git a/src/ExchangePlugin/ExchangePlugin_msg_fr.ts b/src/ExchangePlugin/ExchangePlugin_msg_fr.ts index 110053a1d..72f1663ec 100644 --- a/src/ExchangePlugin/ExchangePlugin_msg_fr.ts +++ b/src/ExchangePlugin/ExchangePlugin_msg_fr.ts @@ -295,9 +295,13 @@ Importer - Import a file - Importer un fichier + Create groups from + créer des groupes à partir + + Materials + Matériels + Import:file_path @@ -306,7 +310,33 @@ Importer un fichier - + + Import:step_file_path + + Import file + Importer un fichier + + + + Import:step_scale_inter_units + + Scale to International System of Units + Mettre àl'échelle du système international d'unités + + + Import:step_materials + + Materials + Matériels + + + + Import:step_materials + + Colors + Couleurs + + ImportMacro @@ -318,6 +348,10 @@ Importer un fichier + + Create groups from + créer des groupes à partir + ImportMacro:target_part @@ -325,6 +359,33 @@ Importer vers + + ImportMacro:step_target_part + + Import to + Importer vers + + + + ImportMacro:step_scale_inter_units + + Scale to International System of Units + Mettre àl'échelle du système international d'unités + + + Import:step_materials + + Materials + Matériels + + + + Import:step_materials + + Colors + Couleurs + + ImportMacro:file_path @@ -332,6 +393,14 @@ Fichier à importer + + ImportMacro:step_file_path + + Import file + Importer un fichier + + + ImportMacro:file_path:ExchangePlugin_ImportFormat diff --git a/src/ExchangePlugin/Test/TestExport.py b/src/ExchangePlugin/Test/TestExport.py index 511b95835..8e4ca9835 100644 --- a/src/ExchangePlugin/Test/TestExport.py +++ b/src/ExchangePlugin/Test/TestExport.py @@ -59,7 +59,9 @@ def testExport(theType, theFormat, theFile, theVolume, theDelta, theErrorExpecte aSession.startOperation("Import screw") anImportFeature = aPart.addFeature("Import") aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Step", "screw.step") - anImportFeature.string("file_path").setValue(aShapePath) + anImportFeature.string("step_file_path").setValue(aShapePath) + anImportFeature.string("ImportType").setValue("STEP") + anImportFeature.boolean("step_scale_inter_units").setValue(True) aSession.finishOperation() removeFile(theFile) @@ -101,6 +103,7 @@ def testExportXAO(theFile, theEmptyFormat = False): anImportFeature = aPart.addFeature("Import") aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Brep", "box1.brep") anImportFeature.string("file_path").setValue(aShapePath) + anImportFeature.string("ImportType").setValue("BREP") aSession.finishOperation() # Create groups @@ -175,21 +178,21 @@ if __name__ == '__main__': aRealVolume = 3.78827401738e-06 testExport("BREP", "BREP", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17) testExport("BRP", "BREP", os.path.join(tmp_dir, "screw_export.brp"), aRealVolume, 10 ** -17) - testExport("Regular", "", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17) + testExport("BREP", "", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17) #========================================================================= # Export a shape into STEP #========================================================================= testExport("STEP", "STEP", os.path.join(tmp_dir, "screw_export.step"), 3.788258075329978e-06, 10 ** -17) - testExport("STP", "STEP", os.path.join(tmp_dir, "screw_export.stp"), 3.788258075329978e-06, 10 ** -17) - testExport("Regular", "", os.path.join(tmp_dir, "screw_export.step"), 3.788258075329978e-06, 10 ** -17) + testExport("STEP", "STEP", os.path.join(tmp_dir, "screw_export.stp"), 3.788258075329978e-06, 10 ** -17) + testExport("STEP", "", os.path.join(tmp_dir, "screw_export.step"), 3.788258075329978e-06, 10 ** -17) #========================================================================= # Export a shape into IGES #========================================================================= - testExport("IGES-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.iges"), 0.0019293313766693052, 10 ** -17) - testExport("IGS-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.igs"), 0.0019293313766693052, 10 ** -17) - testExport("Regular", "", os.path.join(tmp_dir, "screw_export-5.1.iges"), 0.0019293313766693052, 10 ** -17) - testExport("IGES-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.iges"), 3.78827401651e-06, 10 ** -17) - testExport("IGS-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.igs"), 3.78827401651e-06, 10 ** -17) + testExport("IGES", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.iges"), 0.0019293313766693052, 10 ** -17) + testExport("IGS", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.igs"), 0.0019293313766693052, 10 ** -17) + testExport("IGES", "", os.path.join(tmp_dir, "screw_export-5.1.iges"), 0.0019293313766693052, 10 ** -17) + testExport("IGES", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.iges"), 3.78827401651e-06, 10 ** -17) + testExport("IGS", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.igs"), 3.78827401651e-06, 10 ** -17) #========================================================================= # Export a shape into XAO #========================================================================= @@ -198,7 +201,7 @@ if __name__ == '__main__': #========================================================================= # Check error when export to unsupported format #========================================================================= - testExport("Regular", "", os.path.join(tmp_dir, "screw_export.dwg"), 3.78825807533e-06, 10 ** -17, True) + testExport("BREP", "", os.path.join(tmp_dir, "screw_export.dwg"), 3.78825807533e-06, 10 ** -17, True) #========================================================================= # End of test #========================================================================= diff --git a/src/ExchangePlugin/Test/TestImport.py b/src/ExchangePlugin/Test/TestImport.py index a4895e081..67998ea22 100644 --- a/src/ExchangePlugin/Test/TestImport.py +++ b/src/ExchangePlugin/Test/TestImport.py @@ -54,10 +54,23 @@ def testImport(theType, theFile, theVolume, theDelta, theErrorExpected = False): aFeatureKind = "Import" anImportFeature = aPart.addFeature(aFeatureKind) assert anImportFeature, "{0}: Can not create a feature {1}".format(theType, aFeatureKind) + if theType == "STP" or theType == "STEP": + aFieldName = "step_file_path" + file = anImportFeature.string(aFieldName) + assert file, "{0}: Can not receive string field {1}".format(theType, aFieldName) + file.setValue(theFile) + aFieldName = "step_scale_inter_units" + units = anImportFeature.boolean(aFieldName) + assert units, "{0}: Can not receive string field {1}".format(theType, aFieldName) + units.setValue(True) aFieldName = "file_path" file = anImportFeature.string(aFieldName) assert file, "{0}: Can not receive string field {1}".format(theType, aFieldName) file.setValue(theFile) + aFieldName = "ImportType" + type = anImportFeature.string(aFieldName) + assert type, "{0}: Can not receive string field {1}".format(theType, aFieldName) + type.setValue(theType) aSession.finishOperation() if theErrorExpected: @@ -86,6 +99,9 @@ def testImportXAO(): aSession.startOperation("Import XAO") anImportFeature = aPart.addFeature("Import") anImportFeature.string("file_path").setValue(getShapePath("Xao/box1.xao")) + aFieldName = "ImportType" + type = anImportFeature.string(aFieldName) + type.setValue("XAO") aSession.finishOperation() # Check results @@ -140,22 +156,29 @@ if __name__ == '__main__': # Create a shape imported from STEP #========================================================================= shape_path = getShapePath("Step/screw.step") - testImport("STP", shape_path, 3.78827401738e-06, 10 ** -17) + testImport("STEP", shape_path, 3.78827401738e-06, 10 ** -17) shape_path = shutil.copyfile(shape_path, os.path.join(tmp_dir, "screw.stp")) testImport("STEP", shape_path, 3.78827401738e-06, 10 ** -17) #========================================================================= # Create a shape imported from IGES #========================================================================= shape_path = getShapePath("Iges/bearing.igs") - testImport("IGES", shape_path, 1.3407098545036494e-08, 10 ** -25) - shape_path = shutil.copyfile(shape_path, os.path.join(tmp_dir, "bearing.iges")) testImport("IGS", shape_path, 1.3407098545036494e-08, 10 ** -25) + shape_path = shutil.copyfile(shape_path, os.path.join(tmp_dir, "bearing.iges")) + testImport("IGES", shape_path, 1.3407098545036494e-08, 10 ** -25) #========================================================================= # Create a shape imported from XAO #========================================================================= testImportXAO() + #========================================================================= + # End of test + #========================================================================= + + from salome.shaper import model + assert(model.checkPythonDump()) + #========================================================================= # Check import errors #========================================================================= @@ -164,10 +187,3 @@ if __name__ == '__main__': testImport("BREP", shape_path, 0, 10 ** -25, True) shape_path = getShapePath("Xao/wrong_file.xao") testImport("XAO", shape_path, 0, 10 ** -25, True) - - #========================================================================= - # End of test - #========================================================================= - - from salome.shaper import model - assert(model.checkPythonDump()) diff --git a/src/ExchangePlugin/doc/TUI_importFeature.rst b/src/ExchangePlugin/doc/TUI_importFeature.rst index 69ed88ab6..ff000831f 100644 --- a/src/ExchangePlugin/doc/TUI_importFeature.rst +++ b/src/ExchangePlugin/doc/TUI_importFeature.rst @@ -10,3 +10,13 @@ Import File :download:`Download this script ` + .. _tui_import_file_step: + +Import STEP File +================ + +.. literalinclude:: examples/importStep.py + :linenos: + :language: python + +:download:`Download this script ` diff --git a/src/ExchangePlugin/doc/examples/importStep.py b/src/ExchangePlugin/doc/examples/importStep.py new file mode 100644 index 000000000..0adc73a7a --- /dev/null +++ b/src/ExchangePlugin/doc/examples/importStep.py @@ -0,0 +1,11 @@ +from salome.shaper import model +import os + +model.begin() +file_path = os.path.join(os.getenv("DATA_DIR"),"Shapes","Step","black_and_white.step") +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Import_1 = model.addImportSTEP(Part_1_doc,file_path, True, True, True) +model.do() +model.end() diff --git a/src/ExchangePlugin/doc/images/FileImportedSTEP.png b/src/ExchangePlugin/doc/images/FileImportedSTEP.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f171d8129a03ccf6bc9a1c81d6b8558b68c54d GIT binary patch literal 236238 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⪙3HP4o@~*Y%Ae-wv@BCz6F%}5k#kv|9jR@P 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

YIfXB=A>L&> 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

  • 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 a>_=06FPT$#ZxiqoBnD4cKbLh*2~7ZNuo;5@ literal 0 HcmV?d00001 diff --git a/src/ExchangePlugin/doc/images/Import_panel.png b/src/ExchangePlugin/doc/images/Import_panel.png index c22176e77e563cfcbf33db7c5d208c19e9076206..4d610af44702c482d7fd467e66b1cb2d14779524 100644 GIT binary patch literal 10094 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 z z_o4`ZID`{QGmYQ&l?Y4i^e8FHU=-XJ#|?ZWNIM%Vn^l>rPF)$^zc;2?*#Kgk63E%WIz+cxeRZwd1VlZyLvw1iQ+8{~*DH7EK5?|qAYtU&qkJc2i`|_a-kTf!E zAT8%!B-f1|8&F^s09TMJYUGxZp7Wu(c@f#k;k}pU-(aO!N)$8orc_QF5jNsl2t{o> z60l)ib@f;r)6ksjFm?=F% zKjL~Tf8v`s1VYzcNQZ>M58Ag(GUH`&cyN9B(gl>tgj@27>K>##r>9yv7*~mF&u^AX zt1Me?by`EIC|eOg_-2vTg@mdHGh!iy&!bbXKG|E#7ak9K5Y%=0vXt@yOSj7N;60qx z9*SoNS7ZydU{H^=D9p+_dw&otAWCPLuJkkiF)kindj-)2ttg05RHkd>q%1~{3cg~0 zkt51qX!79{>nigN5yG;0?nz2odk(=5FGI-4$T-2^527A5OOat!j+5i{gJ&eRyXorQ zh>}tn)@0hyIlbC=Is-VqjyQ~sVV|01o5RM(>ZABh#|I#FpXX`iL>D;}E7gPN4dM^yqxdr9 zHAo`7(&c586hCSQUE>6&vlSz(keOn{(M-Hw-io=;J@c4*cVP?^cez$)u$VNvs95)0 zw~Gpc7gh`Y>|O>FR+Ap{osZk5n|Yt6tVLR2N$n9fKlu2reLEHd|6aZY5i4}UB)Oej zfNWf%w~3!`VaoaRaz{0Upobxpf{I<-uSa}wWlG+|xA#+hGnMdCX66jvm8?F(9UQCo znA`7(jEqR8&I{G5z2GH<@R+lQ)#7u!g>zY28(bN+Vi(eC$dHNO7c!#fNvePaKN%z8 z)_AcGLe^WI@uw##{U#{D?r`wNcv%nIX?R(a-2aA*{*8X;mDCWnS08lZ)YfWvtzCGu z)9J8hM@8MADE(Y;M2+9{?skj6jW3a|{SstKM7^s{`b)@3+OG;i~+Y20%2Ar}> z(l4L;wF&*waENirB->;(3$W4@pT&`RLq$aYu81kRF%H-ERn=_n zR$e>p-SqbTz#{&8Vdt`j{l`tqk9o?AOUv(OEHZwcmiIojSg7TQe^IHMjM9dO=|wBW zn>%2(`0d2n1JAAZ<^r88;BrPK8u_Y*hP1A0*4xu{T!qSsEFCW$!ozXtL{F&C9&_Y1 z-99!}QlVmc*w>?5dbmHN57=95$g$~96bk;u4g><-dpdXNo?pLy-DWaHaCDfemJc|5 zt(0H7N1^2^r#r22{@YhjdqR7^DQVxK{ zbpfkrClf-`^8ZajdykP&dWBiLOT)~T4Pa7(UF4QcvjxUZy1$~1JS4EYzts$e#vCEQ z$doAzm5Gf#qNN?q7tUBvCM94IV$I(g$-(Rm8@0ju0 zJ~iOrv`qEloW9)k!$|E=eL%XdhSNx2%_}(<83d?XUQ~Zdz#{UK)?57hRQG9R_vHbM zWCTz|O#+r&{Cx6>AxR@=wENOa^;L}Ec@3vJ?O2_#!^E?%N?9rdL&p6%s3$>~)5_wq zA4#No+JsYcnz0MMFDy?3k=t`MJrC1}E^*MP79x1LHk!H-LvtCEgsyk-?xTK2Ly<9WO%DvhawA8a|R9@RT5n$S-C~ zBkHcc(LQZLy_C){z{ij0<25#1q>}|ZA=CUis}g{8*W}#PSC*ER#mwq7^rziR!B>M= zy>VkOB|y07hf@&@2CI*a*T=FmjvVR$lK&eE``29aKNGb7=yEEpYC?C;jv;03&ocKL7v# diff --git a/src/ExchangePlugin/doc/importFeature.rst b/src/ExchangePlugin/doc/importFeature.rst index 4692ec669..64251ddb2 100644 --- a/src/ExchangePlugin/doc/importFeature.rst +++ b/src/ExchangePlugin/doc/importFeature.rst @@ -67,6 +67,8 @@ The following property panel will be opened: **Import property panel** +The first combobox provides the list of formats avalables (BREP, XAO, IGES or STEP). + The **Import to** combobox provides the list of destinations (one of existing Parts or a new Part). In this panel it is possible to enter a file name directly or press **'...'** button and browse it with help of import file dialog box: @@ -75,7 +77,11 @@ In this panel it is possible to enter a file name directly or press **'...'** bu :align: center **Dialog box to import CAD-neutral format** - + +Import BREP, XAO, IGES +"""""""""""""""""""""" +In case of first choice the format of imported file will be defined according to file extension. + **Apply** button imports the file. **Cancel** button cancels the operation. @@ -98,3 +104,45 @@ The Result of the operation depends on the imported file content. Import of BREP file. **See Also** a sample TUI Script of :ref:`tui_import_file` operation. + + +Import STEP +""""""""""" + +In this case, the following property panel will be opened: + +.. figure:: images/ImportSTEP.png + :align: center + + **Dialog box to import file in STEP format** + + +The file name and path can be defined in **Import file** field by direct input or browsing with ‘…’ button, which opens **Import file** dialog box. +The **Import to** combobox provides the list of destinations (one of existing Parts or a new Part). +**STEP options** provide the possibility to **Scale to International System Units** as well as to create groups from **Materials** and/or **Colors** if defined in assemblies of the file to import. + +**Apply** button imports the file. + +**Cancel** button cancels the operation. + +**TUI Command**: + +.. py:function:: model.addImportSTEP(Part_doc, FileNameString,scalInterUnits,materials,colors) + + :param part: The current part object + :param string: A file name string. + :param boolean: True if scale to UIS + :param boolean: True to create groups from materials + :param boolean: True to create groups from colors + +Result +"""""" + +The Result of the operation depends on the imported file content. + +.. figure:: images/FileImportedSTEP.png + :align: center + + Import of STEP file. + +**See Also** a sample TUI Script of :ref:`tui_import_file_step` operation. diff --git a/src/ExchangePlugin/plugin-Exchange.xml b/src/ExchangePlugin/plugin-Exchange.xml index 7f240ba69..8f2445633 100644 --- a/src/ExchangePlugin/plugin-Exchange.xml +++ b/src/ExchangePlugin/plugin-Exchange.xml @@ -4,19 +4,67 @@ - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + @@ -75,4 +123,4 @@ - \ No newline at end of file + diff --git a/src/GeomAlgoAPI/CMakeLists.txt b/src/GeomAlgoAPI/CMakeLists.txt index 2d3df2aee..a03ae213f 100644 --- a/src/GeomAlgoAPI/CMakeLists.txt +++ b/src/GeomAlgoAPI/CMakeLists.txt @@ -45,6 +45,7 @@ SET(PROJECT_HEADERS GeomAlgoAPI_Placement.h GeomAlgoAPI_BREPImport.h GeomAlgoAPI_STEPImport.h + GeomAlgoAPI_STEPImportXCAF.h GeomAlgoAPI_IGESImport.h GeomAlgoAPI_BREPExport.h GeomAlgoAPI_STEPExport.h @@ -111,6 +112,7 @@ SET(PROJECT_SOURCES GeomAlgoAPI_Placement.cpp GeomAlgoAPI_BREPImport.cpp GeomAlgoAPI_STEPImport.cpp + GeomAlgoAPI_STEPImportXCAF.cpp GeomAlgoAPI_IGESImport.cpp GeomAlgoAPI_BREPExport.cpp GeomAlgoAPI_STEPExport.cpp @@ -178,6 +180,7 @@ INCLUDE_DIRECTORIES( ../GeomAlgoImpl ../ModelAPI ../XAO + ${PROJECT_SOURCE_DIR}/src/Locale ${OpenCASCADE_INCLUDE_DIR} ) diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp index 3a824f106..7e557e32d 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp @@ -18,6 +18,7 @@ // #include +#include #include #include @@ -31,6 +32,8 @@ #include #include #include + +#include #include #include #include @@ -54,17 +57,17 @@ #include #include #include -#include +#include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC -#include -#include -#include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC +//================================================================================================== std::shared_ptr STEPImport(const std::string& theFileName, const std::string& theFormatName, + const bool theScalInterUnits, std::string& theError) { + TopoDS_Shape aResShape; // Set "C" numeric locale to save numbers correctly @@ -89,7 +92,7 @@ std::shared_ptr STEPImport(const std::string& theFileName, if (status == IFSelect_RetDone) { // Regard or not the model units - if (theFormatName == "STEP_SCALE") { + if (!theScalInterUnits) { // set UnitFlag to units from file TColStd_SequenceOfAsciiString anUnitLengthNames; TColStd_SequenceOfAsciiString anUnitAngleNames; @@ -194,3 +197,87 @@ std::shared_ptr STEPImport(const std::string& theFileName, aGeomShape->setImpl(new TopoDS_Shape(aResShape)); return aGeomShape; } + +//================================================================================================== +GeomShapePtr STEPImportAttributs(const std::string& theFileName, + std::shared_ptr theResultBody, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor, + std::map< std::wstring, + std::list>& theMaterialShape, + std::string& theError) +{ + + STEPControl_Reader aReader; + std::shared_ptr aGeomShape(new GeomAPI_Shape); + + Interface_Static::SetCVal("xstep.cascade.unit","M"); + Interface_Static::SetIVal("read.step.ideas", 1); + Interface_Static::SetIVal("read.step.nonmanifold", 1); + + try { + OCC_CATCH_SIGNALS; + + IFSelect_ReturnStatus status = aReader.ReadFile(theFileName.c_str()); + + if (status == IFSelect_RetDone) { + + // Regard or not the model units + if (!theScalInterUnits) { + // set UnitFlag to units from file + TColStd_SequenceOfAsciiString anUnitLengthNames; + TColStd_SequenceOfAsciiString anUnitAngleNames; + TColStd_SequenceOfAsciiString anUnitSolidAngleNames; + aReader.FileUnits(anUnitLengthNames, anUnitAngleNames, anUnitSolidAngleNames); + if (anUnitLengthNames.Length() > 0) { + TCollection_AsciiString aLenUnits = anUnitLengthNames.First(); + if (aLenUnits == "millimetre") + Interface_Static::SetCVal("xstep.cascade.unit", "MM"); + else if (aLenUnits == "centimetre") + Interface_Static::SetCVal("xstep.cascade.unit", "CM"); + else if (aLenUnits == "metre" || aLenUnits.IsEmpty()) + Interface_Static::SetCVal("xstep.cascade.unit", "M"); + else if (aLenUnits == "INCH") + Interface_Static::SetCVal("xstep.cascade.unit", "INCH"); + else { + theError = "The file contains not supported units."; + aGeomShape->setImpl(new TopoDS_Shape()); + return aGeomShape; + } + // TODO (for other units than mm, cm, m or inch) + //else if (aLenUnits == "") + // Interface_Static::SetCVal("xstep.cascade.unit", "???"); + } + } + else { + //cout<<"need re-scale a model"<setImpl(new TopoDS_Shape()); + return aGeomShape; + } + + STEPCAFControl_Reader aCafreader; + aCafreader.SetColorMode(true); + aCafreader.SetNameMode(true); + aCafreader.SetMatMode(true); + + if(aCafreader.ReadFile(theFileName.c_str()) != IFSelect_RetDone) { + theError = "Wrong format of the imported file. Can't import file."; + std::shared_ptr aGeomShape(new GeomAPI_Shape); + aGeomShape->setImpl(new TopoDS_Shape()); + return aGeomShape; + } + + return readAttributes(aCafreader, + theResultBody, + theMaterials, + theMaterialShape, + theError); +} diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.h b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.h index 470791a3b..5740fc520 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.h @@ -23,13 +23,27 @@ #include #include - #include +#include + + /// Implementation of the import STEP files algorithms GEOMALGOAPI_EXPORT std::shared_ptr STEPImport(const std::string& theFileName, const std::string& theFormatName, + const bool theScalInterUnits, std::string& theError); +/// Implementation of the import STEP files algorithms with Attributs (Name, Color, Materials) +GEOMALGOAPI_EXPORT +GeomShapePtr STEPImportAttributs(const std::string& theFileName, + std::shared_ptr theResultBody, + const bool theScalInterUnits, + const bool theMaterials, + const bool theColor, + std::map< std::wstring, + std::list>& theMaterialShape, + std::string& theError); + #endif /* GEOMALGOAPI_STEPIMPORT_H_ */ diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.cpp new file mode 100644 index 000000000..807d4f86d --- /dev/null +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.cpp @@ -0,0 +1,409 @@ +// Copyright (C) 2014-2020 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include + +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +//============================================================================= +TopoDS_Shape getShape(const Handle(Standard_Transient) &theEnti, + const Handle(Transfer_TransientProcess) &theTP) +{ + TopoDS_Shape aResult; + Handle(Transfer_Binder) aBinder = theTP->Find(theEnti); + + if (aBinder.IsNull()) { + return aResult; + } + + aResult = TransferBRep::ShapeResult(aBinder); + + return aResult; +} + +//============================================================================= +std::shared_ptr readAttributes(STEPCAFControl_Reader &theReader, + std::shared_ptr theResultBody, + const bool theIsMaterials, + std::map< std::wstring,std::list> &theMaterialShape, + std::string& theError) +{ + // dummy XCAF Application to handle the STEP XCAF Document + Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication(); + // XCAF Document to contain the STEP/IGES file itself + Handle(TDocStd_Document) adoc; + + dummy_app->NewDocument( TCollection_ExtendedString("MDTV-CAF"), adoc); + // transfer STEP/IGES into the document, and get the main label + theReader.Transfer(adoc); + TDF_Label mainLabel = adoc->Main(); + Handle_XCAFDoc_ShapeTool shapeTool = XCAFDoc_DocumentTool::ShapeTool(mainLabel); + Handle_XCAFDoc_ColorTool colorTool = XCAFDoc_DocumentTool::ColorTool(mainLabel); + Handle(XCAFDoc_MaterialTool) materialTool = XCAFDoc_DocumentTool::MaterialTool(mainLabel); + // traverse the labels recursively to set attributes on shapes + setShapeAttributes(shapeTool, colorTool, materialTool, mainLabel, + TopLoc_Location(),theResultBody,theMaterialShape,false); + + std::shared_ptr ageom = setgeom(shapeTool,mainLabel,theError); + + STEPControl_Reader aReader = theReader.ChangeReader(); + + // BEGIN: reading materials of sub-shapes from file + if ( theIsMaterials ) + { + TopTools_IndexedMapOfShape anIndices; + TopExp::MapShapes(ageom->impl(), anIndices); + + Handle(Interface_InterfaceModel) Model = aReader.WS()->Model(); + Handle(XSControl_TransferReader) TR = aReader.WS()->TransferReader(); + if (!TR.IsNull()) { + Handle(Transfer_TransientProcess) TP = TR->TransientProcess(); + + Standard_Integer nb = Model->NbEntities(); + + for (Standard_Integer ie = 1; ie <= nb; ie++) { + Handle(Standard_Transient) enti = Model->Value(ie); + + // Store materials. + storeMaterial(theResultBody,enti, anIndices, TP, mainLabel,theMaterialShape); + } + } + } + if (adoc->CanClose() == CDM_CCS_OK) + adoc->Close(); + return ageom; +} + +//============================================================================= +std::shared_ptr setgeom(const Handle(XCAFDoc_ShapeTool) &theShapeTool, + const TDF_Label &theLabel, + std::string& theError) +{ + BRep_Builder aB; + TopoDS_Compound aCompound; + aB.MakeCompound(aCompound); + + TDF_LabelSequence aFrshapes; + theShapeTool->GetShapes(aFrshapes); + + std::shared_ptr aGeomShape(new GeomAPI_Shape); + + if (aFrshapes.Length() == 0) { + aGeomShape->setImpl(new TopoDS_Shape()); + return aGeomShape; + } else if (aFrshapes.Length() == 1) { + TopoDS_Shape shape = theShapeTool->GetShape(aFrshapes.Value(1)); + aGeomShape->setImpl(new TopoDS_Shape(shape)); + return aGeomShape; + } else { + for (Standard_Integer i=1; iGetShape(aFrshapes.Value(i)); + TDF_Label aLabel = theShapeTool->FindShape(aS, Standard_False); + if ( (!aLabel.IsNull()) && (theShapeTool->IsShape(aLabel)) ) { + if (theShapeTool->IsFree(aLabel) ) { + if (aS.IsNull()) { + continue; + } else { + if (!theShapeTool->IsReference(aLabel) ){ + for(TDF_ChildIterator anIt(aLabel); anIt.More(); anIt.Next()) { + aB.Add(aCompound, theShapeTool->GetShape(anIt.Value()) ); + } + } else { + aB.Add(aCompound, aS); + } + } + } + } + } + + TopoDS_Shape aShape = aCompound; + // Check if any BRep entity has been read, there must be at least a vertex + if ( !TopExp_Explorer( aShape, TopAbs_VERTEX ).More() ) + { + theError = "No geometrical data in the imported file."; + std::shared_ptr aGeomShape(new GeomAPI_Shape); + aGeomShape->setImpl(new TopoDS_Shape()); + return aGeomShape; + } + + aGeomShape->setImpl(new TopoDS_Shape(aShape)); + return aGeomShape; + } +} +//============================================================================= +void setShapeAttributes(const Handle(XCAFDoc_ShapeTool) &theShapeTool, + const Handle(XCAFDoc_ColorTool) &theColorTool, + const Handle(XCAFDoc_MaterialTool) &theMaterialTool, + const TDF_Label &theLabel, + const TopLoc_Location &theLoc, + std::shared_ptr theResultBody, + std::map< std::wstring,std::list> &theMaterialShape, + bool theIsRef) +{ + std::wstring aShapeName; + Handle(TDataStd_Name) aN; + + if (theLabel.FindAttribute(TDataStd_Name::GetID(), aN)) { + TCollection_ExtendedString aName = aN->Get(); + + aShapeName = Locale::Convert::toWString(TCollection_AsciiString(aName).ToCString()) ; + } + + TopLoc_Location aPartLoc = theLoc; + Handle(XCAFDoc_Location) al; + if (theLabel.FindAttribute(XCAFDoc_Location::GetID(), al)) { + if (theIsRef) + aPartLoc = aPartLoc * al->Get(); + else + aPartLoc = al->Get(); + } + + TDF_Label aRef; + if (theShapeTool->IsReference(theLabel) && theShapeTool->GetReferredShape(theLabel, aRef)) { + + setShapeAttributes( theShapeTool, theColorTool, theMaterialTool, aRef, + aPartLoc,theResultBody,theMaterialShape,true); + } + + if (theShapeTool->IsSimpleShape(theLabel) && (theIsRef || theShapeTool->IsFree(theLabel))) { + + TopoDS_Shape aShape = theShapeTool->GetShape(theLabel); + + std::shared_ptr aShapeGeom(new GeomAPI_Shape); + if (!theLoc.IsIdentity()){ + aShape.Move(theLoc); + } + aShapeGeom->setImpl(new TopoDS_Shape(aShape)); + aShapeName = theResultBody->addShapeName(aShapeGeom, aShapeName); + + + aShape.Location(theIsRef ? theLoc : aPartLoc); + int aDim = + (aShape.ShapeType() == TopAbs_VERTEX) ? + 0 : + (aShape.ShapeType() == TopAbs_EDGE || aShape.ShapeType() == TopAbs_WIRE) ? + 1 : + (aShape.ShapeType() == TopAbs_FACE || + aShape.ShapeType() == TopAbs_SHELL) ? 2 :3; + + Handle(TCollection_HAsciiString) aMatName; + Handle(TCollection_HAsciiString) aMatDescription; + Standard_Real aMatDensity; + Handle(TCollection_HAsciiString) aMatDensName; + Handle(TCollection_HAsciiString) aMatDensValType; + + if (theMaterialTool->GetMaterial(theLabel, aMatName, aMatDescription, aMatDensity, + aMatDensName, aMatDensValType)) { + std::wstring aNameMaterial = Locale::Convert::toWString(aMatName->ToCString()); + + theMaterialShape[aNameMaterial].push_back(aShapeName); + } + + Quantity_Color aCol; + if (theColorTool->GetColor(theLabel, XCAFDoc_ColorGen, aCol)) { + double r = aCol.Red(), g = aCol.Green(), b = aCol.Blue(); + std::vector ColRGB = {int(r*255),int(g*255),int(b*255)}; + theResultBody->addShapeColor(aShapeName, ColRGB); + } else if (theColorTool->GetColor(theLabel, XCAFDoc_ColorSurf, aCol)) { + double r = aCol.Red(), g = aCol.Green(), b = aCol.Blue(); + std::vector aColRGB = {int(r*255),int(g*255),int(b*255)}; + theResultBody->addShapeColor(aShapeName, aColRGB); + } else if (theColorTool->GetColor(theLabel, XCAFDoc_ColorCurv, aCol)) { + double aR = aCol.Red(), aG = aCol.Green(), aB = aCol.Blue(); + std::vector aColRGB = {int(aR*255),int(aG*255),int(aB*255)}; + theResultBody->addShapeColor(aShapeName, aColRGB); + } + // check explicit coloring of boundary entities + if (aDim == 3) { + TopExp_Explorer aXp2(aShape, TopAbs_FACE); + while(aXp2.More()) { + if (theColorTool->GetColor(aXp2.Current(), XCAFDoc_ColorGen, aCol) || + theColorTool->GetColor(aXp2.Current(), XCAFDoc_ColorSurf, aCol) || + theColorTool->GetColor(aXp2.Current(), XCAFDoc_ColorCurv, aCol)) { + double aR = aCol.Red(), aG = aCol.Green(), aB = aCol.Blue(); + TopoDS_Face aFace = TopoDS::Face(aXp2.Current()); + std::vector aColRGB = {int(aR*255),int(aG*255),int(aB*255)}; + std::wstringstream aNameFace; + TopoDS_Shape aShapeface = aXp2.Current(); + if (!theLoc.IsIdentity()){ + aShapeface.Move(theLoc); + } + aShapeGeom->setImpl(new TopoDS_Shape(aShapeface)); + theResultBody->addShapeColor( + theResultBody->addShapeName(aShapeGeom , aNameFace.str()), aColRGB); + } + aXp2.Next(); + } + } + if (aDim == 2) { + TopExp_Explorer aXp1(aShape, TopAbs_EDGE); + while(aXp1.More()) { + if (theColorTool->GetColor(aXp1.Current(), XCAFDoc_ColorGen, aCol) || + theColorTool->GetColor(aXp1.Current(), XCAFDoc_ColorSurf, aCol) || + theColorTool->GetColor(aXp1.Current(), XCAFDoc_ColorCurv, aCol)) { + double aR = aCol.Red(), aG = aCol.Green(), aB = aCol.Blue(); + std::vector aColRGB = {int(aR*255),int(aG*255),int(aB*255)}; + std::wstringstream aNameEdge; + aNameEdge << L"Edge_"<< aShapeName; + aShapeGeom->setImpl(new TopoDS_Shape(aXp1.Current() )); + theResultBody->addShapeColor( + theResultBody->addShapeName(aShapeGeom , aNameEdge.str()), aColRGB); + } + aXp1.Next(); + } + } + } else { + if (!theShapeTool->IsReference(theLabel) ){ + TopoDS_Shape aShape = theShapeTool->GetShape(theLabel); + + std::shared_ptr aShapeGeom(new GeomAPI_Shape); + if (!theLoc.IsIdentity()){ + aShape.Move(theLoc); + } + aShapeGeom->setImpl(new TopoDS_Shape(aShape)); + aShapeName = theResultBody->addShapeName(aShapeGeom, aShapeName); + } + for(TDF_ChildIterator anIt(theLabel); anIt.More(); anIt.Next()) { + + setShapeAttributes( theShapeTool, theColorTool, theMaterialTool, + anIt.Value(), aPartLoc,theResultBody,theMaterialShape, theIsRef); + } + } +} + +//============================================================================= +void storeMaterial( std::shared_ptr theResultBody, + const Handle(Standard_Transient) &theEnti, + const TopTools_IndexedMapOfShape &theIndices, + const Handle(Transfer_TransientProcess) &theTP, + const TDF_Label &theShapeLabel, + std::map< std::wstring, std::list> &theMaterialShape ) +{ + // Treat Product Definition Shape only. + Handle(StepRepr_ProductDefinitionShape) aPDS = + Handle(StepRepr_ProductDefinitionShape)::DownCast(theEnti); + Handle(StepBasic_ProductDefinition) aProdDef; + + if (aPDS.IsNull() == Standard_False) { + // Product Definition Shape ==> Product Definition + aProdDef = aPDS->Definition().ProductDefinition(); + } + + if (aProdDef.IsNull() == Standard_False) { + // Product Definition ==> Property Definition + const Interface_Graph &aGraph = theTP->Graph(); + Interface_EntityIterator aSubs = aGraph.Sharings(aProdDef); + TopoDS_Shape aShape; + + for(aSubs.Start(); aSubs.More(); aSubs.Next()) { + Handle(StepRepr_PropertyDefinition) aPropD = + Handle(StepRepr_PropertyDefinition)::DownCast(aSubs.Value()); + + if (aPropD.IsNull() == Standard_False) { + // Property Definition ==> Representation. + Interface_EntityIterator aSubs1 = aGraph.Sharings(aPropD); + + for(aSubs1.Start(); aSubs1.More(); aSubs1.Next()) { + Handle(StepRepr_PropertyDefinitionRepresentation) aPDR = + Handle(StepRepr_PropertyDefinitionRepresentation):: + DownCast(aSubs1.Value()); + + if (aPDR.IsNull() == Standard_False) { + // Property Definition ==> Material Name. + Handle(StepRepr_Representation) aRepr = aPDR->UsedRepresentation(); + + if (aRepr.IsNull() == Standard_False) { + Standard_Integer anIr; + + for(anIr = 1; anIr <= aRepr->NbItems(); anIr++) { + Handle(StepRepr_RepresentationItem) aRI = aRepr->ItemsValue(anIr); + Handle(StepRepr_DescriptiveRepresentationItem) aDRI = + Handle(StepRepr_DescriptiveRepresentationItem)::DownCast(aRI); + + if (aDRI.IsNull() == Standard_False) { + // Get shape from Product Definition + Handle(TCollection_HAsciiString) aMatName = aDRI->Name(); + if (aMatName.IsNull() == Standard_False) { + TCollection_ExtendedString + aMatNameExt (aMatName->ToCString()); + + if (aShape.IsNull()) { + //Get the shape. + aShape = getShape(aProdDef, theTP); + if (aShape.IsNull()) { + return; + } + } + + // as PRODUCT can be included in the main shape + // several times, we look here for all iclusions. + Standard_Integer anISub, aNbSubs = theIndices.Extent(); + + for (anISub = 1; anISub <= aNbSubs; anISub++) { + TopoDS_Shape aSub = theIndices.FindKey(anISub); + + if (aSub.IsPartner(aShape)) { + std::shared_ptr aShapeGeom(new GeomAPI_Shape); + aShapeGeom->setImpl(new TopoDS_Shape(aSub)); + std::wstring aNom = theResultBody->findShapeName(aShapeGeom); + std::wstring aMName= Locale::Convert::toWString(aMatName->ToCString()); + theMaterialShape[aMName].push_back(aNom); + + } + } + } + } + } + } + } + } + } + } + } +} + diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.h b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.h new file mode 100644 index 000000000..d43019068 --- /dev/null +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPImportXCAF.h @@ -0,0 +1,66 @@ +// Copyright (C) 2014-2020 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef GEOMALGOAPI_STEPIMPORTXCAF_H_ +#define GEOMALGOAPI_STEPIMPORTXCAF_H_ + +#include + +#include +#include + +#include + +#include +#include + + /// read Attributs of step file + GEOMALGOAPI_EXPORT + std::shared_ptr readAttributes(STEPCAFControl_Reader &theReader, + std::shared_ptr theResultBody, + const bool theMaterials, + std::map< std::wstring,std::list> &theMaterialShape, + std::string& theError); +/// read attributs for label + GEOMALGOAPI_EXPORT + void setShapeAttributes(const Handle(XCAFDoc_ShapeTool) &theShapeTool, + const Handle(XCAFDoc_ColorTool) &theColorTool, + const Handle(XCAFDoc_MaterialTool) &TheMaterialTool, + const TDF_Label &theLabel, + const TopLoc_Location &theLoc, + std::shared_ptr theResultBody, + std::map< std::wstring, std::list> &theMaterialShape, + bool theIsRef); + +// read geometry +GEOMALGOAPI_EXPORT +std::shared_ptr setgeom(const Handle(XCAFDoc_ShapeTool) &shapeTool, + const TDF_Label &theLabel, + std::string& theError); + +// store Materiel for theShapeLabel in the map theMaterialShape +GEOMALGOAPI_EXPORT +void storeMaterial(std::shared_ptr theResultBody, + const Handle(Standard_Transient) &theEnti, + const TopTools_IndexedMapOfShape &theIndices, + const Handle(Transfer_TransientProcess) &theTP, + const TDF_Label &theShapeLabel, + std::map< std::wstring, std::list> &theMaterialShape); + +#endif /* GEOMALGOAPI_STEPIMPORTXCAF_H_ */ diff --git a/src/Model/Model_Objects.cpp b/src/Model/Model_Objects.cpp index 2c32988e2..c7ea99cb0 100644 --- a/src/Model/Model_Objects.cpp +++ b/src/Model/Model_Objects.cpp @@ -1226,7 +1226,8 @@ bool Model_Objects::hasCustomName(DataPtr theFeatureData, void Model_Objects::storeResult(std::shared_ptr theFeatureData, std::shared_ptr theResult, - const int theResultIndex) + const int theResultIndex, + const std::wstring& theNameShape) { theResult->init(); theResult->setDoc(myDoc); @@ -1240,11 +1241,15 @@ void Model_Objects::storeResult(std::shared_ptr theFeatureData, theResult->data()->setName(L""); } else { std::wstringstream aName; - aName << aNewName; - // if there are several results (issue #899: any number of result), - // add unique prefix starting from second - if (theResultIndex > 0 || theResult->groupName() == ModelAPI_ResultBody::group()) - aName << "_" << theResultIndex + 1; + if ( theNameShape != L"" ){ + aName << theNameShape; + } else { + aName << aNewName; + // if there are several results (issue #899: any number of result), + // add unique prefix starting from second + if (theResultIndex > 0 || theResult->groupName() == ModelAPI_ResultBody::group()) + aName << "_" << theResultIndex + 1; + } aNewName = aName.str(); } theResult->data()->setName(aNewName); @@ -1269,7 +1274,9 @@ std::shared_ptr Model_Objects::createConstruction( } std::shared_ptr Model_Objects::createBody( - const std::shared_ptr& theFeatureData, const int theIndex) + const std::shared_ptr& theFeatureData, + const int theIndex, + const std::wstring& theNameShape) { TDF_Label aLab = resultLabel(theFeatureData, theIndex); TDataStd_Comment::Set(aLab, ModelAPI_ResultBody::group().c_str()); @@ -1280,7 +1287,7 @@ std::shared_ptr Model_Objects::createBody( } if (!aResult.get()) { aResult = std::shared_ptr(new Model_ResultBody); - storeResult(theFeatureData, aResult, theIndex); + storeResult(theFeatureData, aResult, theIndex, theNameShape); } return aResult; } diff --git a/src/Model/Model_Objects.h b/src/Model/Model_Objects.h index c929be8ce..3ae6c713a 100644 --- a/src/Model/Model_Objects.h +++ b/src/Model/Model_Objects.h @@ -124,7 +124,8 @@ class Model_Objects const std::shared_ptr& theFeatureData, const int theIndex = 0); /// Creates a body result std::shared_ptr createBody( - const std::shared_ptr& theFeatureData, const int theIndex = 0); + const std::shared_ptr& theFeatureData, const int theIndex = 0, + const std::wstring& theNameShape = L""); /// Creates a part result std::shared_ptr createPart( const std::shared_ptr& theFeatureData, const int theIndex = 0); @@ -224,7 +225,8 @@ class Model_Objects //! (attaches 'data' of result to tree) void storeResult(std::shared_ptr theFeatureData, std::shared_ptr theResult, - const int theResultIndex = 0); + const int theResultIndex = 0, + const std::wstring& theNameShape = L""); //! returns the label of result by index; creates this label if it was not created before TDF_Label resultLabel(const std::shared_ptr& theFeatureData, diff --git a/src/Model/Model_ResultBody.cpp b/src/Model/Model_ResultBody.cpp index 7d6918c6a..c58ed7b06 100644 --- a/src/Model/Model_ResultBody.cpp +++ b/src/Model/Model_ResultBody.cpp @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include @@ -233,6 +235,57 @@ void Model_ResultBody::updateConcealment() } } +void Model_ResultBody::addShapeColor( const std::wstring& theName,std::vector& color) { + + if (myColorsShape.find(theName) == myColorsShape.end()) + myColorsShape[ theName ] = color; +} + +std::wstring Model_ResultBody::addShapeName(std::shared_ptr theshape, + const std::wstring& theName ){ + + int indice = 1; + std::wstringstream aName; + aName << theName; + while(myNamesShape.find(aName.str()) != myNamesShape.end() ){ + aName.str(L""); + aName << theName << L"__" << indice; + indice++; + } + myNamesShape[ aName.str() ] = theshape; + + return aName.str(); +} + +std::wstring Model_ResultBody::findShapeName(std::shared_ptr theShape){ + + TopoDS_Shape aShape = theShape->impl(); + for (std::map< std::wstring, std::shared_ptr >::iterator it = + myNamesShape.begin(); + it != myNamesShape.end(); + ++it) + { + TopoDS_Shape curSelectedShape = (*it).second->impl(); + if ((aShape.IsSame(curSelectedShape))) { + return (*it).first; + } + } + return L"material not found" ; +} + +void Model_ResultBody::setShapeName( + std::map< std::wstring, std::shared_ptr>& theShapeName, + std::map< std::wstring, std::vector>& theColorsShape) +{ + myNamesShape = theShapeName; + myColorsShape = theColorsShape; +} + +void Model_ResultBody::clearShapeNameAndColor(){ + myNamesShape.clear(); + myColorsShape.clear(); +} + void Model_ResultBody::updateSubs(const std::shared_ptr& theThisShape, const bool theShapeChanged) { @@ -262,13 +315,33 @@ void Model_ResultBody::updateSubs(const std::shared_ptr& theThisS aShape->setImpl(new TopoDS_Shape(aShapesIter.Value())); ResultBodyPtr aSub; if (mySubs.size() <= aSubIndex) { // it is needed to create a new sub-result - aSub = anObjects->createBody(this->data(), aSubIndex); + std::wstring thenameshape = L""; + // find shape name read + for (std::map< std::wstring, std::shared_ptr >::iterator it = + myNamesShape.begin(); + it != myNamesShape.end(); + ++it) + { + TopoDS_Shape curSelectedShape = (*it).second->impl(); + if (!(aShapesIter.Value().IsSame(curSelectedShape))) continue; + thenameshape = (*it).first; + break; + } + aSub = anObjects->createBody(this->data(), aSubIndex,thenameshape); + //finf color read + std::map< std::wstring, std::vector>::iterator itColor = + myColorsShape.find(thenameshape); + if (itColor != myColorsShape.end()){ + ModelAPI_Tools::setColor(aSub,(*itColor).second); + } + aSub->setShapeName(myNamesShape,myColorsShape); mySubs.push_back(aSub); mySubsMap[aSub] = int(mySubs.size() - 1); if (isConcealed()) { // for issue #2579 note7 aSub->ModelAPI_ResultBody::setIsConcealed(true); std::dynamic_pointer_cast(aSub)->updateConcealment(); } + } else { // just update shape of this result aSub = mySubs[aSubIndex]; } diff --git a/src/Model/Model_ResultBody.h b/src/Model/Model_ResultBody.h index 94e9d9b7c..fff856c5f 100644 --- a/src/Model/Model_ResultBody.h +++ b/src/Model/Model_ResultBody.h @@ -126,7 +126,7 @@ protected: const GeomShapePtr& theThisShape, const std::list& theOlds, const std::shared_ptr theMakeShape, const bool isGenerated); - // Checks the state of children and parents to send events of creation/erase when needed + /// Checks the state of children and parents to send events of creation/erase when needed void updateConcealment(); /// Adds to theOldForSub only old shapes that where used for theSub creation @@ -134,6 +134,31 @@ protected: const std::list& theAllOlds, std::list& theOldForSub); friend class Model_Objects; + + /// Add shape Name for read shape in step file + std::wstring addShapeName(std::shared_ptr,const std::wstring& theName) override; + + /// Add color for shape Name read shape in step file + void addShapeColor( const std::wstring& theName,std::vector& color) override; + + /// Set the map of name and color read shape in step file + void setShapeName(std::map< std::wstring, + std::shared_ptr>& theShapeName, + std::map< std::wstring, + std::vector>& theColorsShape) override; + + /// find the name of shapp read in step file + std::wstring findShapeName(std::shared_ptr theShape) override; + + /// Clear the map of name and color read shape in step file + void clearShapeNameAndColor() override; + + /// map with the name read in step file and shape + std::map< std::wstring, std::shared_ptr > myNamesShape; + + /// map with the name contruct and color read + std::map< std::wstring, std::vector> myColorsShape; + }; #endif diff --git a/src/ModelAPI/CMakeLists.txt b/src/ModelAPI/CMakeLists.txt index 68b34a177..8d943e9c8 100644 --- a/src/ModelAPI/CMakeLists.txt +++ b/src/ModelAPI/CMakeLists.txt @@ -117,7 +117,6 @@ SET(PROJECT_SOURCES SET(PROJECT_LIBRARIES Config GeomAPI - Locale ) SET(CMAKE_SWIG_FLAGS -threads -w325,321,362,383,302,403,451,473) ADD_DEFINITIONS(-DMODELAPI_EXPORTS) @@ -131,6 +130,11 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config ${PROJECT_SOURCE_DIR}/src/GeomAPI ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI ${PROJECT_SOURCE_DIR}/src/Locale + ${OpenCASCADE_INCLUDE_DIR} + ${OpenCASCADE_DataExchange_LIBRARIES} + ${OpenCASCADE_ModelingAlgorithms_LIBRARIES} + ${OpenCASCADE_ApplicationFramework_LIBRARIES} + ) diff --git a/src/ModelAPI/ModelAPI_ResultBody.h b/src/ModelAPI/ModelAPI_ResultBody.h index c88fb08fc..f51233b6f 100644 --- a/src/ModelAPI/ModelAPI_ResultBody.h +++ b/src/ModelAPI/ModelAPI_ResultBody.h @@ -24,6 +24,8 @@ #include #include #include +#include +#include class ModelAPI_BodyBuilder; class GeomAlgoAPI_MakeShape; @@ -183,6 +185,26 @@ public: /// Cleans cash related to the already stored elements MODELAPI_EXPORT virtual void cleanCash() = 0; + /// Add shape Name for read shape in step file + MODELAPI_EXPORT virtual std::wstring addShapeName + (std::shared_ptr,const std::wstring& theName) = 0; + + /// Add color for shape Name read shape in step file + MODELAPI_EXPORT virtual void addShapeColor + (const std::wstring& theName,std::vector& theColor) = 0; + + /// Set the map of name and color read shape in step file + MODELAPI_EXPORT virtual void setShapeName + (std::map< std::wstring, std::shared_ptr > &theShapeName, + std::map< std::wstring, std::vector> & theColorsShape) = 0; + + /// Clear the map of name and color read shape in step file + MODELAPI_EXPORT virtual void clearShapeNameAndColor() = 0; + + /// find the name of shapp read in step file + MODELAPI_EXPORT virtual std::wstring findShapeName(std::shared_ptr theShape) = 0; + + protected: /// Default constructor accessible only from Model_Objects MODELAPI_EXPORT ModelAPI_ResultBody(); diff --git a/src/PythonAPI/model/exchange/__init__.py b/src/PythonAPI/model/exchange/__init__.py index 0e71bf080..800ab45f9 100644 --- a/src/PythonAPI/model/exchange/__init__.py +++ b/src/PythonAPI/model/exchange/__init__.py @@ -19,7 +19,7 @@ """Package for Exchange plugin for the Parametric Geometry API of the Modeler. """ -from ExchangeAPI import addImport, exportToFile, exportToXAO, exportToSTL +from ExchangeAPI import addImport, addImportSTEP, exportToFile, exportToXAO, exportToSTL from ExchangeAPI import exportPart, importPart from .tools import * -- 2.39.2