From e149accc1a156b03700da7bd0444b36d53b9874b Mon Sep 17 00:00:00 2001 From: Nicolas RECHATIN Date: Mon, 2 Aug 2021 11:37:03 +0200 Subject: [PATCH] doc Adding doc for Volume --- src/OperaPlugin/OperaPlugin_Plugin.h | 2 +- src/OperaPlugin/OperaPlugin_Volume.h | 15 +- src/OperaPlugin/OperaPlugin_msg_fr.ts | 407 +------------------ src/OperaPlugin/doc/OperaPlugin.rst | 13 + src/OperaPlugin/doc/addvolumeFeature.rst | 136 ------- src/OperaPlugin/doc/example/volume.py | 12 + src/OperaPlugin/doc/images/Volume1.png | Bin 0 -> 4249 bytes src/OperaPlugin/doc/images/Volume_button.png | Bin 0 -> 595 bytes src/OperaPlugin/doc/images/Volume_create.png | Bin 0 -> 6499 bytes src/OperaPlugin/doc/volumeFeature.rst | 39 ++ 10 files changed, 70 insertions(+), 554 deletions(-) create mode 100644 src/OperaPlugin/doc/OperaPlugin.rst delete mode 100644 src/OperaPlugin/doc/addvolumeFeature.rst create mode 100644 src/OperaPlugin/doc/example/volume.py create mode 100644 src/OperaPlugin/doc/images/Volume1.png create mode 100644 src/OperaPlugin/doc/images/Volume_button.png create mode 100644 src/OperaPlugin/doc/images/Volume_create.png create mode 100644 src/OperaPlugin/doc/volumeFeature.rst diff --git a/src/OperaPlugin/OperaPlugin_Plugin.h b/src/OperaPlugin/OperaPlugin_Plugin.h index b4fd54ca7..a68e29f25 100644 --- a/src/OperaPlugin/OperaPlugin_Plugin.h +++ b/src/OperaPlugin/OperaPlugin_Plugin.h @@ -26,7 +26,7 @@ /**\class OperaPlugin_Plugin * \ingroup Plugins - * \brief The main class managing Primitive Features as plugins. + * \brief The main class managing Opera Features as plugins. */ class OPERAPLUGIN_EXPORT OperaPlugin_Plugin : public ModelAPI_Plugin { diff --git a/src/OperaPlugin/OperaPlugin_Volume.h b/src/OperaPlugin/OperaPlugin_Volume.h index a31e92176..75dcf614f 100644 --- a/src/OperaPlugin/OperaPlugin_Volume.h +++ b/src/OperaPlugin/OperaPlugin_Volume.h @@ -29,17 +29,15 @@ class ModelAPI_ResultBody; /**\class OperaPlugin_Volume * \ingroup Plugins - * \brief Feature for creation of a box primitive using various methods. + * \brief Feature for creation of a Volume using solids. * - * Box creates a cuboid - Parallelepiped with 6 rectangular faces. It can be built via three - * methods : using two points that define a diagonal, a point that define a center and 3 lengths - * that define the half-lengths on X, Y and Z-axes, or using 3 lengths that define the - * rectangular dimensions. + * Volume creates Volume object - This volume takes selected solids shape + * and transform the result to a volume with a medium for OPERA. */ class OperaPlugin_Volume : public ModelAPI_Feature { public: - /// Box kind + /// Volume kind inline static const std::string& ID() { static const std::string MY_VOLUME_ID("Volume"); @@ -72,11 +70,6 @@ class OperaPlugin_Volume : public ModelAPI_Feature /// Use plugin manager for features creation OperaPlugin_Volume(); - - private: - // - void loadNamingDS(std::shared_ptr theBoxAlgo, - std::shared_ptr theResultBox); }; #endif diff --git a/src/OperaPlugin/OperaPlugin_msg_fr.ts b/src/OperaPlugin/OperaPlugin_msg_fr.ts index 22d0de57f..fe1f1dd05 100644 --- a/src/OperaPlugin/OperaPlugin_msg_fr.ts +++ b/src/OperaPlugin/OperaPlugin_msg_fr.ts @@ -1,408 +1,3 @@ - - - - workshop - - Primitives - Primitives - - - Box - Boîte - - - Cone - Cône - - - Cylinder - Cylindre - - - Sphere - Sphère - - - Torus - Tore - - - - - Box - - Box - Boîte - - - Create a box - Créer une boîte - - - - Box:CreationMethod - - By dimensions - Par dimensions - - - By two points - Par deux points - - - - Box:FirstPoint - - First point - Premier point - - - Select a first point - Sélectionnez un premier point - - - - Box:FirstPoint - - Attribute "%1" is not initialized. - Sélectionnez un premier point. - - - - Box:SecondPoint - - Attribute "%1" is not initialized. - Sélectionnez un deuxième point. - - - - Box:SecondPoint - - Second point - Deuxième point - - - Select a second point - Sélectionnez un deuxième point - - - - Box:dx - - DX - DX - - - Dimension in X - Dimension en X - - - - Box:dy - - DY - DY - - - Dimension in Y - Dimension en Y - - - - Box:dz - - DZ - DZ - - - Dimension in Z - Dimension en Z - - - - - Cone - - Cone - Cône - - - Create a Cone - Créer un cône - - - - Cone:axis - - Select the axis of the cone - Sélectionnez l'axe du cône - - - Attribute "%1" is not initialized. - Sélectionnez l'axe du cône - - - axis - axe - - - - Cone:base_point - - Select the center of the base of the cone - Sélectionnez le centre de la base du cône - - - base_point - point de base - - - - Cone:base_radius - - Base radius - Rayon de la base - - - Enter the base radius of the cone - Entrez le rayon de base du cône - - - - Cone:height - - Enter the height of the cone - Entrez la hauteur du cône - - - height - hauteur - - - - Cone:top_radius - - Enter the top radius of the cone - Entrez le rayon supérieur du cône - - - Top radius - Rayon supérieur - - - - Cone:base_point - - Attribute "%1" is not initialized. - Sélectionnez le centre de la base du cône. - - - - Cone:base_point:GeomValidators_ConstructionComposite - - The result is empty - Le résultat est vide - - - - - Cylinder - - Create a cylinder - Créer un cylindre - - - Cylinder - Cylindre - - - - Cylinder:CreationMethod - - Cylinder - Cylindre - - - Portion of cylinder - Portion de cylindre - - - - Cylinder:angle - - Enter the angle of the portion of the cylinder - Entrez l'angle de la portion du cylindre - - - angle - angle - - - - Cylinder:axis - - Select the axis of the cylinder - Sélectionnez l'axe du cylindre. - - - Attribute "%1" is not initialized. - Sélectionnez l'axe du cylindre. - - - axis - axe - - - - Cylinder:base_point - - Select the center of the base of the cylinder - Sélectionnez le centre de la base du cylindre - - - base_point - point de base - - - - Cylinder:height - - Enter the height of the cylinder - Entrez la hauteur du cylindre - - - height - hauteur - - - - Cylinder:radius - - Enter the radius of the cylinder - Entrez le rayon du cylindre - - - radius - rayon - - - - Cylinder:base_point - - Attribute "%1" is not initialized. - Sélectionnez le centre de la base du cylindre. - - - - Cylinder:base_point:GeomValidators_ConstructionComposite - - The result is empty - Le résultat est vide - - - - - Sphere - - Create a sphere - Créer une sphère - - - Sphere - Sphère - - - - Sphere:center_point - - Center point - Point central - - - Select a center point - Sélectionnez un point central. - - - Attribute "%1" is not initialized. - Sélectionnez un point central. - - - - Sphere:radius - - Enter a radius - Entrez un rayon - - - Radius - Rayon - - - - - Torus - - Create a Torus - Créer un tore - - - Torus - Tore - - - - Torus:axis - - Select the axis of the torus - Sélectionnez l'axe du tore. - - - Attribute "%1" is not initialized. - Sélectionnez l'axe du tore. - - - axis - axe - - - - Torus:base_point - - Select the center of the torus - Sélectionnez le centre du tore. - - - Attribute "%1" is not initialized. - Sélectionnez le centre du tore. - - - base_point - point de base - - - - Torus:radius - - Enter the radius of the torus - Entrez le rayon du tore - - - Radius - Rayon - - - - Torus:ring_radius - - Enter the ring radius of the torus - Entrez le rayon de l'anneau du tore - - - Ring radius - Rayon de l'anneau - - - - + diff --git a/src/OperaPlugin/doc/OperaPlugin.rst b/src/OperaPlugin/doc/OperaPlugin.rst new file mode 100644 index 000000000..41da0e59a --- /dev/null +++ b/src/OperaPlugin/doc/OperaPlugin.rst @@ -0,0 +1,13 @@ + +.. _operaPlugin: + +Opera plug-in +================== + +The Opera plug-in contains features for creation of Opera items. Result of each feature is a solid. The plug-in includes the following features: + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + volumeFeature.rst diff --git a/src/OperaPlugin/doc/addvolumeFeature.rst b/src/OperaPlugin/doc/addvolumeFeature.rst deleted file mode 100644 index e91466c20..000000000 --- a/src/OperaPlugin/doc/addvolumeFeature.rst +++ /dev/null @@ -1,136 +0,0 @@ -.. |Box_button.icon| image:: images/Box_button.png - -Box -=== - -Box feature creates a box solid. - -To create a Box in the active part: - -#. select in the Main Menu *Primitives - > Box* item or -#. click |Box_button.icon| **Box** button in the toolbar: - -There are 3 algorithms for creation of a Box: - -.. figure:: images/box_dxyz_32x32.png - :align: left - :height: 24px - -**By dimensions** - -.. figure:: images/box_2pt_32x32.png - :align: left - :height: 24px - -**By two points** - -.. figure:: images/box_pt_dxyz_32x32.png - :align: left - :height: 24px - -**By coordinates of a point and dimensions** - --------------------------------------------------------------------------------- - -By dimensions -------------- - -Box is created by dimensions along X, Y, Z axis starting from the origin. - -.. figure:: images/Box_dimensions.png - :align: center - -Input fields: - -- **DX**, **DY**, **DZ** define dimensions of the box along the corresponding coordinate axes. - -**TUI Command**: - -.. py:function:: model.addBox(Part_doc, DX, DY, DZ) - - :param part: The current part object. - :param real: Size along X. - :param real: Size along Y. - :param real: Size along Z. - :return: Result object. - -Result -"""""" - -A solid box based on the origin of coordinates and with edges parallel to the coordinate axes. - -.. figure:: images/Box1.png - :align: center - -**See Also** a sample TUI Script of a :ref:`tui_create_boxdim` operation. - -By two points -------------- - -Box is created by two points of the box diagonal. - -.. figure:: images/Box_2points.png - :align: center - -Input fields: - -- **Point 1** and **Point 2** define diagonal points of the box selected in 3D OCC viewer or object browser. - -**TUI Command**: - -.. py:function:: model.addBox(Part_doc, point1, point2) - - :param part: The current part object. - :param object: First vertex of diagonal. - :param object: Second vertex of diagonal. - :return: Result object. - -Result -"""""" - -A solid box based on two points and with edges parallel to the coordinate axes. - -.. figure:: images/Box2.png - :align: center - - Created boxes - -**See Also** a sample TUI Script of :ref:`tui_create_boxpnt` operation. - -By coordinates of a point and dimensions ----------------------------------------- - -Box is created by dimensions along X, Y, Z axis starting from the point of coordinates (x,y,z). - -.. figure:: images/Box_ptAndDims.png - :align: center - -Input fields: - -- **OX**, **OY**, **OZ** define coordinates of the center of box. -- **DX**, **DY**, **DZ** define dimensions (hafl length) of the box along the corresponding coordinate axes. - -**TUI Command**: - -.. py:function:: model.addBox(Part_doc, OX, OY, OZ, DX, DY, DZ) - - :param part: The current part object. - :param real: X coordinate of the center point - :param real: Y coordinate of the center point - :param real: Z coordinate of the center point - :param real: Half size along X. - :param real: Half size along Y. - :param real: Half size along Z. - :return: Result object. - -Result -"""""" - -A solid box whose point coordinates are the center and the dimensions are half lengths on one side and the other on the axes relative to the center. - -.. figure:: images/Box3.png - :align: center - - Created boxes - -**See Also** a sample TUI Script of :ref:`tui_create_boxptdim` operation. diff --git a/src/OperaPlugin/doc/example/volume.py b/src/OperaPlugin/doc/example/volume.py new file mode 100644 index 000000000..a21ef5396 --- /dev/null +++ b/src/OperaPlugin/doc/example/volume.py @@ -0,0 +1,12 @@ +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) +Volume_1 = model.addVolume(Part_1_doc, "Air", [model.selection("SOLID", "Box_1_1")]) + +model.do() +model.end() diff --git a/src/OperaPlugin/doc/images/Volume1.png b/src/OperaPlugin/doc/images/Volume1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8a1d2a8fdcf09faba5686b4aded630ca433e1e GIT binary patch literal 4249 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�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 Volume* item or +#. click |Volume_button.icon| **Volume** button in the toolbar: + +-------------------------------------------------------------------------------- + +by Medium and Solids +------------- + +Volume is created by a Medium value and a list of solids + +.. figure:: images/Volume_create.png + :align: center + +Input fields: + +- **MEDIUM**, **VOLUME_LIST** define medium and shapes of the volume. + +**TUI Command**: + +.. py:function:: model.addVolume(Part_doc, MEDIUM, VOLUME_LIST) + + :param part: The current part object. + :param real: Medium name. + :param real: List of solids. + :return: Result object. + +Result +"""""" + +One solid for each selected solid in the volume list with according medium + +.. figure:: images/Volume1.png + :align: center -- 2.39.2