1 diff -Naur SMESH_ref/src/Tools/CMakeLists.txt SMESH_new/src/Tools/CMakeLists.txt
2 --- SMESH_ref/src/Tools/CMakeLists.txt 2022-01-14 16:13:39.350133329 +0100
3 +++ SMESH_new/src/Tools/CMakeLists.txt 2022-01-14 16:35:41.543110352 +0100
6 ADD_SUBDIRECTORY(MGCleanerPlug)
7 ADD_SUBDIRECTORY(YamsPlug)
8 + ADD_SUBDIRECTORY(Topo2VolMeshPlug)
9 # ADD_SUBDIRECTORY(ZCracksPlug)
10 ENDIF(SALOME_BUILD_GUI)
12 diff -Naur SMESH_ref/src/Tools/smesh_plugins.py SMESH_new/src/Tools/smesh_plugins.py
13 --- SMESH_ref/src/Tools/smesh_plugins.py 2022-01-14 16:13:39.506135336 +0100
14 +++ SMESH_new/src/Tools/smesh_plugins.py 2022-01-14 16:35:41.543110352 +0100
16 #print 'probleme zcracks'
17 salome_pluginsmanager.logger.info('ERROR: Zcrack plug-in is unavailable: {}'.format(e))
20 +# Topological to volumic mesh plugin
22 + from Topo2VolMeshPlugin import Topo2VolMeshLct
23 + salome_pluginsmanager.AddFunction('Run Topological Volumic mesher',
24 + 'run topological volumic meshing',
26 +except Exception as e:
27 + #print 'probleme zcracks'
28 + salome_pluginsmanager.logger.info('ERROR: topo2volmesh plug-in is unavailable: {}'.format(e))
30 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/CMakeLists.txt SMESH_new/src/Tools/Topo2VolMeshPlug/CMakeLists.txt
31 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
32 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/CMakeLists.txt 2022-01-14 16:35:41.543110352 +0100
34 +# Copyright (C) 2013-2021 EDF R&D
36 +# This library is free software; you can redistribute it and/or
37 +# modify it under the terms of the GNU Lesser General Public
38 +# License as published by the Free Software Foundation; either
39 +# version 2.1 of the License, or (at your option) any later version.
41 +# This library is distributed in the hope that it will be useful,
42 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
43 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
44 +# Lesser General Public License for more details.
46 +# You should have received a copy of the GNU Lesser General Public
47 +# License along with this library; if not, write to the Free Software
48 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
50 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
55 +ENDIF(SALOME_BUILD_GUI)
61 + Topo2VolMeshPluginDialog.py
62 + Topo2VolMeshPlugin.py
63 + Topo2VolMeshPlugin_plugin.py
64 + Topo2VolMeshMonitor.py
69 + # uic files / to be processed by pyuic
71 + Topo2VolMeshPluginDialog.ui
72 + Topo2VolMeshMonitor.ui
74 + # scripts / pyuic wrappings
75 + PYQT_WRAP_UIC(_pyuic_SCRIPTS ${_pyuic_FILES} TARGET_NAME _target_name_pyuic)
76 +ENDIF(SALOME_BUILD_GUI)
80 +SALOME_INSTALL_SCRIPTS("${_plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS})
81 +MESSAGE(VERBOSE "iNSTALLATION FOLDER ${SALOME_SMESH_INSTALL_PLUGINS}")
83 + SALOME_INSTALL_SCRIPTS("${_pyuic_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS} TARGET_NAME _target_name_pyuic_py)
84 + # add dependency of compiled py files on uic files in order
85 + # to avoid races problems when compiling in parallel
86 + ADD_DEPENDENCIES(${_target_name_pyuic_py} ${_target_name_pyuic})
87 + # Install the CMake configuration files:
88 + INSTALL(FILES "${PROJECT_SOURCE_DIR}/README" DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}")
89 +ENDIF(SALOME_BUILD_GUI)
90 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/README SMESH_new/src/Tools/Topo2VolMeshPlug/README
91 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/README 1970-01-01 01:00:00.000000000 +0100
92 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/README 2022-01-14 16:35:41.543110352 +0100
94 +******************************
95 +About SALOME HexaBlock plug-in
96 +******************************
98 +SALOME HexaBlock plug-in implements meshing of the CAD models created with
99 +the SALOME HexaBlock module.
101 +SALOME HexaBlock plug-in is integrated into SALOME platform via the SALOME Mesh
104 +For more information please visit the SALOME platform web site:
106 + <http://www.salome-platform.org/>
112 +SALOME platform is distributed under the GNU Lesser General Public License.
113 +See COPYING file for more details.
115 +Also, additional information can be found at SALOME platform web site:
117 + <http://www.salome-platform.org/downloads/license/>
127 +SALOME platform relies on a set of third-party softwares; some of them are needed
128 +at build time only, while other ones are needed in runtime also.
130 +For more information about the pre-requisites please visit SALOME platform web
133 +* Check Release Notes and Software Requirements of the latest SALOME release at
135 + <http://www.salome-platform.org/downloads/current-version/>
137 +* Pre-requisites page at SALOME web site:
139 + <http://www.salome-platform.org/downloads/license/>
141 +Note: SALOME HexaBlock plug-in needs SALOME KERNEL, SALOME GUI, SALOME Geometry,
142 +SALOME Mesh and SALOME HexaBlock as pre-requisites.
148 +The build procedure of the SALOME platform is implemented with CMake.
149 +In order to build the plug-in you have to do the following actions:
151 +1. Set up environment for pre-requisites (see "Pre-requisites" section above).
153 +2. Create a build directory:
155 + % mkdir HEXABLOCKPLUGIN_BUILD
157 +3. Configure the build procedure:
159 + % cd HEXABLOCKPLUGIN_BUILD
160 + % cmake -DCMAKE_BUILD_TYPE=<mode> -DCMAKE_INSTALL_PREFIX=<installation_directory> <path_to_src_dir>
163 + - <mode> is either Release or Debug (default: Release);
164 + - <installation_directory> is a destination folder to install SALOME HexaBlock
165 + plug-in (default: /usr);
166 + - <path_to_src_dir> is a path to the SALOME HexaBlock plug-in sources directory.
168 + Note: by default (if CMAKE_INSTALL_PREFIX option is not given), SALOME HexaBlock
169 + plug-in will be configured for installation to the /usr directory that requires
170 + root permissions to complete the installation.
172 +4. Build and install:
177 + This will install SALOME HexaBlock plug-in to the <installation_directory>
178 + specified to cmake command on the previous step.
184 +SALOME HexaBlock plug-in supports a set of advanced configuration options;
185 +for more details learn CMakeLists.txt file in the root source directory.
187 +You can also use other options of cmake command to customize your installation.
188 +Learn more about available options by typing
196 +The directory doc contains additional documentation file of SALOME HexaBlock plug-in.
202 +Please, send a mail to webmaster.salome@opencascade.com.
203 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.py SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.py
204 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.py 1970-01-01 01:00:00.000000000 +0100
205 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.py 2022-01-14 16:35:41.543110352 +0100
207 +# -*- coding: utf-8 -*-
208 +# Copyright (C) 2013-2020 EDF R&D
210 +# This library is free software; you can redistribute it and/or
211 +# modify it under the terms of the GNU Lesser General Public
212 +# License as published by the Free Software Foundation; either
213 +# version 2.1 of the License, or (at your option) any later version.
215 +# This library is distributed in the hope that it will be useful,
216 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
217 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
218 +# Lesser General Public License for more details.
220 +# You should have received a copy of the GNU Lesser General Public
221 +# License along with this library; if not, write to the Free Software
222 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
224 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
233 +import pprint as PP #pretty print
235 +from qtsalome import *
239 +from Topo2VolMeshMonitor_ui import Ui_qdLogger
243 +class Topo2VolMeshMonitor(Ui_qdLogger, QDialog):
244 + def __init__(self, parent, txt):
245 + QDialog.__init__(self,parent)
247 + self.resize( QSize(1000,600).expandedTo(self.minimumSizeHint()) )
248 + self.qpbOK.clicked.connect( self.OnQpbOKClicked )
249 + # Button OK is disabled until computation is finished
250 + self.qpbOK.setEnabled(False)
251 + self.qpbSave.clicked.connect( self.OnQpbSaveClicked )
252 + self.qpbSave.setToolTip("Save trace in log file")
253 + self.qpbOK.setToolTip("Close view")
254 + self.myExecutable=QProcess(self)
255 + self.myExecutable.readyReadStandardOutput.connect( self.readFromStdOut )
256 + self.myExecutable.readyReadStandardError.connect( self.readFromStdErr )
257 + self.myExecutable.finished.connect( self.computationFinished )
258 + self.myExecutable.errorOccurred.connect( self.computationOnError )
259 + if os.path.exists(self.parent().outputMesh):
260 + os.remove(self.parent().outputMesh)
261 + self.myExecutable.start(txt)
262 + self.myExecutable.closeWriteChannel()
265 + def OnQpbOKClicked(self):
268 + def OnQpbSaveClicked(self):
269 + outputDirectory=os.path.expanduser("~")
270 + fn, mask = QFileDialog.getSaveFileName(None,"Save File",outputDirectory)
273 + ulfile = os.path.abspath(str(fn))
276 + f.write(self.qtbLogWindow.toPlainText().encode("utf-8"))
278 + except IOError as why:
279 + QMessageBox.critical(self, 'Save File',
280 + 'The file <b>%s</b> could not be saved.<br>Reason: %s'%(str(fn), str(why)))
282 + def readFromStdErr(self):
283 + a=self.myExecutable.readAllStandardError()
284 + aa=a.data().decode(errors='ignore')
285 + self.qtbLogWindow.append(aa)
287 + def readFromStdOut(self) :
288 + a=self.myExecutable.readAllStandardOutput()
289 + aa=a.data().decode(errors='ignore')
290 + self.qtbLogWindow.append(aa)
292 + def computationFinished(self):
293 + self.qpbOK.setEnabled(True)
294 + if self.myExecutable.exitCode() == 0:
295 + self.parent().saveOutputMesh()
297 + QMessageBox.critical(self, 'Computation failed',
298 + 'The computation has failed.<br>Please, check the log message.')
300 + def computationOnError(self):
301 + self.qpbOK.setEnabled(True)
302 + QMessageBox.critical(self, 'Computation failed',
303 + 'The computation has failed.<br>Please, check the log message.')
304 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.ui SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.ui
305 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.ui 1970-01-01 01:00:00.000000000 +0100
306 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshMonitor.ui 2022-01-14 16:35:41.543110352 +0100
308 +<?xml version="1.0" encoding="UTF-8"?>
310 + <class>qdLogger</class>
311 + <widget class="QDialog" name="qdLogger">
312 + <property name="geometry">
317 + <height>489</height>
320 + <property name="windowTitle">
321 + <string>Run Topo2VolMesh</string>
323 + <layout class="QGridLayout" name="gridLayout">
324 + <item row="1" column="1">
325 + <widget class="QPushButton" name="qpbSave">
326 + <property name="text">
327 + <string>Save log</string>
331 + <item row="0" column="0" colspan="2">
332 + <widget class="QTextBrowser" name="qtbLogWindow"/>
334 + <item row="1" column="0">
335 + <widget class="QPushButton" name="qpbOK">
336 + <property name="text">
337 + <string>Ok</string>
346 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.py SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.py
347 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.py 1970-01-01 01:00:00.000000000 +0100
348 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.py 2022-01-14 16:36:18.691585755 +0100
350 +# -*- coding: utf-8 -*-
351 +# Copyright (C) 2013-2020 EDF R&D
353 +# This library is free software; you can redistribute it and/or
354 +# modify it under the terms of the GNU Lesser General Public
355 +# License as published by the Free Software Foundation; either
356 +# version 2.1 of the License, or (at your option) any later version.
358 +# This library is distributed in the hope that it will be useful,
359 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
360 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
361 +# Lesser General Public License for more details.
363 +# You should have received a copy of the GNU Lesser General Public
364 +# License along with this library; if not, write to the Free Software
365 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
367 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
371 +import os, subprocess
378 +from datetime import datetime
379 +random.seed(datetime.now())
383 +from Topo2VolMeshPluginDialog_ui import Ui_Topo2VolMeshMainFrame
384 +from Topo2VolMeshMonitor import Topo2VolMeshMonitor
385 +from qtsalome import *
389 +class Topo2VolMeshPluginDialog(Ui_Topo2VolMeshMainFrame,QWidget):
392 + def __init__(self):
393 + QWidget.__init__(self)
395 + self.qpbHelp.clicked.connect(self.OnQpbHelpClicked)
396 + self.qpbCompute.clicked.connect(self.OnQpbComputeClicked)
397 + self.qpbMeshFile.clicked.connect(self.OnQpbMeshFileClicked)
398 + self.qpbMeshFile.setToolTip("hypothesis from Salome Object Browser")
399 + self.qpbClose.clicked.connect(self.OnQpbCloseClicked)
400 + self.qcbDistributed.stateChanged[int].connect(self.OnqcbDistributedClicked)
401 + self.qlbXParts.setVisible(False)
402 + self.qlbYParts.setVisible(False)
403 + self.qlbZParts.setVisible(False)
404 + self.qsbXParts.setVisible(False)
405 + self.qsbYParts.setVisible(False)
406 + self.qsbZParts.setVisible(False)
407 + self.SALOME_TMP_DIR = None
409 + self.qleTmpDir.setText(os.path.join('/tmp',getpass.getuser(),'top-ii-vol'))
411 + self.qleTmpDir.setText('/tmp')
412 + self.resize(800, 500)
413 + self.outputMesh = ''
415 + def OnQpbHelpClicked(self):
417 + sgPyQt = SalomePyQt.SalomePyQt()
419 + mydir=os.environ["SMESH_ROOT_DIR"]
421 + QMessageBox.warning(self, "Help", "Help unavailable $SMESH_ROOT_DIR not found")
424 + myDoc=mydir + "/share/doc/salome/gui/SMESH/Topo2VolMeshPlugin/index.html"
425 + sgPyQt.helpContext(myDoc,"")
427 + def OnQpbMeshFileClicked(self):
428 + fd = QFileDialog(self, "select an existing Mesh file", self.qleMeshFile.text(), "Mesh-Files (*.xyz);;All Files (*)")
430 + infile = fd.selectedFiles()[0]
431 + self.qleMeshFile.setText(infile)
433 + def OnQpbComputeClicked(self):
434 + if self.qleMeshFile.text() == '':
435 + QMessageBox.critical(self, "Mesh", "select an input mesh")
437 + inputMesh = self.qleMeshFile.text()
438 + # retrieve x,y,z and depth parameters
439 + xPoints = self.qsbXPoints.value()
440 + yPoints = self.qsbYPoints.value()
441 + zPoints = self.qsbZPoints.value()
442 + depth = self.qsbDepth.value()
443 + nProcs = self.qsbNBprocs.value()
444 + if not self.qcbDistributed.isChecked():
446 + shellCmd = "topIIvol_Mesher"
448 + shellCmd = "mpirun -np {} topIIvol_ParMesher".format(nProcs)
449 + shellCmd+= " --xpoints " + str(xPoints)
450 + shellCmd+= " --ypoints " + str(yPoints)
451 + shellCmd+= " --zpoints " + str(zPoints)
452 + shellCmd+= " --depth " + str(depth)
453 + shellCmd+= " --in " + inputMesh
455 + xParts = self.qsbXParts.value()
456 + yParts = self.qsbYParts.value()
457 + zParts = self.qsbZParts.value()
458 + shellCmd = "mpirun -np {} topIIvol_DistMesher".format(nProcs)
459 + shellCmd+= " --xpoints " + str(xPoints)
460 + shellCmd+= " --ypoints " + str(yPoints)
461 + shellCmd+= " --zpoints " + str(zPoints)
462 + shellCmd+= " --depth " + str(depth)
463 + shellCmd+= " --partition_x " + str(xParts)
464 + shellCmd+= " --partition_y " + str(xParts)
465 + shellCmd+= " --partition_z " + str(xParts)
466 + shellCmd+= " --in " + inputMesh
467 + if platform.system()=="Windows" :
468 + self.SALOME_TMP_DIR = os.getenv("SALOME_TMP_DIR")
470 + self.SALOME_TMP_DIR = os.path.join(self.qleTmpDir.text(), time.strftime("%Y-%m-%d-%H-%M-%S"))
471 + pathlib.Path(self.SALOME_TMP_DIR).mkdir(parents=True, exist_ok=True)
472 + self.outputMesh= os.path.join(self.SALOME_TMP_DIR, inputMesh.split('/').pop().replace('.xyz','.mesh'))
473 + shellCmd+= " --out " + self.outputMesh
474 + print("INFO: ", shellCmd)
475 + myMonitorView=Topo2VolMeshMonitor(self, shellCmd)
477 + def OnqcbDistributedClicked(self):
478 + state = self.qcbDistributed.isChecked()
479 + self.qlbXParts.setVisible(state)
480 + self.qlbYParts.setVisible(state)
481 + self.qlbZParts.setVisible(state)
482 + self.qsbXParts.setVisible(state)
483 + self.qsbYParts.setVisible(state)
484 + self.qsbZParts.setVisible(state)
486 + def OnQpbCloseClicked(self):
489 + def saveOutputMesh(self):
491 + import SMESH, SALOMEDS
492 + from salome.smesh import smeshBuilder
493 + smesh = smeshBuilder.New()
494 + self.outputMesh.split('/')
495 + for mesh in pathlib.Path(self.SALOME_TMP_DIR).glob('*.mesh'):
496 + (outputMesh, status) = smesh.CreateMeshesFromGMF(os.path.join(self.SALOME_TMP_DIR, mesh))
497 + if salome.sg.hasDesktop():
498 + salome.sg.updateObjBrowser()
505 + This function returns a singleton instance of the plugin dialog.
506 + It is mandatory in order to call show without a parent ...
509 + if __instance is None:
510 + __instance = Topo2VolMeshPluginDialog()
512 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.ui SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.ui
513 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.ui 1970-01-01 01:00:00.000000000 +0100
514 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPluginDialog.ui 2022-01-14 16:35:41.543110352 +0100
516 +<?xml version="1.0" encoding="UTF-8"?>
518 + <class>Topo2VolMeshMainFrame</class>
519 + <widget class="QWidget" name="Topo2VolMeshMainFrame">
520 + <property name="geometry">
525 + <height>411</height>
528 + <property name="windowTitle">
529 + <string>Tetra Mesh from cloud of xyz points mesh generator</string>
531 + <widget class="QGroupBox" name="groupBox">
532 + <property name="geometry">
537 + <height>101</height>
540 + <property name="font">
542 + <pointsize>10</pointsize>
545 + <property name="title">
546 + <string>Input Mesh</string>
548 + <widget class="QPushButton" name="qpbMeshFile">
549 + <property name="geometry">
554 + <height>31</height>
557 + <property name="font">
559 + <pointsize>10</pointsize>
562 + <property name="text">
563 + <string>DEM input file</string>
565 + <property name="iconSize">
568 + <height>18</height>
572 + <widget class="QLineEdit" name="qleMeshFile">
573 + <property name="geometry">
578 + <height>31</height>
581 + <property name="font">
583 + <pointsize>10</pointsize>
588 + <widget class="QGroupBox" name="gbOptions">
589 + <property name="geometry">
594 + <height>231</height>
597 + <property name="title">
598 + <string>Options</string>
600 + <widget class="QSpinBox" name="qsbXPoints">
601 + <property name="geometry">
606 + <height>22</height>
609 + <property name="minimum">
612 + <property name="maximum">
613 + <number>999999999</number>
615 + <property name="value">
616 + <number>10</number>
619 + <widget class="QLabel" name="qlXpoints">
620 + <property name="geometry">
625 + <height>20</height>
628 + <property name="text">
629 + <string>Number of points in X direction</string>
632 + <widget class="QSpinBox" name="qsbYPoints">
633 + <property name="geometry">
638 + <height>22</height>
641 + <property name="minimum">
644 + <property name="maximum">
645 + <number>999999999</number>
647 + <property name="value">
648 + <number>10</number>
651 + <widget class="QSpinBox" name="qsbZPoints">
652 + <property name="geometry">
657 + <height>22</height>
660 + <property name="minimum">
663 + <property name="maximum">
664 + <number>999999999</number>
666 + <property name="value">
667 + <number>10</number>
670 + <widget class="QLabel" name="qlYpoints">
671 + <property name="geometry">
676 + <height>20</height>
679 + <property name="text">
680 + <string>Number of points in Y direction</string>
683 + <widget class="QLabel" name="qlZpoints">
684 + <property name="geometry">
689 + <height>20</height>
692 + <property name="text">
693 + <string>Number of points in Z direction</string>
696 + <widget class="QSpinBox" name="qsbDepth">
697 + <property name="geometry">
702 + <height>22</height>
705 + <property name="minimum">
706 + <number>-999999999</number>
708 + <property name="maximum">
709 + <number>999999999</number>
711 + <property name="value">
715 + <widget class="QLabel" name="qlDepth">
716 + <property name="geometry">
721 + <height>20</height>
724 + <property name="text">
725 + <string>Depth in Z direction</string>
728 + <widget class="QCheckBox" name="qcbDistributed">
729 + <property name="geometry">
734 + <height>21</height>
737 + <property name="text">
741 + <widget class="QLabel" name="qlbNbProcs">
742 + <property name="geometry">
747 + <height>16</height>
750 + <property name="text">
751 + <string>Number of processors</string>
754 + <widget class="QLabel" name="qlDistributed">
755 + <property name="geometry">
760 + <height>16</height>
763 + <property name="text">
764 + <string>Distributed</string>
767 + <widget class="QLabel" name="qlbXParts">
768 + <property name="geometry">
773 + <height>16</height>
776 + <property name="text">
777 + <string>Number of partitions in X direction</string>
780 + <widget class="QLabel" name="qlbYParts">
781 + <property name="geometry">
786 + <height>16</height>
789 + <property name="text">
790 + <string>Number of partitions in Y direction</string>
793 + <widget class="QLabel" name="qlbZParts">
794 + <property name="geometry">
799 + <height>16</height>
802 + <property name="text">
803 + <string>Number of partitions in Z direction</string>
806 + <widget class="QSpinBox" name="qsbNBprocs">
807 + <property name="geometry">
812 + <height>22</height>
815 + <property name="minimum">
818 + <property name="maximum">
819 + <number>999999999</number>
821 + <property name="value">
825 + <widget class="QSpinBox" name="qsbXParts">
826 + <property name="geometry">
831 + <height>22</height>
834 + <property name="minimum">
837 + <property name="maximum">
838 + <number>999999999</number>
840 + <property name="value">
844 + <widget class="QSpinBox" name="qsbYParts">
845 + <property name="geometry">
850 + <height>22</height>
853 + <property name="minimum">
856 + <property name="maximum">
857 + <number>999999999</number>
859 + <property name="value">
863 + <widget class="QSpinBox" name="qsbZParts">
864 + <property name="geometry">
869 + <height>22</height>
872 + <property name="minimum">
875 + <property name="maximum">
876 + <number>999999999</number>
878 + <property name="value">
882 + <widget class="QLineEdit" name="qleTmpDir">
883 + <property name="geometry">
888 + <height>23</height>
891 + <property name="text">
895 + <widget class="QLabel" name="qlTmpDir">
896 + <property name="geometry">
901 + <height>16</height>
904 + <property name="text">
905 + <string>Workspace</string>
909 + <widget class="QWidget" name="layoutWidget">
910 + <property name="geometry">
915 + <height>27</height>
918 + <layout class="QHBoxLayout" name="horizontalLayout">
920 + <widget class="QPushButton" name="qpbCompute">
921 + <property name="text">
922 + <string>Compute</string>
927 + <widget class="QPushButton" name="qpbClose">
928 + <property name="text">
929 + <string>Close</string>
934 + <spacer name="horizontalSpacer">
935 + <property name="orientation">
936 + <enum>Qt::Horizontal</enum>
938 + <property name="sizeHint" stdset="0">
941 + <height>20</height>
947 + <widget class="QPushButton" name="qpbHelp">
948 + <property name="font">
950 + <pointsize>10</pointsize>
953 + <property name="text">
954 + <string>Help</string>
964 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin_plugin.py SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin_plugin.py
965 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin_plugin.py 1970-01-01 01:00:00.000000000 +0100
966 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin_plugin.py 2022-01-14 16:36:28.963717213 +0100
968 +# -*- coding: utf-8 -*-
969 +# Copyright (C) 2013-2020 EDF R&D
971 +# This library is free software; you can redistribute it and/or
972 +# modify it under the terms of the GNU Lesser General Public
973 +# License as published by the Free Software Foundation; either
974 +# version 2.1 of the License, or (at your option) any later version.
976 +# This library is distributed in the hope that it will be useful,
977 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
978 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
979 +# Lesser General Public License for more details.
981 +# You should have received a copy of the GNU Lesser General Public
982 +# License along with this library; if not, write to the Free Software
983 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
985 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
988 +# if you already have plugins defined in a salome_plugins.py file, add this file at the end.
989 +# if not, copy this file as ${HOME}/Plugins/smesh_plugins.py or ${APPLI}/Plugins/smesh_plugins.py
991 +def Topo2VolMeshLct(context):
992 + # get context study, salomeGui
993 + study = context.study
999 + from qtsalome import QFileDialog, QMessageBox
1001 + import Topo2VolMeshPluginDialog
1002 + window = Topo2VolMeshPluginDialog.getDialog()
1004 diff -Naur SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin.py SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin.py
1005 --- SMESH_ref/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin.py 1970-01-01 01:00:00.000000000 +0100
1006 +++ SMESH_new/src/Tools/Topo2VolMeshPlug/Topo2VolMeshPlugin.py 2022-01-14 16:35:41.543110352 +0100
1008 +# -*- coding: utf-8 -*-
1009 +# Copyright (C) 2013-2020 EDF R&D
1011 +# This library is free software; you can redistribute it and/or
1012 +# modify it under the terms of the GNU Lesser General Public
1013 +# License as published by the Free Software Foundation; either
1014 +# version 2.1 of the License, or (at your option) any later version.
1016 +# This library is distributed in the hope that it will be useful,
1017 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
1018 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1019 +# Lesser General Public License for more details.
1021 +# You should have received a copy of the GNU Lesser General Public
1022 +# License along with this library; if not, write to the Free Software
1023 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1025 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
1028 +# if you already have plugins defined in a salome_plugins.py file, add this file at the end.
1029 +# if not, copy this file as ${HOME}/Plugins/smesh_plugins.py or ${APPLI}/Plugins/smesh_plugins.py
1031 +def Topo2VolMeshLct(context):
1032 + # get context study, salomeGui
1033 + study = context.study
1039 + from qtsalome import QFileDialog, QMessageBox
1041 + import Topo2VolMeshPluginDialog
1042 + window = Topo2VolMeshPluginDialog.getInstance()