</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>
</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>
--- /dev/null
+# 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"))
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
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:
<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>
-
Python addons
=============
:titlesonly:
:maxdepth: 1
- rectangleFeature.rst
compoundVerticesFeature.rst
importParametersFeature.rst
+ midSurfaceFeature.rst
+ rectangleFeature.rst
pipeNetworkFeature.rst
--- /dev/null
+../../macros/midSurface/icons/midSurface.png
\ No newline at end of file
--- /dev/null
+.. _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
+
+
+
-# 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
TestRectangleCentered.py
TestcompoundVertices.py
TestimportParameters.py
+ TestmidSurface.py
TestpipeNetwork_2par2.py
TestpipeNetwork_parligne.py
)