Finalize SMESH/padder integration (with tests and documentation)
@ -549,6 +549,8 @@ AC_OUTPUT([ \
|
|||||||
src/Tools/padder/resources/padderexe/envPadder.sh \
|
src/Tools/padder/resources/padderexe/envPadder.sh \
|
||||||
src/Tools/padder/unittests/Makefile \
|
src/Tools/padder/unittests/Makefile \
|
||||||
src/Tools/padder/unittests/autotest.sh \
|
src/Tools/padder/unittests/autotest.sh \
|
||||||
|
src/Tools/padder/doc/Makefile \
|
||||||
|
src/Tools/padder/doc/doxyfile \
|
||||||
resources/Makefile \
|
resources/Makefile \
|
||||||
resources/SMESHCatalog.xml \
|
resources/SMESHCatalog.xml \
|
||||||
resources/SalomeApp.xml \
|
resources/SalomeApp.xml \
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#
|
#
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
#SUBDIRS = MeshCut padder
|
SUBDIRS = MeshCut padder
|
||||||
SUBDIRS = MeshCut
|
#SUBDIRS = MeshCut
|
||||||
|
|
||||||
DIST_SUBDIRS = MeshCut
|
DIST_SUBDIRS = MeshCut
|
||||||
|
@ -1 +1 @@
|
|||||||
SUBDIRS = meshjob spadderpy unittests resources
|
SUBDIRS = meshjob spadderpy unittests resources doc
|
||||||
|
92
src/Tools/padder/doc/Makefile.am
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
#
|
||||||
|
|
||||||
|
# Author : Guillaume Boulant (EDF/R&D)
|
||||||
|
|
||||||
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
|
EXTRA_DIST += images input
|
||||||
|
|
||||||
|
#
|
||||||
|
# The simplest way to extends the documentation of SMESH with the
|
||||||
|
# documentation for PADDER is to copy the local source files (*.doc
|
||||||
|
# and *.png) in the source directory of SMESH documentation. Theses
|
||||||
|
# pages will be automagically included in the SMESH documentation
|
||||||
|
# generating process (make usr_docs executed at installation step) and
|
||||||
|
# will be inserted in the page pages.html that lists the "Related
|
||||||
|
# pages".
|
||||||
|
#
|
||||||
|
|
||||||
|
DOC_FILES = \
|
||||||
|
padder_userguide.doc
|
||||||
|
|
||||||
|
DOCDIR=$(top_srcdir)/doc/salome/gui/SMESH/input
|
||||||
|
|
||||||
|
IMG_FILES = \
|
||||||
|
SMESH_spadder_end.png \
|
||||||
|
SMESH_spadder_inputdialog_concrete.png \
|
||||||
|
SMESH_spadder_inputdialog_start.png \
|
||||||
|
SMESH_spadder_inputdialog_steelbar.png \
|
||||||
|
SMESH_spadder_menu.png \
|
||||||
|
SMESH_spadder_plugindialog_compute_finished.png \
|
||||||
|
SMESH_spadder_plugindialog_compute_ready.png \
|
||||||
|
SMESH_spadder_plugindialog_compute_running.png \
|
||||||
|
SMESH_spadder_plugindialog_published.png \
|
||||||
|
SMESH_spadder_plugindialog_start.png \
|
||||||
|
SMESH_spadder_start.png
|
||||||
|
|
||||||
|
|
||||||
|
IMGDIR=$(top_srcdir)/doc/salome/gui/SMESH/images
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
@mkdir -p $(DOCDIR); \
|
||||||
|
for docfile in $(DOC_FILES); do \
|
||||||
|
if [ ! -h $(DOCDIR)/$${docfile} ]; then \
|
||||||
|
echo "Linking file $${docfile} to $(DOCDIR)/$${docfile}"; \
|
||||||
|
ln -s ../$(srcdir)/input/$${docfile} $(DOCDIR)/$${docfile}; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
for imgfile in $(IMG_FILES); do \
|
||||||
|
if [ ! -h $(IMGDIR)/$${imgfile} ]; then \
|
||||||
|
echo "Linking file $${imgfile} to $(IMGDIR)/$${imgfile}"; \
|
||||||
|
ln -s ../$(srcdir)/images/$${imgfile} $(IMGDIR)/$${imgfile}; \
|
||||||
|
fi; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
@ls | grep -v -e Makefile -e doxyfile | xargs rm -rf; \
|
||||||
|
for docfile in $(DOC_FILES); do \
|
||||||
|
echo "Removing file $${docfile} from $(DOCDIR)"; \
|
||||||
|
rm $(DOCDIR)/$${docfile}; \
|
||||||
|
done; \
|
||||||
|
for imgfile in $(IMG_FILES); do \
|
||||||
|
echo "Removing file $${imgfile} from $(IMGDIR)"; \
|
||||||
|
rm $(IMGDIR)/$${imgfile}; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
#
|
||||||
|
# For test purpose, we let the user generate a local dosygen
|
||||||
|
# documentation including only the local pages
|
||||||
|
#
|
||||||
|
test_docs: doxyfile
|
||||||
|
echo "===========================================" ; \
|
||||||
|
echo "Generating PADDER documentation" ; \
|
||||||
|
echo "===========================================" ; \
|
||||||
|
$(DOXYGEN) doxyfile ;
|
77
src/Tools/padder/doc/doxyfile.in
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
#
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Project related configuration options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
PROJECT_NAME = "SALOME Mesh User's Guide"
|
||||||
|
OUTPUT_DIRECTORY = .
|
||||||
|
CREATE_SUBDIRS = NO
|
||||||
|
OUTPUT_LANGUAGE = English
|
||||||
|
TAB_SIZE = 5
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to warning and progress messages
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
QUIET = NO
|
||||||
|
WARNINGS = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
#Input related options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
INPUT = @srcdir@/input
|
||||||
|
FILE_PATTERNS = *.doc
|
||||||
|
EXCLUDE =
|
||||||
|
IMAGE_PATH = @srcdir@/images
|
||||||
|
EXAMPLE_PATH = @top_srcdir@/src/SMESH_SWIG
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
#HTML related options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_HTML = YES
|
||||||
|
HTML_OUTPUT = .
|
||||||
|
HTML_HEADER = @top_builddir@/doc/salome/gui/SMESH/static/header.html
|
||||||
|
HTML_FOOTER = @top_srcdir@/doc/salome/gui/SMESH/static/footer.html
|
||||||
|
HTML_STYLESHEET = @top_srcdir@/doc/salome/gui/SMESH/static/doxygen.css
|
||||||
|
TOC_EXPAND = YES
|
||||||
|
DISABLE_INDEX = NO
|
||||||
|
GENERATE_TREEVIEW = YES
|
||||||
|
TREEVIEW_WIDTH = 300
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
#SORT related options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
SORT_GROUP_NAMES = NO
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
#LaTeX related option
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_LATEX = NO
|
||||||
|
EXTRA_PACKAGES = amsmath
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
#RTF related options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_RTF = NO
|
||||||
|
|
||||||
|
SEARCHENGINE = YES
|
BIN
src/Tools/padder/doc/images/SMESH_spadder_end.png
Normal file
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 83 KiB |
BIN
src/Tools/padder/doc/images/SMESH_spadder_inputdialog_start.png
Normal file
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 85 KiB |
BIN
src/Tools/padder/doc/images/SMESH_spadder_menu.png
Normal file
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 106 KiB |
BIN
src/Tools/padder/doc/images/SMESH_spadder_plugindialog_start.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
src/Tools/padder/doc/images/SMESH_spadder_start.png
Normal file
After Width: | Height: | Size: 65 KiB |
139
src/Tools/padder/doc/input/padder_userguide.doc
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
\page padder_userguide_page Use the padder SMESH Plugin
|
||||||
|
|
||||||
|
-# \ref S1_PADDER
|
||||||
|
-# \ref S2_PADDER
|
||||||
|
-# \ref S3_PADDER
|
||||||
|
|
||||||
|
\section S1_PADDER The PADDER Algorithm
|
||||||
|
|
||||||
|
PADDER is an algorithm that creates a set of particules called a "discrete mesh".
|
||||||
|
The particules are characterized by a location in space and a weight that can be considered
|
||||||
|
as the radius of a sphere whose center is the location of the particule.
|
||||||
|
|
||||||
|
Discrete meshes are typically used to modelize civil components in rapid dynamic
|
||||||
|
computation problems (seisms, chocs). These components consists in concrete parts
|
||||||
|
embedding steal bares for reinforcement. These parts are input to the algorithm
|
||||||
|
as standard finite elements meshes. The cells of theses meshes drive the location
|
||||||
|
and sizing of particules.
|
||||||
|
|
||||||
|
In the med representation, a discrete mesh is described as MED_BALL elements.
|
||||||
|
A MED_BALL element is defined by a location and a radius.
|
||||||
|
|
||||||
|
\section S2_PADDER The PADDER SALOME plugin
|
||||||
|
|
||||||
|
The PADDER algoritm is integrated in the module SMESH as a SALOME
|
||||||
|
plugin. This section illustrates how to use this plugin to create a
|
||||||
|
discrete mesh.
|
||||||
|
|
||||||
|
In this example, we suppose that two standard meshes (Finite Elements
|
||||||
|
Meshes) have been created and publish in the study to modelize the
|
||||||
|
concrete part (here with the name "concrete") and the steal bars part
|
||||||
|
(here with the name "ferrail"):
|
||||||
|
|
||||||
|
\image html SMESH_spadder_start.png
|
||||||
|
|
||||||
|
The PADDER plugin can be invoked from the SMESH plugins menu, as
|
||||||
|
illustrated on the figure below:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_menu.png
|
||||||
|
|
||||||
|
When you clic on the "PADDER mesher" item, the graphical interface of
|
||||||
|
the PADDER plugin appears:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_plugindialog_start.png
|
||||||
|
|
||||||
|
This interface invites you to specify input data by pressing the button
|
||||||
|
"Input". This command opens the Input dialog box to specify the list
|
||||||
|
of meshes and the type of the selected meshes (to be choosen between
|
||||||
|
"concrete" or "steelbar" using the combobox on the right side of the
|
||||||
|
input line):
|
||||||
|
|
||||||
|
\image html SMESH_spadder_inputdialog_start.png
|
||||||
|
|
||||||
|
In the figure below, the mesh with name "concrete" has been selected
|
||||||
|
in the study and added in the list of input file as a "concrete
|
||||||
|
mesh". You have to input the mesh in the dialog using the rounded
|
||||||
|
arrow icon, then specify a group name (the name of the group of
|
||||||
|
MED_BALL created for this mesh in the resulting mesh), and finnaly
|
||||||
|
clic on the "Add" icon:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_inputdialog_concrete.png
|
||||||
|
|
||||||
|
Then, the mesh with name "ferrail" is selected and added to the list
|
||||||
|
as a "steelbar mesh":
|
||||||
|
|
||||||
|
\image html SMESH_spadder_inputdialog_steelbar.png
|
||||||
|
|
||||||
|
The input dialog box can be validated toreturn to the main plugin
|
||||||
|
interface. The "Compute" button is now enable, indicating that the
|
||||||
|
problem is ready to be computed:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_plugindialog_compute_ready.png
|
||||||
|
|
||||||
|
The command "Compute" start the job. The progression can be requested
|
||||||
|
using the command "Refresh". In the figure below, the job is still
|
||||||
|
running:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_plugindialog_compute_running.png
|
||||||
|
|
||||||
|
Finally, the job is finished and the result is ready to be published
|
||||||
|
in the SALOME study:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_plugindialog_compute_finished.png
|
||||||
|
|
||||||
|
Clic on the command "Publish" to explicitly import the resulting med
|
||||||
|
file in SMESH and published the resulting mesh in the SALOME study:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_plugindialog_published.png
|
||||||
|
|
||||||
|
Note that this mesh contains one group for each of the input mesh. A
|
||||||
|
group with the name specified in the input dialog has been defined for
|
||||||
|
the set of MED_BALL created from the corresponding input mesh:
|
||||||
|
|
||||||
|
\image html SMESH_spadder_end.png
|
||||||
|
|
||||||
|
\section S3_PADDER Configuring the plugin
|
||||||
|
|
||||||
|
The configuration of the plugin consists in specifying the location of
|
||||||
|
the padder executable program for each of the SALOME resource (at
|
||||||
|
least for the localhost resource). This specification is done in the
|
||||||
|
file padder.cfg, located in the plugin installation folder
|
||||||
|
(i.e. <SMESH_ROOT_DIR>/plugins):
|
||||||
|
|
||||||
|
\code
|
||||||
|
# This section specify the configurations to be used respectively for
|
||||||
|
# the local execution and the remote execution. The value for 'local'
|
||||||
|
# and 'remote' keys must be the name of a configuration section in
|
||||||
|
# this file. The default key must specify a value between "local" or
|
||||||
|
# "remote" to indicate the user preference.
|
||||||
|
[resources]
|
||||||
|
local = localhost
|
||||||
|
remote = nepal
|
||||||
|
|
||||||
|
[preferences]
|
||||||
|
defaultres = local
|
||||||
|
|
||||||
|
# The following sections defines the available configurations.
|
||||||
|
# The name of the section can be choosen arbitrary. But the value of
|
||||||
|
# the resname key MUST be the name of a SALOME resource defined in the
|
||||||
|
# catalog of resources (CatalogResources.xml).
|
||||||
|
|
||||||
|
# For each section:
|
||||||
|
# - resname : the name of the SALOME resource to be used in this configuration
|
||||||
|
# - binpath : the path to the padder executable program on this resource
|
||||||
|
# - envpath : the path to the environment file on this resource
|
||||||
|
[localhost]
|
||||||
|
resname = localhost
|
||||||
|
binpath = /home/.programs/salome/workspace/V6_4_BR/SMESH/install/share/salome/resources/smesh/padderexe/padder.exe
|
||||||
|
envpath = /home/.programs/salome/workspace/V6_4_BR/SMESH/install/share/salome/resources/smesh/padderexe/envPadder.sh
|
||||||
|
|
||||||
|
[nepal]
|
||||||
|
resname = nepal@nepal
|
||||||
|
binpath = /usr/local/bin/padder.exe
|
||||||
|
envpath = /usr/local/share/envPadder.sh
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
@ -24,11 +24,12 @@
|
|||||||
#
|
#
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
BUILT_SOURCES = \
|
BUILT_SOURCES = MESHJOBSK.cc
|
||||||
MESHJOBSK.cc
|
IDL_FILES = MESHJOB.idl
|
||||||
|
|
||||||
IDL_FILES = \
|
# For test purpose, we add a little component:
|
||||||
MESHJOB.idl
|
BUILT_SOURCES += SPADDERPluginTestSK.cc
|
||||||
|
IDL_FILES += SPADDERPluginTest.idl
|
||||||
|
|
||||||
salomeidl_DATA = $(IDL_FILES)
|
salomeidl_DATA = $(IDL_FILES)
|
||||||
|
|
||||||
|
46
src/Tools/padder/meshjob/idl/SPADDERPluginTest.idl
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Copyright (C) 2011 CEA/DEN, EDF R&D
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// Authors : Guillaume Boulant (EDF) - 31/01/2011
|
||||||
|
|
||||||
|
#ifndef _SPADDERPLUGINTEST_IDL_
|
||||||
|
#define _SPADDERPLUGINTEST_IDL_
|
||||||
|
|
||||||
|
#include "SALOME_Exception.idl"
|
||||||
|
#include "SALOME_Component.idl"
|
||||||
|
|
||||||
|
module SPADDERPluginTest {
|
||||||
|
|
||||||
|
//
|
||||||
|
// ========================================================================
|
||||||
|
// Thi module defines an interface provided for testing the usage
|
||||||
|
// of SPADDERPlugin components and underlying classes from within a
|
||||||
|
// C++ unit test running in a SALOME container (easy to run from a
|
||||||
|
// python client)..
|
||||||
|
// ========================================================================
|
||||||
|
//
|
||||||
|
|
||||||
|
interface SPADDERPluginTester: Engines::EngineComponent
|
||||||
|
{
|
||||||
|
void demo(in double a,in double b,out double c) raises (SALOME::SALOME_Exception);
|
||||||
|
boolean testkernel() raises (SALOME::SALOME_Exception);
|
||||||
|
boolean testsmesh(in long studyId) raises (SALOME::SALOME_Exception);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _SPADDERPLUGINTEST_IDL_
|
@ -15,26 +15,56 @@ salomeinclude_HEADERS= \
|
|||||||
libMeshJobManagerEngine_la_SOURCES = \
|
libMeshJobManagerEngine_la_SOURCES = \
|
||||||
MeshJobManager_i.cxx
|
MeshJobManager_i.cxx
|
||||||
|
|
||||||
|
|
||||||
LIBXML_INCLUDES=@LIBXML_INCLUDES@
|
|
||||||
LIBXML_LIBS=@LIBXML_LIBS@
|
LIBXML_LIBS=@LIBXML_LIBS@
|
||||||
KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
|
KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
|
||||||
#KERNEL_LIBS=@KERNEL_LDFLAGS@ -lSalomeContainer -lOpUtil -lSalomeDSCContainer -lSalomeDSCSuperv -lSalomeDatastream -lSalomeDSCSupervBasic -lCalciumC -lSalomeKernelHelpers
|
|
||||||
KERNEL_LIBS = \
|
|
||||||
@KERNEL_LDFLAGS@ \
|
|
||||||
-lSalomeContainer
|
|
||||||
|
|
||||||
# -lSalomeLauncher -lSalomeKernelHelpers \
|
|
||||||
# -lSalomeGenericObj -lSalomeIDLKernel
|
|
||||||
|
|
||||||
OMNIORB_CXXFLAGS=
|
|
||||||
|
|
||||||
libMeshJobManagerEngine_la_CXXFLAGS = \
|
libMeshJobManagerEngine_la_CXXFLAGS = \
|
||||||
-I$(builddir)/../idl $(KERNEL_CXXFLAGS) \
|
-I$(builddir)/../idl $(KERNEL_CXXFLAGS) \
|
||||||
@CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \
|
@CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@
|
||||||
$(LIBXML_INCLUDES)
|
|
||||||
|
|
||||||
|
libMeshJobManagerEngine_la_FFLAGS = -fexceptions
|
||||||
libMeshJobManagerEngine_la_LDFLAGS = \
|
libMeshJobManagerEngine_la_LDFLAGS = \
|
||||||
$(builddir)/../idl/libSalomeIDLSPADDER.la \
|
$(builddir)/../idl/libSalomeIDLSPADDER.la \
|
||||||
$(KERNEL_LIBS) \
|
@KERNEL_LDFLAGS@ -lSalomeContainer -lSalomeKernelHelpers \
|
||||||
$(LIBXML_LIBS)
|
@LIBXML_LIBS@
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# Definition of the SPADDERPluginTester engine construction
|
||||||
|
# =============================================================
|
||||||
|
lib_LTLIBRARIES += libSPADDERPluginTesterEngine.la
|
||||||
|
|
||||||
|
libSPADDERPluginTesterEngine_la_SOURCES = \
|
||||||
|
SPADDERPluginTester_i.cxx
|
||||||
|
|
||||||
|
nodist_libSPADDERPluginTesterEngine_la_SOURCES =
|
||||||
|
|
||||||
|
libSPADDERPluginTesterEngine_la_CXXFLAGS = \
|
||||||
|
-I$(builddir)/../idl $(KERNEL_CXXFLAGS) \
|
||||||
|
@CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@
|
||||||
|
|
||||||
|
libSPADDERPluginTesterEngine_la_FFLAGS = -fexceptions
|
||||||
|
libSPADDERPluginTesterEngine_la_LIBADD = \
|
||||||
|
$(builddir)/../idl/libSalomeIDLSPADDER.la \
|
||||||
|
@KERNEL_LDFLAGS@ -lSalomeContainer -lSalomeKernelHelpers \
|
||||||
|
@LIBXML_LIBS@
|
||||||
|
|
||||||
|
|
||||||
|
# For testing SMESH
|
||||||
|
#
|
||||||
|
libSPADDERPluginTesterEngine_la_CXXFLAGS += \
|
||||||
|
@GEOM_CXXFLAGS@ @MED_CXXFLAGS@ \
|
||||||
|
-I$(top_builddir)/idl \
|
||||||
|
-I$(top_srcdir)/src/SMESH \
|
||||||
|
-I$(top_srcdir)/src/SMESH_I \
|
||||||
|
-I$(top_srcdir)/src/SMESHDS \
|
||||||
|
-I$(top_srcdir)/src/SMDS \
|
||||||
|
-I$(top_srcdir)/src/SMESHUtils \
|
||||||
|
$(VTK_INCLUDES) $(CAS_CPPFLAGS)
|
||||||
|
|
||||||
|
libSPADDERPluginTesterEngine_la_LIBADD += \
|
||||||
|
$(top_builddir)/src/SMESH/libSMESHimpl.la \
|
||||||
|
$(top_builddir)/src/SMESH_I/libSMESHEngine.la \
|
||||||
|
$(top_builddir)/src/SMESHDS/libSMESHDS.la \
|
||||||
|
$(top_builddir)/src/SMDS/libSMDS.la \
|
||||||
|
$(top_builddir)/src/SMESHUtils/libSMESHUtils.la
|
||||||
|
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
#undef LOG
|
#undef LOG
|
||||||
#define LOG STDLOG
|
#define LOG STDLOG
|
||||||
|
|
||||||
#include "testhelper.hxx"
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
// General purpose helper functions (to put elsewhere at least)
|
// General purpose helper functions (to put elsewhere at least)
|
||||||
|
151
src/Tools/padder/meshjob/impl/SPADDERPluginTester_i.cxx
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
// Copyright (C) 2007-2010 CEA/DEN, EDF R&D
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
|
||||||
|
#include "SPADDERPluginTester_i.hxx"
|
||||||
|
|
||||||
|
#include <SALOME_NamingService.hxx>
|
||||||
|
#include <Utils_SALOME_Exception.hxx>
|
||||||
|
|
||||||
|
// For standard logging
|
||||||
|
#include "Basics_Utils.hxx"
|
||||||
|
|
||||||
|
//
|
||||||
|
// ==========================================================================
|
||||||
|
// Implementation of the SPADDER component interface
|
||||||
|
// ==========================================================================
|
||||||
|
//
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Constructor for component "SPADDER" instance
|
||||||
|
*/
|
||||||
|
SPADDERPluginTester_i::SPADDERPluginTester_i(CORBA::ORB_ptr orb,
|
||||||
|
PortableServer::POA_ptr poa,
|
||||||
|
PortableServer::ObjectId * contId,
|
||||||
|
const char *instanceName,
|
||||||
|
const char *interfaceName)
|
||||||
|
: Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
|
||||||
|
{
|
||||||
|
LOG("Activating SPADDERPluginTester_i::SPADDERPluginTester object");
|
||||||
|
_thisObj = this ;
|
||||||
|
_id = _poa->activate_object(_thisObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Destructor for component "SPADDER" instance
|
||||||
|
SPADDERPluginTester_i::~SPADDERPluginTester_i()
|
||||||
|
{
|
||||||
|
std::cerr << "SPADDERPluginTester destruction" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* This test is just to check the component SPADDER.
|
||||||
|
*/
|
||||||
|
void SPADDERPluginTester_i::demo(CORBA::Double a,CORBA::Double b,CORBA::Double& c)
|
||||||
|
{
|
||||||
|
beginService("SPADDERPluginTester_i::demo");
|
||||||
|
try {
|
||||||
|
//BODY
|
||||||
|
|
||||||
|
std::cerr << "a: " << a << std::endl;
|
||||||
|
std::cerr << "b: " << b << std::endl;
|
||||||
|
c=a+b;
|
||||||
|
std::cerr << "c: " << c << std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
catch ( const SALOME_Exception & ex) {
|
||||||
|
SALOME::ExceptionStruct es;
|
||||||
|
es.text=CORBA::string_dup(ex.what());
|
||||||
|
es.type=SALOME::INTERNAL_ERROR;
|
||||||
|
throw SALOME::SALOME_Exception(es);
|
||||||
|
}
|
||||||
|
catch ( const SALOME::SALOME_Exception & ex) {
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (...) {
|
||||||
|
std::cerr << "unknown exception" << std::endl;
|
||||||
|
SALOME::ExceptionStruct es;
|
||||||
|
es.text=CORBA::string_dup(" unknown exception");
|
||||||
|
es.type=SALOME::INTERNAL_ERROR;
|
||||||
|
throw SALOME::SALOME_Exception(es);
|
||||||
|
}
|
||||||
|
endService("SPADDERPluginTester_i::demo");
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <SALOME_KernelServices.hxx>
|
||||||
|
#include "SALOME_Launcher.hxx"
|
||||||
|
bool SPADDERPluginTester_i::testkernel()
|
||||||
|
{
|
||||||
|
beginService("SPADDERPluginTester_i::testplugin");
|
||||||
|
|
||||||
|
Engines::SalomeLauncher_ptr salomeLauncher = KERNEL::getSalomeLauncher();
|
||||||
|
|
||||||
|
endService("SPADDERPluginTester_i::testplugin");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#include <SMESH_Gen_i.hxx>
|
||||||
|
#include <SMESH_Gen.hxx>
|
||||||
|
#include <SALOMEconfig.h>
|
||||||
|
#include CORBA_CLIENT_HEADER(SALOMEDS)
|
||||||
|
|
||||||
|
#include <utilities.h>
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* This test checks the constructor of the basic classes of the SMESH
|
||||||
|
* plugin for PADDER.
|
||||||
|
*/
|
||||||
|
bool SPADDERPluginTester_i::testsmesh(CORBA::Long studyId)
|
||||||
|
{
|
||||||
|
beginService("SPADDERPluginTester_i::testsmesh");
|
||||||
|
|
||||||
|
// Resolve the SMESH engine and the SALOME study
|
||||||
|
// _WARN_ The SMESH engine should have been loaded first
|
||||||
|
SMESH_Gen_i* smeshGen_i = SMESH_Gen_i::GetSMESHGen();
|
||||||
|
CORBA::Object_var anObject = smeshGen_i->GetNS()->Resolve("/myStudyManager");
|
||||||
|
SALOMEDS::StudyManager_var aStudyMgr = SALOMEDS::StudyManager::_narrow(anObject);
|
||||||
|
SALOMEDS::Study_var myStudy = aStudyMgr->GetStudyByID(studyId);
|
||||||
|
|
||||||
|
//
|
||||||
|
// _MEM_ CAUTION: SMESH_Gen define a data structure for local usage
|
||||||
|
// while SMESH_Gen_i is the implementation of the SMESH_Gen IDL
|
||||||
|
// interface.
|
||||||
|
//
|
||||||
|
|
||||||
|
endService("SPADDERPluginTester_i::testsmesh");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ==========================================================================
|
||||||
|
// Factory services
|
||||||
|
// ==========================================================================
|
||||||
|
//
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
PortableServer::ObjectId * SPADDERPluginTesterEngine_factory( CORBA::ORB_ptr orb,
|
||||||
|
PortableServer::POA_ptr poa,
|
||||||
|
PortableServer::ObjectId * contId,
|
||||||
|
const char *instanceName,
|
||||||
|
const char *interfaceName)
|
||||||
|
{
|
||||||
|
MESSAGE("PortableServer::ObjectId * SPADDERPluginTesterEngine_factory()");
|
||||||
|
SPADDERPluginTester_i * myEngine = new SPADDERPluginTester_i(orb, poa, contId, instanceName, interfaceName);
|
||||||
|
return myEngine->getId() ;
|
||||||
|
}
|
||||||
|
}
|
47
src/Tools/padder/meshjob/impl/SPADDERPluginTester_i.hxx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2007-2010 CEA/DEN, EDF R&D
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// Authors : Guillaume Boulant (EDF) - 01/02/2011
|
||||||
|
|
||||||
|
#ifndef _SPADDER_PLUGINTESTER_HXX_
|
||||||
|
#define _SPADDER_PLUGINTESTER_HXX_
|
||||||
|
|
||||||
|
// include the stubs generating from SPADDERPluginTest.idl
|
||||||
|
#include <SALOMEconfig.h>
|
||||||
|
#include CORBA_SERVER_HEADER(SPADDERPluginTest)
|
||||||
|
#include <SALOME_Component.hh>
|
||||||
|
#include "SALOME_Component_i.hxx"
|
||||||
|
|
||||||
|
class SPADDERPluginTester_i:
|
||||||
|
public virtual POA_SPADDERPluginTest::SPADDERPluginTester,
|
||||||
|
public Engines_Component_i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SPADDERPluginTester_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa,
|
||||||
|
PortableServer::ObjectId * contId,
|
||||||
|
const char *instanceName, const char *interfaceName);
|
||||||
|
virtual ~SPADDERPluginTester_i();
|
||||||
|
|
||||||
|
void demo(CORBA::Double a,CORBA::Double b,CORBA::Double& c);
|
||||||
|
bool testkernel();
|
||||||
|
bool testsmesh(CORBA::Long studyId);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,27 +1,38 @@
|
|||||||
#ifndef __TESTHELPER_HXX__
|
#ifndef __TESTHELPER_HXX__
|
||||||
#define __TESTHELPER_HXX__
|
#define __TESTHELPER_HXX__
|
||||||
|
|
||||||
|
// >>>
|
||||||
|
// WARN: this file is DEPRECATED and/or should be used for test
|
||||||
|
// purpose only. The PADDER configuration is now read in a
|
||||||
|
// configuration file (padder.cfg).
|
||||||
|
// <<<
|
||||||
|
|
||||||
#include <stdlib.h> // Standard C include (for getenv)
|
#include <stdlib.h> // Standard C include (for getenv)
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* This function returns the module SPADDER installation root
|
* This function returns the module SMESH installation root directory
|
||||||
* directory as a string.
|
* as a string.
|
||||||
*/
|
*/
|
||||||
static std::string SPADDER_ROOT_DIR() {
|
static std::string SMESH_ROOT_DIR() {
|
||||||
static std::string * spadder_root_dir;
|
static std::string * smesh_root_dir;
|
||||||
if ( spadder_root_dir == NULL ) {
|
if ( smesh_root_dir == NULL ) {
|
||||||
char * SPADDER_ROOT_DIR = getenv("SPADDER_ROOT_DIR");
|
char * SMESH_ROOT_DIR = getenv("SMESH_ROOT_DIR");
|
||||||
spadder_root_dir = new std::string(SPADDER_ROOT_DIR);
|
if ( SMESH_ROOT_DIR == NULL ) {
|
||||||
|
smesh_root_dir = new std::string("<path_undefined>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
smesh_root_dir = new std::string(SMESH_ROOT_DIR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return *spadder_root_dir;
|
return *smesh_root_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Relative path of the directory containing data and exe for tests */
|
/*! Relative path of the directory containing data and exe for tests */
|
||||||
static std::string PADDEREXE_RPATH("/share/salome/resources/spadder/padderexe");
|
static std::string PADDEREXE_RPATH("/share/salome/resources/smesh/padderexe");
|
||||||
/*! Absolute path of the directory containing data and exe for tests */
|
/*! Absolute path of the directory containing data and exe for tests */
|
||||||
static std::string PADDEREXE_APATH(SPADDER_ROOT_DIR()+PADDEREXE_RPATH);
|
static std::string PADDEREXE_APATH(SMESH_ROOT_DIR()+PADDEREXE_RPATH);
|
||||||
/*! Absolute path of the exe shell script for tests */
|
/*! Absolute path of the exe shell script for tests */
|
||||||
static std::string PADDEREXE_SCRIPT_FILENAME(PADDEREXE_APATH+"/padder.sh");
|
static std::string PADDEREXE_SCRIPT_FILENAME(PADDEREXE_APATH+"/padder.sh");
|
||||||
|
|
||||||
|
@ -9,5 +9,8 @@
|
|||||||
<component>
|
<component>
|
||||||
<component-name>MeshJobManager</component-name>
|
<component-name>MeshJobManager</component-name>
|
||||||
</component>
|
</component>
|
||||||
|
<component>
|
||||||
|
<component-name>SPADDERPluginTester</component-name>
|
||||||
|
</component>
|
||||||
</component-list>
|
</component-list>
|
||||||
</begin-catalog>
|
</begin-catalog>
|
||||||
|
@ -87,3 +87,7 @@ def loadSpadderCatalog():
|
|||||||
|
|
||||||
filename = getSpadderCatalogFilename()
|
filename = getSpadderCatalogFilename()
|
||||||
catalog.ImportXmlCatalogFile(filename)
|
catalog.ImportXmlCatalogFile(filename)
|
||||||
|
|
||||||
|
from salome.kernel import services
|
||||||
|
print "The list of SALOME components is now:"
|
||||||
|
print services.getComponentList()
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
# Author : Guillaume Boulant (EDF)
|
# Author : Guillaume Boulant (EDF)
|
||||||
#
|
#
|
||||||
|
|
||||||
from PyQt4.QtGui import QDialog, QMessageBox, QIcon
|
from PyQt4.QtGui import QDialog, QIcon
|
||||||
from PyQt4.QtCore import QObject, SIGNAL, SLOT, Qt
|
from PyQt4.QtCore import QObject, SIGNAL, SLOT, Qt
|
||||||
|
|
||||||
from plugindialog_ui import Ui_PluginDialog
|
from plugindialog_ui import Ui_PluginDialog
|
||||||
@ -35,6 +35,7 @@ from inputdata import InputData
|
|||||||
import os
|
import os
|
||||||
import salome
|
import salome
|
||||||
from salome.kernel import studyedit
|
from salome.kernel import studyedit
|
||||||
|
from salome.kernel.uiexception import AdminException
|
||||||
|
|
||||||
from omniORB import CORBA
|
from omniORB import CORBA
|
||||||
import SMESH
|
import SMESH
|
||||||
@ -106,6 +107,8 @@ class PluginDialog(QDialog):
|
|||||||
the initialize step, by specifing the name of the resource to
|
the initialize step, by specifing the name of the resource to
|
||||||
be used.
|
be used.
|
||||||
'''
|
'''
|
||||||
|
# We first
|
||||||
|
|
||||||
configReader = ConfigReader()
|
configReader = ConfigReader()
|
||||||
config = configReader.getLocalConfig()
|
config = configReader.getLocalConfig()
|
||||||
configId = config.resname
|
configId = config.resname
|
||||||
@ -173,12 +176,28 @@ class PluginDialog(QDialog):
|
|||||||
|
|
||||||
def __getJobManager(self):
|
def __getJobManager(self):
|
||||||
"""
|
"""
|
||||||
This function requests a pointer to the MeshJobManager servant.
|
This function requests a pointer to the MeshJobManager
|
||||||
|
servant. Note that the component is loaded on first demand,
|
||||||
|
and then the reference is recycled.
|
||||||
"""
|
"""
|
||||||
|
if self.__dict__.has_key("__jobManager") and self.__jobManager is not None:
|
||||||
|
return self.__jobManager
|
||||||
|
|
||||||
|
# WARN: we first have to update the SALOME components catalog
|
||||||
|
# with the SPADDER components (because they are not defined in
|
||||||
|
# the SMESH catalog, and then they are not in the default
|
||||||
|
# catalog)
|
||||||
|
from salome.smesh import spadder
|
||||||
|
spadder.loadSpadderCatalog()
|
||||||
|
# Then we can load the MeshJobManager component
|
||||||
component=salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
|
component=salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
|
||||||
if component is None:
|
if component is None:
|
||||||
self.__log("ERR: the SALOME component MeshJobManager can't be reached")
|
msg="ERR: the SALOME component MeshJobManager can't be reached"
|
||||||
return component
|
self.__log(msg)
|
||||||
|
raise AdminException(msg)
|
||||||
|
|
||||||
|
self.__jobManager = component
|
||||||
|
return self.__jobManager
|
||||||
|
|
||||||
def __log(self, message):
|
def __log(self, message):
|
||||||
"""
|
"""
|
||||||
@ -237,9 +256,9 @@ class PluginDialog(QDialog):
|
|||||||
# from the dialog window.
|
# from the dialog window.
|
||||||
self.__listInputData = self.__inputDialog.getData()
|
self.__listInputData = self.__inputDialog.getData()
|
||||||
self.__ui.lblStatusBar.setText("Input data OK")
|
self.__ui.lblStatusBar.setText("Input data OK")
|
||||||
|
self.__log("INF: Press \"Compute\" to start the job")
|
||||||
self.__setGuiState(["CAN_SELECT", "CAN_COMPUTE"])
|
self.__setGuiState(["CAN_SELECT", "CAN_COMPUTE"])
|
||||||
|
|
||||||
|
|
||||||
def onCompute(self):
|
def onCompute(self):
|
||||||
'''
|
'''
|
||||||
This function is the slot connected to the Compute button. It
|
This function is the slot connected to the Compute button. It
|
||||||
|
@ -1,118 +1,126 @@
|
|||||||
<ui version="4.0" >
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
<class>PluginDialog</class>
|
<class>PluginDialog</class>
|
||||||
<widget class="QDialog" name="PluginDialog" >
|
<widget class="QDialog" name="PluginDialog">
|
||||||
<property name="geometry" >
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>417</width>
|
<width>649</width>
|
||||||
<height>367</height>
|
<height>367</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle" >
|
<property name="windowTitle">
|
||||||
<string>Create a mesh with PADDER</string>
|
<string>Create a mesh with PADDER</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" >
|
<layout class="QVBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="frameInput" >
|
<widget class="QFrame" name="frameInput">
|
||||||
<property name="frameShadow" >
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="lineWidth" >
|
<property name="lineWidth">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="midLineWidth" >
|
<property name="midLineWidth">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTextEdit" name="txtLog" />
|
<widget class="QTextEdit" name="txtLog"/>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" >
|
<layout class="QVBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnInput" >
|
<widget class="QPushButton" name="btnInput">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Input</string>
|
<string>Input</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon" >
|
<property name="icon">
|
||||||
<iconset>parameters.png</iconset>
|
<iconset>
|
||||||
|
<normaloff>parameters.png</normaloff>parameters.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnCompute" >
|
<widget class="QPushButton" name="btnCompute">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Compute</string>
|
<string>Compute</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon" >
|
<property name="icon">
|
||||||
<iconset>compute.png</iconset>
|
<iconset>
|
||||||
|
<normaloff>compute.png</normaloff>compute.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnRefresh" >
|
<widget class="QPushButton" name="btnRefresh">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Refresh</string>
|
<string>Refresh</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon" >
|
<property name="icon">
|
||||||
<iconset>refresh.png</iconset>
|
<iconset>
|
||||||
|
<normaloff>refresh.png</normaloff>refresh.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnPublish" >
|
<widget class="QPushButton" name="btnPublish">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Publish</string>
|
<string>Publish</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon" >
|
<property name="icon">
|
||||||
<iconset>publish.png</iconset>
|
<iconset>
|
||||||
|
<normaloff>publish.png</normaloff>publish.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer>
|
<spacer>
|
||||||
<property name="orientation" >
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" >
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>75</width>
|
<width>75</width>
|
||||||
<height>101</height>
|
<height>101</height>
|
||||||
@ -121,12 +129,13 @@
|
|||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnClear" >
|
<widget class="QPushButton" name="btnClear">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Clear</string>
|
<string>Clear</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon" >
|
<property name="icon">
|
||||||
<iconset>clear.png</iconset>
|
<iconset>
|
||||||
|
<normaloff>clear.png</normaloff>clear.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -135,17 +144,17 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="lblStatusBar" >
|
<widget class="QLabel" name="lblStatusBar">
|
||||||
<property name="enabled" >
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape" >
|
<property name="frameShape">
|
||||||
<enum>QFrame::StyledPanel</enum>
|
<enum>QFrame::StyledPanel</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow" >
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Sunken</enum>
|
<enum>QFrame::Sunken</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -21,8 +21,8 @@ defaultres = local
|
|||||||
# - envpath : the path to the environment file on this resource
|
# - envpath : the path to the environment file on this resource
|
||||||
[localhost]
|
[localhost]
|
||||||
resname = localhost
|
resname = localhost
|
||||||
binpath = @prefix@/share/salome/resources/spadder/padderexe/padder.exe
|
binpath = @prefix@/share/salome/resources/smesh/padderexe/padder.exe
|
||||||
envpath = @prefix@/share/salome/resources/spadder/padderexe/envPadder.sh
|
envpath = @prefix@/share/salome/resources/smesh/padderexe/envPadder.sh
|
||||||
|
|
||||||
[venus]
|
[venus]
|
||||||
resname = gboulant@venus
|
resname = gboulant@venus
|
||||||
|
@ -6,7 +6,7 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
|||||||
# plugins and created in the root installation directory.
|
# plugins and created in the root installation directory.
|
||||||
#
|
#
|
||||||
salomeplugins_PYTHON = \
|
salomeplugins_PYTHON = \
|
||||||
salome_plugins.py
|
smesh_plugins.py
|
||||||
|
|
||||||
salomeplugins_DATA = \
|
salomeplugins_DATA = \
|
||||||
envPlugins.sh
|
envPlugins.sh
|
||||||
|
@ -26,8 +26,17 @@ import salome_pluginsmanager
|
|||||||
|
|
||||||
def runSpadderPlugin(context):
|
def runSpadderPlugin(context):
|
||||||
from salome.smesh.spadder.gui import plugindialog
|
from salome.smesh.spadder.gui import plugindialog
|
||||||
dialog=plugindialog.getDialog()
|
from salome.kernel.uiexception import UiException
|
||||||
dialog.update()
|
try:
|
||||||
|
dialog=plugindialog.getDialog()
|
||||||
|
except UiException, err:
|
||||||
|
from PyQt4.QtGui import QMessageBox
|
||||||
|
QMessageBox.critical(None,
|
||||||
|
"An error occurs during PADDER configuration",
|
||||||
|
err.getUIMessage())
|
||||||
|
return
|
||||||
|
|
||||||
|
dialog.update()
|
||||||
dialog.show()
|
dialog.show()
|
||||||
|
|
||||||
salome_pluginsmanager.AddFunction('PADDER mesher',
|
salome_pluginsmanager.AddFunction('PADDER mesher',
|
||||||
|
45
src/Tools/padder/spadderpy/plugin/smesh_plugins.py
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
# -*- coding: iso-8859-1 -*-
|
||||||
|
# Copyright (C) 2011 EDF R&D
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
#
|
||||||
|
# -* Makefile *-
|
||||||
|
#
|
||||||
|
# Author : Guillaume Boulant (EDF)
|
||||||
|
#
|
||||||
|
import salome_pluginsmanager
|
||||||
|
|
||||||
|
|
||||||
|
def runSpadderPlugin(context):
|
||||||
|
from salome.smesh.spadder.gui import plugindialog
|
||||||
|
from salome.kernel.uiexception import UiException
|
||||||
|
try:
|
||||||
|
dialog=plugindialog.getDialog()
|
||||||
|
except UiException, err:
|
||||||
|
from PyQt4.QtGui import QMessageBox
|
||||||
|
QMessageBox.critical(None,
|
||||||
|
"An error occurs during PADDER configuration",
|
||||||
|
err.getUIMessage())
|
||||||
|
return
|
||||||
|
|
||||||
|
dialog.update()
|
||||||
|
dialog.show()
|
||||||
|
|
||||||
|
salome_pluginsmanager.AddFunction('PADDER mesher',
|
||||||
|
'Create a mesh with PADDER',
|
||||||
|
runSpadderPlugin)
|
||||||
|
|
@ -2,9 +2,10 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
|||||||
|
|
||||||
spadderpydir=$(smeshpypkgdir)/spadder/unittests
|
spadderpydir=$(smeshpypkgdir)/spadder/unittests
|
||||||
|
|
||||||
spadderpy_PYTHON = \
|
spadderpy_PYTHON = \
|
||||||
__init__.py \
|
__init__.py \
|
||||||
usecase_meshJobManager.py
|
usecase_meshJobManager.py \
|
||||||
|
usecase_spadderPluginTester.py
|
||||||
|
|
||||||
spadderbindir=$(bindir)/spadder
|
spadderbindir=$(bindir)/spadder
|
||||||
spadderbin_SCRIPTS = \
|
spadderbin_SCRIPTS = \
|
||||||
|
@ -44,6 +44,8 @@ import MESHJOB
|
|||||||
#
|
#
|
||||||
from salome.smesh import spadder
|
from salome.smesh import spadder
|
||||||
spadder.loadSpadderCatalog()
|
spadder.loadSpadderCatalog()
|
||||||
|
|
||||||
|
salome.salome_init()
|
||||||
component = salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
|
component = salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
|
||||||
config = MESHJOB.ConfigParameter(resname="localhost",
|
config = MESHJOB.ConfigParameter(resname="localhost",
|
||||||
binpath=pathpadderexe,
|
binpath=pathpadderexe,
|
||||||
|
51
src/Tools/padder/unittests/usecase_spadderPluginTester.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# -*- coding: iso-8859-1 -*-
|
||||||
|
# Copyright (C) 2011 EDF R&D
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
#
|
||||||
|
# Author(s): Guillaume Boulant (23/03/2011)
|
||||||
|
#
|
||||||
|
|
||||||
|
# This script illustrates the standard use case of the component
|
||||||
|
# SPADDERPluginTester from within a SALOME script. This component is
|
||||||
|
# dedicated to test purpose only
|
||||||
|
|
||||||
|
import salome
|
||||||
|
import SPADDERPluginTest
|
||||||
|
|
||||||
|
# We first have to update the SALOME components list by loading the
|
||||||
|
# SPADDER catalog (load on demand only)
|
||||||
|
from salome.smesh import spadder
|
||||||
|
spadder.loadSpadderCatalog()
|
||||||
|
|
||||||
|
# Basic test
|
||||||
|
print "Basic tests"
|
||||||
|
c=salome.lcc.FindOrLoadComponent("FactoryServer","SPADDERPluginTester")
|
||||||
|
z=c.demo(2.,3.)
|
||||||
|
|
||||||
|
# Test of usage of KERNEL services from the test component
|
||||||
|
print "Test of usage of KERNEL services from the test component"
|
||||||
|
c.testkernel()
|
||||||
|
|
||||||
|
# Test of usage of SMESH engine from the test component
|
||||||
|
# WARN: the SMESH engine must be loaded first
|
||||||
|
print "Test of usage of SMESH engine from the test component"
|
||||||
|
import SMESH
|
||||||
|
salome.lcc.FindOrLoadComponent("FactoryServer","SMESH")
|
||||||
|
c.testsmesh(salome.myStudyId)
|
||||||
|
|
||||||
|
print "Test completed : OK"
|