diff --git a/CMakeLists.txt b/CMakeLists.txt
index 700120124..31936c307 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,11 +33,11 @@ ENDIF(WIN32)
STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 9)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 1)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
SET(${PROJECT_NAME_UC}_VERSION
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
-SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
+SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
# Common CMake macros
# ===================
diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
index a60ce61e1..2dc1bac7e 100755
--- a/bin/CMakeLists.txt
+++ b/bin/CMakeLists.txt
@@ -24,6 +24,7 @@ SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS})
# scripts / static
SET(_bin_SCRIPTS
smesh_setenv.py
+ smesh_test.py
)
# --- rules ---
diff --git a/bin/smesh_test.py b/bin/smesh_test.py
new file mode 100644
index 000000000..3fb5ad93b
--- /dev/null
+++ b/bin/smesh_test.py
@@ -0,0 +1,122 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2018 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, or (at your option) any later version.
+#
+# 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
+#
+
+import unittest
+
+class TestMesh(unittest.TestCase):
+
+ def setUp(self):
+ import salome
+ salome.salome_init()
+
+ def processGuiEvents(self):
+ import salome
+ if salome.sg.hasDesktop():
+ salome.sg.updateObjBrowser();
+ import SalomePyQt
+ SalomePyQt.SalomePyQt().processEvents()
+
+ def test_mesh(self):
+ """Quick test for Mesh module"""
+
+ print()
+ print('Testing Mesh module')
+
+ # ==== Geometry part ====
+
+ from salome.geom import geomBuilder
+ geompy = geomBuilder.New()
+
+ # ---- create box
+ print('... Create box')
+ box = geompy.MakeBox(0., 0., 0., 100., 200., 300)
+ self.assertIsNotNone(box)
+ self.processGuiEvents()
+
+ # ==== Mesh part ====
+
+ import SMESH
+ from salome.smesh import smeshBuilder
+ smesh = smeshBuilder.New()
+ lib = 'StdMeshersEngine'
+ self.processGuiEvents()
+
+ # ---- create hypotheses
+ print('... Create hypotheses')
+
+ # **** create local length
+ print('...... Local Length')
+ local_length = smesh.CreateHypothesis('LocalLength', lib)
+ self.assertIsNotNone(local_length)
+ local_length.SetLength(100)
+ self.assertEqual(local_length.GetName(), 'LocalLength')
+ self.assertEqual(local_length.GetLength(), 100)
+ self.processGuiEvents()
+
+ # **** create number of segments
+ print('...... Number Of Segments')
+ nb_segments= smesh.CreateHypothesis('NumberOfSegments', lib)
+ self.assertIsNotNone(nb_segments)
+ nb_segments.SetNumberOfSegments(7)
+ self.assertEqual(nb_segments.GetName(), 'NumberOfSegments')
+ self.assertEqual(nb_segments.GetNumberOfSegments(), 7)
+ self.processGuiEvents()
+
+ # **** create max element area
+ print('...... Max Element Area')
+ max_area = smesh.CreateHypothesis('MaxElementArea', lib)
+ max_area.SetMaxElementArea(2500)
+ self.assertEqual(max_area.GetName(), 'MaxElementArea')
+ self.assertEqual(max_area.GetMaxElementArea(), 2500)
+ self.processGuiEvents()
+
+ # ---- create algorithms
+ print('... Create algorithms')
+
+ # **** create regular 1d
+ print('...... Regular 1D')
+ regular = smesh.CreateHypothesis('Regular_1D', lib)
+ listHyp = regular.GetCompatibleHypothesis()
+ self.assertEqual(regular.GetName(), 'Regular_1D')
+ self.processGuiEvents()
+
+ # **** create mefisto 2d
+ print('...... Mefisto 2D')
+ mefisto = smesh.CreateHypothesis( 'MEFISTO_2D', lib )
+ listHyp = mefisto.GetCompatibleHypothesis()
+ self.assertEqual(mefisto.GetName(), 'MEFISTO_2D')
+ self.processGuiEvents()
+
+ # ---- create mesh on box
+ print('... Create mesh on box')
+ mesh = smesh.CreateMesh(box)
+ self.assertEqual(mesh.AddHypothesis(box, regular)[0], SMESH.HYP_OK)
+ self.assertEqual(mesh.AddHypothesis(box, mefisto)[0], SMESH.HYP_OK)
+ self.assertEqual(mesh.AddHypothesis(box, nb_segments)[0], SMESH.HYP_OK)
+ self.assertEqual(mesh.AddHypothesis(box, max_area)[0], SMESH.HYP_OK)
+ self.processGuiEvents()
+
+ # ---- compute mesh
+ print('... Compute mesh')
+ self.assertEqual(smesh.Compute(mesh, box), True)
+ self.processGuiEvents()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx
index 34c737faf..9c1fb8810 100644
--- a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx
+++ b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx
@@ -3484,9 +3484,9 @@ SMESHGUI_CtrlInfo::SMESHGUI_CtrlInfo( QWidget* parent )
myMainLayout->setColumnStretch( 0, 0 );
myMainLayout->setColumnStretch( 1, 5 );
- myMainLayout->setRowStretch ( 11, 5 );
- myMainLayout->setRowStretch ( 16, 5 );
- myMainLayout->setRowStretch ( 17, 1 );
+ myMainLayout->setRowStretch ( 12, 5 );
+ myMainLayout->setRowStretch ( 17, 5 );
+ myMainLayout->setRowStretch ( 18, 1 );
clearInternal();
}
@@ -3628,13 +3628,11 @@ void SMESHGUI_CtrlInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
myButtons[6]->setEnabled( true );
}
#ifdef DISABLE_PLOT2DVIEWER
- myMainLayout->setRowStretch(12,0);
for( int i=25; i<=27; i++)
myMainLayout->itemAt(i)->widget()->setVisible( false );
#endif
}
else {
- myMainLayout->setRowStretch(12,0);
for( int i=18; i<=27; i++)
myMainLayout->itemAt(i)->widget()->setVisible( false );
}
@@ -3655,13 +3653,11 @@ void SMESHGUI_CtrlInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
myButtons[9]->setEnabled( true );
}
#ifdef DISABLE_PLOT2DVIEWER
- myMainLayout->setRowStretch(17,0);
for( int i=35; i<=37; i++)
myMainLayout->itemAt(i)->widget()->setVisible( false );
#endif
}
else {
- myMainLayout->setRowStretch(17,0);
for( int i=28; i<=37; i++)
myMainLayout->itemAt(i)->widget()->setVisible( false );
}
@@ -3799,7 +3795,7 @@ void SMESHGUI_CtrlInfo::computeAspectRatio3D()
*/
void SMESHGUI_CtrlInfo::clearInternal()
{
- for( int i=0; i<=35; i++)
+ for( int i=0; i<=37; i++)
myMainLayout->itemAt(i)->widget()->setVisible( true );
for( int i=0; i<=9; i++)
myButtons[i]->setEnabled( false );
@@ -3810,8 +3806,6 @@ void SMESHGUI_CtrlInfo::clearInternal()
myWidgets[0]->setText( QString() );
for ( int i = 1; i < myWidgets.count(); i++ )
myWidgets[i]->setText( "" );
- myMainLayout->setRowStretch(11,5);
- myMainLayout->setRowStretch(16,5);
}
void SMESHGUI_CtrlInfo::setTolerance( double theTolerance )
diff --git a/src/SMESHGUI/SMESH_msg_fr.ts b/src/SMESHGUI/SMESH_msg_fr.ts
index 52b164b81..b8e73dc1f 100755
--- a/src/SMESHGUI/SMESH_msg_fr.ts
+++ b/src/SMESHGUI/SMESH_msg_fr.ts
@@ -27,6 +27,10 @@
Fichiers TXT
+
+
+ fichiers MED %1
+
Fichiers STL
@@ -103,6 +107,10 @@
Diagonale minimum
+
+
+ Longueur arête Minimum
+
Rapport de forme 3D
@@ -224,6 +232,10 @@
Longueur 2D
+
+
+ Deflection 2D
+
Longueur
@@ -238,7 +250,11 @@
- Diamètre d'éléments 3D
+ Diamètre Element 3D
+
+
+
+ Deflection 2D
@@ -692,6 +708,10 @@
Longueur 2D
+
+
+ Deflection 2D
+
Projection de motif
@@ -1074,7 +1094,11 @@
- Transformation d'échelle
+ Changement d'échelle
+
+
+
+ Offset
@@ -1914,6 +1938,14 @@ les données exportées ?
Hypothèses
+
+
+ Hypothese
+
+
+
+ Algorithme
+
Il manque une hypothèse à l'algorithme
@@ -3272,6 +3304,10 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
Longueur 2D
+
+
+ Deflection 2D
+
Projection de motif
@@ -3526,7 +3562,11 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
- Mise à l'échelle
+ Mise à l'échelle
+
+
+
+ Décalage
@@ -3952,6 +3992,10 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
Longueur 2D
+
+
+ Deflection 2D
+
Projection de motif
@@ -4202,7 +4246,11 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
- Mise à l'échelle
+ Mise à l'échelle
+
+
+
+ Offset
@@ -4479,6 +4527,21 @@ Il ne peut pas être supprimé.
Exporter les champs
+
+ SMESHGUI_OffsetDlg
+
+
+ Offset
+
+
+
+ Offset
+
+
+
+ Offset Value
+
+
SMESHGUI_AddMeshElementDlg
@@ -5869,6 +5932,10 @@ Entrez une valeur correcte et essayez de nouveau
Longueur 2D
+
+
+ Deflection 2D
+
Inférieur à ...
@@ -7210,7 +7277,11 @@ Il y a trop peu de points dans le fichier
- Sur toutes les frontières
+ sur toutes les frontières
+
+
+
+ Génerer
@@ -8008,7 +8079,30 @@ en raison de leurs types incompatibles:
- Nom du nouveau maillage
+ New Mesh Name
+
+
+
+ New Geometry
+
+
+
+ Reuse Hypotheses
+
+
+
+ Copy Mesh Elements
+
+
+
+ Not all mesh sub-objects have been copied
+
+
+
+
+Some sub-shapes not found in the new geometry. They are listed
+below along with dependent mesh objects that are marked with
+with red in the Object Browser.
diff --git a/src/SMESH_SWIG/CMakeLists.txt b/src/SMESH_SWIG/CMakeLists.txt
index 88bc8d336..10d1aa0f0 100644
--- a/src/SMESH_SWIG/CMakeLists.txt
+++ b/src/SMESH_SWIG/CMakeLists.txt
@@ -100,7 +100,7 @@ SET(StdMeshers_SCRIPTS
StdMeshersBuilder.py
)
# --- rules ---
-SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_PYTHON} DEF_PERMS)
+SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_PYTHON} DEF_PERMS)
SALOME_INSTALL_SCRIPTS("${smesh_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/smesh DEF_PERMS)
SALOME_INSTALL_SCRIPTS("${StdMeshers_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/StdMeshers DEF_PERMS)
SALOME_INSTALL_SCRIPTS(SMESH_shared_modules.py ${SALOME_INSTALL_PYTHON}/shared_modules DEF_PERMS)
diff --git a/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py b/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py
index 21216e96e..19d1c41ef 100644
--- a/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py
+++ b/src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py
@@ -339,12 +339,9 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
def getResumeData(self, separator="\n"):
text=""
if self.RB_Fix1.isChecked():
- CheckOrFix="fix1pass"
+ CheckOrFix="mode_fix"
else:
- if self.RB_Fix2.isChecked():
- CheckOrFix="fix2pass"
- else:
- CheckOrFix="check"
+ CheckOrFix="mode_check"
text+="CheckOrFix="+CheckOrFix+separator
text+="PreserveTopology="+str(self.CB_PreserveTopology.isChecked())+separator
text+="FillHoles="+str(self.CB_FillHoles.isChecked())+separator
@@ -377,11 +374,9 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
tit,value=lig.split("=")
if tit=="CheckOrFix":
self.RB_Fix1.setChecked(False)
- self.RB_Fix2.setChecked(False)
self.RB_Check.setChecked(False)
- if value=="fix1pass": self.RB_Fix1.setChecked(True)
- if value=="fix2pass": self.RB_Fix2.setChecked(True)
- if value=="check": self.RB_Check.setChecked(True)
+ if value=="mode_fix": self.RB_Fix1.setChecked(True)
+ if value=="mode_check": self.RB_Check.setChecked(True)
if tit=="PreserveTopology": self.CB_PreserveTopology.setChecked(value=="True")
if tit=="FillHoles": self.CB_FillHoles.setChecked(value=="True")
if tit=="MinHoleSize": self.SP_MinHoleSize.setProperty("text", value)
@@ -563,12 +558,9 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
self.fichierOut=deb[0] + "_fix.mesh"
self.commande+=" --out "+self.fichierOut
if self.RB_Fix1.isChecked():
- self.commande+=" --fix1pass"
+ self.commande+=" --mode fix"
else:
- if self.RB_Fix2.isChecked():
- self.commande+=" --fix2pass"
- else:
- self.commande+=" --check"
+ self.commande+=" --mode check"
if self.CB_PreserveTopology.isChecked():
self.commande+=" --topology respect"
else:
@@ -590,8 +582,7 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
def clean(self):
self.RB_Check.setChecked(False)
- self.RB_Fix1.setChecked(False)
- self.RB_Fix2.setChecked(True)
+ self.RB_Fix1.setChecked(True)
self.CB_PreserveTopology.setChecked(False)
self.CB_FillHoles.setChecked(False)
self.CB_RemeshPlanes.setChecked(False)
diff --git a/src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui b/src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui
index 5e3ddbfba..569cc53d9 100644
--- a/src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui
+++ b/src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui
@@ -19,7 +19,7 @@
-
-
-
+
-
Qt::Horizontal
@@ -34,7 +34,7 @@
-
+
-
@@ -67,12 +67,12 @@
Save
-
-
- 18
- 18
-
-
+
+
+ 18
+ 18
+
+
-
@@ -80,12 +80,12 @@
Load
-
-
- 18
- 18
-
-
+
+
+ 18
+ 18
+
+
-
@@ -120,7 +120,7 @@
- -
+
-
Qt::Horizontal
@@ -135,7 +135,7 @@
-
+
-
@@ -164,126 +164,102 @@
Options
-
-
-
-
-
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Minimum
-
-
-
- 30
- 20
-
-
-
-
-
- -
-
-
-
-
-
- Performs checks only (no fixing).
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 30
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ Performs checks only (no fixing).
Writes diagnostics into the output file.
Default is to fix with two passes.
-
-
- Only checking
-
-
- false
-
-
-
- -
-
-
- Analyses and fixes mesh with only the first stage of the cleaning procedure.
+
+
+ Only checking
+
+
+ false
+
+
+
+ -
+
+
+ Analyses and fixes mesh with only the first stage of the cleaning procedure.
Does not write diagnostics into the output file.
Default is to fix with two passes.
-
-
- Fix problems with one pass
-
-
- false
-
-
-
- -
-
-
- Analyses and fixes mesh with the two stage cleaning procedure.
-Does not write diagnostics into the output file.
-Default is to fix with two passes.
-
-
- Fix problems with two passes
-
-
- true
-
-
-
-
- -
-
-
- Disables fixing operations which induce topology modifications.
+
+
+ Fix problems
+
+
+ false
+
+
+
+ -
+
+
+ Disables fixing operations which induce topology modifications.
Default is enable topology modifications.
(argument --topology)
-
-
- Preserve topology
-
-
- false
-
-
-
- -
-
-
- Default is not to fill holes.
+
+
+ Preserve topology
+
+
+ false
+
+
+
+ -
+
+
+ Default is not to fill holes.
if set: see 'surface size threshold of holes' in 'Advanced remeshing options'.
-
-
- Fill holes
-
-
- false
-
-
-
- -
-
-
-
- Inserts vertices on planes to improve mesh quality .
+
+
+ Fill holes
+
+
+ false
+
+
+
+ -
+
+
+ Inserts vertices on planes to improve mesh quality .
May be useful for poor quality triangulations (eg .STL or .DXF triangulations).
Default is not to mesh planes.
-
-
- Remesh planes
-
-
- false
-
+
+
+ Remesh planes
+
+
+ false
+
-
-
+
-
-
-
-
-
+
+
@@ -411,8 +387,10 @@ Default is not to mesh planes.
You can control
-#1
+
+ false
+
20
@@ -421,9 +399,6 @@ Default is not to mesh planes.
25
-
- false
-
@@ -442,8 +417,10 @@ Set 'Fill holes' in 'Simple Remeshing Options'.
Surface size threshold of holes to fill (--min_hole_size)
-#2
+
+ false
+
20
@@ -452,9 +429,6 @@ Set 'Fill holes' in 'Simple Remeshing Options'.
25
-
- false
-
@@ -475,8 +449,7 @@ Unused in collision resolution .
(--tolerance_displacement)
-
-
+
650
@@ -485,19 +458,20 @@ Unused in collision resolution .
30
-
- If set default value is computed from model.
-
-
- Computed
-
-
- true
-
-
-
-#3
+
+ If set default value is computed from model.
+
+
+ Computed
+
+
+ true
+
+
+
+ false
+
20
@@ -506,9 +480,6 @@ Unused in collision resolution .
25
-
- false
-
@@ -528,7 +499,7 @@ Default is computed from model.
Distance threshold for two points distinct (--resolution_length)
-
+
650
@@ -537,17 +508,16 @@ Default is computed from model.
30
-
- If set default value is computed from model.
-
-
- Computed
-
-
- true
-
-
-#4
+
+ If set default value is computed from model.
+
+
+ Computed
+
+
+ true
+
+
@@ -557,17 +527,17 @@ Default is computed from model.
25
-
- 90
-
- 0
+ 0.000000000000000
+
+
+ 90.000000000000000
- 1
+ 1.000000000000000
- 15
+ 15.000000000000000
@@ -589,8 +559,10 @@ Default is 15 degrees.
Angle threshold for two connected triangles overlapping (--folding_angle)
-#5
+
+ false
+
20
@@ -599,9 +571,6 @@ Default is 15 degrees.
25
-
- false
-
@@ -622,7 +591,7 @@ Default is computed from model.
(--overlap_distance)
-
+
650
@@ -631,17 +600,16 @@ Default is computed from model.
30
-
- If set default value is computed from model.
-
-
- Computed
-
-
- true
-
-
-#6
+
+ If set default value is computed from model.
+
+
+ Computed
+
+
+ true
+
+
@@ -651,17 +619,17 @@ Default is computed from model.
25
-
- 90
-
- 0
+ 0.000000000000000
+
+
+ 90.000000000000000
- 1
+ 1.000000000000000
- 15
+ 15.000000000000000
@@ -700,8 +668,7 @@ Default is 15 degrees.
MGCleaner Generic Options
-
-
+
20
@@ -710,15 +677,14 @@ Default is 15 degrees.
25
-
- 10
-
-
- 3
-
-
-
-
+
+ 10
+
+
+ 3
+
+
+
130
@@ -732,12 +698,10 @@ Default is 15 degrees.
From 0 (no detail) to 10 (very detailed).
Default is 3.
-
- Verbosity level
-
-
-
-
+
+ Verbosity level
+
+
@@ -787,8 +751,7 @@ Default is 3.
-
-
+
20
@@ -797,18 +760,17 @@ Default is 3.
31
-
- Save
-
+
+ Save
+
18
18
-
-
-
+
+
120
@@ -817,17 +779,16 @@ Default is 3.
31
-
- Load
-
+
+ Load
+
18
18
-
-
+
diff --git a/src/Tools/MeshCut/meshcut_plugin.py b/src/Tools/MeshCut/meshcut_plugin.py
index 9af5a3377..65ba70410 100644
--- a/src/Tools/MeshCut/meshcut_plugin.py
+++ b/src/Tools/MeshCut/meshcut_plugin.py
@@ -50,7 +50,7 @@ def MeshCut(context):
infile = fd.selectedFiles()[0]
self.ui.le_origMeshFile.setText(infile)
insplit = os.path.splitext(str(infile).encode())
- outfile = insplit[0] + '_cut' + insplit[1]
+ outfile = insplit[0] + '_cut'.encode() + insplit[1]
self.ui.le_cutMeshFile.setText(outfile)
pass
diff --git a/src/Tools/YamsPlug/monYamsPlugDialog.py b/src/Tools/YamsPlug/monYamsPlugDialog.py
index 4aac5cf7c..a28ca5129 100644
--- a/src/Tools/YamsPlug/monYamsPlugDialog.py
+++ b/src/Tools/YamsPlug/monYamsPlugDialog.py
@@ -522,7 +522,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
self.commande+= " -O G" # This option has not been updated to the new option style yet
deb=os.path.splitext(self.fichierIn)
- self.fichierOut=deb[0] + "_output.mesh"
+ self.fichierOut=deb[0].decode() + "_output.mesh"
tolerance=self.SP_toStr(self.SP_Tolerance)
if not self.RB_Absolute.isChecked():
@@ -540,7 +540,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
if self.SP_Memory.value() != 0 : self.commande+=" --max_memory %d" %self.SP_Memory.value()
if self.SP_Verbosity.value() != 3 : self.commande+=" --verbose %d" %self.SP_Verbosity.value()
- self.commande+=" --in " + self.fichierIn
+ self.commande+=" --in " + self.fichierIn.decode()
self.commande+=" --out " + self.fichierOut
print(self.commande)
diff --git a/src/Tools/blocFissure/gmu/prolongeWire.py b/src/Tools/blocFissure/gmu/prolongeWire.py
index 75cbb518a..989b87c59 100644
--- a/src/Tools/blocFissure/gmu/prolongeWire.py
+++ b/src/Tools/blocFissure/gmu/prolongeWire.py
@@ -10,7 +10,7 @@ from .orderEdgesFromWire import orderEdgesFromWire
# -----------------------------------------------------------------------------
# --- prolongation d'un wire par deux segments tangents
-def prolongeWire(aWire, extrem, norms, long):
+def prolongeWire(aWire, extrem, norms, lg):
"""
"""
logging.info("start")
@@ -22,7 +22,7 @@ def prolongeWire(aWire, extrem, norms, long):
uneSeuleEdge = True
edgesBout = []
for i, v1 in enumerate(extrem):
- exts = [geompy.MakeTranslationVectorDistance(v1, norms[i], l) for l in (-int, int)]
+ exts = [geompy.MakeTranslationVectorDistance(v1, norms[i], l) for l in (-lg, lg)]
dists = [(geompy.MinDistance(v, aWire), i , v) for i, v in enumerate(exts)]
dists.sort()
v2 = dists[-1][-1]