SALOME: примеры скриптов на Python

Материал из ru.wiki.laduga.ru
Перейти к: навигация, поиск


Расширение возможностей графического интерфейса SALOME с помощью плагинов Python

Цели

Менеджер python-плагина SALOME позволяет пользователю расширить графический интерфейс SALOME за счет пользовательских функций, заданных как модули python. На скриншотах ниже показан пример инструмента, который создает сетку на основе множества геометрических параметров и простого графического интерфейса:

Меню для плагинов по умолчанию находится в "Tool->Extensions":

SALOME pythonplugins menu.png

В этом примере, плагин предоставляет интерфейс для ввода параметров (не предусмотренный менеджером плагинов):

SALOME pythonplugins dialog.png

Затем создается модель сетки:

SALOME pythonplugins result.png

В этом примере пользователь должен был написать:

  • 1. Скрипт на Python, который создает сетку из параметров с помощью интерфейса GEOM и SMESH Python, как и в случае обычного использования.
  • 2. Диалоговое окно в PyQt для ввода параметров
  • 3. Файл salome_plugins.py, который объявляет плагины

В этот статье описан лишь третий пункт.

Принцип

Файл salome_plugins.py в общем виде:

import salome_pluginsmanager
# Creation of the plugin
def myplugin1(context):
   ...
   # Here is the code of the plugin myplugin1
   ...
def myplugin2(context):
   ...
   # Here is the code of the plugin myplugin2
   ...
# Declaration of the plugins to the pluginsmanager
salome_pluginsmanager.AddFunction('My plugin n°1', 'This action runs the plugin n°1', myplugin1)
salome_pluginsmanager.AddFunction('My plugin n°2', 'This action runs the plugin n°2', myplugin2)
...

Процедура определяет функции, которые реализует плагин, и объявляет эту функцию для менеджера плагинов. Реализация может быть различной. Стоит рассматривать эту функцию в качестве прокси-сервера в ваш код, которым вы сможете управлять из python, находящегося в стандартном каталоге SALOME pythone.

В этом коде переменная "context" автоматически передается с помощью менеджера плагинов при запросе плагина. Этот контекст предоставляет вам по меньшей мере, следующие атрибуты:

activeStudy = context.study
salomegui = context.sg

Как только скрипт salome_plugin.py готов, он должен быть перемещен в определенное место в вашей файловой системе, где указано в SALOME искать плагины. Возможные каталоги (в порядке поиска ):

Каталог <*_ROOT_DIR>/share/Salome/plugins/<module_name>, когда этот плагин разработаны в фреймворке SALOME (<*_ROOT_DIR> это корневой каталог установки модуля, а <module_name> имя модуля строчными буквами.

Каталог ~/.config/salome/Plugins для персональных и плагинов пользователей. Любой путь в переменной SALOME_PLUGIN_PATH (путь должен быть отделен ":" для UNIX и ";" для Windows). Эта переменная должна быть задана и экспортирована до запуска SALOME.