]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
[bos #42003][EDF] (2024) Shortcuts improvements
authordish <dmitrii.shvydkoi@opencascade.com>
Thu, 12 Sep 2024 05:26:19 +0000 (05:26 +0000)
committerAnthony Geay <anthony.geay@edf.fr>
Thu, 7 Nov 2024 08:12:12 +0000 (09:12 +0100)
Multiple changes:
    1) Make action_assets.json compliant with current version of SUIT_ShortcutMgr; Place actions in folders;
    2) Make undo/redo meta-actions;
    3) Update default shortcut preference file;
    3) Fix action names from "Primitives" folder;
    4) Change name of shortcut section in preference files;
    5) Remove useless entries from test.squish/shared/testdata/SalomeApp.xml.

13 files changed:
src/Config/Config_FeatureReader.cpp
src/ModuleBase/ModuleBase_ActionInfo.cpp
src/ModuleBase/ModuleBase_ActionInfo.h
src/ModuleBase/ModuleBase_ListView.cpp
src/PrimitivesPlugin/PrimitivesPlugin_msg_fr.ts
src/PrimitivesPlugin/plugin-Primitives.xml
src/SHAPERGUI/SHAPERGUI.cpp
src/SHAPERGUI/SHAPERGUI.h
src/SHAPERGUI/resources/LightApp.xml.in
src/SHAPERGUI/resources/action_assets.json
src/XGUI/XGUI_MenuMgr.cpp
src/XGUI/XGUI_Workshop.cpp
test.squish/shared/testdata/SalomeApp.xml

index f4f773095725c6cc9ccc4303ea5ac4f6f0cf8250..2ddbeaad7fb76d907cbfdb2e7db06e53f1fa7532 100644 (file)
@@ -211,7 +211,7 @@ void Config_FeatureReader::fillFeature(xmlNodePtr theFeatureNode,
   bool isGroupToolbar = false;
   if (isGroupToolbarId.length() > 0)
     isGroupToolbar = (isGroupToolbarId == "yes");
-  outFeatureMessage->setGroupId(aGroupName);
+  outFeatureMessage->setGroupId(aGroupName); // Is it ID or name? ID must be language-independent.
   outFeatureMessage->setWorkbenchId(aWBNName);
   outFeatureMessage->setToolBarId(isGroupToolbar ? aGroupName : aWBNName);
 
index 8cefcf0f953c2e2efad583510740005e820376ab..59e24e300723ed61add4db12c6ac66e1d764e5cb 100644 (file)
 #include <ModuleBase_IconFactory.h>
 #include <ModuleBase_Tools.h>
 
+
+// #define ModuleBase_ActionInfo_DBG
+#ifdef ModuleBase_ActionInfo_DBG
+#include <iostream>
+#endif //ModuleBase_ActionInfo_DBG
+
 ModuleBase_ActionInfo::ModuleBase_ActionInfo()
 {
   initDefault();
@@ -39,10 +45,6 @@ ModuleBase_ActionInfo::ModuleBase_ActionInfo(const QIcon & theIcon, const QStrin
   text = theText;
 }
 
-ModuleBase_ActionInfo::~ModuleBase_ActionInfo()
-{
-}
-
 void ModuleBase_ActionInfo::initFrom(QAction* theAction)
 {
   // By convenience, QAction for a feature keeps feature's id as data (QVariant);
@@ -61,11 +63,17 @@ void ModuleBase_ActionInfo::initFrom(QAction* theAction)
   // whatsThis = theAction->whatsThis();
   shortcut = theAction->shortcut();
   font = theAction->font();
+
+  #ifdef ModuleBase_ActionInfo_DBG
+    std::wcout << "ModuleBase_ActionInfo::initFrom(QAction*). State after: " << toString().toStdWString() << std::endl;
+  #endif
 }
 
 void ModuleBase_ActionInfo::initFrom(std::shared_ptr<Config_FeatureMessage> theMessage)
 {
   id = QString::fromStdString(theMessage->id());
+  workbenchID = QString::fromStdString(theMessage->workbenchId());
+
   iconFile = QString::fromStdString(theMessage->icon());
   if (!iconFile.isEmpty()) {
     icon = ModuleBase_IconFactory::loadIcon(iconFile);
@@ -81,6 +89,10 @@ void ModuleBase_ActionInfo::initFrom(std::shared_ptr<Config_FeatureMessage> theM
   checkable = theMessage->isUseInput();
   // If Feature requires modal Dialog box for input
   modal = theMessage->isModal();
+
+  #ifdef ModuleBase_ActionInfo_DBG
+    std::wcout << "ModuleBase_ActionInfo::initFrom(std::shared_ptr<Config_FeatureMessage>). State after: " << toString().toStdWString() << std::endl;
+  #endif
 }
 
 void ModuleBase_ActionInfo::initDefault()
@@ -100,3 +112,39 @@ void ModuleBase_ActionInfo::initDefault()
   shortcut = QKeySequence();
   font = QFont();
 }
+
+QString ModuleBase_ActionInfo::toString() const
+{
+  QString res = "ModuleBase_ActionInfo {\n";
+  res += "\tid: \"" + id + "\";\n";
+
+  if (!workbenchID.isEmpty())
+    res += "\tworkbenchID: \"" + workbenchID + "\";\n";
+
+  res += QString("\tcheckable: ") + (checkable ? "+" : "-") +
+  "; checked: " + (checked ? "+" : "-") +
+  "; enabled: " + (enabled ? "+" : "-") +
+  "; visible: " + (visible ? "+" : "-") +
+  "; modal: " + (modal ? "+" : "-") + ";\n";
+
+  if (!text.isEmpty())
+    res += "\ttext: \"" + text + "\";\n";
+
+  if (!iconText.isEmpty())
+    res += "\ticonText: \"" + iconText + "\";\n";
+
+  if (!iconFile.isEmpty())
+    res += "\ticonFile: \"" + iconFile + "\";\n";
+
+  if (!toolTip.isEmpty())
+    res += "\ttoolTip: \"" + toolTip + "\";\n";
+
+  if (!toolBar.isEmpty())
+    res += "\ttoolBar: \"" + toolBar + "\";\n";
+
+  if (!shortcut.isEmpty())
+    res += "\tshortcut: \"" + shortcut.toString() + "\";\n";
+
+  res += "};\n";
+  return res;
+}
index db5c8ae797fc531977aa4484d0340979c499f953..2413ced86ee99f311bddda22688c5f59985dfe28 100644 (file)
@@ -36,6 +36,8 @@
 struct MODULEBASE_EXPORT ModuleBase_ActionInfo
 {
   QString id; //!< action's (command) id
+  QString workbenchID; //!< Workbench's language-independent ID.
+
   bool checkable; //!< action's checkable state
   bool checked; //!< action's checked state
   bool enabled; //!< action's enabled state
@@ -61,7 +63,7 @@ struct MODULEBASE_EXPORT ModuleBase_ActionInfo
   ModuleBase_ActionInfo(const QString &text);
   //! Initializes structure with default values, except icon and text
   ModuleBase_ActionInfo(const QIcon &icon, const QString &text);
-  virtual ~ModuleBase_ActionInfo();
+  virtual ~ModuleBase_ActionInfo() = default;
 
   //! Fills itself with info from given \param theAction
   void initFrom(QAction* theAction);
@@ -71,6 +73,10 @@ struct MODULEBASE_EXPORT ModuleBase_ActionInfo
  protected:
   //! Initializes structure with default values, like QAction()
   void initDefault();
+
+public:
+  //! For debug purposes.
+  QString toString() const;
 };
 
 typedef ModuleBase_ActionInfo ActionInfo;
index d0a5255d480239e4e16ab12253b1c7e255b49ed5..e35bc4a5e8b337d7fa4a20abfe74219897537897 100644 (file)
@@ -48,7 +48,7 @@ ModuleBase_ListView::ModuleBase_ListView(QWidget* theParent, const QString& theO
                           theParent, this, SLOT(onCopyItem()));
   myCopyAction->setEnabled(false);
   myListControl->addAction(myCopyAction);
-  SUIT_ShortcutMgr::get()->registerAction("SHAPER/#TOT_DESK_EDIT_COPY", myCopyAction);
+  SUIT_ShortcutMgr::get()->registerAction("SHAPER/Edit/#Clipboard_Copy", myCopyAction);
 
   myDeleteAction = ModuleBase_Tools::createAction(QIcon(":pictures/delete.png"), tr("Delete"),
                           theParent, this, SIGNAL(deleteActionClicked()));
index aee9f30b1c660794a41fe03033c2be1f01131804..8a3fb8ba30d8db8e4986d79c0285e0ca27b443d1 100644 (file)
       <translation>Cône</translation>
     </message>
     <message>
-      <source>Create a Cone</source>
+      <source>Create a cone</source>
       <translation>Créer un cône</translation>
     </message>
   </context>
   <context>
     <name>Torus</name>
     <message>
-      <source>Create a Torus</source>
+      <source>Create a torus</source>
       <translation>Créer un tore</translation>
     </message>
     <message>
   <context>
     <name>Tube</name>
     <message>
-      <source>Create a Tube
-      </source>
-      <translation>Créer un tube</translation>
-    </message>
-    <message>
-      <source>Create a Tube</source>
+      <source>Create a tube</source>
       <translation>Créer un tube</translation>
     </message>
     <message>
index f743fef211e6d05d204d8d647333b42fb9d3ea19..48d584cc36a748a50e051069c81cc204943e993f 100644 (file)
       </feature>
     </group>
     <group id="Primitives">
-      <feature id="Torus" title="Torus" tooltip="Create a Torus" icon="icons/Primitives/torus.png"
+      <feature id="Torus" title="Torus" tooltip="Create a torus" icon="icons/Primitives/torus.png"
                helpfile="torusFeature.html">
         <source path="torus_widget.xml"/>
       </feature>
     </group>
     <group id="Primitives">
-      <feature id="Cone" title="Cone" tooltip="Create a Cone" icon="icons/Primitives/cone.png"
+      <feature id="Cone" title="Cone" tooltip="Create a cone" icon="icons/Primitives/cone.png"
                helpfile="coneFeature.html">
         <source path="cone_widget.xml"/>
       </feature>
     </group>
     <group id="Primitives">
-      <feature id="Tube" title="Tube" tooltip="Create a Tube" icon="icons/Primitives/tube.png"
+      <feature id="Tube" title="Tube" tooltip="Create a tube" icon="icons/Primitives/tube.png"
                helpfile="tubeFeature.html">
         <source path="tube_widget.xml"/>
       </feature>
index b920afc425d94ee42e3956317fd3dd78ee296774..17c8b0aa5cae7e43c218f704fd20b3776e17eeb1 100644 (file)
@@ -715,42 +715,33 @@ SHAPERGUI_OCCSelector* SHAPERGUI::createSelector(SUIT_ViewManager* theMgr)
   }
   return 0;
 }
-
 //******************************************************
+
 CAM_DataModel* SHAPERGUI::createDataModel()
 {
   return new SHAPERGUI_DataModel(this);
 }
-
-QAction* SHAPERGUI::addFeature(const QString& theWBName, const ActionInfo& theInfo,
-                               const bool isAddSeparator)
-{
-  return addFeature(theWBName,
-                    theInfo.toolBar,
-                    theInfo.id,
-                    theInfo.text,
-                    //Issue #650: in the SALOME mode the tooltip should be same as text
-                    theInfo.text,
-                    theInfo.icon,
-                    theInfo.shortcut,
-                    theInfo.checkable,
-                    isAddSeparator,
-                    theInfo.toolTip);
-}
-
 //******************************************************
-QAction* SHAPERGUI::addFeature(const QString& theWBName, const QString& theTBName,
-                               const QString& theId, const QString& theTitle, const QString& theTip,
-                               const QIcon& theIcon, const QKeySequence& theKeys,
-                               bool isCheckable, const bool isAddSeparator,
-                               const QString& theStatusTip)
-{
+
+QAction* SHAPERGUI::addFeature(
+  const QString& theWorkBenchID,
+  const QString& theWorkBenchName,
+  const QString& theToolBarName,
+  const QString& theActionIdLastToken,
+  const QString& theActionTitle,
+  const QString& theActionToolTip,
+  const QString& theActionStatusTip,
+  const QIcon& theActionIcon,
+  const QKeySequence& theKS = QKeySequence(),
+  const bool theIsCheckable = false,
+  const bool theAddSeparator = false
+) {
   static QString aLastTool = "";
   static int aNb = 0;
   if (aLastTool.isEmpty())
-    aLastTool = theWBName;
-  else if (theWBName != aLastTool) {
-    aLastTool = theWBName;
+    aLastTool = theWorkBenchName;
+  else if (theWorkBenchName != aLastTool) {
+    aLastTool = theWorkBenchName;
     if (aNb > 20) {
       desktop()->addToolBarBreak();
       aNb = 0;
@@ -762,18 +753,20 @@ QAction* SHAPERGUI::addFeature(const QString& theWBName, const QString& theTBNam
   myActionsList.append(aId);
   SUIT_Desktop* aDesk = application()->desktop();
   int aKeys = 0;
-  for (int i = 0; i < theKeys.count(); i++)
-    aKeys += theKeys[i];
+  for (int i = 0; i < theKS.count(); i++)
+    aKeys += theKS[i];
 
-  QAction* aAction = createAction(aId, theTip, theIcon, theTitle, theTip, aKeys, aDesk,
-                                  isCheckable, nullptr, nullptr, theId);
-  aAction->setStatusTip(theStatusTip);
+  const QString inModuleActionID = theWorkBenchID.isEmpty() ? theActionIdLastToken : theWorkBenchID + "/" + theActionIdLastToken ;
+  QAction* aAction = createAction(aId, theActionToolTip, theActionIcon, theActionTitle, theActionToolTip, theKS,
+                                  aDesk, theIsCheckable, nullptr, nullptr, inModuleActionID);
 
-  aAction->setData(theId);
+  aAction->setStatusTip(theActionStatusTip);
+
+  aAction->setData(theActionIdLastToken);
 
-  int aWBMenu = createMenu(theWBName, -1, -1, 30/*10-Window, 1000 - Help*/);
+  const int aWBMenu = createMenu(theWorkBenchName, -1, -1, 30/*10-Window, 1000 - Help*/);
 
-  if( theId == "PointCoordinates" )
+  if( theActionIdLastToken == "PointCoordinates" )
     createMenu(separator(), aWBMenu);
 
 #ifdef _DEBUG
@@ -781,22 +774,62 @@ QAction* SHAPERGUI::addFeature(const QString& theWBName, const QString& theTBNam
 #endif
     createMenu(aId, aWBMenu);
 
-  if (isAddSeparator)
+  if (theAddSeparator)
     createMenu(separator(), aWBMenu);
 
-  int aWBTool = createTool(theTBName, theTBName);
+  int aWBTool = createTool(theToolBarName, theToolBarName);
 #ifdef _DEBUG
   int aToolId =
 #endif
     createTool(aId, aWBTool);
-  registerCommandToolbar(theTBName, aId);
-  if (isAddSeparator) {
+  registerCommandToolbar(theToolBarName, aId);
+  if (theAddSeparator) {
     createTool(separator(), aWBTool);
-    registerCommandToolbar(theTBName, -1);
+    registerCommandToolbar(theToolBarName, -1);
   }
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(logShaperGUIEvent()));
   return aAction;
 }
+//******************************************************
+
+QAction* SHAPERGUI::addFeature(const QString& theWorkBenchName, const ActionInfo& theInfo, const bool theAddSeparator)
+{
+  return addFeature(
+    theInfo.workbenchID,
+    theWorkBenchName,
+    theInfo.toolBar,
+    theInfo.id,
+    theInfo.text,
+    theInfo.text, //Issue #650: in the SALOME mode the tooltip should be same as text.
+    theInfo.toolTip,
+    theInfo.icon,
+    theInfo.shortcut,
+    theInfo.checkable,
+    theAddSeparator
+  );
+}
+//******************************************************
+
+QAction* SHAPERGUI::addFeature(const QString& theWBName, const QString& theTBName,
+                               const QString& theIdLastToken, const QString& theTitle, const QString& theTip,
+                               const QIcon& theIcon, const QKeySequence& theKeySequence = QKeySequence(),
+                               const bool theIsCheckable = false, const bool theAddSeparator = false,
+                               const QString& theStatusTip = "")
+{
+  return addFeature(
+    "" /*theWorkBenchID*/,
+    theWBName,
+    theTBName,
+    theIdLastToken,
+    theTitle,
+    theTip,
+    theStatusTip,
+    theIcon,
+    theKeySequence,
+    theIsCheckable,
+    theAddSeparator
+  );
+}
 
 bool SHAPERGUI::isFeatureOfNested(const QAction* theAction)
 {
@@ -842,12 +875,12 @@ QAction* SHAPERGUI::addFeatureOfNested(const QString& theWBName,
 
 //******************************************************
 QAction* SHAPERGUI::addDesktopCommand(const QString& theId, const QString& theTitle,
-                                           const QString& theTip, const QIcon& theIcon,
-                                           const QKeySequence& theKeys, bool isCheckable,
-                                           const char* theMenuSourceText,
-                                           const QString& theSubMenu,
-                                           const int theMenuPosition,
-                                           const int theSubMenuPosition)
+                                      const QString& theTip, const QIcon& theIcon,
+                                      const QKeySequence& theKeys, bool isCheckable,
+                                      const char* theMenuSourceText,
+                                      const QString& theSubMenu,
+                                      const int theMenuPosition,
+                                      const int theSubMenuPosition)
 {
   int aMenu = createMenu(tr(theMenuSourceText), -1, -1);
   if (!theSubMenu.isNull())
index 631ac080eb263a7c8fec3fdb87a40e814f14cff4..c0f5b93e4118e9e9a06aaaf03ff7647bfd36f974 100644 (file)
@@ -67,16 +67,29 @@ Q_OBJECT
 
   //--- XGUI connector interface -----
 
+  virtual QAction* addFeature(
+    const QString& theWorkBenchID,
+    const QString& theWorkBenchName,
+    const QString& theToolBarName,
+    const QString& theActionIdLastToken,
+    const QString& theActionTitle,
+    const QString& theActionToolTip,
+    const QString& theActionStatusTip,
+    const QIcon& theActionIcon,
+    const QKeySequence& theKS,
+    const bool theIsCheckable,
+    const bool theAddSeparator
+  );
+
   virtual QAction* addFeature(const QString& theWBName, const QString& theTBName,
-                              const QString& theId, const QString& theTitle,
+                              const QString& theIdLastToken, const QString& theTitle,
                               const QString& theTip, const QIcon& theIcon,
                               const QKeySequence& theKeys/* = QKeySequence()*/,
-                              bool isCheckable /*= false*/, const bool isAddSeparator/* = false*/,
-                              const QString& theStatusTip);
+                              const bool theIsCheckable /* = false*/, const bool theAddSeparator/* = false*/,
+                              const QString& theStatusTip /* = ""*/);
 
   //! Add feature (QAction) in the \a theWBName toolbar with given \a theInfo about action
-  virtual QAction* addFeature(const QString& theWBName,
-                              const ActionInfo& theInfo, const bool isAddSeparator);
+  virtual QAction* addFeature(const QString& theWBName, const ActionInfo& theInfo, const bool theAddSeparator);
 
   /// Add a nested feature
   /// \param theWBName a workbench name
index 06636c0fb0ff98d0067cd999add67d94f911da3c..ed2f9f047d06deb87403fcd8c27dfe58710719be 100644 (file)
   <section name="action_assets">
     <parameter name="%SHAPER_ROOT_DIR%/share/salome/resources/shaper/action_assets.json" value=""/>
   </section>
-  <section name="shortcuts:SHAPER">
-    <parameter name="UNDO_CMD" value="Ctrl+Z"/>
-    <parameter name="REDO_CMD" value="Ctrl+Shift+Z"/>
-    <parameter name="OPEN_CMD" value=""/>
-    <parameter name="IMPORT_PART_CMD" value=""/>
-    <parameter name="IMPORT_SHAPE_CMD" value=""/>
-    <parameter name="IMPORT_IMAGE_CMD" value=""/>
-    <parameter name="SAVEAS_CMD" value=""/>
-    <parameter name="EXPORT_PART_CMD" value=""/>
-    <parameter name="EXPORT_SHAPE_CMD" value=""/>
-    <parameter name="Part" value=""/>
-    <parameter name="Duplicate" value=""/>
-    <parameter name="Remove" value=""/>
-    <parameter name="Placement" value=""/>
-    <parameter name="Translation" value=""/>
-    <parameter name="Rotation" value=""/>
-    <parameter name="Symmetry" value=""/>
-    <parameter name="LinearCopy" value=""/>
-    <parameter name="AngularCopy" value=""/>
-    <parameter name="Dump" value=""/>
-    <parameter name="Parameter" value=""/>
-    <parameter name="ParametersMgr" value=""/>
+  <section name="shortcuts_vA1.0:SHAPER">
+    <parameter name="Build/Compound" value=""/>
+    <parameter name="Build/CompSolid" value=""/>
+    <parameter name="Build/Edge" value=""/>
+    <parameter name="Build/Face" value=""/>
+    <parameter name="Build/Filling" value=""/>
+    <parameter name="Build/Interpolation" value=""/>
+    <parameter name="Build/Polyline" value=""/>
+    <parameter name="Build/Shell" value=""/>
+    <parameter name="Build/Solid" value=""/>
+    <parameter name="Build/SubShapes" value=""/>
+    <parameter name="Build/Vertex" value=""/>
+    <parameter name="Build/Wire" value=""/>
+    <parameter name="Construction/Axis" value="Ctrl+1"/>
+    <parameter name="Construction/Plane" value=""/>
+    <parameter name="Construction/Point" value="Ctrl+8"/>
+    <parameter name="Features/Chamfer" value=""/>
+    <parameter name="Features/Common" value="Ctrl+7"/>
+    <parameter name="Features/Copy" value=""/>
+    <parameter name="Features/Cut" value=""/>
+    <parameter name="Features/Defeaturing" value=""/>
+    <parameter name="Features/ExportToGEOM" value=""/>
+    <parameter name="Features/Extrusion" value=""/>
+    <parameter name="Features/ExtrusionCut" value=""/>
+    <parameter name="Features/ExtrusionFuse" value=""/>
+    <parameter name="Features/Field" value=""/>
+    <parameter name="Features/Fillet1D" value=""/>
+    <parameter name="Features/Fillet" value=""/>
+    <parameter name="Features/Fuse" value="Ctrl+\"/>
+    <parameter name="Features/FusionFaces" value=""/>
+    <parameter name="Features/GlueFaces" value=""/>
+    <parameter name="Features/Group" value=""/>
+    <parameter name="Features/GroupAddition" value=""/>
+    <parameter name="Features/GroupIntersection" value=""/>
+    <parameter name="Features/GroupShape" value=""/>
+    <parameter name="Features/GroupSubstraction" value=""/>
+    <parameter name="Features/ImportResult" value=""/>
+    <parameter name="Features/Intersection" value=""/>
+    <parameter name="Features/LimitTolerance" value=""/>
+    <parameter name="Features/Loft" value=""/>
+    <parameter name="Features/Partition" value=""/>
+    <parameter name="Features/Pipe" value=""/>
+    <parameter name="Features/Recover" value=""/>
+    <parameter name="Features/Remove_SubShapes" value=""/>
+    <parameter name="Features/Revolution" value=""/>
+    <parameter name="Features/RevolutionCut" value=""/>
+    <parameter name="Features/RevolutionFuse" value=""/>
+    <parameter name="Features/Scale" value=""/>
+    <parameter name="Features/Sewing" value=""/>
+    <parameter name="Features/SketchCopy" value=""/>
+    <parameter name="Features/Smash" value=""/>
+    <parameter name="Features/Split" value=""/>
+    <parameter name="File/Export/Part" value=""/>
+    <parameter name="File/Export/PartSet" value=""/>
+    <parameter name="File/Export/Shape" value=""/>
+    <parameter name="File/Import/Image" value=""/>
+    <parameter name="File/Import/Part" value=""/>
+    <parameter name="File/Import/PartSet" value=""/>
+    <parameter name="File/Import/Shape" value=""/>
+    <parameter name="Inspection/BoundingBoxMacro" value=""/>
+    <parameter name="Inspection/GeometryCalculation" value=""/>
+    <parameter name="Inspection/Measurement" value=""/>
+    <parameter name="Inspection/NormalMacro" value=""/>
+    <parameter name="Inspection/PointCoordinates" value=""/>
+    <parameter name="Inspection/Shared_faces_macro" value=""/>
+    <parameter name="Macros/compoundVertices" value=""/>
+    <parameter name="Macros/importParameters" value=""/>
+    <parameter name="Macros/midSurface" value=""/>
+    <parameter name="Macros/pipeNetwork" value=""/>
+    <parameter name="Macros/SketchDrawer" value=""/>
+    <parameter name="Part/AngularCopy" value=""/>
+    <parameter name="Part/Dump" value=""/>
+    <parameter name="Part/Duplicate" value=""/>
+    <parameter name="Part/LinearCopy" value=""/>
+    <parameter name="Part/Parameter" value=""/>
+    <parameter name="Part/ParametersMgr" value=""/>
+    <parameter name="Part/Part" value=""/>
+    <parameter name="Part/Placement" value=""/>
+    <parameter name="Part/Remove" value=""/>
+    <parameter name="Part/Rotation" value=""/>
+    <parameter name="Part/Symmetry" value=""/>
+    <parameter name="Part/Translation" value=""/>
+    <parameter name="Primitives/Box" value=""/>
+    <parameter name="Primitives/Cone" value=""/>
+    <parameter name="Primitives/Cylinder" value=""/>
+    <parameter name="Primitives/Sphere" value=""/>
+    <parameter name="Primitives/Torus" value=""/>
+    <parameter name="Primitives/Tube" value=""/>
     <parameter name="Sketch" value="Ctrl+4"/>
-    <parameter name="SketchPoint" value="Ctrl+Shift+*"/>
-    <parameter name="SketchLine" value="Ctrl+Shift+_"/>
-    <parameter name="SketchRectangle" value="Ctrl+Shift+#"/>
-    <parameter name="SketchMacroCircle" value="Ctrl+Shift+O"/>
-    <parameter name="SketchMacroArc" value="Ctrl+Shift+C"/>
-    <parameter name="SketchFillet" value="Ctrl+Shift+F"/>
-    <parameter name="SketchMacroEllipse" value="Ctrl+Shift+E"/>
-    <parameter name="SketchMacroEllipticArc" value=""/>
-    <parameter name="SketchMacroBSpline" value="Ctrl+Shift+B"/>
-    <parameter name="SketchMacroBSplinePeriodic" value=""/>
-    <parameter name="SketchCurveFitting" value="Ctrl+Shift+:"/>
-    <parameter name="SketchSplit" value=""/>
-    <parameter name="SketchTrim" value=""/>
-    <parameter name="SketchProjection" value="Ctrl+Shift+P"/>
-    <parameter name="SketchIntersectionPoint" value="Ctrl+Shift+X"/>
-    <parameter name="SketchConstraintMirror" value="Ctrl+Shift+%"/>
-    <parameter name="SketchMultiTranslation" value=""/>
-    <parameter name="SketchMultiRotation" value=""/>
-    <parameter name="SketchOffset" value=""/>
-    <parameter name="SketchConstraintDistance" value="Ctrl+Shift+D"/>
-    <parameter name="SketchConstraintDistanceHorizontal" value="Ctrl+Shift+Left"/>
-    <parameter name="SketchConstraintDistanceVertical" value="Ctrl+Shift+Down"/>
-    <parameter name="SketchConstraintLength" value="Ctrl+Shift+L"/>
-    <parameter name="SketchConstraintAngle" value="Ctrl+Shift+A"/>
-    <parameter name="SketchConstraintRadius" value="Ctrl+Shift+R"/>
-    <parameter name="SketchConstraintHorizontal" value="Ctrl+Shift+Right"/>
-    <parameter name="SketchConstraintVertical" value="Ctrl+Shift+Up"/>
-    <parameter name="SketchConstraintRigid" value="Ctrl+Shift+>"/>
-    <parameter name="SketchConstraintParallel" value="Ctrl+Shift+!"/>
-    <parameter name="SketchConstraintPerpendicular" value="Ctrl+Shift+^"/>
-    <parameter name="SketchConstraintTangent" value="Ctrl+Shift+T"/>
-    <parameter name="SketchConstraintCoincidence" value="Ctrl+Shift+J"/>
-    <parameter name="SketchConstraintMiddle" value="Ctrl+Shift+M"/>
-    <parameter name="SketchConstraintEqual" value="Ctrl+Shift+@"/>
-    <parameter name="SketchConstraintCollinear" value="Ctrl+Shift+&quot;"/>
-    <parameter name="Point" value="Ctrl+8"/>
-    <parameter name="Axis" value="Ctrl+1"/>
-    <parameter name="Plane" value=""/>
-    <parameter name="Vertex" value=""/>
-    <parameter name="Edge" value=""/>
-    <parameter name="Interpolation" value=""/>
-    <parameter name="Wire" value=""/>
-    <parameter name="Polyline" value=""/>
-    <parameter name="Face" value=""/>
-    <parameter name="Shell" value=""/>
-    <parameter name="Solid" value=""/>
-    <parameter name="CompSolid" value=""/>
-    <parameter name="Compound" value=""/>
-    <parameter name="SubShapes" value=""/>
-    <parameter name="Filling" value=""/>
-    <parameter name="Box" value=""/>
-    <parameter name="Cylinder" value=""/>
-    <parameter name="Sphere" value=""/>
-    <parameter name="Torus" value=""/>
-    <parameter name="Cone" value=""/>
-    <parameter name="Tube" value=""/>
-    <parameter name="Scale" value=""/>
-    <parameter name="Extrusion" value=""/>
-    <parameter name="ExtrusionCut" value=""/>
-    <parameter name="ExtrusionFuse" value=""/>
-    <parameter name="Revolution" value=""/>
-    <parameter name="RevolutionCut" value=""/>
-    <parameter name="RevolutionFuse" value=""/>
-    <parameter name="Pipe" value=""/>
-    <parameter name="Loft" value=""/>
-    <parameter name="Cut" value=""/>
-    <parameter name="Fuse" value="Ctrl+\"/>
-    <parameter name="Common" value="Ctrl+7"/>
-    <parameter name="Smash" value=""/>
-    <parameter name="Intersection" value=""/>
-    <parameter name="Partition" value=""/>
-    <parameter name="Split" value=""/>
-    <parameter name="Remove_SubShapes" value=""/>
-    <parameter name="Recover" value=""/>
-    <parameter name="Copy" value=""/>
-    <parameter name="ImportResult" value=""/>
-    <parameter name="SketchCopy" value=""/>
-    <parameter name="Fillet1D" value=""/>
-    <parameter name="Fillet" value=""/>
-    <parameter name="Chamfer" value=""/>
-    <parameter name="FusionFaces" value=""/>
-    <parameter name="Defeaturing" value=""/>
-    <parameter name="Sewing" value=""/>
-    <parameter name="GlueFaces" value=""/>
-    <parameter name="LimitTolerance" value=""/>
-    <parameter name="Field" value=""/>
-    <parameter name="Group" value=""/>
-    <parameter name="GroupAddition" value=""/>
-    <parameter name="GroupIntersection" value=""/>
-    <parameter name="GroupSubstraction" value=""/>
-    <parameter name="GroupShape" value=""/>
-    <parameter name="ExportToGEOM" value=""/>
-    <parameter name="PointCoordinates" value=""/>
-    <parameter name="GeometryCalculation" value=""/>
-    <parameter name="BoundingBoxMacro" value=""/>
-    <parameter name="Measurement" value=""/>
-    <parameter name="NormalMacro" value=""/>
-    <parameter name="Shared_faces_macro" value=""/>
-    <parameter name="compoundVertices" value=""/>
-    <parameter name="importParameters" value=""/>
-    <parameter name="midSurface" value=""/>
-    <parameter name="pipeNetwork" value=""/>
-    <parameter name="SketchDrawer" value=""/>
+    <parameter name="Sketch/SketchConstraintAngle" value="Ctrl+Shift+A"/>
+    <parameter name="Sketch/SketchConstraintCoincidence" value="Ctrl+Shift+J"/>
+    <parameter name="Sketch/SketchConstraintCollinear" value="Ctrl+Shift+&quot;"/>
+    <parameter name="Sketch/SketchConstraintDistance" value="Ctrl+Shift+D"/>
+    <parameter name="Sketch/SketchConstraintDistanceHorizontal" value="Ctrl+Shift+Left"/>
+    <parameter name="Sketch/SketchConstraintDistanceVertical" value="Ctrl+Shift+Down"/>
+    <parameter name="Sketch/SketchConstraintEqual" value="Ctrl+Shift+@"/>
+    <parameter name="Sketch/SketchConstraintHorizontal" value="Ctrl+Shift+Right"/>
+    <parameter name="Sketch/SketchConstraintLength" value="Ctrl+Shift+L"/>
+    <parameter name="Sketch/SketchConstraintMiddle" value="Ctrl+Shift+M"/>
+    <parameter name="Sketch/SketchConstraintMirror" value="Ctrl+Shift+%"/>
+    <parameter name="Sketch/SketchConstraintParallel" value="Ctrl+Shift+!"/>
+    <parameter name="Sketch/SketchConstraintPerpendicular" value="Ctrl+Shift+^"/>
+    <parameter name="Sketch/SketchConstraintRadius" value="Ctrl+Shift+R"/>
+    <parameter name="Sketch/SketchConstraintRigid" value="Ctrl+Shift+>"/>
+    <parameter name="Sketch/SketchConstraintTangent" value="Ctrl+Shift+T"/>
+    <parameter name="Sketch/SketchConstraintVertical" value="Ctrl+Shift+Up"/>
+    <parameter name="Sketch/SketchCurveFitting" value="Ctrl+Shift+:"/>
+    <parameter name="Sketch/SketchFillet" value="Ctrl+Shift+F"/>
+    <parameter name="Sketch/SketchIntersectionPoint" value="Ctrl+Shift+X"/>
+    <parameter name="Sketch/SketchLine" value="Ctrl+Shift+_"/>
+    <parameter name="Sketch/SketchMacroArc" value="Ctrl+Shift+C"/>
+    <parameter name="Sketch/SketchMacroBSpline" value="Ctrl+Shift+B"/>
+    <parameter name="Sketch/SketchMacroBSplinePeriodic" value=""/>
+    <parameter name="Sketch/SketchMacroCircle" value="Ctrl+Shift+O"/>
+    <parameter name="Sketch/SketchMacroEllipse" value="Ctrl+Shift+E"/>
+    <parameter name="Sketch/SketchMacroEllipticArc" value=""/>
+    <parameter name="Sketch/SketchMultiRotation" value=""/>
+    <parameter name="Sketch/SketchMultiTranslation" value=""/>
+    <parameter name="Sketch/SketchOffset" value=""/>
+    <parameter name="Sketch/SketchPoint" value="Ctrl+Shift+*"/>
+    <parameter name="Sketch/SketchProjection" value="Ctrl+Shift+P"/>
+    <parameter name="Sketch/SketchRectangle" value="Ctrl+Shift+#"/>
+    <parameter name="Sketch/SketchSplit" value=""/>
+    <parameter name="Sketch/SketchTrim" value=""/>
   </section>
 </document>
index cd440418db9dd5faed02be639a5ff70c8f176777..e2cd0c86933cd68ef0ea70fba24a65a676a606be 100644 (file)
 {
-    "SHAPER/AngularCopy": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/multirotation.svg",
-        "langDependentAssets": {
-            "en": {
-                "name": "Angular Copy",
-                "tooltip": "Perform copy and rotate"
-            },
-            "fr": {
-                "name": "Copie angulaire",
-                "tooltip": "Effectuer une copie et une rotation"
-            }
-        }
-    },
-    "SHAPER/Axis": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/axis.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Axis",
-                "tooltip": "Create axis"
-            },
-            "fr": {
-                "name": "Axe",
-                "tooltip": "Créer un axe"
-            }
-        }
-    },
-    "SHAPER/BoundingBoxMacro": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bounding.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Bounding box",
-                "tooltip": "Calculate the bounding box"
-            },
-            "fr": {
-                "name": "Boîte englobante",
-                "tooltip": "Calculer la boîte englobante"
-            }
-        }
-    },
-    "SHAPER/Box": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/box.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Box",
-                "tooltip": "Create a box"
-            },
-            "fr": {
-                "name": "Boîte",
-                "tooltip": "Créer une boîte"
-            }
-        }
-    },
-    "SHAPER/Chamfer": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/chamfer.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Chamfer",
-                "tooltip": "Perform chamfer on face or edge"
-            },
-            "fr": {
-                "name": "Chanfrein",
-                "tooltip": "Effectuer un chanfrein  sur la face ou l'arête"
-            }
-        }
-    },
-    "SHAPER/Common": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_common.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Common",
-                "tooltip": "Perform boolean common operation with objects"
-            },
-            "fr": {
-                "name": "Intersection",
-                "tooltip": "Effectuer l'opération booléenne intersection avec des objets"
-            }
-        }
-    },
-    "SHAPER/CompSolid": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_compsolid.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "CompSolid",
-                "tooltip": "Create a compsolid from solids or other compsolids"
-            },
-            "fr": {
-                "name": "Solide Composite",
-                "tooltip": "Créer un solide composite à partir de solides ou d'autres solides composites"
-            }
-        }
-    },
-    "SHAPER/Compound": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_compound.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Compound",
-                "tooltip": "Create a compound of objects"
-            },
-            "fr": {
-                "name": "Ensemble",
-                "tooltip": "Créer un ensemble"
-            }
-        }
-    },
-    "SHAPER/Cone": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/cone.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Cone",
-                "tooltip": "Create a Cone"
-            },
-            "fr": {
-                "name": "Cône",
-                "tooltip": "Créer un cône"
-            }
-        }
-    },
-    "SHAPER/Copy": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/copy.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Copy",
-                "tooltip": "Copies results or sub-results"
-            },
-            "fr": {
-                "name": "Copie",
-                "tooltip": "Copie les résultats ou les sous-résultats"
-            }
-        }
-    },
-    "SHAPER/Cut": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_cut.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Cut",
-                "tooltip": "Perform boolean cut operation with objects"
-            },
-            "fr": {
-                "name": "Découpe",
-                "tooltip": "Effectuer l'opération booléenne découpe avec des objets"
-            }
-        }
-    },
-    "SHAPER/Cylinder": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/cylinder.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Cylinder",
-                "tooltip": "Create a cylinder"
-            },
-            "fr": {
-                "name": "Cylindre",
-                "tooltip": "Créer un cylindre"
-            }
-        }
-    },
-    "SHAPER/Defeaturing": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/defeaturing.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Defeaturing",
-                "tooltip": "Perform removing faces from solid"
-            },
-            "fr": {
-                "name": "Supprimer un détail",
-                "tooltip": "Effectuer la suppression de faces d'un solide"
-            }
-        }
-    },
-    "SHAPER/Dump": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Dump",
-                "tooltip": "Dump Python script"
-            },
-            "fr": {
-                "name": "Générer un script",
-                "tooltip": "Générer un script Python"
-            }
-        }
-    },
-    "SHAPER/Duplicate": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/duplicate.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Duplicate part",
-                "tooltip": "Duplicate active part"
-            },
-            "fr": {
-                "name": "Dupliquer pièce",
-                "tooltip": "Dupliquer la pièce active"
-            }
-        }
-    },
-    "SHAPER/EXPORT_PART_CMD": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Part...",
-                "tooltip": "Export a part of the current document into a file"
-            },
-            "fr": {
-                "name": "Pièce...",
-                "tooltip": "Exporter une pièce du document courant dans un fichier"
-            }
-        }
-    },
-    "SHAPER/EXPORT_SHAPE_CMD": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Exchange/export.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "To CAD format...",
-                "tooltip": "Export shape to a CAD format file"
-            },
-            "fr": {
-                "name": "Au format CAO...",
-                "tooltip": "Exportation de la forme vers un fichier au format CAO"
-            }
-        }
-    },
-    "SHAPER/Edge": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_edge.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Edge",
-                "tooltip": "Create edges from sketch edges or other edge objects"
-            },
-            "fr": {
-                "name": "Arête",
-                "tooltip": "Créer des arêtes à partir d'arêtes d'esquisse ou d'objets arêtes"
-            }
-        }
-    },
-    "SHAPER/ExportToGEOM": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Connector/geom_export.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Export to GEOM",
-                "tooltip": "Export all results and groups into GEOM module"
-            },
-            "fr": {
-                "name": "Exporter vers GEOM",
-                "tooltip": "Exporter tous les résultats et groupes dans le module GEOM"
-            }
-        }
-    },
-    "SHAPER/Extrusion": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Extrusion",
-                "tooltip": "Create a solid by extrusion of a face"
-            },
-            "fr": {
-                "name": "Extrusion",
-                "tooltip": "Créer un solide par extrusion d'une face"
-            }
-        }
-    },
-    "SHAPER/ExtrusionCut": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion_cut.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "ExtrusionCut",
-                "tooltip": "Cuts an extrusion from a solid"
-            },
-            "fr": {
-                "name": "Enlèvement de matière extrudé",
-                "tooltip": "Coupe une extrusion d'un solide"
-            }
-        }
-    },
-    "SHAPER/ExtrusionFuse": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion_fuse.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "ExtrusionFuse",
-                "tooltip": "Fuses an extrusion with a solid"
-            },
-            "fr": {
-                "name": "Bossage extrudé",
-                "tooltip": "Fusionne une extrusion avec un solide"
-            }
-        }
-    },
-    "SHAPER/Face": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_face.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Face",
-                "tooltip": "Create a face from edges, wires and faces"
-            },
-            "fr": {
-                "name": "Face",
-                "tooltip": "Créer une face à partir d'arêtes, de contours et de faces"
-            }
-        }
-    },
-    "SHAPER/Field": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/field.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Field",
-                "tooltip": "Create fields for selected shapes"
-            },
-            "fr": {
-                "name": "Champ",
-                "tooltip": "Créer des champs pour les formes sélectionnées"
-            }
-        }
-    },
-    "SHAPER/Fillet": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fillet.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Fillet",
-                "tooltip": "Perform fillet on face or edge"
-            },
-            "fr": {
-                "name": "Congé",
-                "tooltip": "Effectuer un congé sur la face ou l'arête"
-            }
-        }
-    },
-    "SHAPER/Fillet1D": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fillet1d.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "1D-fillet",
-                "tooltip": "Perform fillet on vertices of a wire"
-            },
-            "fr": {
-                "name": "1D-congé",
-                "tooltip": "Effectuer un congé sur les sommets d'un contour"
-            }
-        }
-    },
-    "SHAPER/Filling": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_filling.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Filling",
-                "tooltip": "Create face from list of edges"
-            },
-            "fr": {
-                "name": "Remplissage",
-                "tooltip": "Créer une face à partir d'une liste d'arêtes"
-            }
-        }
-    },
-    "SHAPER/Fuse": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_fuse.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Fuse",
-                "tooltip": "Perform boolean fuse operation with objects"
-            },
-            "fr": {
-                "name": "Fusionner",
-                "tooltip": "Effectuer l'opération booléenne fusion avec des objets"
-            }
-        }
-    },
-    "SHAPER/FusionFaces": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fusion_faces.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Fuse Faces",
-                "tooltip": "Performs fusion of connected faces"
-            },
-            "fr": {
-                "name": "Fusionner des faces",
-                "tooltip": "Effectue la fusion de faces connectées"
-            }
-        }
-    },
-    "SHAPER/GeometryCalculation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/geometryCalculation.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Geometry calculation",
-                "tooltip": "Calculate properties of objects"
-            },
-            "fr": {
-                "name": "Calcul de la géometrie",
-                "tooltip": "Calculer les propriétés des objets"
-            }
-        }
-    },
-    "SHAPER/GlueFaces": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/glue_faces.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Glue Faces",
-                "tooltip": "Perform gluing of connected faces"
-            },
-            "fr": {
-                "name": "Recoller les faces",
-                "tooltip": "Effectuer le collage des faces connectées"
-            }
-        }
-    },
-    "SHAPER/Group": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/shape_group.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Group",
-                "tooltip": "Create named collection of geometry entities"
-            },
-            "fr": {
-                "name": "Groupe",
-                "tooltip": "Créer une collection nommée d'entités géométriques"
-            }
-        }
-    },
-    "SHAPER/GroupAddition": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_addition.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Group Addition",
-                "tooltip": "Join several groups to single group"
-            },
-            "fr": {
-                "name": "Addition de groupes",
-                "tooltip": "Joindre plusieurs groupes pour former un seul groupe"
-            }
-        }
-    },
-    "SHAPER/GroupIntersection": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_intersection.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Group Intersection",
-                "tooltip": "Get elements existing in all groups"
-            },
-            "fr": {
-                "name": "Intersection de groupes",
-                "tooltip": "Obtenir les éléments existants dans tous les groupes"
-            }
-        }
-    },
-    "SHAPER/GroupShape": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/svg/group_shape.svg",
-        "langDependentAssets": {
-            "en": {
-                "name": "Group Shape",
-                "tooltip": "Join several groups to single shape"
-            },
-            "fr": {
-                "name": "Forme à partir de groupes",
-                "tooltip": "Joindre plusieurs groupes dans une forme seule"
-            }
-        }
-    },
-    "SHAPER/GroupSubstraction": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_substraction.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Group Substraction",
-                "tooltip": "Exclude elements existing tool groups"
-            },
-            "fr": {
-                "name": "Soustraction de groupes",
-                "tooltip": "Exclure des éléments des groupes d'outils existants"
-            }
-        }
-    },
-    "SHAPER/IMPORT_IMAGE_CMD": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Picture...",
-                "tooltip": "Import a picture from an image file"
-            },
-            "fr": {
-                "name": "Une image...",
-                "tooltip": "Import a picture from an image file"
-            }
-        }
-    },
-    "SHAPER/IMPORT_PART_CMD": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Part...",
-                "tooltip": "Import structure of a part"
-            },
-            "fr": {
-                "name": "Pièce...",
-                "tooltip": "Structure d'importation d'une pièce"
-            }
-        }
-    },
-    "SHAPER/IMPORT_SHAPE_CMD": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Exchange/import.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "From CAD format...",
-                "tooltip": "Import shape from a CAD format file"
-            },
-            "fr": {
-                "name": "À partir du format CAO...",
-                "tooltip": "Importer une forme à partir d'un fichier au format CAO"
-            }
-        }
-    },
-    "SHAPER/ImportResult": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/import_result.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Import Result",
-                "tooltip": "Copies results from other parts"
-            },
-            "fr": {
-                "name": "Importer le résultat",
-                "tooltip": "Copie les résultats d'autres pièces"
-            }
-        }
-    },
-    "SHAPER/Interpolation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_interpolation.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Interpolation",
-                "tooltip": "Create an interpolation curve from points"
-            },
-            "fr": {
-                "name": "Interpolation",
-                "tooltip": "Créer une courbe d'interpolation à partir de points"
-            }
-        }
-    },
-    "SHAPER/Intersection": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/intersection.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Intersection",
-                "tooltip": "Intersect objects with tools"
-            },
-            "fr": {
-                "name": "Section",
-                "tooltip": "Intersection d'objets avec des outils"
-            }
-        }
-    },
-    "SHAPER/LimitTolerance": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/limit_tolerance.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Limit Tolerance",
-                "tooltip": "Limit the tolerance on a shape"
-            },
-            "fr": {
-                "name": "Limiter la tolérance",
-                "tooltip": "Limiter la tolérance sur une forme"
-            }
-        }
-    },
-    "SHAPER/LinearCopy": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/multitranslation.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Linear copy",
-                "tooltip": "Perform copy and translate"
-            },
-            "fr": {
-                "name": "Copie linéaire",
-                "tooltip": "Effectuer la copie et la translation"
-            }
-        }
-    },
-    "SHAPER/Loft": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/loft.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Loft",
-                "tooltip": "Generates a shape with two elements"
-            },
-            "fr": {
-                "name": "Lissage",
-                "tooltip": "Génére une forme avec deux éléments"
-            }
-        }
-    },
-    "SHAPER/Measurement": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/measurement.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Measurement",
-                "tooltip": "Calculate properties of objects"
-            },
-            "fr": {
-                "name": "Mesure",
-                "tooltip": "Calculer les propriétés des objets"
-            }
-        }
-    },
-    "SHAPER/NormalMacro": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/normale.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Normal to a face",
-                "tooltip": "Calculate the normal to a face"
-            },
-            "fr": {
-                "name": "Normale d'une face",
-                "tooltip": "Calcule la normale d'une face"
-            }
-        }
-    },
-    "SHAPER/OPEN_CMD": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Part set...",
-                "tooltip": "Import native file"
-            },
-            "fr": {
-                "name": "Assemblage...",
-                "tooltip": "Importer un fichier natif"
-            }
-        }
-    },
-    "SHAPER/Parameter": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/expression.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Parameter",
-                "tooltip": "Create a parameter"
-            },
-            "fr": {
-                "name": "Paramètre",
-                "tooltip": "Créer un paramètre"
-            }
-        }
-    },
-    "SHAPER/ParametersMgr": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/paper_roll.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Parameters",
-                "tooltip": "Manage parameters"
-            },
-            "fr": {
-                "name": "Paramètres",
-                "tooltip": "Gérer les paramètres"
-            }
-        }
-    },
-    "SHAPER/Part": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/part_ico.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "New part",
-                "tooltip": "Create part"
-            },
-            "fr": {
-                "name": "Nouvelle pièce",
-                "tooltip": "Créer une pièce"
-            }
-        }
-    },
-    "SHAPER/Partition": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/partition.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Partition",
-                "tooltip": "Perform partition operations with solids"
-            },
-            "fr": {
-                "name": "Partition",
-                "tooltip": "Effectuer des opérations de partition avec des solides"
-            }
-        }
-    },
-    "SHAPER/Pipe": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/pipe.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Pipe",
-                "tooltip": "Generates extrusion along a path"
-            },
-            "fr": {
-                "name": "Tuyau",
-                "tooltip": "Génère une extrusion le long d'un chemin"
-            }
-        }
-    },
-    "SHAPER/Placement": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/placement.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Placement",
-                "tooltip": "Place objects relatively to another one"
-            },
-            "fr": {
-                "name": "Placement",
-                "tooltip": "Placez les objets l'un par rapport à l'autre"
-            }
-        }
-    },
-    "SHAPER/Plane": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/plane.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Plane",
-                "tooltip": "Create plane"
-            },
-            "fr": {
-                "name": "Plan",
-                "tooltip": "Créer un plan"
-            }
-        }
-    },
-    "SHAPER/Point": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/point.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Point",
-                "tooltip": "Create point"
-            },
-            "fr": {
-                "name": "Point",
-                "tooltip": "Créer un point"
-            }
-        }
-    },
-    "SHAPER/PointCoordinates": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/point_coord.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Point coordinates",
-                "tooltip": "View point coordinate"
-            },
-            "fr": {
-                "name": "Coordonnées d'un point",
-                "tooltip": "Voir les coordonnées du point"
-            }
-        }
-    },
-    "SHAPER/Polyline": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_polyline.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Polyline",
-                "tooltip": "Create a polyline from points"
-            },
-            "fr": {
-                "name": "Polyligne",
-                "tooltip": "Créer une polyligne à partir de points"
-            }
-        }
-    },
-    "SHAPER/REDO_CMD": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/redo.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Redo",
-                "tooltip": "Redo last command"
-            },
-            "fr": {
-                "name": "Refaire",
-                "tooltip": "Refaire la dernière commande"
-            }
-        }
-    },
-    "SHAPER/Recover": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/recover.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Recover",
-                "tooltip": "Visualize concealed objects"
-            },
-            "fr": {
-                "name": "Récupérer",
-                "tooltip": "Visualiser les objets cachés"
-            }
-        }
-    },
-    "SHAPER/Remove": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/remove.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Remove part",
-                "tooltip": "Remove active part"
-            },
-            "fr": {
-                "name": "Supprimer pièce",
-                "tooltip": "Supprimer la pièce active"
-            }
-        }
-    },
-    "SHAPER/Remove_SubShapes": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/remove_subshapes.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Remove Sub-Shapes",
-                "tooltip": "Allows to remove sub-shapes from wires, shells, compsolids and compounds"
-            },
-            "fr": {
-                "name": "Supprimer les sous-formes",
-                "tooltip": "Permet de supprimer les sous formes de fils, coques, solides composites et ensembles"
-            }
-        }
-    },
-    "SHAPER/Revolution": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Revolution",
-                "tooltip": "Create a solid by revolution of a face"
-            },
-            "fr": {
-                "name": "Révolution",
-                "tooltip": "Créer un solide par révolution d'une face"
-            }
-        }
-    },
-    "SHAPER/RevolutionCut": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol_cut.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "RevolutionCut",
-                "tooltip": "Cuts a revolution from a solid"
-            },
-            "fr": {
-                "name": "Enlèvement de matière avec révolution",
-                "tooltip": "Coupe une révolution d'un solide"
-            }
-        }
-    },
-    "SHAPER/RevolutionFuse": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol_fuse.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "RevolutionFuse",
-                "tooltip": "Fuses a revolution with a solid"
-            },
-            "fr": {
-                "name": "Bossage avec révolution",
-                "tooltip": "Fusionne une révolution avec un solide"
-            }
-        }
-    },
-    "SHAPER/Rotation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/rotation.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Rotation",
-                "tooltip": "Perform rotation of objects around the axis to specified angle"
-            },
-            "fr": {
-                "name": "Rotation",
-                "tooltip": "Effectuer une rotation des objets autour de l'axe avec l'angle spécifié"
-            }
-        }
-    },
-    "SHAPER/SAVEAS_CMD": {
-        "iconPath": "",
-        "langDependentAssets": {
-            "en": {
-                "name": "Part set...",
-                "tooltip": "Export the current document into a native file"
-            },
-            "fr": {
-                "name": "Assemblage...",
-                "tooltip": "Exporter le document actuel dans un fichier natif"
-            }
-        }
-    },
-    "SHAPER/Scale": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/scale.svg",
-        "langDependentAssets": {
-            "en": {
-                "name": "Scale",
-                "tooltip": "Perform scale objects"
-            },
-            "fr": {
-                "name": "Échelle",
-                "tooltip": "Effectuer un changement d'échelle des objets"
-            }
-        }
-    },
-    "SHAPER/Sewing": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/sewing.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sewing",
-                "tooltip": "Perform sewing operation on shapes"
-            },
-            "fr": {
-                "name": "Coudre les faces",
-                "tooltip": "Effectuer une opération de couture sur des formes"
-            }
-        }
-    },
-    "SHAPER/Shared_faces_macro": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/shared_shapes.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Check shared faces",
-                "tooltip": "Check the shared faces"
-            },
-            "fr": {
-                "name": "Vérifier les faces partagées",
-                "tooltip": "Check the shared faces"
-            }
-        }
-    },
-    "SHAPER/Shell": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_shell.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Shell",
-                "tooltip": "Create a shell from faces or shells objects"
-            },
-            "fr": {
-                "name": "Coque",
-                "tooltip": "Créer une coque à partir d'objets faces ou d'autres coques"
-            }
-        }
-    },
-    "SHAPER/Sketch": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/sketch.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sketch",
-                "tooltip": "Create sketch"
-            },
-            "fr": {
-                "name": "Esquisse",
-                "tooltip": "Créer une esquisse"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintAngle": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/angle_constr.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Angle",
-                "tooltip": "Set fixed angle between two line segments"
-            },
-            "fr": {
-                "name": "Angle",
-                "tooltip": "Définir un angle fixe entre deux segments"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintCoincidence": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/coincedence.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Coincident",
-                "tooltip": "Create constraint for the coincidence of two points or point on line or circle"
-            },
-            "fr": {
-                "name": "Coïncident",
-                "tooltip": "Créer une contrainte pour la coïncidence de deux points ou d'un point sur une ligne ou un cercle"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintCollinear": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/collinear.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Collinear",
-                "tooltip": "Create constraint defining collinearity of two lines"
-            },
-            "fr": {
-                "name": "Colinéaire",
-                "tooltip": "Créer une contrainte définissant la colinéarité de deux lignes"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintDistance": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Distance",
-                "tooltip": "Set fixed distance from a point to an object"
-            },
-            "fr": {
-                "name": "Distance",
-                "tooltip": "Définir une distance fixe entre un point et un objet"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintDistanceHorizontal": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance_h.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Horizontal Distance",
-                "tooltip": "Set horizontal distance between two points"
-            },
-            "fr": {
-                "name": "Distance horizontale",
-                "tooltip": "Définir la distance horizontale entre deux points"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintDistanceVertical": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance_v.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Vertical Distance",
-                "tooltip": "Set vertical distance between two points"
-            },
-            "fr": {
-                "name": "Distance verticale",
-                "tooltip": "Définir la distance verticale entre deux points"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintEqual": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/equal.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Equal",
-                "tooltip": "Create constraint defining equal lengths of two lines or line and arc or equal radiuses of two arcs or two circles or arc and circle"
-            },
-            "fr": {
-                "name": "Égal",
-                "tooltip": "Créer une contrainte définissant des longueurs égales de deux lignes, ou une ligne et un arc, ou des rayons égaux de deux arcs ou de deux cercles ou d'un arc et d'un cercle"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintHorizontal": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/horisontal.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Horizontal",
-                "tooltip": "Create constraint defining horizontal line"
-            },
-            "fr": {
-                "name": "Horizontal",
-                "tooltip": "Créer une contrainte définissant une ligne horizontale"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintLength": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/length.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Length",
-                "tooltip": "Set fixed length of a line segment"
-            },
-            "fr": {
-                "name": "Longueur",
-                "tooltip": "Définir la longueur fixe d'un segment"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintMiddle": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/middlepoint.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Middle point",
-                "tooltip": "Create constraint for setting middle point on a line"
-            },
-            "fr": {
-                "name": "Point milieu",
-                "tooltip": "Créer une contrainte pour définir le milieu de la ligne"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintMirror": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/mirror.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Mirror copy",
-                "tooltip": "Create constraint, mirroring group of objects"
-            },
-            "fr": {
-                "name": "Copie miroir",
-                "tooltip": "Créer une contrainte, mettre en miroir un groupe d'objets"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintParallel": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/parallel.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Parallel",
-                "tooltip": "Create constraint defining two parallel lines"
-            },
-            "fr": {
-                "name": "Parallèle",
-                "tooltip": "Créer une contrainte définissant deux lignes parallèles"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintPerpendicular": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/perpendicular.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Perpendicular",
-                "tooltip": "Create constraint defining two orthogonal objects"
-            },
-            "fr": {
-                "name": "Perpendiculaire",
-                "tooltip": "Créer une contrainte définissant deux objets orthogonaux"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintRadius": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/radius_constr.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Radius",
-                "tooltip": "Set fixed radius of a circle or an arc"
-            },
-            "fr": {
-                "name": "Rayon",
-                "tooltip": "Définir le rayon fixe d'un cercle ou d'un arc"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintRigid": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/fixed.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Fixed",
-                "tooltip": "Fix an object"
-            },
-            "fr": {
-                "name": "Fixé",
-                "tooltip": "Fixer un objet"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintTangent": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/tangent.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Tangent",
-                "tooltip": "Create constraint defining tangency of two segments with common coincident point"
-            },
-            "fr": {
-                "name": "Tangente",
-                "tooltip": "Créer une contrainte définissant la tangence de deux segments avec un point de coïncidence commun"
-            }
-        }
-    },
-    "SHAPER/SketchConstraintVertical": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/vertical.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Vertical",
-                "tooltip": "Create constraint defining vertical line"
-            },
-            "fr": {
-                "name": "Vertical",
-                "tooltip": "Créer une contrainte définissant une ligne verticale"
-            }
-        }
-    },
-    "SHAPER/SketchCopy": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/copy.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sketch copy",
-                "tooltip": "Copy sketch and all its elements to the same plane"
-            },
-            "fr": {
-                "name": "Copie d'esquisse",
-                "tooltip": "Copiez l'esquisse et tous ses éléments dans le même plan"
-            }
-        }
-    },
-    "SHAPER/SketchCurveFitting": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/curvefitting.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Curve fitting",
-                "tooltip": "Create curve passing through the points"
-            },
-            "fr": {
-                "name": "Courbe d'ajustement",
-                "tooltip": "Créer une courbe passant par les points"
-            }
-        }
-    },
-    "SHAPER/SketchDrawer": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/drawer.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sketch drawer",
-                "tooltip": "Creates sketch using elements of selected shape belonging to selected plane"
-            },
-            "fr": {
-                "name": "Créer une esquisse à partir d'un contour",
-                "tooltip": "Crée une esquisse en utilisant des éléments de la forme sélectionnée appartenant au plan sélectionné"
-            }
-        }
-    },
-    "SHAPER/SketchFillet": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/fillet.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Fillet",
-                "tooltip": "Create constraint defining fillet between two connected segments"
-            },
-            "fr": {
-                "name": "Congé",
-                "tooltip": "Créer une contrainte définissant un congé entre deux segments connectés"
-            }
-        }
-    },
-    "SHAPER/SketchIntersectionPoint": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/intersection_point.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Intersection",
-                "tooltip": "Intersect edge with sketch plane"
-            },
-            "fr": {
-                "name": "Section",
-                "tooltip": "Intersecter une arête avec un plan d'esquisse"
-            }
-        }
-    },
-    "SHAPER/SketchLine": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/line.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Line",
-                "tooltip": "Create line"
-            },
-            "fr": {
-                "name": "Ligne",
-                "tooltip": "Créer une ligne"
-            }
-        }
-    },
-    "SHAPER/SketchMacroArc": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/arc.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Arc",
-                "tooltip": "Create arc"
-            },
-            "fr": {
-                "name": "Arc",
-                "tooltip": "Créer un arc"
-            }
-        }
-    },
-    "SHAPER/SketchMacroBSpline": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/bspline.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "B-spline",
-                "tooltip": "Create B-spline curve"
-            },
-            "fr": {
-                "name": "B-spline",
-                "tooltip": "Créer une courbe B-spline"
-            }
-        }
-    },
-    "SHAPER/SketchMacroBSplinePeriodic": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/bspline_p.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Periodic B-spline",
-                "tooltip": "Create periodic B-spline curve"
-            },
-            "fr": {
-                "name": "Périodique B-spline",
-                "tooltip": "Créer une courbe périodique de type B-spline"
-            }
-        }
-    },
-    "SHAPER/SketchMacroCircle": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/circle.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Circle",
-                "tooltip": "Create circle"
-            },
-            "fr": {
-                "name": "Cercle",
-                "tooltip": "Créer un cercle"
-            }
-        }
-    },
-    "SHAPER/SketchMacroEllipse": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/ellipse.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Ellipse",
-                "tooltip": "Create ellipse"
-            },
-            "fr": {
-                "name": "Ellipse",
-                "tooltip": "Créer une ellipse"
-            }
-        }
-    },
-    "SHAPER/SketchMacroEllipticArc": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/elliptic_arc.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Elliptic arc",
-                "tooltip": "Create elliptic arc"
-            },
-            "fr": {
-                "name": "Arc d'ellipse",
-                "tooltip": "Créer un arc d'ellipse"
-            }
-        }
-    },
-    "SHAPER/SketchMultiRotation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/rotate.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Angular copy",
-                "tooltip": "Copy objects and rotate"
-            },
-            "fr": {
-                "name": "Copie angulaire",
-                "tooltip": "Copier des objets et faire pivoter"
-            }
-        }
-    },
-    "SHAPER/SketchMultiTranslation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/translate.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Linear copy",
-                "tooltip": "Copy objects and move"
-            },
-            "fr": {
-                "name": "Copie linéaire",
-                "tooltip": "Copier des objets et les déplacer"
-            }
-        }
-    },
-    "SHAPER/SketchOffset": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/offset.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Offset",
-                "tooltip": "Offset a curve to a distance"
-            },
-            "fr": {
-                "name": "Décalage",
-                "tooltip": "Décaler une courbe d'une distance"
-            }
-        }
-    },
-    "SHAPER/SketchPoint": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/point.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Point",
-                "tooltip": "Create point"
-            },
-            "fr": {
-                "name": "Point",
-                "tooltip": "Créer un point"
-            }
-        }
-    },
-    "SHAPER/SketchProjection": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/projection.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Projection",
-                "tooltip": "Project feature onto sketch plane"
-            },
-            "fr": {
-                "name": "Projection",
-                "tooltip": "Projeter une fonction sur un plan d'esquisse"
-            }
-        }
-    },
-    "SHAPER/SketchRectangle": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/rectangle.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Rectangle",
-                "tooltip": "Create rectangle"
-            },
-            "fr": {
-                "name": "Rectangle",
-                "tooltip": "Créer un rectangle"
-            }
-        }
-    },
-    "SHAPER/SketchSplit": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/split.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Split",
-                "tooltip": "Cut selected segment arc or circle on existing coincident points"
-            },
-            "fr": {
-                "name": "Diviser",
-                "tooltip": "Couper l'arc ou le cercle du segment sélectionné sur les points coïncidents existants"
-            }
-        }
-    },
-    "SHAPER/SketchTrim": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/trim.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Trim",
-                "tooltip": "Trim selected segment arc or circle on intersection points nearest to the graphic selection"
-            },
-            "fr": {
-                "name": "Réduire",
-                "tooltip": "Couper l'arc ou le cercle du segment sélectionné sur les points d'intersection les plus proches de la sélection graphique"
-            }
-        }
-    },
-    "SHAPER/Smash": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_smash.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Smash",
-                "tooltip": "Perform boolean smash operation with objects"
-            },
-            "fr": {
-                "name": "Smash",
-                "tooltip": "Effectuer l'opération booléenne smash avec des objets"
-            }
-        }
-    },
-    "SHAPER/Solid": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_solid.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Solid",
-                "tooltip": "Create a solid from faces or shells"
-            },
-            "fr": {
-                "name": "Solide",
-                "tooltip": "Créer un solide à partir de faces ou de coques"
-            }
-        }
-    },
-    "SHAPER/Sphere": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/sphere.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sphere",
-                "tooltip": "Create a sphere"
-            },
-            "fr": {
-                "name": "Sphère",
-                "tooltip": "Créer une sphère"
-            }
-        }
-    },
-    "SHAPER/Split": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_split.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Split",
-                "tooltip": "Perform boolean split operation with objects"
-            },
-            "fr": {
-                "name": "Diviser",
-                "tooltip": "Effectuer l'opération booléenne division avec des objets"
-            }
-        }
-    },
-    "SHAPER/SubShapes": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_subshapes.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Sub-Shapes",
-                "tooltip": "Allows to add or to remove sub-shapes of the selected shape"
-            },
-            "fr": {
-                "name": "Sous-formes",
-                "tooltip": "Permet d'ajouter ou de supprimer des sous-formes de la forme sélectionnée"
-            }
-        }
-    },
-    "SHAPER/Symmetry": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/symmetry.svg",
-        "langDependentAssets": {
-            "en": {
-                "name": "Symmetry",
-                "tooltip": "Perform symmetry with respect to a point, an axis or a plane"
-            },
-            "fr": {
-                "name": "Symétrie",
-                "tooltip": "Effectuer une symétrie par rapport à un point, un axe ou un plan"
-            }
-        }
-    },
-    "SHAPER/Torus": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/torus.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Torus",
-                "tooltip": "Create a Torus"
-            },
-            "fr": {
-                "name": "Tore",
-                "tooltip": "Créer un tore"
-            }
-        }
-    },
-    "SHAPER/Translation": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/movement.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Translation",
-                "tooltip": "Perform translation of objects along the axis to specified distance"
-            },
-            "fr": {
-                "name": "Translation",
-                "tooltip": "Effectuer la translation des objets le long de l'axe à la distance spécifiée"
-            }
-        }
-    },
-    "SHAPER/Tube": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/tube.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Tube",
-                "tooltip": "Create a Tube"
-            },
-            "fr": {
-                "name": "Tube",
-                "tooltip": "Créer un tube"
-            }
-        }
-    },
-    "SHAPER/UNDO_CMD": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/undo.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Undo",
-                "tooltip": "Undo last command"
-            },
-            "fr": {
-                "name": "Annuler",
-                "tooltip": "Annuler la dernière commande"
-            }
-        }
-    },
-    "SHAPER/Vertex": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_vertex.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Vertex",
-                "tooltip": "Create vertices from sketch point or other vertex objects"
-            },
-            "fr": {
-                "name": "Sommet",
-                "tooltip": "Créer des sommets à partir d'un point d'esquisse ou d'autres objets de sommet"
-            }
-        }
-    },
-    "SHAPER/Wire": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_wire.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Wire",
-                "tooltip": "Create a wire from sketch edges, edges and wires objects"
-            },
-            "fr": {
-                "name": "Contour",
-                "tooltip": "Créer un contour à partir d'arêtes de l’esquisse, d'arêtes et de contours"
-            }
-        }
-    },
-    "SHAPER/compoundVertices": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/compound.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Import points",
-                "tooltip": "Import a set of construction points"
-            },
-            "fr": {
-                "name": "Importer des points",
-                "tooltip": "Importer un ensemble de points de construction"
-            }
-        }
-    },
-    "SHAPER/importParameters": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/parameters.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Import parameters",
-                "tooltip": "Import a set of parameters"
-            },
-            "fr": {
-                "name": "Importer des paramètres",
-                "tooltip": "Importer un ensemble de paramètres"
-            }
-        }
-    },
-    "SHAPER/midSurface": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/midSurface.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Create midsurfaces",
-                "tooltip": "Create midsurfaces"
-            },
-            "fr": {
-                "name": "Créer des fibres neutres",
-                "tooltip": "Créer des fibres neutres"
-            }
-        }
-    },
-    "SHAPER/pipeNetwork": {
-        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/pipeNetwork.png",
-        "langDependentAssets": {
-            "en": {
-                "name": "Pipe network",
-                "tooltip": "Create a network of pipes"
-            },
-            "fr": {
-                "name": "Réseau de tuyaux",
-                "tooltip": "Créer un réseau de tuyaux"
+    "SHAPER": {
+        "children": {
+            "Build": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Build"
+                    },
+                    "fr": {
+                        "name": "Construire"
+                    }
+                },
+                "children": {
+                    "CompSolid": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_compsolid.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "CompSolid",
+                                "tooltip": "Create a compsolid from solids or other compsolids"
+                            },
+                            "fr": {
+                                "name": "Solide Composite",
+                                "tooltip": "Créer un solide composite à partir de solides ou d'autres solides composites"
+                            }
+                        }
+                    },
+                    "Compound": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_compound.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Compound",
+                                "tooltip": "Create a compound of objects"
+                            },
+                            "fr": {
+                                "name": "Ensemble",
+                                "tooltip": "Créer un ensemble"
+                            }
+                        }
+                    },
+                    "Edge": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_edge.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Edge",
+                                "tooltip": "Create edges from sketch edges or other edge objects"
+                            },
+                            "fr": {
+                                "name": "Arête",
+                                "tooltip": "Créer des arêtes à partir d'arêtes d'esquisse ou d'objets arêtes"
+                            }
+                        }
+                    },
+                    "Face": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_face.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Face",
+                                "tooltip": "Create a face from edges, wires and faces"
+                            },
+                            "fr": {
+                                "name": "Face",
+                                "tooltip": "Créer une face à partir d'arêtes, de contours et de faces"
+                            }
+                        }
+                    },
+                    "Filling": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_filling.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Filling",
+                                "tooltip": "Create face from list of edges"
+                            },
+                            "fr": {
+                                "name": "Remplissage",
+                                "tooltip": "Créer une face à partir d'une liste d'arêtes"
+                            }
+                        }
+                    },
+                    "Interpolation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_interpolation.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Interpolation",
+                                "tooltip": "Create an interpolation curve from points"
+                            },
+                            "fr": {
+                                "name": "Interpolation",
+                                "tooltip": "Créer une courbe d'interpolation à partir de points"
+                            }
+                        }
+                    },
+                    "Polyline": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_polyline.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Polyline",
+                                "tooltip": "Create a polyline from points"
+                            },
+                            "fr": {
+                                "name": "Polyligne",
+                                "tooltip": "Créer une polyligne à partir de points"
+                            }
+                        }
+                    },
+                    "Shell": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_shell.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Shell",
+                                "tooltip": "Create a shell from faces or shells objects"
+                            },
+                            "fr": {
+                                "name": "Coque",
+                                "tooltip": "Créer une coque à partir d'objets faces ou d'autres coques"
+                            }
+                        }
+                    },
+                    "Solid": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_solid.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Solid",
+                                "tooltip": "Create a solid from faces or shells"
+                            },
+                            "fr": {
+                                "name": "Solide",
+                                "tooltip": "Créer un solide à partir de faces ou de coques"
+                            }
+                        }
+                    },
+                    "SubShapes": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_subshapes.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Sub-Shapes",
+                                "tooltip": "Allows to add or to remove sub-shapes of the selected shape"
+                            },
+                            "fr": {
+                                "name": "Sous-formes",
+                                "tooltip": "Permet d'ajouter ou de supprimer des sous-formes de la forme sélectionnée"
+                            }
+                        }
+                    },
+                    "Vertex": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_vertex.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Vertex",
+                                "tooltip": "Create vertices from sketch point or other vertex objects"
+                            },
+                            "fr": {
+                                "name": "Sommet",
+                                "tooltip": "Créer des sommets à partir d'un point d'esquisse ou d'autres objets de sommet"
+                            }
+                        }
+                    },
+                    "Wire": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Build/feature_wire.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Wire",
+                                "tooltip": "Create a wire from sketch edges, edges and wires objects"
+                            },
+                            "fr": {
+                                "name": "Contour",
+                                "tooltip": "Créer un contour à partir d'arêtes de l’esquisse, d'arêtes et de contours"
+                            }
+                        }
+                    }
+                }
+            },
+            "Construction": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Construction"
+                    },
+                    "fr": {
+                        "name": "Construction"
+                    }
+                },
+                "children": {
+                    "Axis": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/axis.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Axis",
+                                "tooltip": "Create axis"
+                            },
+                            "fr": {
+                                "name": "Axe",
+                                "tooltip": "Créer un axe"
+                            }
+                        }
+                    },
+                    "Plane": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/plane.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Plane",
+                                "tooltip": "Create plane"
+                            },
+                            "fr": {
+                                "name": "Plan",
+                                "tooltip": "Créer un plan"
+                            }
+                        }
+                    },
+                    "Point": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/point.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Point",
+                                "tooltip": "Create point"
+                            },
+                            "fr": {
+                                "name": "Point",
+                                "tooltip": "Créer un point"
+                            }
+                        }
+                    }
+                }
+            },
+            "Features": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Features"
+                    },
+                    "fr": {
+                        "name": "Fonctions"
+                    }
+                },
+                "children": {
+                    "Chamfer": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/chamfer.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Chamfer",
+                                "tooltip": "Perform chamfer on face or edge"
+                            },
+                            "fr": {
+                                "name": "Chanfrein",
+                                "tooltip": "Effectuer un chanfrein  sur la face ou l'arête"
+                            }
+                        }
+                    },
+                    "Common": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_common.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Common",
+                                "tooltip": "Perform boolean common operation with objects"
+                            },
+                            "fr": {
+                                "name": "Intersection",
+                                "tooltip": "Effectuer l'opération booléenne intersection avec des objets"
+                            }
+                        }
+                    },
+                    "Copy": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/copy.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Copy",
+                                "tooltip": "Copies results or sub-results"
+                            },
+                            "fr": {
+                                "name": "Copie",
+                                "tooltip": "Copie les résultats ou les sous-résultats"
+                            }
+                        }
+                    },
+                    "Cut": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_cut.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Cut",
+                                "tooltip": "Perform boolean cut operation with objects"
+                            },
+                            "fr": {
+                                "name": "Découpe",
+                                "tooltip": "Effectuer l'opération booléenne découpe avec des objets"
+                            }
+                        }
+                    },
+                    "Defeaturing": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/defeaturing.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Defeaturing",
+                                "tooltip": "Perform removing faces from solid"
+                            },
+                            "fr": {
+                                "name": "Supprimer un détail",
+                                "tooltip": "Effectuer la suppression de faces d'un solide"
+                            }
+                        }
+                    },
+                    "ExportToGEOM": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Connector/geom_export.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Export to GEOM",
+                                "tooltip": "Export all results and groups into GEOM module"
+                            },
+                            "fr": {
+                                "name": "Exporter vers GEOM",
+                                "tooltip": "Exporter tous les résultats et groupes dans le module GEOM"
+                            }
+                        }
+                    },
+                    "Extrusion": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Extrusion",
+                                "tooltip": "Create a solid by extrusion of a face"
+                            },
+                            "fr": {
+                                "name": "Extrusion",
+                                "tooltip": "Créer un solide par extrusion d'une face"
+                            }
+                        }
+                    },
+                    "ExtrusionCut": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion_cut.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "ExtrusionCut",
+                                "tooltip": "Cuts an extrusion from a solid"
+                            },
+                            "fr": {
+                                "name": "Enlèvement de matière extrudé",
+                                "tooltip": "Coupe une extrusion d'un solide"
+                            }
+                        }
+                    },
+                    "ExtrusionFuse": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/extrusion_fuse.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "ExtrusionFuse",
+                                "tooltip": "Fuses an extrusion with a solid"
+                            },
+                            "fr": {
+                                "name": "Bossage extrudé",
+                                "tooltip": "Fusionne une extrusion avec un solide"
+                            }
+                        }
+                    },
+                    "Field": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/field.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Field",
+                                "tooltip": "Create fields for selected shapes"
+                            },
+                            "fr": {
+                                "name": "Champ",
+                                "tooltip": "Créer des champs pour les formes sélectionnées"
+                            }
+                        }
+                    },
+                    "Fillet": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fillet.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Fillet",
+                                "tooltip": "Perform fillet on face or edge"
+                            },
+                            "fr": {
+                                "name": "Congé",
+                                "tooltip": "Effectuer un congé sur la face ou l'arête"
+                            }
+                        }
+                    },
+                    "Fillet1D": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fillet1d.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "1D-fillet",
+                                "tooltip": "Perform fillet on vertices of a wire"
+                            },
+                            "fr": {
+                                "name": "1D-congé",
+                                "tooltip": "Effectuer un congé sur les sommets d'un contour"
+                            }
+                        }
+                    },
+                    "Fuse": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_fuse.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Fuse",
+                                "tooltip": "Perform boolean fuse operation with objects"
+                            },
+                            "fr": {
+                                "name": "Fusionner",
+                                "tooltip": "Effectuer l'opération booléenne fusion avec des objets"
+                            }
+                        }
+                    },
+                    "FusionFaces": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/fusion_faces.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Fuse Faces",
+                                "tooltip": "Performs fusion of connected faces"
+                            },
+                            "fr": {
+                                "name": "Fusionner des faces",
+                                "tooltip": "Effectue la fusion de faces connectées"
+                            }
+                        }
+                    },
+                    "GlueFaces": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/glue_faces.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Glue Faces",
+                                "tooltip": "Perform gluing of connected faces"
+                            },
+                            "fr": {
+                                "name": "Recoller les faces",
+                                "tooltip": "Effectuer le collage des faces connectées"
+                            }
+                        }
+                    },
+                    "Group": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/shape_group.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Group",
+                                "tooltip": "Create named collection of geometry entities"
+                            },
+                            "fr": {
+                                "name": "Groupe",
+                                "tooltip": "Créer une collection nommée d'entités géométriques"
+                            }
+                        }
+                    },
+                    "GroupAddition": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_addition.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Group Addition",
+                                "tooltip": "Join several groups to single group"
+                            },
+                            "fr": {
+                                "name": "Addition de groupes",
+                                "tooltip": "Joindre plusieurs groupes pour former un seul groupe"
+                            }
+                        }
+                    },
+                    "GroupIntersection": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_intersection.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Group Intersection",
+                                "tooltip": "Get elements existing in all groups"
+                            },
+                            "fr": {
+                                "name": "Intersection de groupes",
+                                "tooltip": "Obtenir les éléments existants dans tous les groupes"
+                            }
+                        }
+                    },
+                    "GroupShape": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/svg/group_shape.svg",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Group Shape",
+                                "tooltip": "Join several groups to single shape"
+                            },
+                            "fr": {
+                                "name": "Forme à partir de groupes",
+                                "tooltip": "Joindre plusieurs groupes dans une forme seule"
+                            }
+                        }
+                    },
+                    "GroupSubstraction": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Collection/group_substraction.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Group Substraction",
+                                "tooltip": "Exclude elements existing tool groups"
+                            },
+                            "fr": {
+                                "name": "Soustraction de groupes",
+                                "tooltip": "Exclure des éléments des groupes d'outils existants"
+                            }
+                        }
+                    },
+                    "ImportResult": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/import_result.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Import Result",
+                                "tooltip": "Copies results from other parts"
+                            },
+                            "fr": {
+                                "name": "Importer le résultat",
+                                "tooltip": "Copie les résultats d'autres pièces"
+                            }
+                        }
+                    },
+                    "Intersection": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/intersection.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Intersection",
+                                "tooltip": "Intersect objects with tools"
+                            },
+                            "fr": {
+                                "name": "Section",
+                                "tooltip": "Intersection d'objets avec des outils"
+                            }
+                        }
+                    },
+                    "LimitTolerance": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/limit_tolerance.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Limit Tolerance",
+                                "tooltip": "Limit the tolerance on a shape"
+                            },
+                            "fr": {
+                                "name": "Limiter la tolérance",
+                                "tooltip": "Limiter la tolérance sur une forme"
+                            }
+                        }
+                    },
+                    "Loft": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/loft.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Loft",
+                                "tooltip": "Generates a shape with two elements"
+                            },
+                            "fr": {
+                                "name": "Lissage",
+                                "tooltip": "Génére une forme avec deux éléments"
+                            }
+                        }
+                    },
+                    "Partition": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/partition.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Partition",
+                                "tooltip": "Perform partition operations with solids"
+                            },
+                            "fr": {
+                                "name": "Partition",
+                                "tooltip": "Effectuer des opérations de partition avec des solides"
+                            }
+                        }
+                    },
+                    "Pipe": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/pipe.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Pipe",
+                                "tooltip": "Generates extrusion along a path"
+                            },
+                            "fr": {
+                                "name": "Tuyau",
+                                "tooltip": "Génère une extrusion le long d'un chemin"
+                            }
+                        }
+                    },
+                    "Recover": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/recover.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Recover",
+                                "tooltip": "Visualize concealed objects"
+                            },
+                            "fr": {
+                                "name": "Récupérer",
+                                "tooltip": "Visualiser les objets cachés"
+                            }
+                        }
+                    },
+                    "Remove_SubShapes": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/remove_subshapes.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Remove Sub-Shapes",
+                                "tooltip": "Allows to remove sub-shapes from wires, shells, compsolids and compounds"
+                            },
+                            "fr": {
+                                "name": "Supprimer les sous-formes",
+                                "tooltip": "Permet de supprimer les sous formes de fils, coques, solides composites et ensembles"
+                            }
+                        }
+                    },
+                    "Revolution": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Revolution",
+                                "tooltip": "Create a solid by revolution of a face"
+                            },
+                            "fr": {
+                                "name": "Révolution",
+                                "tooltip": "Créer un solide par révolution d'une face"
+                            }
+                        }
+                    },
+                    "RevolutionCut": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol_cut.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "RevolutionCut",
+                                "tooltip": "Cuts a revolution from a solid"
+                            },
+                            "fr": {
+                                "name": "Enlèvement de matière avec révolution",
+                                "tooltip": "Coupe une révolution d'un solide"
+                            }
+                        }
+                    },
+                    "RevolutionFuse": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/revol_fuse.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "RevolutionFuse",
+                                "tooltip": "Fuses a revolution with a solid"
+                            },
+                            "fr": {
+                                "name": "Bossage avec révolution",
+                                "tooltip": "Fusionne une révolution avec un solide"
+                            }
+                        }
+                    },
+                    "Scale": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/scale.svg",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Scale",
+                                "tooltip": "Perform scale objects"
+                            },
+                            "fr": {
+                                "name": "Échelle",
+                                "tooltip": "Effectuer un changement d'échelle des objets"
+                            }
+                        }
+                    },
+                    "Sewing": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/sewing.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Sewing",
+                                "tooltip": "Perform sewing operation on shapes"
+                            },
+                            "fr": {
+                                "name": "Coudre les faces",
+                                "tooltip": "Effectuer une opération de couture sur des formes"
+                            }
+                        }
+                    },
+                    "SketchCopy": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/copy.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Sketch copy",
+                                "tooltip": "Copy sketch and all its elements to the same plane"
+                            },
+                            "fr": {
+                                "name": "Copie d'esquisse",
+                                "tooltip": "Copiez l'esquisse et tous ses éléments dans le même plan"
+                            }
+                        }
+                    },
+                    "Smash": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_smash.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Smash",
+                                "tooltip": "Perform boolean smash operation with objects"
+                            },
+                            "fr": {
+                                "name": "Smash",
+                                "tooltip": "Effectuer l'opération booléenne smash avec des objets"
+                            }
+                        }
+                    },
+                    "Split": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bool_split.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Split",
+                                "tooltip": "Perform boolean split operation with objects"
+                            },
+                            "fr": {
+                                "name": "Diviser",
+                                "tooltip": "Effectuer l'opération booléenne division avec des objets"
+                            }
+                        }
+                    }
+                }
+            },
+            "File": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "File"
+                    },
+                    "fr": {
+                        "name": "Fichier"
+                    },
+                    "ja": {
+                        "name": "ファイル"
+                    }
+                },
+                "children": {
+                    "Export": {
+                        "isAction": false,
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Export"
+                            },
+                            "fr": {
+                                "name": "Exporter"
+                            }
+                        },
+                        "children": {
+                            "Part": {
+                                "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/part_ico.png",
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "Part...",
+                                        "tooltip": "Export a part of the current document into a file"
+                                    },
+                                    "fr": {
+                                        "name": "Pièce...",
+                                        "tooltip": "Exporter une pièce du document courant dans un fichier"
+                                    }
+                                }
+                            },
+                            "PartSet": {
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "Part set...",
+                                        "tooltip": "Export the current document into a native file"
+                                    },
+                                    "fr": {
+                                        "name": "Assemblage...",
+                                        "tooltip": "Exporter le document actuel dans un fichier natif"
+                                    }
+                                }
+                            },
+                            "Shape": {
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "To CAD format...",
+                                        "tooltip": "Export shape to a CAD format file"
+                                    },
+                                    "fr": {
+                                        "name": "Au format CAO...",
+                                        "tooltip": "Exportation de la forme vers un fichier au format CAO"
+                                    }
+                                }
+                            }
+                        }
+                    },
+                    "Import": {
+                        "isAction": false,
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Import"
+                            },
+                            "fr": {
+                                "name": "Importer"
+                            }
+                        },
+                        "children": {
+                            "Image": {
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "Picture...",
+                                        "tooltip": "Import a picture from an image file"
+                                    },
+                                    "fr": {
+                                        "name": "Une image...",
+                                        "tooltip": "Import a picture from an image file"
+                                    }
+                                }
+                            },
+                            "Part": {
+                                "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/part_ico.png",
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "Part...",
+                                        "tooltip": "Import structure of a part"
+                                    },
+                                    "fr": {
+                                        "name": "Pièce...",
+                                        "tooltip": "Structure d'importation d'une pièce"
+                                    }
+                                }
+                            },
+                            "PartSet": {
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "Part set...",
+                                        "tooltip": "Import native file"
+                                    },
+                                    "fr": {
+                                        "name": "Assemblage...",
+                                        "tooltip": "Importer un fichier natif"
+                                    }
+                                }
+                            },
+                            "Shape": {
+                                "langDependentAssets": {
+                                    "en": {
+                                        "name": "From CAD format...",
+                                        "tooltip": "Import shape from a CAD format file"
+                                    },
+                                    "fr": {
+                                        "name": "À partir du format CAO...",
+                                        "tooltip": "Importer une forme à partir d'un fichier au format CAO"
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "Inspection": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Inspection"
+                    },
+                    "fr": {
+                        "name": "Inspection"
+                    }
+                },
+                "children": {
+                    "BoundingBoxMacro": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/bounding.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Bounding box",
+                                "tooltip": "Calculate the bounding box"
+                            },
+                            "fr": {
+                                "name": "Boîte englobante",
+                                "tooltip": "Calculer la boîte englobante"
+                            }
+                        }
+                    },
+                    "GeometryCalculation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/geometryCalculation.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Geometry calculation",
+                                "tooltip": "Calculate properties of objects"
+                            },
+                            "fr": {
+                                "name": "Calcul de la géometrie",
+                                "tooltip": "Calculer les propriétés des objets"
+                            }
+                        }
+                    },
+                    "Measurement": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/measurement.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Measurement",
+                                "tooltip": "Calculate properties of objects"
+                            },
+                            "fr": {
+                                "name": "Mesure",
+                                "tooltip": "Calculer les propriétés des objets"
+                            }
+                        }
+                    },
+                    "NormalMacro": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/normale.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Normal to a face",
+                                "tooltip": "Calculate the normal to a face"
+                            },
+                            "fr": {
+                                "name": "Normale d'une face",
+                                "tooltip": "Calcule la normale d'une face"
+                            }
+                        }
+                    },
+                    "PointCoordinates": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/point_coord.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Point coordinates",
+                                "tooltip": "View point coordinate"
+                            },
+                            "fr": {
+                                "name": "Coordonnées d'un point",
+                                "tooltip": "Voir les coordonnées du point"
+                            }
+                        }
+                    },
+                    "Shared_faces_macro": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/shared_shapes.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Check shared faces",
+                                "tooltip": "Check the shared faces"
+                            },
+                            "fr": {
+                                "name": "Vérifier les faces partagées",
+                                "tooltip": "Check the shared faces"
+                            }
+                        }
+                    }
+                }
+            },
+            "Macros": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Macros"
+                    },
+                    "fr": {
+                        "name": "Macros"
+                    }
+                },
+                "children": {
+                    "SketchDrawer": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/drawer.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Sketch drawer",
+                                "tooltip": "Creates sketch using elements of selected shape belonging to selected plane"
+                            },
+                            "fr": {
+                                "name": "Créer une esquisse à partir d'un contour",
+                                "tooltip": "Crée une esquisse en utilisant des éléments de la forme sélectionnée appartenant au plan sélectionné"
+                            }
+                        }
+                    },
+                    "compoundVertices": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/compound.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Import points",
+                                "tooltip": "Import a set of construction points"
+                            },
+                            "fr": {
+                                "name": "Importer des points",
+                                "tooltip": "Importer un ensemble de points de construction"
+                            }
+                        }
+                    },
+                    "importParameters": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/parameters.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Import parameters",
+                                "tooltip": "Import a set of parameters"
+                            },
+                            "fr": {
+                                "name": "Importer des paramètres",
+                                "tooltip": "Importer un ensemble de paramètres"
+                            }
+                        }
+                    },
+                    "midSurface": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/midSurface.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Create midsurfaces",
+                                "tooltip": "Create midsurfaces"
+                            },
+                            "fr": {
+                                "name": "Créer des fibres neutres",
+                                "tooltip": "Créer des fibres neutres"
+                            }
+                        }
+                    },
+                    "pipeNetwork": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/pipeNetwork.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Pipe network",
+                                "tooltip": "Create a network of pipes"
+                            },
+                            "fr": {
+                                "name": "Réseau de tuyaux",
+                                "tooltip": "Créer un réseau de tuyaux"
+                            }
+                        }
+                    }
+                }
+            },
+            "Part": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Part"
+                    },
+                    "fr": {
+                        "name": "Pièce"
+                    }
+                },
+                "children": {
+                    "AngularCopy": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/multirotation.svg",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Angular Copy",
+                                "tooltip": "Perform copy and rotate"
+                            },
+                            "fr": {
+                                "name": "Copie angulaire",
+                                "tooltip": "Effectuer une copie et une rotation"
+                            }
+                        }
+                    },
+                    "Dump": {
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Dump",
+                                "tooltip": "Dump Python script"
+                            },
+                            "fr": {
+                                "name": "Générer un script",
+                                "tooltip": "Générer un script Python"
+                            }
+                        }
+                    },
+                    "Duplicate": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/duplicate.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Duplicate part",
+                                "tooltip": "Duplicate active part"
+                            },
+                            "fr": {
+                                "name": "Dupliquer pièce",
+                                "tooltip": "Dupliquer la pièce active"
+                            }
+                        }
+                    },
+                    "LinearCopy": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/multitranslation.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Linear copy",
+                                "tooltip": "Perform copy and translate"
+                            },
+                            "fr": {
+                                "name": "Copie linéaire",
+                                "tooltip": "Effectuer la copie et la translation"
+                            }
+                        }
+                    },
+                    "Parameter": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/expression.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Parameter",
+                                "tooltip": "Create a parameter"
+                            },
+                            "fr": {
+                                "name": "Paramètre",
+                                "tooltip": "Créer un paramètre"
+                            }
+                        }
+                    },
+                    "ParametersMgr": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/paper_roll.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Parameters",
+                                "tooltip": "Manage parameters"
+                            },
+                            "fr": {
+                                "name": "Paramètres",
+                                "tooltip": "Gérer les paramètres"
+                            }
+                        }
+                    },
+                    "Part": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/XGUI/part_ico.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "New part",
+                                "tooltip": "Create part"
+                            },
+                            "fr": {
+                                "name": "Nouvelle pièce",
+                                "tooltip": "Créer une pièce"
+                            }
+                        }
+                    },
+                    "Placement": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/placement.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Placement",
+                                "tooltip": "Place objects relatively to another one"
+                            },
+                            "fr": {
+                                "name": "Placement",
+                                "tooltip": "Placez les objets l'un par rapport à l'autre"
+                            }
+                        }
+                    },
+                    "Remove": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/PartSet/remove.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Remove part",
+                                "tooltip": "Remove active part"
+                            },
+                            "fr": {
+                                "name": "Supprimer pièce",
+                                "tooltip": "Supprimer la pièce active"
+                            }
+                        }
+                    },
+                    "Rotation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/rotation.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Rotation",
+                                "tooltip": "Perform rotation of objects around the axis to specified angle"
+                            },
+                            "fr": {
+                                "name": "Rotation",
+                                "tooltip": "Effectuer une rotation des objets autour de l'axe avec l'angle spécifié"
+                            }
+                        }
+                    },
+                    "Symmetry": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/SVG/symmetry.svg",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Symmetry",
+                                "tooltip": "Perform symmetry with respect to a point, an axis or a plane"
+                            },
+                            "fr": {
+                                "name": "Symétrie",
+                                "tooltip": "Effectuer une symétrie par rapport à un point, un axe ou un plan"
+                            }
+                        }
+                    },
+                    "Translation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Features/movement.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Translation",
+                                "tooltip": "Perform translation of objects along the axis to specified distance"
+                            },
+                            "fr": {
+                                "name": "Translation",
+                                "tooltip": "Effectuer la translation des objets le long de l'axe à la distance spécifiée"
+                            }
+                        }
+                    }
+                }
+            },
+            "Primitives": {
+                "isAction": false,
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Primitives"
+                    },
+                    "fr": {
+                        "name": "Primitives"
+                    }
+                },
+                "children": {
+                    "Box": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/box.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Box",
+                                "tooltip": "Create a box"
+                            },
+                            "fr": {
+                                "name": "Boîte",
+                                "tooltip": "Créer une boîte"
+                            }
+                        }
+                    },
+                    "Cone": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/cone.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Cone",
+                                "tooltip": "Create a cone"
+                            },
+                            "fr": {
+                                "name": "Cône",
+                                "tooltip": "Créer un cône"
+                            }
+                        }
+                    },
+                    "Cylinder": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/cylinder.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Cylinder",
+                                "tooltip": "Create a cylinder"
+                            },
+                            "fr": {
+                                "name": "Cylindre",
+                                "tooltip": "Créer un cylindre"
+                            }
+                        }
+                    },
+                    "Sphere": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/sphere.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Sphere",
+                                "tooltip": "Create a sphere"
+                            },
+                            "fr": {
+                                "name": "Sphère",
+                                "tooltip": "Créer une sphère"
+                            }
+                        }
+                    },
+                    "Torus": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/torus.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Torus",
+                                "tooltip": "Create a torus"
+                            },
+                            "fr": {
+                                "name": "Tore",
+                                "tooltip": "Créer un tore"
+                            }
+                        }
+                    },
+                    "Tube": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Primitives/tube.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Tube",
+                                "tooltip": "Create a tube"
+                            },
+                            "fr": {
+                                "name": "Tube",
+                                "tooltip": "Créer un tube"
+                            }
+                        }
+                    }
+                }
+            },
+            "Sketch": {
+                "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/sketch.png",
+                "langDependentAssets": {
+                    "en": {
+                        "name": "Sketch",
+                        "tooltip": "Create sketch"
+                    },
+                    "fr": {
+                        "name": "Esquisse",
+                        "tooltip": "Créer une esquisse"
+                    }
+                },
+                "children": {
+                    "SketchConstraintAngle": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/angle_constr.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Angle",
+                                "tooltip": "Set fixed angle between two line segments"
+                            },
+                            "fr": {
+                                "name": "Angle",
+                                "tooltip": "Définir un angle fixe entre deux segments"
+                            }
+                        }
+                    },
+                    "SketchConstraintCoincidence": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/coincedence.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Coincident",
+                                "tooltip": "Create constraint for the coincidence of two points or point on line or circle"
+                            },
+                            "fr": {
+                                "name": "Coïncident",
+                                "tooltip": "Créer une contrainte pour la coïncidence de deux points ou d'un point sur une ligne ou un cercle"
+                            }
+                        }
+                    },
+                    "SketchConstraintCollinear": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/collinear.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Collinear",
+                                "tooltip": "Create constraint defining collinearity of two lines"
+                            },
+                            "fr": {
+                                "name": "Colinéaire",
+                                "tooltip": "Créer une contrainte définissant la colinéarité de deux lignes"
+                            }
+                        }
+                    },
+                    "SketchConstraintDistance": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Distance",
+                                "tooltip": "Set fixed distance from a point to an object"
+                            },
+                            "fr": {
+                                "name": "Distance",
+                                "tooltip": "Définir une distance fixe entre un point et un objet"
+                            }
+                        }
+                    },
+                    "SketchConstraintDistanceHorizontal": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance_h.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Horizontal Distance",
+                                "tooltip": "Set horizontal distance between two points"
+                            },
+                            "fr": {
+                                "name": "Distance horizontale",
+                                "tooltip": "Définir la distance horizontale entre deux points"
+                            }
+                        }
+                    },
+                    "SketchConstraintDistanceVertical": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/distance_v.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Vertical Distance",
+                                "tooltip": "Set vertical distance between two points"
+                            },
+                            "fr": {
+                                "name": "Distance verticale",
+                                "tooltip": "Définir la distance verticale entre deux points"
+                            }
+                        }
+                    },
+                    "SketchConstraintEqual": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/equal.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Equal",
+                                "tooltip": "Create constraint defining equal lengths of two lines or line and arc or equal radiuses of two arcs or two circles or arc and circle"
+                            },
+                            "fr": {
+                                "name": "Égal",
+                                "tooltip": "Créer une contrainte définissant des longueurs égales de deux lignes, ou une ligne et un arc, ou des rayons égaux de deux arcs ou de deux cercles ou d'un arc et d'un cercle"
+                            }
+                        }
+                    },
+                    "SketchConstraintHorizontal": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/horisontal.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Horizontal",
+                                "tooltip": "Create constraint defining horizontal line"
+                            },
+                            "fr": {
+                                "name": "Horizontal",
+                                "tooltip": "Créer une contrainte définissant une ligne horizontale"
+                            }
+                        }
+                    },
+                    "SketchConstraintLength": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/length.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Length",
+                                "tooltip": "Set fixed length of a line segment"
+                            },
+                            "fr": {
+                                "name": "Longueur",
+                                "tooltip": "Définir la longueur fixe d'un segment"
+                            }
+                        }
+                    },
+                    "SketchConstraintMiddle": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/middlepoint.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Middle point",
+                                "tooltip": "Create constraint for setting middle point on a line"
+                            },
+                            "fr": {
+                                "name": "Point milieu",
+                                "tooltip": "Créer une contrainte pour définir le milieu de la ligne"
+                            }
+                        }
+                    },
+                    "SketchConstraintMirror": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/mirror.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Mirror copy",
+                                "tooltip": "Create constraint, mirroring group of objects"
+                            },
+                            "fr": {
+                                "name": "Copie miroir",
+                                "tooltip": "Créer une contrainte, mettre en miroir un groupe d'objets"
+                            }
+                        }
+                    },
+                    "SketchConstraintParallel": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/parallel.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Parallel",
+                                "tooltip": "Create constraint defining two parallel lines"
+                            },
+                            "fr": {
+                                "name": "Parallèle",
+                                "tooltip": "Créer une contrainte définissant deux lignes parallèles"
+                            }
+                        }
+                    },
+                    "SketchConstraintPerpendicular": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/perpendicular.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Perpendicular",
+                                "tooltip": "Create constraint defining two orthogonal objects"
+                            },
+                            "fr": {
+                                "name": "Perpendiculaire",
+                                "tooltip": "Créer une contrainte définissant deux objets orthogonaux"
+                            }
+                        }
+                    },
+                    "SketchConstraintRadius": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/radius_constr.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Radius",
+                                "tooltip": "Set fixed radius of a circle or an arc"
+                            },
+                            "fr": {
+                                "name": "Rayon",
+                                "tooltip": "Définir le rayon fixe d'un cercle ou d'un arc"
+                            }
+                        }
+                    },
+                    "SketchConstraintRigid": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/fixed.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Fixed",
+                                "tooltip": "Fix an object"
+                            },
+                            "fr": {
+                                "name": "Fixé",
+                                "tooltip": "Fixer un objet"
+                            }
+                        }
+                    },
+                    "SketchConstraintTangent": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/tangent.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Tangent",
+                                "tooltip": "Create constraint defining tangency of two segments with common coincident point"
+                            },
+                            "fr": {
+                                "name": "Tangente",
+                                "tooltip": "Créer une contrainte définissant la tangence de deux segments avec un point de coïncidence commun"
+                            }
+                        }
+                    },
+                    "SketchConstraintVertical": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/vertical.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Vertical",
+                                "tooltip": "Create constraint defining vertical line"
+                            },
+                            "fr": {
+                                "name": "Vertical",
+                                "tooltip": "Créer une contrainte définissant une ligne verticale"
+                            }
+                        }
+                    },
+                    "SketchCurveFitting": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/curvefitting.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Curve fitting",
+                                "tooltip": "Create curve passing through the points"
+                            },
+                            "fr": {
+                                "name": "Courbe d'ajustement",
+                                "tooltip": "Créer une courbe passant par les points"
+                            }
+                        }
+                    },
+                    "SketchFillet": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/fillet.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Fillet",
+                                "tooltip": "Create constraint defining fillet between two connected segments"
+                            },
+                            "fr": {
+                                "name": "Congé",
+                                "tooltip": "Créer une contrainte définissant un congé entre deux segments connectés"
+                            }
+                        }
+                    },
+                    "SketchIntersectionPoint": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/intersection_point.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Intersection",
+                                "tooltip": "Intersect edge with sketch plane"
+                            },
+                            "fr": {
+                                "name": "Section",
+                                "tooltip": "Intersecter une arête avec un plan d'esquisse"
+                            }
+                        }
+                    },
+                    "SketchLine": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/line.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Line",
+                                "tooltip": "Create line"
+                            },
+                            "fr": {
+                                "name": "Ligne",
+                                "tooltip": "Créer une ligne"
+                            }
+                        }
+                    },
+                    "SketchMacroArc": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/arc.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Arc",
+                                "tooltip": "Create arc"
+                            },
+                            "fr": {
+                                "name": "Arc",
+                                "tooltip": "Créer un arc"
+                            }
+                        }
+                    },
+                    "SketchMacroBSpline": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/bspline.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "B-spline",
+                                "tooltip": "Create B-spline curve"
+                            },
+                            "fr": {
+                                "name": "B-spline",
+                                "tooltip": "Créer une courbe B-spline"
+                            }
+                        }
+                    },
+                    "SketchMacroBSplinePeriodic": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/bspline_p.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Periodic B-spline",
+                                "tooltip": "Create periodic B-spline curve"
+                            },
+                            "fr": {
+                                "name": "Périodique B-spline",
+                                "tooltip": "Créer une courbe périodique de type B-spline"
+                            }
+                        }
+                    },
+                    "SketchMacroCircle": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/circle.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Circle",
+                                "tooltip": "Create circle"
+                            },
+                            "fr": {
+                                "name": "Cercle",
+                                "tooltip": "Créer un cercle"
+                            }
+                        }
+                    },
+                    "SketchMacroEllipse": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/ellipse.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Ellipse",
+                                "tooltip": "Create ellipse"
+                            },
+                            "fr": {
+                                "name": "Ellipse",
+                                "tooltip": "Créer une ellipse"
+                            }
+                        }
+                    },
+                    "SketchMacroEllipticArc": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/elliptic_arc.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Elliptic arc",
+                                "tooltip": "Create elliptic arc"
+                            },
+                            "fr": {
+                                "name": "Arc d'ellipse",
+                                "tooltip": "Créer un arc d'ellipse"
+                            }
+                        }
+                    },
+                    "SketchMultiRotation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/rotate.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Angular copy",
+                                "tooltip": "Copy objects and rotate"
+                            },
+                            "fr": {
+                                "name": "Copie angulaire",
+                                "tooltip": "Copier des objets et faire pivoter"
+                            }
+                        }
+                    },
+                    "SketchMultiTranslation": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/translate.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Linear copy",
+                                "tooltip": "Copy objects and move"
+                            },
+                            "fr": {
+                                "name": "Copie linéaire",
+                                "tooltip": "Copier des objets et les déplacer"
+                            }
+                        }
+                    },
+                    "SketchOffset": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/offset.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Offset",
+                                "tooltip": "Offset a curve to a distance"
+                            },
+                            "fr": {
+                                "name": "Décalage",
+                                "tooltip": "Décaler une courbe d'une distance"
+                            }
+                        }
+                    },
+                    "SketchPoint": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/point.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Point",
+                                "tooltip": "Create point"
+                            },
+                            "fr": {
+                                "name": "Point",
+                                "tooltip": "Créer un point"
+                            }
+                        }
+                    },
+                    "SketchProjection": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/projection.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Projection",
+                                "tooltip": "Project feature onto sketch plane"
+                            },
+                            "fr": {
+                                "name": "Projection",
+                                "tooltip": "Projeter une fonction sur un plan d'esquisse"
+                            }
+                        }
+                    },
+                    "SketchRectangle": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Addons/rectangle.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Rectangle",
+                                "tooltip": "Create rectangle"
+                            },
+                            "fr": {
+                                "name": "Rectangle",
+                                "tooltip": "Créer un rectangle"
+                            }
+                        }
+                    },
+                    "SketchSplit": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/split.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Split",
+                                "tooltip": "Cut selected segment arc or circle on existing coincident points"
+                            },
+                            "fr": {
+                                "name": "Diviser",
+                                "tooltip": "Couper l'arc ou le cercle du segment sélectionné sur les points coïncidents existants"
+                            }
+                        }
+                    },
+                    "SketchTrim": {
+                        "iconPath": "%SHAPER_ROOT_DIR%/share/salome/resources/shaper/icons/Sketch/trim.png",
+                        "langDependentAssets": {
+                            "en": {
+                                "name": "Trim",
+                                "tooltip": "Trim selected segment arc or circle on intersection points nearest to the graphic selection"
+                            },
+                            "fr": {
+                                "name": "Réduire",
+                                "tooltip": "Couper l'arc ou le cercle du segment sélectionné sur les points d'intersection les plus proches de la sélection graphique"
+                            }
+                        }
+                    }
+                }
             }
         }
     }
index d916a926707007a9429064513282c09caf31bee2..c9c601d4ca87aee789545b8186382352b756b348 100644 (file)
@@ -76,8 +76,7 @@ void XGUI_MenuMgr::addFeature(const std::shared_ptr<Config_FeatureMessage>& theM
     return;
   }
   QString aWchName = ModuleBase_Tools::translate("workshop", theMessage->workbenchId());
-  theMessage->setToolBarId(ModuleBase_Tools::translate("workshop",
-      theMessage->workbenchId()).toStdString());
+  theMessage->setToolBarId(ModuleBase_Tools::translate("workshop", theMessage->workbenchId()).toStdString()); // Is toolBarId ID or name? ID must be language-independent.
 #ifdef HAVE_SALOME
   std::string aWchNameString = aWchName.toStdString();
   std::shared_ptr<XGUI_MenuWorkbench> aWorkbench = findWorkbench(aWchNameString);
index 0df895c850db18a1e6de7e1528bcddf0d0bdf874..c40ea021c354806a695d2199bc995154fa1ca0b4 100644 (file)
@@ -444,7 +444,7 @@ void XGUI_Workshop::initMenu()
 
 #ifdef HAVE_SALOME
   // Create only Undo, Redo commands
-  QAction* aAction = salomeConnector()->addDesktopCommand("UNDO_CMD", tr("Undo"),
+  QAction* aAction = salomeConnector()->addDesktopCommand("Edit/#Undo", tr("Undo"),
                                                         tr("Undo last command"),
                                                         QIcon(":pictures/undo.png"),
                                                         QKeySequence::Undo, false,
@@ -455,7 +455,7 @@ void XGUI_Workshop::initMenu()
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onUndo()));
   addHistoryMenu(aAction, SIGNAL(updateUndoHistory(const QList<ActionInfo>&)), SLOT(onUndo(int)));
 
-  aAction = salomeConnector()->addDesktopCommand("REDO_CMD", tr("Redo"), tr("Redo last command"),
+  aAction = salomeConnector()->addDesktopCommand("Edit/#Redo", tr("Redo"), tr("Redo last command"),
                                               QIcon(":pictures/redo.png"), QKeySequence::Redo,
                                               false, "MEN_DESK_EDIT");
   salomeConnector()->addActionInToolbar( aAction, aToolBarTitle );
@@ -478,44 +478,44 @@ void XGUI_Workshop::initMenu()
 
   // Add commands to a file menu
   // Import sub-menu
-  aAction = salomeConnector()->addDesktopCommand("OPEN_CMD", tr("Part set..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Import/PartSet", tr("Part set..."),
                                               tr("Import native file"),
                                               QIcon(), QKeySequence(),
                                               false, "MEN_DESK_FILE", tr("Import"), 10, 10);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onOpen()));
 
-  aAction = salomeConnector()->addDesktopCommand("IMPORT_PART_CMD", tr("Part..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Import/Part", tr("Part..."),
                                           tr("Import structure of a part"),
                                           QIcon(), QKeySequence(),
                                           false, "MEN_DESK_FILE", tr("Import"), 10, 10);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onImportPart()));
 
-  aAction = salomeConnector()->addDesktopCommand("IMPORT_SHAPE_CMD", tr("From CAD format..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Import/Shape", tr("From CAD format..."),
     tr("Import shape from a CAD format file"),
     ModuleBase_IconFactory::loadIcon("icons/Exchange/import.png"),
     QKeySequence(), false, "MEN_DESK_FILE", tr("Import"), 10, 10);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onImportShape()));
 
-  aAction = salomeConnector()->addDesktopCommand("IMPORT_IMAGE_CMD", tr("Picture..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Import/Image", tr("Picture..."),
     tr("Import a picture from an image file"),
     QIcon(),
     QKeySequence(), false, "MEN_DESK_FILE", tr("Import"), 10, 10);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onImportImage()));
 
   // Export sub-menu
-  aAction = salomeConnector()->addDesktopCommand("SAVEAS_CMD", tr("Part set..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Export/PartSet", tr("Part set..."),
                                              tr("Export the current document into a native file"),
                                               QIcon(), QKeySequence(),
                                               false, "MEN_DESK_FILE", tr("Export"), 10, 11);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onSaveAs()));
 
-  aAction = salomeConnector()->addDesktopCommand("EXPORT_PART_CMD", tr("Part..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Export/Part", tr("Part..."),
                                           tr("Export a part of the current document into a file"),
                                           QIcon(), QKeySequence(),
                                           false, "MEN_DESK_FILE", tr("Export"), 10, 11);
   connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onExportPart()));
 
-  aAction = salomeConnector()->addDesktopCommand("EXPORT_SHAPE_CMD", tr("To CAD format..."),
+  aAction = salomeConnector()->addDesktopCommand("File/Export/Shape", tr("To CAD format..."),
     tr("Export shape to a CAD format file"),
     ModuleBase_IconFactory::loadIcon("icons/Exchange/export.png"),
     QKeySequence(), false, "MEN_DESK_FILE", tr("Export"), 10, 11);
@@ -536,7 +536,7 @@ void XGUI_Workshop::initMenu()
                                 QIcon(":pictures/save.png"), QKeySequence());
   aCommand->connectTo(this, SLOT(onSaveAs()));
 
-  QString aUndoId = "UNDO_CMD";
+  QString aUndoId = "Edit/#Undo";
   aCommand = aGroup->addFeature(aUndoId, tr("Undo"), tr("Undo last command"),
                                 QIcon(":pictures/undo.png"), QKeySequence::Undo);
   aCommand->connectTo(this, SLOT(onUndo()));
@@ -545,7 +545,7 @@ void XGUI_Workshop::initMenu()
                  SIGNAL(updateUndoHistory(const QList<ActionInfo>&)),
                  SLOT(onUndo(int)));
 
-  QString aRedoId = "REDO_CMD";
+  QString aRedoId = "Edit/#Redo";
   aCommand = aGroup->addFeature(aRedoId, tr("Redo"), tr("Redo last command"),
                                 QIcon(":pictures/redo.png"), QKeySequence::Redo);
   aCommand->connectTo(this, SLOT(onRedo()));
@@ -1539,7 +1539,7 @@ void XGUI_Workshop::updateCommandStatus()
   if (aMgr->hasModuleDocument()) {
     foreach(QAction* aCmd, aCommands) {
       QString aId = aCmd->data().toString();
-      if (aId == "UNDO_CMD") {
+      if (aId == "Edit/#Undo") {
         bool isActionEnabled = false;
         // if ultimate is true -> using result of operation only, or using OR combination
         ModuleBase_ModelWidget* anActiveWidget = myOperationMgr->activeWidget();
@@ -1548,7 +1548,7 @@ void XGUI_Workshop::updateCommandStatus()
         else
           aCmd->setEnabled(myModule->canUndo());
       }
-      else if (aId == "REDO_CMD") {
+      else if (aId == "Edit/#Redo") {
         bool isActionEnabled = false;
         // if ultimate is true -> using result of operation only, or using OR combination
         ModuleBase_ModelWidget* anActiveWidget = myOperationMgr->activeWidget();
index 9a36c2fe9d9207ffd4fed3ed8040bf1ad50f03ba..9825f5d0ef0a82c2a91b30104c534c8ec2d55e5e 100644 (file)
@@ -116,19 +116,6 @@ Changes made in this file can be lost!
  <section name="salome">
   <parameter value="7.7.0dev" name="version"/>
  </section>
- <section name="shortcuts:General">
-  <parameter value="Ctrl+T" name="Show object(s)"/>
- </section>
- <section name="shortcuts:Geometry">
-  <parameter value="Meta+D" name="Decrease number of isolines"/>
-  <parameter value="Meta+Y" name="Increase transparency"/>
- </section>
- <section name="shortcuts:ParaViS">
-  <parameter value="Alt+N" name="Create new ParaView view"/>
- </section>
- <section name="shortcuts:Viewers">
-  <parameter value="" name="Back view"/>
- </section>
  <section name="windows_geometry">
   <parameter value="#00 #00 #00 #FF #00 #00 #00 #00 #FD #00 #00 #00 #02 #00 #00 #00 #00 #00 #00 #01 #00 #00 #00 #02 #B9 #FC #02 #00 #00 #00 #02 #FC #00 #00 #00 #7B #00 #00 #02 #B9 #00 #00 #00 #99 #01 #00 #00 #15 #FA #00 #00 #00 #00 #01 #00 #00 #00 #02 #FB #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #46 #00 #FF #FF #FF #FB #00 #00 #00 #18 #00 #6E #00 #6F #00 #74 #00 #65 #00 #42 #00 #6F #00 #6F #00 #6B #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #01 #00 #00 #00 #00 #C9 #00 #FF #FF #FF #FB #00 #00 #00 #36 #00 #67 #00 #65 #00 #6F #00 #6D #00 #43 #00 #72 #00 #65 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #49 #00 #6E #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #44 #00 #6F #00 #63 #00 #6B #00 #00 #00 #02 #1F #00 #00 #00 #A5 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #03 #00 #00 #07 #7C #00 #00 #00 #53 #FC #01 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #07 #7C #00 #00 #00 #46 #00 #FF #FF #FF #00 #00 #06 #74 #00 #00 #02 #B9 #00 #00 #00 #04 #00 #00 #00 #04 #00 #00 #00 #08 #00 #00 #00 #08 #FC #00 #00 #00 #06 #00 #00 #00 #02 #00 #00 #00 #02 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #CE #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #04 #00 #00 #00 #12 #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #61 #00 #73 #00 #69 #00 #63 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #50 #00 #72 #00 #69 #00 #6D #00 #69 #00 #74 #00 #69 #00 #76 #00 #65 #00 #73 #00 #00 #00 #00 #0E #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #2A #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #6F #00 #6F #00 #6C #00 #65 #00 #61 #00 #6E #00 #4F #00 #70 #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #73 #00 #00 #00 #00 #1C #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #18 #00 #47 #00 #45 #00 #4F #00 #4D #00 #50 #00 #69 #00 #63 #00 #74 #00 #75 #00 #72 #00 #65 #00 #73 #00 #00 #00 #00 #38 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #05 #00 #00 #00 #24 #00 #47 #00 #45 #00 #4F #00 #4D #00 #54 #00 #72 #00 #61 #00 #6E #00 #73 #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #4F #00 #70 #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #73 #00 #00 #00 #00 #0E #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #47 #00 #65 #00 #6E #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #00 #00 #00 #1C #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #12 #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #75 #00 #69 #00 #6C #00 #64 #00 #00 #00 #00 #2A #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #20 #00 #47 #00 #45 #00 #4F #00 #4D #00 #4D #00 #6F #00 #64 #00 #69 #00 #66 #00 #69 #00 #63 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #00 #00 #00 #38 #00 #00 #01 #FB #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #05 #00 #00 #00 #18 #00 #47 #00 #45 #00 #4F #00 #4D #00 #4D #00 #65 #00 #61 #00 #73 #00 #75 #00 #72 #00 #65 #00 #73 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #20 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #4D #00 #65 #00 #73 #00 #68 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #2C #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #41 #00 #64 #00 #64 #00 #45 #00 #6C #00 #65 #00 #6D #00 #65 #00 #6E #00 #74 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #01 #2B #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #2C #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #41 #00 #64 #00 #64 #00 #45 #00 #6C #00 #65 #00 #6D #00 #65 #00 #6E #00 #74 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #02 #EB #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #24 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #52 #00 #65 #00 #6D #00 #6F #00 #76 #00 #65 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #04 #2F #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #06 #00 #00 #00 #2E #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #49 #00 #6E #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #22 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #47 #00 #72 #00 #6F #00 #75 #00 #70 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #00 #4C #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #34 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #54 #00 #72 #00 #61 #00 #6E #00 #73 #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #00 #D6 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #30 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #4D #00 #6F #00 #64 #00 #69 #00 #66 #00 #69 #00 #63 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #01 #DC #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #30 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #4D #00 #65 #00 #61 #00 #73 #00 #75 #00 #72 #00 #65 #00 #6D #00 #65 #00 #6E #00 #74 #00 #73 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #03 #BB #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #2E #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #44 #00 #69 #00 #73 #00 #70 #00 #6C #00 #61 #00 #79 #00 #4D #00 #6F #00 #64 #00 #65 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #01 #00 #00 #03 #E8 #00 #00 #01 #58 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #06 #00 #00 #00 #30 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #4E #00 #6F #00 #64 #00 #65 #00 #43 #00 #6F #00 #6E #00 #74 #00 #72 #00 #6F #00 #6C #00 #73 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #30 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #45 #00 #64 #00 #67 #00 #65 #00 #43 #00 #6F #00 #6E #00 #74 #00 #72 #00 #6F #00 #6C #00 #73 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #30 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #46 #00 #61 #00 #63 #00 #65 #00 #43 #00 #6F #00 #6E #00 #74 #00 #72 #00 #6F #00 #6C #00 #73 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #34 #00 #53 #00 #4D #00 #45 #00 #53 #00 #48 #00 #56 #00 #6F #00 #6C #00 #75 #00 #6D #00 #65 #00 #43 #00 #6F #00 #6E #00 #74 #00 #72 #00 #6F #00 #6C #00 #73 #00 #54 #00 #6F #00 #6F #00 #6C #00 #62 #00 #61 #00 #72 #00 #00 #00 #00 #00 #00 #00 #02 #AA #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #0C #00 #42 #00 #6C #00 #6F #00 #63 #00 #6B #00 #73 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #10 #00 #41 #00 #64 #00 #76 #00 #61 #00 #6E #00 #63 #00 #65 #00 #64 #00 #00 #00 #00 #0E #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00" name="SMESH"/>
   <parameter value="#00 #00 #00 #FF #00 #00 #00 #00 #FD #00 #00 #00 #02 #00 #00 #00 #00 #00 #00 #01 #77 #00 #00 #02 #97 #FC #02 #00 #00 #00 #02 #FC #00 #00 #00 #9D #00 #00 #01 #F4 #00 #00 #00 #99 #01 #00 #00 #15 #FA #00 #00 #00 #00 #01 #00 #00 #00 #02 #FB #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #46 #00 #FF #FF #FF #FB #00 #00 #00 #18 #00 #6E #00 #6F #00 #74 #00 #65 #00 #42 #00 #6F #00 #6F #00 #6B #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #01 #00 #00 #00 #00 #C9 #00 #FF #FF #FF #FB #00 #00 #00 #36 #00 #67 #00 #65 #00 #6F #00 #6D #00 #43 #00 #72 #00 #65 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #49 #00 #6E #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #02 #99 #00 #00 #00 #9B #00 #00 #00 #9B #00 #FF #FF #FF #00 #00 #00 #03 #00 #00 #07 #7C #00 #00 #00 #53 #FC #01 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #07 #7C #00 #00 #00 #46 #00 #FF #FF #FF #00 #00 #05 #FD #00 #00 #02 #97 #00 #00 #00 #04 #00 #00 #00 #04 #00 #00 #00 #08 #00 #00 #00 #08 #FC #00 #00 #00 #04 #00 #00 #00 #02 #00 #00 #00 #02 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #CE #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #04 #00 #00 #00 #12 #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #61 #00 #73 #00 #69 #00 #63 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #50 #00 #72 #00 #69 #00 #6D #00 #69 #00 #74 #00 #69 #00 #76 #00 #65 #00 #73 #01 #00 #00 #01 #C0 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #2A #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #6F #00 #6F #00 #6C #00 #65 #00 #61 #00 #6E #00 #4F #00 #70 #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #73 #01 #00 #00 #02 #C6 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #18 #00 #47 #00 #45 #00 #4F #00 #4D #00 #50 #00 #69 #00 #63 #00 #74 #00 #75 #00 #72 #00 #65 #00 #73 #01 #00 #00 #03 #50 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #05 #00 #00 #00 #24 #00 #47 #00 #45 #00 #4F #00 #4D #00 #54 #00 #72 #00 #61 #00 #6E #00 #73 #00 #66 #00 #6F #00 #72 #00 #6D #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #4F #00 #70 #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #00 #73 #01 #00 #00 #01 #2B #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1C #00 #47 #00 #45 #00 #4F #00 #4D #00 #47 #00 #65 #00 #6E #00 #65 #00 #72 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #01 #00 #00 #01 #D4 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #12 #00 #47 #00 #45 #00 #4F #00 #4D #00 #42 #00 #75 #00 #69 #00 #6C #00 #64 #01 #00 #00 #02 #7D #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #20 #00 #47 #00 #45 #00 #4F #00 #4D #00 #4D #00 #6F #00 #64 #00 #69 #00 #66 #00 #69 #00 #63 #00 #61 #00 #74 #00 #69 #00 #6F #00 #6E #01 #00 #00 #03 #45 #00 #00 #01 #FB #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #02 #00 #00 #00 #03 #00 #00 #00 #18 #00 #47 #00 #45 #00 #4F #00 #4D #00 #4D #00 #65 #00 #61 #00 #73 #00 #75 #00 #72 #00 #65 #00 #73 #00 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #0C #00 #42 #00 #6C #00 #6F #00 #63 #00 #6B #00 #73 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #10 #00 #41 #00 #64 #00 #76 #00 #61 #00 #6E #00 #63 #00 #65 #00 #64 #01 #00 #00 #00 #4C #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00" name="GEOM"/>