SHAPER  9.12.0
General Architecture

A Shaper module is made of Workshop (see XGUI_Workshop) which loads a Module (see ModuleBase_IModule), connecting its features with GUI, providing it with services for launching of operations, tools for user inputs and visualisation of results. The Module can consist of one or several plug-ins which provide implementation of Module features. Each plug-in can implement one or several features. These features can be structured by Workbenches within Workshop. Workshop provides introducing of these Workbenches within main window in form of menus or/and tool bars.
Workshop interacts with a Module with help of specific interface defined in ModuleBase package. Each module for SHAPER application has to implement ModuleBase_IModile interface.
A Module manages a one document (ModelAPI_Document). This document consists of a one root document and several, loaded by request, sub-documents. Each sub-document can be stored in a single file.
Main features of the general architecture of Shaper:

  • It consists of a one Module running within a Workshop.
  • It's Document consists of a main document and several sub-documents which can be stored and loaded as separated files.
  • A Module is made of a one or several Plug-ins implementing Features supported by the Module.
  • These Features are structured by Workbenches.
  • The Module communicates with the Workshop through Interfaces.
  • The API of Shaper consists of the Interface of the Workshop and of Module.
  • A configuration file describes the composition of the Workshop where the Module and Plug-ins are referenced by their unique names.





Feature is a peace of code which performs an operation. The Feature is a main component of a plug-in. It consists of input attributes, operation functionality and result objects (one or several). All features are defined in plug-ins by the specific feature developer (in C++ or python).
For today there is a one implementation of Shaper module which implements Part Set functionality (PartSet_Module). The geometric model (i.e. the whole geometry produced by Shaper) is created through operations, or features (ModelAPI_Feature), which define a meaningful piece of design (see Plugins group). In order to easily create dedicated variants of the modeler, also to gradually develop Shaper, each feature is implemented in a Plug-in (ModelAPI_Plugin, a piece of application including its own GUI, built separately from the application. It is loaded dynamically to the application). In other words, a Module is made of a collection of Plug-ins. Each sub-document contains a data of a one Part. When the user saves its session, all documents are saved: the PartSet and each Part.

SALOME module definition

The SHAPERGUI package allows to launch the application as one of the module of SALOME platform. In that case all user interface elements are integrated into SALOME platform: the A Salome connector package is used for this connection.
To integrate Shaper into SALOME the next steps are done:

  1. LightApp_Module class from SALOME GUI LightApp package is redefined (see SHAPERGUI). This redefined class provides a connection between LightApp_Module interface and Workshop object of the application.
  2. Provide Workshop with a SALOME mode of launching in SALOME environment. In this case it is launched without its own main window, 3d viewer and main menu.
  3. In SALOME mode workshop uses:
    1. SALOME desktop as a main window.
    2. OCC viewer from SALOME platform instead of its own 3d viewer.
    3. SALOME main menu and tool bars for creation of workbenches commands.
    4. Object Browser of New GEOM application is used instead of SALOME Object Browser.
    5. Creation of a New GEOM property panel as a docking window of SALOME desktop.
    6. Use SALOME Python console instead of console in main window. Since 3 packages from SALOME GUI module become shared between this project and SALOME modules and they are independent from other SALOME parts, it is proposed in the future to detach it from SALOME platform into separated prerequisite product to avoid code duplication.
  4. Each workbench is defined as a menu in main menu bar of SALOME desktop and as a tool bar with corresponded title.
  5. Each feature in the workbench is defined as a menu item in the corresponded menu and a button in the corresponded tool bar.
  6. Object Browser of SALOME is hidden on activation of SHAPER and restored on its deactivation.
  7. Object Browser and Property panel of SHAPER is shown on activation of the module and hidden on its deactivation.
  8. Persistent of SHAPER is compatible with persistent of SALOME. On saving of SALOME study the content of SHAPERM data structure is saved into study also and restored on restoring of study.