Salome HOME
fibre neutre - début
authorGérald NICOLAS <gerald.nicolas@edf.fr>
Mon, 9 Jan 2023 17:02:29 +0000 (18:02 +0100)
committerGérald NICOLAS <gerald.nicolas@edf.fr>
Wed, 10 May 2023 08:35:32 +0000 (10:35 +0200)
13 files changed:
src/PythonAddons/PythonAddons_msg_en.ts
src/PythonAddons/PythonAddons_msg_fr.ts
src/PythonAddons/Test/TestmidSurface.py [new file with mode: 0755]
src/PythonAddons/addons_Features.py
src/PythonAddons/addons_Features.xml.in
src/PythonAddons/doc/addons_Features.rst
src/PythonAddons/doc/images/midSurface.png [new symlink]
src/PythonAddons/doc/images/midSurfacePanel.png [new file with mode: 0644]
src/PythonAddons/doc/images/midSurface_solide.png [new file with mode: 0644]
src/PythonAddons/doc/images/midSurface_solide_surfaces.png [new file with mode: 0644]
src/PythonAddons/doc/images/midSurface_surfaces.png [new file with mode: 0644]
src/PythonAddons/doc/midSurfaceFeature.rst [new file with mode: 0644]
src/PythonAddons/tests.set

index 2c39004e3e9230bc4f6a236f63cb970c6f9338d5..2e37fcc48d6e2d13552f8eb04bea3c9ce265f267 100644 (file)
     </message>
   </context>
 
+  <!-- midSurface -->
+  <context>
+    <name>midSurface</name>
+    <message>
+      <source>Fibre neutre</source>
+      <translation>Create midsurfaces</translation>
+    </message>
+    <message>
+      <source>Create</source>
+      <translation>Create midsurfaces</translation>
+    </message>
+  </context>
+  <context>
+    <name>midSurface:file_path</name>
+    <message>
+      <source>Import file</source>
+      <translation>CAD file of the object</translation>
+    </message>
+    <message>
+      <source>Select file</source>
+      <translation>Select the CAD file of the object</translation>
+    </message>
+  </context>
+
   <!-- pipeNetwork -->
   <context>
     <name>pipeNetwork</name>
index 01cebfc99a32e1fd41e267927f99d7286eff62d4..55b68ef3fd47c99355bfafb13aa9765ef9775b2a 100644 (file)
     </message>
   </context>
 
+  <!-- midSurface -->
+  <context>
+    <name>midSurface</name>
+    <message>
+      <source>Fibre neutre</source>
+      <translation>Créer des fibres neutres</translation>
+    </message>
+    <message>
+      <source>Create</source>
+      <translation>Créer des fibres neutres</translation>
+    </message>
+  </context>
+  <context>
+    <name>midSurface:file_path</name>
+    <message>
+      <source>Import file</source>
+      <translation>Fichier CAO de l'objet à traiter</translation>
+    </message>
+    <message>
+      <source>Select file</source>
+      <translation>Choisir le fichier de type CAO contenant l'objet à traiter</translation>
+    </message>
+  </context>
+
   <!-- pipeNetwork -->
   <context>
     <name>pipeNetwork</name>
diff --git a/src/PythonAddons/Test/TestmidSurface.py b/src/PythonAddons/Test/TestmidSurface.py
new file mode 100755 (executable)
index 0000000..9eed474
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright (C) 2014-2021  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
+#
+"""Test de la création de surfaces médianes"""
+
+__revision__ = "V01.03"
+
+import os
+
+from ModelAPI import *
+
+aSession = ModelAPI_Session.get()
+
+def getFilePath(fileName):
+    """Le fichier décrivant l'objet"""
+    path = os.path.join(os.getenv("SHAPER_ROOT_DIR"), "bin", "salome", "macros", "midSurface")
+    return os.path.join(path, fileName)
+
+theFile = getFilePath("midSurface.stp")
+theFile = getFilePath("Objet_1.stp")
+
+aSession.startOperation("Create part for mid surface")
+aPartFeature = aSession.moduleDocument().addFeature("Part")
+aSession.finishOperation()
+aPart = aSession.activeDocument()
+
+aSession.startOperation("Import file")
+aFeatureKind = "midSurface"
+anImportFeature = aPart.addFeature(aFeatureKind)
+aFieldName = "file_path"
+aFile = anImportFeature.string(aFieldName)
+aFile.setValue(theFile)
+aSession.finishOperation()
+
+#print ("Nombre de dossiers : {}".format(aPart.size("Folders")))
+
+assert(aPart.size("Folders") == 1), "Wrong number of folders: {}".format(aPart.size("Folders"))
index c1401c62e7b6a82ca35ffb91954386fbcbeeb5f3..8b710355614237881d5c1ee7625fd8f3a3f0f223 100755 (executable)
@@ -23,6 +23,7 @@ import ModelAPI
 from macros.rectangle.feature import SketchPlugin_Rectangle
 from macros.compoundVertices.feature import compoundVertices
 from macros.importParameters.feature import importParameters
+from macros.midSurface.feature import midSurface
 from macros.pipeNetwork.feature import pipeNetwork
 
 
@@ -49,6 +50,8 @@ class PythonFeaturesPlugin(ModelAPI.ModelAPI_Plugin):
             aFeature = compoundVertices().__disown__()
         elif theFeatureID == importParameters.ID():
             aFeature = importParameters().__disown__()
+        elif theFeatureID == midSurface.ID():
+            aFeature = midSurface().__disown__()
         elif theFeatureID == pipeNetwork.ID():
             aFeature = pipeNetwork().__disown__()
         else:
index a164800b9b24c75bca3988509c7852a21c43b203..0fdf1ea089af8a0969ba0a2e77b81e442ff10705 100644 (file)
@@ -2,5 +2,6 @@
   <source path="@ADDONS_FOLDER_PATH@/macros/rectangle/widget.xml"/>
   <source path="@ADDONS_FOLDER_PATH@/macros/compoundVertices/widget.xml"/>
   <source path="@ADDONS_FOLDER_PATH@/macros/importParameters/widget.xml"/>
+  <source path="@ADDONS_FOLDER_PATH@/macros/midSurface/widget.xml"/>
   <source path="@ADDONS_FOLDER_PATH@/macros/pipeNetwork/widget.xml"/>
 </plugin>
index aa463c383edde1b2c1c192be270e3dcd711b2cc0..6144313e828f34db176f70fe47c51a7695e23064 100644 (file)
@@ -1,4 +1,3 @@
-
 Python addons
 =============
 
@@ -19,7 +18,8 @@ Some examples of already created custom features are:
    :titlesonly:
    :maxdepth: 1
 
-   rectangleFeature.rst
    compoundVerticesFeature.rst
    importParametersFeature.rst
+   midSurfaceFeature.rst
+   rectangleFeature.rst
    pipeNetworkFeature.rst
diff --git a/src/PythonAddons/doc/images/midSurface.png b/src/PythonAddons/doc/images/midSurface.png
new file mode 120000 (symlink)
index 0000000..83c4848
--- /dev/null
@@ -0,0 +1 @@
+../../macros/midSurface/icons/midSurface.png
\ No newline at end of file
diff --git a/src/PythonAddons/doc/images/midSurfacePanel.png b/src/PythonAddons/doc/images/midSurfacePanel.png
new file mode 100644 (file)
index 0000000..91e15d2
Binary files /dev/null and b/src/PythonAddons/doc/images/midSurfacePanel.png differ
diff --git a/src/PythonAddons/doc/images/midSurface_solide.png b/src/PythonAddons/doc/images/midSurface_solide.png
new file mode 100644 (file)
index 0000000..be67564
Binary files /dev/null and b/src/PythonAddons/doc/images/midSurface_solide.png differ
diff --git a/src/PythonAddons/doc/images/midSurface_solide_surfaces.png b/src/PythonAddons/doc/images/midSurface_solide_surfaces.png
new file mode 100644 (file)
index 0000000..47ca26e
Binary files /dev/null and b/src/PythonAddons/doc/images/midSurface_solide_surfaces.png differ
diff --git a/src/PythonAddons/doc/images/midSurface_surfaces.png b/src/PythonAddons/doc/images/midSurface_surfaces.png
new file mode 100644 (file)
index 0000000..73d16ee
Binary files /dev/null and b/src/PythonAddons/doc/images/midSurface_surfaces.png differ
diff --git a/src/PythonAddons/doc/midSurfaceFeature.rst b/src/PythonAddons/doc/midSurfaceFeature.rst
new file mode 100644 (file)
index 0000000..5ca0476
--- /dev/null
@@ -0,0 +1,74 @@
+.. _create_midSurface:
+.. |midSurface.icon|    image:: images/midSurface.png
+
+Fibre neutre
+============
+
+FIbre neutre est une macro fonction qui ne peut pas être éditée après usage.
+Elle permet de créer les surfaces médianes à des solides minces, encore appelées fibres neutres (mid surfaces en anglais).
+
+Pour créer les fibres neutres d'un objet :
+
+#. Choisir dans le menu principal *Macros - > Créer des fibres neutres* item  ou
+#. Cliquer le bouton |midSurface.icon| **Fibre neutre** dans la barre des macros.
+
+Le menu suivant apparaît :
+
+.. figure:: images/midSurfacePanel.png
+   :align: center
+   :alt: Menu de création des fibres neutres
+
+   Fibre neutre
+
+On doit fournir le fichier de type **CAO** qui contient l'objet. On retrouve dans l'arbre d'étude du module SHAPER cet objet de départ et un dossier contenant toutes les surfaces correspondant à des fibres neutres. Son nom est celui de l'objet de départ, suffixé par **_M**.
+
+.. note::
+  Les surfaces ainsi créées ne sont pas reliées entre elles. Il reste ensuite un travail de jonction à effectuer.
+
+Plus :
+""""""
+
+Le programme crée les surfaces sous réserve que pour le solide envisagé, il a réussi à trouver deux faces \
+de tailles proches et supérieures aux autres faces du solide pour des polyèdres ou \
+s'il a reconnu des formes canoniques.
+Il crée alors une surface au milieu de ces deux grandes faces. Cette face est coloriée en vert.
+
+Si les 2 faces les plus grandes sont planes mais que leurs tailles ne sont pas identiques, le programme \
+crée néanmoins une face basée sur la plus grande de ces faces. Un message est émis et cette face médiane \
+est coloriée en bleu. Le volume correspondant n'est pas détruit et est colorié en rouge.
+
+On sait traiter les faces :
+
+- planes
+- cylindriques
+- sphériques
+- toriques
+- coniques
+
+Exemple :
+"""""""""
+
+A partir d'un ensemble de 4 solides de forme torique :
+
+.. figure:: images/midSurface_solide.png
+   :align: center
+   :alt: Les solides à traiter
+
+   Solides à traiter
+
+on obtient 4 surfaces indépendantes :
+
+.. figure:: images/midSurface_surfaces.png
+   :align: center
+   :alt: Les surfaces créées
+
+   Surfaces
+
+.. figure:: images/midSurface_solide_surfaces.png
+   :align: center
+   :alt: Exemple de surfaces dans les solides
+
+   Surfaces dans les solides
+
+
+
index 0a412fb514a4f60566a086159b921d2bf04d6b87..62f6853ce4b258df23bba94f7278a35414d2e206 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2021  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
@@ -22,6 +22,7 @@ SET(TEST_NAMES
   TestRectangleCentered.py
   TestcompoundVertices.py
   TestimportParameters.py
+  TestmidSurface.py
   TestpipeNetwork_2par2.py
   TestpipeNetwork_parligne.py
 )