Salome HOME
Merge branch 'V9_2_BR'
authorvsr <vsr@opencascade.com>
Mon, 10 Dec 2018 14:29:37 +0000 (17:29 +0300)
committervsr <vsr@opencascade.com>
Mon, 10 Dec 2018 14:30:25 +0000 (17:30 +0300)
CMakeLists.txt
bin/CMakeLists.txt
bin/smesh_test.py [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_MeshInfo.cxx
src/SMESHGUI/SMESH_msg_fr.ts
src/SMESH_SWIG/CMakeLists.txt
src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py
src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui
src/Tools/MeshCut/meshcut_plugin.py
src/Tools/YamsPlug/monYamsPlugDialog.py
src/Tools/blocFissure/gmu/prolongeWire.py

index 7001201248ace8a752fd703941937a4e3cfedbfb..31936c3074ef267c693a73474c22a85f73ffe44a 100755 (executable)
@@ -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
 # ===================
index a60ce61e13cadd1ce40c9083a1beecd42c72841a..2dc1bac7e2bf013b1515d7555a1d605898f86103 100755 (executable)
@@ -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 (file)
index 0000000..3fb5ad9
--- /dev/null
@@ -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()
index 34c737faf5fdd533c84526a18d1a95159dff5e6d..9c1fb881066601f933ab195f183e260f0a9fb64e 100644 (file)
@@ -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 )
index 52b164b813ac0e18fcfc2fe668891d463e72c488..b8e73dc1f9bf0b4ca022d2eeaa405b9576fafafc 100755 (executable)
         <source>TEXT_FILES_FILTER</source>
         <translation>Fichiers TXT</translation>
     </message>
+    <message>
+        <source>MED_VX_FILES_FILTER</source>
+        <translation>fichiers MED %1</translation>
+    </message>
     <message>
         <source>STL_FILES_FILTER</source>
         <translation>Fichiers STL</translation>
         <source>MIN_DIAG_ELEMENTS</source>
         <translation>Diagonale minimum</translation>
     </message>
+    <message>
+        <source>MIN_ELEM_EDGE</source>
+        <translation>Longueur arête Minimum</translation>
+    </message>
     <message>
         <source>ASPECTRATIO_3D_ELEMENTS</source>
         <translation>Rapport de forme 3D</translation>
         <source>LENGTH2D_EDGES</source>
         <translation>Longueur 2D</translation>
     </message>
+    <message>
+        <source>DEFLECTION2D_FACES</source>
+        <translation>Deflection 2D</translation>
+    </message>
     <message>
         <source>LENGTH_EDGES</source>
         <translation>Longueur</translation>
     </message>
     <message>
         <source>MAX_ELEMENT_LENGTH_3D</source>
-        <translation>Diamètre d&apos;éléments 3D</translation>
+        <translation>Diamètre Element 3D</translation>
+    </message>
+    <message>
+        <source>DEFLECTION_2D</source>
+        <translation>Deflection 2D</translation>
     </message>
     <message>
         <source>MEN_ADD</source>
         <source>MEN_LENGTH_2D</source>
         <translation>Longueur 2D</translation>
     </message>
+    <message>
+        <source>MEN_DEFLECTION_2D</source>
+        <translation>Deflection 2D</translation>
+    </message>
     <message>
         <source>MEN_MAP</source>
         <translation>Projection de motif</translation>
     </message>
     <message>
         <source>MEN_SCALE</source>
-        <translation>Transformation d&apos;échelle</translation>
+        <translation>Changement d'échelle</translation>
+    </message>
+    <message>
+        <source>MEN_OFFSET</source>
+        <translation>Offset</translation>
     </message>
     <message>
         <source>MEN_DUPLICATE_NODES</source>
@@ -1914,6 +1938,14 @@ les données exportées ?</translation>
         <source>SMESH_HYPOTHESES</source>
         <translation>Hypothèses</translation>
     </message>
+    <message>
+        <source>SMESH_HYPOTHESIS</source>
+        <translation>Hypothese</translation>
+    </message>
+    <message>
+        <source>SMESH_ALGORITHM</source>
+        <translation>Algorithme</translation>
+    </message>
     <message>
         <source>SMESH_HYP_1</source>
         <translation>Il manque une hypothèse à l&apos;algorithme</translation>
@@ -3272,6 +3304,10 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
         <source>STB_LENGTH_2D</source>
         <translation>Longueur 2D</translation>
     </message>
+    <message>
+        <source>STB_DEFLECTION_2D</source>
+        <translation>Deflection 2D</translation>
+    </message>
     <message>
         <source>STB_MAP</source>
         <translation>Projection de motif</translation>
@@ -3526,7 +3562,11 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
     </message>
     <message>
         <source>STB_SCALE</source>
-        <translation>Mise à l&apos;échelle</translation>
+        <translation>Mise à l'échelle</translation>
+    </message>
+    <message>
+        <source>STB_OFFSET</source>
+        <translation>Décalage</translation>
     </message>
     <message>
         <source>STB_DUPLICATE_NODES</source>
@@ -3952,6 +3992,10 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
         <source>TOP_LENGTH_2D</source>
         <translation>Longueur 2D</translation>
     </message>
+    <message>
+        <source>TOP_DEFLECTION_2D</source>
+        <translation>Deflection 2D</translation>
+    </message>
     <message>
         <source>TOP_MAP</source>
         <translation>Projection de motif</translation>
@@ -4202,7 +4246,11 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
     </message>
     <message>
         <source>TOP_SCALE</source>
-        <translation>Mise à l&apos;échelle</translation>
+        <translation>Mise à l'échelle</translation>
+    </message>
+    <message>
+        <source>TOP_OFFSET</source>
+        <translation>Offset</translation>
     </message>
     <message>
         <source>TOP_DUPLICATE_NODES</source>
@@ -4479,6 +4527,21 @@ Il ne peut pas être supprimé.</translation>
         <translation>Exporter les champs</translation>
     </message>
 </context>
+<context>
+    <name>SMESHGUI_OffsetDlg</name>
+    <message>
+        <source>SMESH_OFFSET_TITLE</source>
+        <translation>Offset</translation>
+    </message>
+    <message>
+        <source>SMESH_OFFSET</source>
+        <translation>Offset</translation>
+    </message>
+    <message>
+        <source>OFFSET_VALUE</source>
+        <translation>Offset Value</translation>
+    </message>
+</context>
 <context>
     <name>SMESHGUI_AddMeshElementDlg</name>
     <message>
@@ -5869,6 +5932,10 @@ Entrez une valeur correcte et essayez de nouveau</translation>
         <source>LENGTH2D</source>
         <translation>Longueur 2D</translation>
     </message>
+    <message>
+        <source>DEFLECTION2D</source>
+        <translation>Deflection 2D</translation>
+    </message>
     <message>
         <source>LESS_THAN</source>
         <translation>Inférieur à ...</translation>
@@ -7210,7 +7277,11 @@ Il y a trop peu de points dans le fichier </translation>
     </message>
     <message>
         <source>ON_ALL_BOUNDARIES</source>
-        <translation>Sur toutes les frontières</translation>
+        <translation>sur toutes les frontières</translation>
+    </message>
+    <message>
+        <source>GENERATE_GROUPS</source>
+        <translation>Génerer</translation>
     </message>
 </context>
 <context>
@@ -8008,7 +8079,30 @@ en raison de leurs types incompatibles:
     </message>
     <message>
         <source>NEW_NAME</source>
-        <translation>Nom du nouveau maillage</translation>
+        <translation>New Mesh Name</translation>
+    </message>
+    <message>
+        <source>NEW_GEOM</source>
+        <translation>New Geometry</translation>
+    </message>
+    <message>
+        <source>REUSE_HYPOTHESES</source>
+        <translation>Reuse Hypotheses</translation>
+    </message>
+    <message>
+        <source>COPY_ELEMENTS</source>
+        <translation>Copy Mesh Elements</translation>
+    </message>
+    <message>
+        <source>OPERATION_FAILED</source>
+        <translation>Not all mesh sub-objects have been copied</translation>
+    </message>
+    <message>
+        <source>SUBSHAPES_NOT_FOUND_MSG</source>
+        <translation>
+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.</translation>
     </message>
 </context>
 <context>
index 88bc8d336d6b71c4ab92f8a7be298e8ca46a3069..10d1aa0f0d2d9971555927bc068e9cacec702beb 100644 (file)
@@ -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)
index 21216e96e2d10bb644e9b557c3b542bcb42fa3f6..19d1c41efeed77574073b49bc929e7efc612e64a 100644 (file)
@@ -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)
index 5e3ddbfbaeadd839ae4539e26b2774383574f060..569cc53d90eb194c7f71933485dd970386d303b5 100644 (file)
@@ -19,7 +19,7 @@
   <layout class="QGridLayout" name="gridLayout">
    <item row="2" column="0">
     <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
+     <item>
       <spacer name="horizontalSpacer_xx">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
@@ -34,7 +34,7 @@
         </size>
        </property>
       </spacer>
-         </item>
+     </item>
      <item>
       <widget class="QPushButton" name="PB_OK">
        <property name="text">
        <property name="text">
         <string>Save</string>
        </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
+       <property name="iconSize">
+        <size>
+         <width>18</width>
+         <height>18</height>
+        </size>
+       </property>
       </widget>
      </item>
      <item>
        <property name="text">
         <string>Load</string>
        </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
+       <property name="iconSize">
+        <size>
+         <width>18</width>
+         <height>18</height>
+        </size>
+       </property>
       </widget>
      </item>
      <item>
        </property>
       </widget>
      </item>
-         <item>
+     <item>
       <spacer name="horizontalSpacer_xx">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
         </size>
        </property>
       </spacer>
-         </item>
+     </item>
     </layout>
    </item>
    <item row="1" column="0">
        <property name="title">
         <string>Options</string>
        </property>
-
-        <layout class="QHBoxLayout" name="RBLayoutopt">
-
-         <item>
-      <spacer name="horizontalSpacer_xx">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeType">
-        <enum>QSizePolicy::Minimum</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>30</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-         </item>
-
-         <item>
-        <layout class="QVBoxLayout" name="RBLayout1">
-         <item>
-          <widget class="QRadioButton" name="RB_Check">
-           <property name="toolTip">
-            <string>Performs checks only (no fixing).
+       <layout class="QHBoxLayout" name="RBLayoutopt">
+        <item>
+         <spacer name="horizontalSpacer_xx">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Minimum</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>30</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <layout class="QVBoxLayout" name="RBLayout1">
+          <item>
+           <widget class="QRadioButton" name="RB_Check">
+            <property name="toolTip">
+             <string>Performs checks only (no fixing).
 Writes diagnostics into the output file.
 Default is to fix with two passes.</string>
-           </property>
-           <property name="text">
-            <string>Only checking</string>
-           </property>
-           <property name="checked">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="RB_Fix1">
-           <property name="toolTip">
-            <string>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.</string>
-           </property>
-           <property name="text">
-            <string>Fix problems with one pass</string>
-           </property>
-           <property name="checked">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="RB_Fix2">
-           <property name="toolTip">
-            <string>Analyses and fixes mesh with the two stage cleaning procedure.
+            </property>
+            <property name="text">
+             <string>Only checking</string>
+            </property>
+            <property name="checked">
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QRadioButton" name="RB_Fix1">
+            <property name="toolTip">
+             <string>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.</string>
-           </property>
-           <property name="text">
-            <string>Fix problems with two passes</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-
-       <item>
-       <widget class="QCheckBox" name="CB_PreserveTopology">
-           <property name="toolTip">
-            <string>Disables fixing operations which induce topology modifications.
+            </property>
+            <property name="text">
+             <string>Fix problems</string>
+            </property>
+            <property name="checked">
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="CB_PreserveTopology">
+            <property name="toolTip">
+             <string>Disables fixing operations which induce topology modifications.
 Default is enable topology modifications.
 (argument --topology)</string>
-           </property>
-           <property name="text">
-            <string>Preserve topology</string>
-           </property>
-           <property name="checked">
-            <bool>false</bool>
-           </property>
-          </widget>
-        </item>
-       <item>
-          <widget class="QCheckBox" name="CB_FillHoles">
-           <property name="toolTip">
-            <string>Default is not to fill holes.
+            </property>
+            <property name="text">
+             <string>Preserve topology</string>
+            </property>
+            <property name="checked">
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="CB_FillHoles">
+            <property name="toolTip">
+             <string>Default is not to fill holes.
 if set: see 'surface size threshold of holes' in 'Advanced remeshing options'.</string>
-           </property>
-           <property name="text">
-            <string>Fill holes</string>
-           </property>
-           <property name="checked">
-            <bool>false</bool>
-           </property>
-          </widget>
-       </item>
-       <item>
-
-          <widget class="QCheckBox" name="CB_RemeshPlanes">
-           <property name="toolTip">
-            <string>Inserts vertices on planes to improve mesh quality .
+            </property>
+            <property name="text">
+             <string>Fill holes</string>
+            </property>
+            <property name="checked">
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="CB_RemeshPlanes">
+            <property name="toolTip">
+             <string>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.</string>
-           </property>
-           <property name="text">
-            <string>Remesh planes</string>
-           </property>
-           <property name="checked">
-            <bool>false</bool>
-           </property>
+            </property>
+            <property name="text">
+             <string>Remesh planes</string>
+            </property>
+            <property name="checked">
+             <bool>false</bool>
+            </property>
            </widget>
-       </item>
-
+          </item>
          </layout>
-
-         </item>
-
-        </layout>
-        
+        </item>
+       </layout>
       </widget>
       <widget class="QGroupBox" name="groupBox">
        <property name="geometry">
@@ -411,8 +387,10 @@ Default is not to mesh planes.</string>
        <property name="title">
         <string>You can control</string>
        </property>
-#1
        <widget class="QLineEdit" name="SP_MinHoleSize">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -421,9 +399,6 @@ Default is not to mesh planes.</string>
           <height>25</height>
          </rect>
         </property>
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
        </widget>
        <widget class="QLabel" name="LA_minHoleSize">
         <property name="geometry">
@@ -442,8 +417,10 @@ Set 'Fill holes' in 'Simple Remeshing Options'.</string>
          <string>Surface size threshold of holes to fill (--min_hole_size)</string>
         </property>
        </widget>
-#2
        <widget class="QLineEdit" name="SP_ToleranceDisplacement">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -452,9 +429,6 @@ Set 'Fill holes' in 'Simple Remeshing Options'.</string>
           <height>25</height>
          </rect>
         </property>
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
        </widget>
        <widget class="QLabel" name="LA_toleranceDisplacement">
         <property name="geometry">
@@ -475,8 +449,7 @@ Unused in collision resolution .
 (--tolerance_displacement)</string>
         </property>
        </widget>
-
-          <widget class="QCheckBox" name="CB_ComputedToleranceDisplacement">
+       <widget class="QCheckBox" name="CB_ComputedToleranceDisplacement">
         <property name="geometry">
          <rect>
           <x>650</x>
@@ -485,19 +458,20 @@ Unused in collision resolution .
           <height>30</height>
          </rect>
         </property>
-           <property name="toolTip">
-            <string>If set default value is computed from model.</string>
-           </property>
-           <property name="text">
-            <string>Computed</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-
-#3
+        <property name="toolTip">
+         <string>If set default value is computed from model.</string>
+        </property>
+        <property name="text">
+         <string>Computed</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
        <widget class="QLineEdit" name="SP_ResolutionLength">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -506,9 +480,6 @@ Unused in collision resolution .
           <height>25</height>
          </rect>
         </property>
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
        </widget>
        <widget class="QLabel" name="LA_resolutionLength">
         <property name="geometry">
@@ -528,7 +499,7 @@ Default is computed from model.</string>
          <string>Distance threshold for two points distinct (--resolution_length)</string>
         </property>
        </widget>
-          <widget class="QCheckBox" name="CB_ComputedResolutionLength">
+       <widget class="QCheckBox" name="CB_ComputedResolutionLength">
         <property name="geometry">
          <rect>
           <x>650</x>
@@ -537,17 +508,16 @@ Default is computed from model.</string>
           <height>30</height>
          </rect>
         </property>
-           <property name="toolTip">
-            <string>If set default value is computed from model.</string>
-           </property>
-           <property name="text">
-            <string>Computed</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-#4
+        <property name="toolTip">
+         <string>If set default value is computed from model.</string>
+        </property>
+        <property name="text">
+         <string>Computed</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
        <widget class="QDoubleSpinBox" name="SP_FoldingAngle">
         <property name="geometry">
          <rect>
@@ -557,17 +527,17 @@ Default is computed from model.</string>
           <height>25</height>
          </rect>
         </property>
-        <property name="maximum">
-         <double>90</double>
-        </property>
         <property name="minimum">
-         <double>0</double>
+         <double>0.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>90.000000000000000</double>
         </property>
         <property name="singleStep">
-         <double>1</double>
+         <double>1.000000000000000</double>
         </property>
         <property name="value">
-         <double>15</double>
+         <double>15.000000000000000</double>
         </property>
        </widget>
        <widget class="QLabel" name="LA_foldingAngle">
@@ -589,8 +559,10 @@ Default is 15 degrees.</string>
          <string>Angle threshold for two connected triangles overlapping (--folding_angle)</string>
         </property>
        </widget>
-#5
        <widget class="QLineEdit" name="SP_OverlapDistance">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -599,9 +571,6 @@ Default is 15 degrees.</string>
           <height>25</height>
          </rect>
         </property>
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
        </widget>
        <widget class="QLabel" name="LA_overlapDistance">
         <property name="geometry">
@@ -622,7 +591,7 @@ Default is computed from model.</string>
 (--overlap_distance)</string>
         </property>
        </widget>
-          <widget class="QCheckBox" name="CB_ComputedOverlapDistance">
+       <widget class="QCheckBox" name="CB_ComputedOverlapDistance">
         <property name="geometry">
          <rect>
           <x>650</x>
@@ -631,17 +600,16 @@ Default is computed from model.</string>
           <height>30</height>
          </rect>
         </property>
-           <property name="toolTip">
-            <string>If set default value is computed from model.</string>
-           </property>
-           <property name="text">
-            <string>Computed</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-#6
+        <property name="toolTip">
+         <string>If set default value is computed from model.</string>
+        </property>
+        <property name="text">
+         <string>Computed</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
        <widget class="QDoubleSpinBox" name="SP_OverlapAngle">
         <property name="geometry">
          <rect>
@@ -651,17 +619,17 @@ Default is computed from model.</string>
           <height>25</height>
          </rect>
         </property>
-        <property name="maximum">
-         <double>90</double>
-        </property>
         <property name="minimum">
-         <double>0</double>
+         <double>0.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>90.000000000000000</double>
         </property>
         <property name="singleStep">
-         <double>1</double>
+         <double>1.000000000000000</double>
         </property>
         <property name="value">
-         <double>15</double>
+         <double>15.000000000000000</double>
         </property>
        </widget>
        <widget class="QLabel" name="LA_overlapAngle">
@@ -700,8 +668,7 @@ Default is 15 degrees.</string>
        <property name="title">
         <string>MGCleaner Generic Options</string>
        </property>
-       
-          <widget class="QSpinBox" name="SP_Verbosity">
+       <widget class="QSpinBox" name="SP_Verbosity">
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -710,15 +677,14 @@ Default is 15 degrees.</string>
           <height>25</height>
          </rect>
         </property>
-           <property name="maximum">
-            <number>10</number>
-           </property>
-           <property name="value">
-            <number>3</number>
-           </property>
-          </widget>
-       
-          <widget class="QLabel" name="label">
+        <property name="maximum">
+         <number>10</number>
+        </property>
+        <property name="value">
+         <number>3</number>
+        </property>
+       </widget>
+       <widget class="QLabel" name="label">
         <property name="geometry">
          <rect>
           <x>130</x>
@@ -732,12 +698,10 @@ Default is 15 degrees.</string>
 From 0 (no detail) to 10 (very detailed).
 Default is 3.</string>
         </property>
-           <property name="text">
-            <string>Verbosity level</string>
-           </property>
-          </widget>
-       
-       
+        <property name="text">
+         <string>Verbosity level</string>
+        </property>
+       </widget>
       </widget>
       <widget class="QGroupBox" name="groupBox_6">
        <property name="geometry">
@@ -787,8 +751,7 @@ Default is 3.</string>
          </rect>
         </property>
        </widget>
-
-      <widget class="QPushButton" name="PB_Save">
+       <widget class="QPushButton" name="PB_Save">
         <property name="geometry">
          <rect>
           <x>20</x>
@@ -797,18 +760,17 @@ Default is 3.</string>
           <height>31</height>
          </rect>
         </property>
-       <property name="text">
-        <string>Save</string>
-       </property>
+        <property name="text">
+         <string>Save</string>
+        </property>
         <property name="iconSize">
          <size>
           <width>18</width>
           <height>18</height>
          </size>
         </property>
-      </widget>
-
-      <widget class="QPushButton" name="PB_Load">
+       </widget>
+       <widget class="QPushButton" name="PB_Load">
         <property name="geometry">
          <rect>
           <x>120</x>
@@ -817,17 +779,16 @@ Default is 3.</string>
           <height>31</height>
          </rect>
         </property>
-       <property name="text">
-        <string>Load</string>
-       </property>
+        <property name="text">
+         <string>Load</string>
+        </property>
         <property name="iconSize">
          <size>
           <width>18</width>
           <height>18</height>
          </size>
         </property>
-      </widget>
-
+       </widget>
       </widget>
      </widget>
     </widget>
index 9af5a33778090bf1a235a2b3cf82610fdb0a8b26..65ba70410c3af48b87640bae6e2879c8b4486015 100644 (file)
@@ -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
     
index 4aac5cf7c28cfd89d9532fe5d37049272ec55901..a28ca512995c3c46d9028b0faf0d158bf1283b0e 100644 (file)
@@ -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)
index 75cbb518add48e103705067f37abc9dd02d464e0..989b87c59fff22cd94e224c74c506fcb62b7a5e5 100644 (file)
@@ -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]