From: lucasjerome Date: Wed, 23 Dec 2020 10:38:19 +0000 (+0100) Subject: #20537 replace "Basic properties" by Geometry calculation X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=8e89dbca0f76c1f9347496f96d94e2f0213ede0b;p=modules%2Fshaper.git #20537 replace "Basic properties" by Geometry calculation --- diff --git a/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.cpp b/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.cpp index 0a380678e..666489e0a 100644 --- a/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.cpp +++ b/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.cpp @@ -25,8 +25,8 @@ #include //================================================================================================= -std::list getBasicProperties(const std::shared_ptr& thePart, - const ModelHighAPI_Selection& theObject) +std::list getGeometryCalculation(const std::shared_ptr& thePart, + const ModelHighAPI_Selection& theObject) { FeaturePtr aPointCoodFeat = thePart->addFeature(FeaturesPlugin_GeometryCalculation::ID()); diff --git a/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.h b/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.h index 64e0f87c9..b1b6cb312 100644 --- a/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.h +++ b/src/FeaturesAPI/FeaturesAPI_GeometryCalculation.h @@ -29,9 +29,9 @@ class ModelAPI_Document; class ModelHighAPI_Selection; /// \ingroup CPPHighAPI -/// \brief get the basic properties (length, Surface area, volume) +/// \brief get the geometry calculation (length, Surface area, volume) FEATURESAPI_EXPORT -std::list getBasicProperties(const std::shared_ptr& thePart, - const ModelHighAPI_Selection& theObject); +std::list getGeometryCalculation(const std::shared_ptr& thePart, + const ModelHighAPI_Selection& theObject); #endif // FeaturesAPI_GeometryCalculation_H_ \ No newline at end of file diff --git a/src/FeaturesPlugin/CMakeLists.txt b/src/FeaturesPlugin/CMakeLists.txt index 83df4b493..13db6d7bb 100644 --- a/src/FeaturesPlugin/CMakeLists.txt +++ b/src/FeaturesPlugin/CMakeLists.txt @@ -700,5 +700,5 @@ ADD_UNIT_TESTS(TestExtrusion.py TestFillet1D_Wire_3.py TestFillet1D_Wire_4.py TestFillet1D_Wire_5.py - TestBasicProperties.py + TestGeometryCalculation.py ) diff --git a/src/FeaturesPlugin/FeaturesPlugin_GeometryCalculation.cpp b/src/FeaturesPlugin/FeaturesPlugin_GeometryCalculation.cpp index 0b928f24a..6a349920b 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_GeometryCalculation.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_GeometryCalculation.cpp @@ -29,7 +29,7 @@ #include #include -#include +#include #include @@ -84,12 +84,12 @@ void FeaturesPlugin_GeometryCalculation::attributeChanged(const std::string& the double aSurfArea; double aVolume; std::string aError; - if (!GetBasicProperties(aShape, - aTolerance, - aLength, - aSurfArea, - aVolume, - aError)) + if (!getGeometryCalculation(aShape, + aTolerance, + aLength, + aSurfArea, + aVolume, + aError)) setError("Error in Geometry calculation :" + aError); streamL << std::setprecision(14) << aLength; @@ -100,9 +100,9 @@ void FeaturesPlugin_GeometryCalculation::attributeChanged(const std::string& the aValues->setValue(2, aVolume); } - string(LENGTH_ID())->setValue("Length = " + streamL.str()); - string(AREA_ID())->setValue("Area = " + streamA.str()); - string(VOLUME_ID())->setValue("Volume = " + streamV.str()); + string(LENGTH_ID())->setValue(streamL.str()); + string(AREA_ID())->setValue(streamA.str()); + string(VOLUME_ID())->setValue(streamV.str()); } } diff --git a/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts b/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts index 2762a5519..7d1369496 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts +++ b/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts @@ -115,9 +115,13 @@ Angular Copy Copie angulaire + + Bounding box + Boite englobante + Geometry calculation - Calcul géométrique + Calcul de la géométrie Linear copy @@ -4331,7 +4335,36 @@ Pas pour la direction angulaire - + + + GeometryCalculation + + Geometry calculation + Calcul de la géometrie + + + + GeometryCalculation:main_object + + Object + Objet + + + + GeometryCalculation + + Length = + Longueur = + + + Area = + Surface = + + + Volume = + Volume = + + LinearCopy @@ -4458,31 +4491,6 @@ Deuxième direction - - - - GeometryCalculation - - Geometry calculation - Calcul géométrique - - - GeometryCalculation:Object - Objet - - - GeometryCalculation:Length - Longueur - - - GeometryCalculation:Area - Surface - - - GeometryCalculation:Volume - Volume - - Measurement diff --git a/src/FeaturesPlugin/Test/TestBasicProperties.py b/src/FeaturesPlugin/Test/TestBasicProperties.py deleted file mode 100644 index 2604c9ac3..000000000 --- a/src/FeaturesPlugin/Test/TestBasicProperties.py +++ /dev/null @@ -1,80 +0,0 @@ -# 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 -# - -""" - Unit test of ... -""" -#========================================================================= -# Initialization of the test -#========================================================================= - -import salome - -import os -import math - -from ModelAPI import * -from salome.shaper import model - - - -__updated__ = "2020-11-12" - - -#========================================================================= -# test basic properties -#========================================================================= -def test_Basic_properties(): - - model.begin() - file_path = os.path.join(os.getenv("DATA_DIR"),"Shapes","Brep","box1.brep") - partSet = model.moduleDocument() - Part_1 = model.addPart(partSet) - Part_1_doc = Part_1.document() - Import_1 = model.addImport(Part_1_doc,file_path) - model.do() - - myDelta = 1e-6 - Props = model.getBasicProperties(Part_1_doc,model.selection("SOLID", "box1_1")) - - print(" Basic Properties:") - print(" Wires length: ", Props[0]) - print(" Surface area: ", Props[1]) - print(" Volume : ", Props[2]) - - aReflength = 2400 - aReslength = Props[0] - assert (math.fabs(aReslength - aReflength) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aReflength, aReslength) - - aRefSurface = 240000 - aResSurface = Props[1] - assert (math.fabs(aResSurface - aRefSurface) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aRefSurface, aResSurface) - - aRefVolume = 8000000 - aResVolume = Props[2] - assert (math.fabs(aResVolume - aRefVolume) < myDelta), "The volume is wrong: expected = {0}, real = {1}".format(aRefVolume, aResVolume) - - -if __name__ == '__main__': - - test_Basic_properties() - - #========================================================================= - # End of test - #========================================================================= diff --git a/src/FeaturesPlugin/Test/TestGeometryCalculation.py b/src/FeaturesPlugin/Test/TestGeometryCalculation.py new file mode 100644 index 000000000..a3e1f1ec2 --- /dev/null +++ b/src/FeaturesPlugin/Test/TestGeometryCalculation.py @@ -0,0 +1,80 @@ +# 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 +# + +""" + Unit test of ... +""" +#========================================================================= +# Initialization of the test +#========================================================================= + +import salome + +import os +import math + +from ModelAPI import * +from salome.shaper import model + + + +__updated__ = "2020-11-12" + + +#========================================================================= +# test Geometry calculation +#========================================================================= +def test_Geometry_Calculation(): + + model.begin() + file_path = os.path.join(os.getenv("DATA_DIR"),"Shapes","Brep","box1.brep") + partSet = model.moduleDocument() + Part_1 = model.addPart(partSet) + Part_1_doc = Part_1.document() + Import_1 = model.addImport(Part_1_doc,file_path) + model.do() + + myDelta = 1e-6 + Props = model.getGeometryCalculation(Part_1_doc,model.selection("SOLID", "box1_1")) + + print(" Geometry calculation:") + print(" Wires length: ", Props[0]) + print(" Surface area: ", Props[1]) + print(" Volume : ", Props[2]) + + aReflength = 2400 + aReslength = Props[0] + assert (math.fabs(aReslength - aReflength) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aReflength, aReslength) + + aRefSurface = 240000 + aResSurface = Props[1] + assert (math.fabs(aResSurface - aRefSurface) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aRefSurface, aResSurface) + + aRefVolume = 8000000 + aResVolume = Props[2] + assert (math.fabs(aResVolume - aRefVolume) < myDelta), "The volume is wrong: expected = {0}, real = {1}".format(aRefVolume, aResVolume) + + +if __name__ == '__main__': + + test_Geometry_Calculation() + + #========================================================================= + # End of test + #========================================================================= diff --git a/src/FeaturesPlugin/doc/TUI_basic_properties.rst b/src/FeaturesPlugin/doc/TUI_basic_properties.rst deleted file mode 100644 index 8e6eeafa1..000000000 --- a/src/FeaturesPlugin/doc/TUI_basic_properties.rst +++ /dev/null @@ -1,12 +0,0 @@ - - .. _tui_basic_properties: - -Get basic properties -==================== - -.. literalinclude:: examples/basic_properties.py - :linenos: - :language: python - -:download:`Download this script ` - diff --git a/src/FeaturesPlugin/doc/TUI_geometry_calculation.rst b/src/FeaturesPlugin/doc/TUI_geometry_calculation.rst new file mode 100644 index 000000000..43a8f06a8 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_geometry_calculation.rst @@ -0,0 +1,12 @@ + + .. _tui_geometry_calculation: + +Get Geometry Calculation +======================== + +.. literalinclude:: examples/geometry_calculation.py + :linenos: + :language: python + +:download:`Download this script ` + diff --git a/src/FeaturesPlugin/doc/examples/basic_properties.py b/src/FeaturesPlugin/doc/examples/basic_properties.py deleted file mode 100644 index ab4284810..000000000 --- a/src/FeaturesPlugin/doc/examples/basic_properties.py +++ /dev/null @@ -1,13 +0,0 @@ -import os -from salome.shaper import model - -model.begin() -partSet = model.moduleDocument() -Part_1 = model.addPart(partSet) -Part_1_doc = Part_1.document() -Box_1 = model.addBox(Part_1_doc, 10, 10, 10) -properties = model.getBasicProperties(Part_1_doc,model.selection("SOLID", "Box_1_1")) -print(" length: ", properties[0]) -print(" area: ", properties[1]) -print(" volume: ", properties[2]) -model.end() \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/examples/geometry_calculation.py b/src/FeaturesPlugin/doc/examples/geometry_calculation.py new file mode 100644 index 000000000..e1e340a3b --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/geometry_calculation.py @@ -0,0 +1,13 @@ +import os +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Box_1 = model.addBox(Part_1_doc, 10, 10, 10) +properties = model.getGeometryCalculation(Part_1_doc,model.selection("SOLID", "Box_1_1")) +print(" length: ", properties[0]) +print(" area: ", properties[1]) +print(" volume: ", properties[2]) +model.end() \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/geometryCalculationFeature.rst b/src/FeaturesPlugin/doc/geometryCalculationFeature.rst index 1b0dea0bd..2487d5317 100644 --- a/src/FeaturesPlugin/doc/geometryCalculationFeature.rst +++ b/src/FeaturesPlugin/doc/geometryCalculationFeature.rst @@ -1,22 +1,22 @@ -.. |basicproperties.icon| image:: images/basicproperties.png +.. |GeometryCalculation.icon| image:: images/geometryCalculation.png Geometry calculation ==================== The **Geometry calculation** feature displays basic properties of sub-elements of a geometrical object (shape). -The basic properties displayed in the property panel are length, area and volume. +The geometry calculation displayed in the property panel are length, area and volume. **Apply** button does not generate any result and has the same effect as **Cancel** for this feature. -To display basic properties in the active part: +To display geometry calculation in the active part: #. select in the Main Menu *Inspection - > Geometry calculation* item or -#. click |basicproperties.icon| **Geometry calculation** button in the toolbar +#. click |GeometryCalculation.icon| **Geometry calculation** button in the toolbar -The basic properties can be displayed for a selected object in the property panel : +The geometry calculation can be displayed for a selected object in the property panel : -.. figure:: images/basicPropertiesPropertyPanel.png +.. figure:: images/geometryCalculationPropertyPanel.png :align: center Geometry calculation @@ -25,14 +25,14 @@ Input fields: - **Object** contains an object selected in 3D OCC viewer or object browser. -The basic properties displayed can be selected. +The geometry calculation displayed can be selected. **TUI Command**: -.. py:function:: model.GetBasicProperties(Part_doc, shape) +.. py:function:: model.getGeometryCalculation(Part_doc, shape) :param part: The current part object. :param object: A shape in format *model.selection("type", shape)*. :return: list containing length, area and volume. -**See Also** a sample TUI Script of :ref:`tui_basic_properties` operation. \ No newline at end of file +**See Also** a sample TUI Script of :ref:`tui_geometry_calculation` operation. \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png b/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png deleted file mode 100644 index 17f8cd7ef..000000000 Binary files a/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png and /dev/null differ diff --git a/src/FeaturesPlugin/doc/images/basicproperties.png b/src/FeaturesPlugin/doc/images/basicproperties.png deleted file mode 100644 index f46c0da7a..000000000 Binary files a/src/FeaturesPlugin/doc/images/basicproperties.png and /dev/null differ diff --git a/src/FeaturesPlugin/doc/images/geometryCalculation.png b/src/FeaturesPlugin/doc/images/geometryCalculation.png new file mode 100644 index 000000000..f46c0da7a Binary files /dev/null and b/src/FeaturesPlugin/doc/images/geometryCalculation.png differ diff --git a/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png b/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png new file mode 100644 index 000000000..17f8cd7ef Binary files /dev/null and b/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png differ diff --git a/src/FeaturesPlugin/geometry_calculation_widget.xml b/src/FeaturesPlugin/geometry_calculation_widget.xml index 73c6bcc07..55979378c 100644 --- a/src/FeaturesPlugin/geometry_calculation_widget.xml +++ b/src/FeaturesPlugin/geometry_calculation_widget.xml @@ -7,7 +7,7 @@ geometrical_selection="true"> -