import salome_pluginsmanager
DEMO_IS_ACTIVATED=True
-
-# -------------------------------------------------------------------------
-# Example 1: creation of basic objects.
-# The plugin function is implemented here and declared in the pluginsmanager.
-#
-import salome
-
-def trihedron(context):
- import geompy
-
- # Intialize the geompy factory with the active study
- activeStudy = context.study
- geompy.init_geom(activeStudy)
-
- # Create the objects
- Vx = geompy.MakeVectorDXDYDZ(10, 0, 0)
- Vy = geompy.MakeVectorDXDYDZ(0, 10, 0)
- Vz = geompy.MakeVectorDXDYDZ(0, 0, 10)
- origin = geompy.MakeVertex(0, 0, 0)
-
- # Register the objects in the active study
- geompy.addToStudy( Vx, "Vx" )
- geompy.addToStudy( Vy, "Vy" )
- geompy.addToStudy( Vz, "Vz" )
- geompy.addToStudy( origin, "origin" )
-
-if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('O,Vx,Vy,Vz',
- 'Creates the trihedron',
- trihedron)
-
-
-# -------------------------------------------------------------------------
-# Example 1 bis: creation of basic objects and automatic display
-def trihedron_withdisplay(context):
- import geompy
-
- # Intialize the geompy factory with the active study
- activeStudy = context.study
- geompy.init_geom(activeStudy)
-
- # Create the objects
- Vx = geompy.MakeVectorDXDYDZ(10, 0, 0)
- Vy = geompy.MakeVectorDXDYDZ(0, 10, 0)
- Vz = geompy.MakeVectorDXDYDZ(0, 0, 10)
- origin = geompy.MakeVertex(0, 0, 0)
-
- # Register the objects in the active study
- entries=[]
- entries.append(geompy.addToStudy( Vx, "Vx" ))
- entries.append(geompy.addToStudy( Vy, "Vy" ))
- entries.append(geompy.addToStudy( Vz, "Vz" ))
- entries.append(geompy.addToStudy( origin, "origin" ))
-
- # This part is to automatically display the objects in the active viewer.
- gcomp = salome.ImportComponentGUI("GEOM")
- for entry in entries:
- gcomp.createAndDisplayFitAllGO(entry)
-
-if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('O,Vx,Vy,Vz (2)',
- 'Creates Basic GEOM objects',
- trihedron_withdisplay)
-
-# -------------------------------------------------------------------------
-# Example 2: creation of a shape with parameters that can be read from a GUI.
-# The plugin function (tube_shapewithgui) delegates some action to
-# dedicated imported modules (tube.py and tubedialog.py).
-#
-import tubebuilder
-import xalome
-
-# A single dialog box is defined and recycled for every call. The
-# fields are initialized with default values given by the tube factory
-# tube.py.
-import tubedialog
-dialog = tubedialog.TubeDialog()
-dialog.setData(tubebuilder.DEFAULT_RADIUS,
- tubebuilder.DEFAULT_LENGTH,
- tubebuilder.DEFAULT_WIDTH)
-
-def tube_shapewithgui(context):
- global tubebuilder, xalome, dialog
- activeStudy = context.study
-
- # Get the parameter values from a gui dialog box. If the dialog is
- # closed using the Ok button, then the data are requested from the
- # gui and used to create the shape of the tube.
- dialog.exec_()
- if dialog.wasOk():
- radius, length, width = dialog.getData()
- shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
- entry = xalome.addToStudy(activeStudy, shape, "Tube" )
- xalome.displayShape(entry)
-
-if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('Tube shape from parameters',
- 'Creates a tube object from specified parameters',
- tube_shapewithgui)
-
-
-# -------------------------------------------------------------------------
-# Example 2 bis: creation of a mesh with parameters that can be read from a GUI.
-# The plugin function (tube_meshwithgui) delegates some action to
-# dedicated imported modules (tubebuilder.py and tubedialog.py).
-#
-def tube_meshwithgui(context):
- global tube, dialog
- activeStudy = context.study
-
- # Get the parameter values from a gui dialog box. If the dialog is
- # closed using the Ok button, then the data are requested from the
- # gui and used to create the shape of the tube.
- dialog.exec_()
- if dialog.wasOk():
- radius, length, width = dialog.getData()
- mesh = tubebuilder.createModel(activeStudy, radius, length, width)
-
-if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('Tube mesh from parameters',
- 'Creates a tube object from specified parameters',
- tube_meshwithgui)
-
-
-# -------------------------------------------------------------------------
-# Example 2 ter: creation of a geom object with a preview function in
-# the dialog box. This use case is more complex from the gui point of
-# view because the dialog box is a not modal so that we can have
-# interaction with the complete SALOME application. This modal
-# situation requires to connect button click signal on global
-# functions as a "callback" mechanism.
-#
-# TODO:
-# - coloring the preview in pink
-# - store the tmp study objects in a "preview" folder
-#
-dialogWithApply = tubedialog.TubeDialogOnTopWithApply()
-dialogWithApply.setData(tubebuilder.DEFAULT_RADIUS,
- tubebuilder.DEFAULT_LENGTH,
- tubebuilder.DEFAULT_WIDTH)
-activeStudy = None
-previewShapeEntry = None
-
-DEFAULT_FOLDER_NAME="TubeList"
-DEFAULT_SHAPE_NAME="tube"
-PREVIEW_SHAPE_NAME="preview"
-
-def acceptCallback():
- """Action to be done when click on Ok"""
- global tubebuilder, xalome
- global dialogWithApply, activeStudy
- global previewShapeEntry, deletePreviewShape
- global DEFAULT_FOLDER_NAME,DEFAULT_SHAPE_NAME
-
- dialogWithApply.accept()
-
- if previewShapeEntry is not None:
- deletePreviewShape()
-
- radius, length, width = dialogWithApply.getData()
- shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
- entry = xalome.addToStudy(activeStudy, shape, DEFAULT_SHAPE_NAME, DEFAULT_FOLDER_NAME)
- xalome.displayShape(entry)
-
-def rejectCallback():
- """Action to be done when click on Cancel"""
- global dialogWithApply, previewShapeEntry, deletePreviewShape
-
- dialogWithApply.reject()
-
- if previewShapeEntry is not None:
- deletePreviewShape()
-
-import SALOMEDS
-PREVIEW_COLOR=SALOMEDS.Color(1,0.6,1) # pink
-
-def applyCallback():
- """Action to be done when click on Apply"""
- global tubebuilder, xalome
- global dialogWithApply, activeStudy
- global previewShapeEntry, deletePreviewShape
- global PREVIEW_COLOR, DEFAULT_SHAPE_NAME, DEFAULT_FOLDER_NAME, PREVIEW_SHAPE_NAME
-
- # We first have to destroy the currently displayed preview shape.
- if previewShapeEntry is not None:
- deletePreviewShape()
-
- # Then we can create the new shape with the new parameter values
- radius, length, width = dialogWithApply.getData()
- shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
- # We apply a specific color on the shape for the preview state
- shape.SetColor(PREVIEW_COLOR)
- previewShapeEntry = xalome.addToStudy(activeStudy, shape, PREVIEW_SHAPE_NAME, DEFAULT_FOLDER_NAME )
- xalome.displayShape(previewShapeEntry)
-
-def deletePreviewShape():
- """This delete the shape currently being displayed as a preview"""
- global activeStudy, previewShapeEntry, xsalome
- xalome.deleteShape(activeStudy,previewShapeEntry)
- previewShapeEntry = None
-
-# Connection of callback functions to the dialog butoon click signals
-dialogWithApply.handleAcceptWith(acceptCallback)
-dialogWithApply.handleRejectWith(rejectCallback)
-dialogWithApply.handleApplyWith(applyCallback)
-
-def tube_shapewithguiAndPreview(context):
- """
- This plugin open a dialog in an asynchronous mode. Then it
- required callback functions to be associated to the button
- signals.
- """
- global dialogWithApply, activeStudy
- activeStudy = context.study
- dialogWithApply.open()
+try:
+ import geompy, smesh
+except:
+ DEMO_IS_ACTIVATED=False
if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('Tube geometry from parameters with preview',
- 'Creates a tube object from specified parameters',
- tube_shapewithguiAndPreview)
+ # -------------------------------------------------------------------------
+ # Example 1: creation of basic objects.
+ # The plugin function is implemented here and declared in the pluginsmanager.
+ #
+ import salome
+
+ def trihedron(context):
+ import geompy
+
+ # Intialize the geompy factory with the active study
+ activeStudy = context.study
+ geompy.init_geom(activeStudy)
+
+ # Create the objects
+ Vx = geompy.MakeVectorDXDYDZ(10, 0, 0)
+ Vy = geompy.MakeVectorDXDYDZ(0, 10, 0)
+ Vz = geompy.MakeVectorDXDYDZ(0, 0, 10)
+ origin = geompy.MakeVertex(0, 0, 0)
+
+ # Register the objects in the active study
+ geompy.addToStudy( Vx, "Vx" )
+ geompy.addToStudy( Vy, "Vy" )
+ geompy.addToStudy( Vz, "Vz" )
+ geompy.addToStudy( origin, "origin" )
+
+
+ salome_pluginsmanager.AddFunction('DEMO/O,Vx,Vy,Vz',
+ 'Creates the trihedron',
+ trihedron)
+
+
+ # -------------------------------------------------------------------------
+ # Example 1 bis: creation of basic objects and automatic display
+ def trihedron_withdisplay(context):
+ import geompy
+
+ # Intialize the geompy factory with the active study
+ activeStudy = context.study
+ geompy.init_geom(activeStudy)
+
+ # Create the objects
+ Vx = geompy.MakeVectorDXDYDZ(10, 0, 0)
+ Vy = geompy.MakeVectorDXDYDZ(0, 10, 0)
+ Vz = geompy.MakeVectorDXDYDZ(0, 0, 10)
+ origin = geompy.MakeVertex(0, 0, 0)
+
+ # Register the objects in the active study
+ entries=[]
+ entries.append(geompy.addToStudy( Vx, "Vx" ))
+ entries.append(geompy.addToStudy( Vy, "Vy" ))
+ entries.append(geompy.addToStudy( Vz, "Vz" ))
+ entries.append(geompy.addToStudy( origin, "origin" ))
+
+ # This part is to automatically display the objects in the active viewer.
+ gcomp = salome.ImportComponentGUI("GEOM")
+ for entry in entries:
+ gcomp.createAndDisplayFitAllGO(entry)
+
+
+ salome_pluginsmanager.AddFunction('DEMO/O,Vx,Vy,Vz (2)',
+ 'Creates Basic GEOM objects',
+ trihedron_withdisplay)
+
+ # -------------------------------------------------------------------------
+ # Example 2: creation of a shape with parameters that can be read from a GUI.
+ # The plugin function (tube_shapewithgui) delegates some action to
+ # dedicated imported modules (tube.py and tubedialog.py).
+ #
+
+ import tubebuilder
+ import xalome
+
+ # A single dialog box is defined and recycled for every call. The
+ # fields are initialized with default values given by the tube factory
+ # tube.py.
+ import tubedialog
+ dialog = tubedialog.TubeDialog()
+ dialog.setData(tubebuilder.DEFAULT_RADIUS,
+ tubebuilder.DEFAULT_LENGTH,
+ tubebuilder.DEFAULT_WIDTH)
+
+ def tube_shapewithgui(context):
+ global tubebuilder, xalome, dialog
+ activeStudy = context.study
+
+ # Get the parameter values from a gui dialog box. If the dialog is
+ # closed using the Ok button, then the data are requested from the
+ # gui and used to create the shape of the tube.
+ dialog.exec_()
+ if dialog.wasOk():
+ radius, length, width = dialog.getData()
+ shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
+ entry = xalome.addToStudy(activeStudy, shape, "Tube" )
+ xalome.displayShape(entry)
+
+
+ salome_pluginsmanager.AddFunction('DEMO/Tube shape from parameters',
+ 'Creates a tube object from specified parameters',
+ tube_shapewithgui)
+
+
+ # -------------------------------------------------------------------------
+ # Example 2 bis: creation of a mesh with parameters that can be read from a GUI.
+ # The plugin function (tube_meshwithgui) delegates some action to
+ # dedicated imported modules (tubebuilder.py and tubedialog.py).
+ #
+ def tube_meshwithgui(context):
+ global tube, dialog
+ activeStudy = context.study
+
+ # Get the parameter values from a gui dialog box. If the dialog is
+ # closed using the Ok button, then the data are requested from the
+ # gui and used to create the shape of the tube.
+ dialog.exec_()
+ if dialog.wasOk():
+ radius, length, width = dialog.getData()
+ mesh = tubebuilder.createModel(activeStudy, radius, length, width)
+
+
+ salome_pluginsmanager.AddFunction('DEMO/Tube mesh from parameters',
+ 'Creates a tube object from specified parameters',
+ tube_meshwithgui)
+
+
+ # -------------------------------------------------------------------------
+ # Example 2 ter: creation of a geom object with a preview function in
+ # the dialog box. This use case is more complex from the gui point of
+ # view because the dialog box is a not modal so that we can have
+ # interaction with the complete SALOME application. This modal
+ # situation requires to connect button click signal on global
+ # functions as a "callback" mechanism.
+ #
+ # TODO:
+ # - coloring the preview in pink
+ # - store the tmp study objects in a "preview" folder
+ #
+ dialogWithApply = tubedialog.TubeDialogOnTopWithApply()
+ dialogWithApply.setData(tubebuilder.DEFAULT_RADIUS,
+ tubebuilder.DEFAULT_LENGTH,
+ tubebuilder.DEFAULT_WIDTH)
+ activeStudy = None
+ previewShapeEntry = None
+
+ DEFAULT_FOLDER_NAME="TubeList"
+ DEFAULT_SHAPE_NAME="tube"
+ PREVIEW_SHAPE_NAME="preview"
+
+ def acceptCallback():
+ """Action to be done when click on Ok"""
+ global tubebuilder, xalome
+ global dialogWithApply, activeStudy
+ global previewShapeEntry, deletePreviewShape
+ global DEFAULT_FOLDER_NAME,DEFAULT_SHAPE_NAME
+
+ dialogWithApply.accept()
+
+ if previewShapeEntry is not None:
+ deletePreviewShape()
+
+ radius, length, width = dialogWithApply.getData()
+ shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
+ entry = xalome.addToStudy(activeStudy, shape, DEFAULT_SHAPE_NAME, DEFAULT_FOLDER_NAME)
+ xalome.displayShape(entry)
+
+ def rejectCallback():
+ """Action to be done when click on Cancel"""
+ global dialogWithApply, previewShapeEntry, deletePreviewShape
+
+ dialogWithApply.reject()
+
+ if previewShapeEntry is not None:
+ deletePreviewShape()
+
+ import SALOMEDS
+ PREVIEW_COLOR=SALOMEDS.Color(1,0.6,1) # pink
+
+ def applyCallback():
+ """Action to be done when click on Apply"""
+ global tubebuilder, xalome
+ global dialogWithApply, activeStudy
+ global previewShapeEntry, deletePreviewShape
+ global PREVIEW_COLOR, DEFAULT_SHAPE_NAME, DEFAULT_FOLDER_NAME, PREVIEW_SHAPE_NAME
+
+ # We first have to destroy the currently displayed preview shape.
+ if previewShapeEntry is not None:
+ deletePreviewShape()
+
+ # Then we can create the new shape with the new parameter values
+ radius, length, width = dialogWithApply.getData()
+ shape = tubebuilder.createGeometry(activeStudy, radius, length, width)
+ # We apply a specific color on the shape for the preview state
+ shape.SetColor(PREVIEW_COLOR)
+ previewShapeEntry = xalome.addToStudy(activeStudy, shape, PREVIEW_SHAPE_NAME, DEFAULT_FOLDER_NAME )
+ xalome.displayShape(previewShapeEntry)
+
+ def deletePreviewShape():
+ """This delete the shape currently being displayed as a preview"""
+ global activeStudy, previewShapeEntry, xsalome
+ xalome.deleteShape(activeStudy,previewShapeEntry)
+ previewShapeEntry = None
+
+ # Connection of callback functions to the dialog butoon click signals
+ dialogWithApply.handleAcceptWith(acceptCallback)
+ dialogWithApply.handleRejectWith(rejectCallback)
+ dialogWithApply.handleApplyWith(applyCallback)
+
+ def tube_shapewithguiAndPreview(context):
+ """
+ This plugin open a dialog in an asynchronous mode. Then it
+ required callback functions to be associated to the button
+ signals.
+ """
+ global dialogWithApply, activeStudy
+ activeStudy = context.study
+ dialogWithApply.open()
+
+
+ salome_pluginsmanager.AddFunction('DEMO/Tube geometry from parameters with preview',
+ 'Creates a tube object from specified parameters',
+ tube_shapewithguiAndPreview)
# Example 3: run a shell session in a xterm to get a SALOME python console
def runSalomeShellSession(context):
import os
- command="(xterm -e "+os.environ['KERNEL_ROOT_DIR']+"/runSession)&"
+ import salome_version
+ ld_library_path= os.getenv("LD_LIBRARY_PATH")
+ command = 'xterm -T "SALOME %s - Shell session" -e env LD_LIBRARY_PATH=%s %s/runSession&'%(salome_version.getVersion(full=True),ld_library_path,os.environ['KERNEL_ROOT_DIR'])
os.system(command)
-if DEMO_IS_ACTIVATED:
- salome_pluginsmanager.AddFunction('SALOME shell session',
- 'Execute a SALOME shell session in an external xterm',
- runSalomeShellSession)
+
+salome_pluginsmanager.AddFunction('SALOME shell session',
+ 'Execute a SALOME shell session in an external xterm',
+ runSalomeShellSession)