Salome HOME
Merge branch 'V7_dev' of https://git.salome-platform.org/git/modules/smesh into V7_dev V7_8_0b1
authorPaul RASCLE <paul.rascle@edf.fr>
Mon, 2 May 2016 06:23:29 +0000 (08:23 +0200)
committerPaul RASCLE <paul.rascle@edf.fr>
Mon, 2 May 2016 06:23:29 +0000 (08:23 +0200)
resources/SalomeApp.xml.in
src/Tools/blocFissure/gmu/casStandard.py
src/Tools/blocFissure/gmu/initLog.py
src/Tools/blocFissure/ihm/fissureGenerale.ui
src/Tools/blocFissure/ihm/fissureGenerale_plugin.py
src/Tools/smesh_plugins.py

index c1f99f6a4d4f2dae50d197f5754ad28e93942b54..4020eecc7630267e7ccf5489c86fef89ca502b4c 100644 (file)
     <parameter name="Plug-ins/MGCleaner plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MGCleaner/index.html"/>
     <parameter name="Plug-ins/Z-cracks plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/zcracks/index.html"/>
     <parameter name="Plug-ins/MacMesh plugin" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MacMesh/index.html"/>
-    <parameter name="Plug-ins/plugin blocFissure" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/blocFissure/index.html"/>
+    <parameter name="Plug-ins/blocFissure plugin" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/blocFissure/index.html"/>
     <parameter name="Developer's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/tui/SMESH/index.html"/>
   </section>
   <section name="resources">
index e03027fea78b95d2773d497b2dfcc9bf613a1d05..cffd6aac83121a92049366a6f9ca086cd95932cb 100644 (file)
@@ -117,8 +117,8 @@ class casStandard(fissureGenerique):
   # ---------------------------------------------------------------------------
   def setParamMaillageFissure(self):
     self.maillageFissureParams = dict(nomRep           = self.reptrav,
-                                      nomFicSain       = self.nomCas,
-                                      nomFicFissure    = 'fissure_' + self.nomCas,
+                                      nomFicSain       = self.nomCas +'_sain',
+                                      nomFicFissure    = self.nomCas,
                                       nbsegRad         = self.dicoParams['nbSegRad'],
                                       nbsegCercle      = self.dicoParams['nbSegCercle'],
                                       areteFaceFissure = self.dicoParams['areteFaceFissure'])
index bc427de1d3c0aedc04556887cc825e1c8c63deb2..57b887e60f42e599f8ed82f21b701840f28d7fe1 100644 (file)
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 
 import logging
+import os
 
 debug = 10
 info = 20
@@ -9,76 +10,72 @@ error = 40
 critical = 50
 
 loglevel = warning
+logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
+                    level=logging.WARNING)
+ch = None
+fh = None
 
-def setDebug(logfile=None):
-  global loglevel
-  logging.shutdown()
+def setLogger(logfile, level, formatter):
+  global ch, fh
+  rootLogger = logging.getLogger('')
+  if fh is not None:
+    rootLogger.removeHandler(fh)
+    fh = None
+  if ch is not None:
+    rootLogger.removeHandler(ch)
+    ch = None
   if logfile:
-    logging.basicConfig(filename=logfile,
-                        format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.DEBUG)
+    if os.path.exists(logfile):
+      os.remove(logfile)
+    fh = logging.FileHandler(logfile)
+    rootLogger.addHandler(fh)
+    fh.setFormatter(formatter)
   else:
-    logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.DEBUG)    
+    ch = logging.StreamHandler()
+    rootLogger.addHandler(ch)
+    ch.setFormatter(formatter)
+  rootLogger.setLevel(level)
+  
+  
+def setDebug(logfile=None):
+  global loglevel
   loglevel = debug
+  level = logging.DEBUG
+  formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
   logging.info('start Debug %s', loglevel)
 
 def setVerbose(logfile=None):
   global loglevel
-  logging.shutdown()
-  if logfile:
-    logging.basicConfig(filename=logfile,
-                        format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.INFO)
-  else:
-    logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.INFO)    
   loglevel = info
+  level = logging.INFO
+  formatter = logging.Formatter('%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
   logging.info('start Verbose %s', loglevel)
 
 def setRelease(logfile=None):
   global loglevel
-  logging.shutdown()
-  if logfile:
-    logging.basicConfig(filename=logfile,
-                        format='%(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.WARNING)
-  else:
-    logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.WARNING)
   loglevel = warning
+  level = logging.WARNING
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
   logging.warning('start Release %s', loglevel)
   
 def setUnitTests(logfile=None):
   global loglevel
-  logging.shutdown()
-  if logfile:
-    logging.basicConfig(filename=logfile,
-                        format='%(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.CRITICAL)
-  else:
-    logging.basicConfig(format='%(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.CRITICAL)
   loglevel = critical
+  level = logging.CRITICAL
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
   logging.critical('start UnitTests %s', loglevel)
   
 def setPerfTests(logfile=None):
   global loglevel
-  logging.shutdown()
-  if logfile:
-    logging.basicConfig(filename=logfile,
-                        format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.CRITICAL)
-  else:
-    logging.basicConfig(format='%(relativeCreated)d %(funcName)s[%(lineno)d] %(message)s',
-                        level=logging.CRITICAL)    
   loglevel = critical
+  level = logging.CRITICAL
+  formatter = logging.Formatter('%(funcName)s[%(lineno)d] %(message)s')
+  setLogger(logfile, level, formatter)
   logging.info('start PerfTests %s', loglevel)
   
 def getLogLevel():
   return loglevel
-  
-  #logging.basicConfig(filename='myapp.log',
-  #                    format='%(asctime)s %(message)s',
-  #                    datefmt='%m/%d/%Y %I:%M:%S %p',
-  #                    level=logging.DEBUG)
index 32deb75fa7ff7088f0bec2740960b54647937c57..5a6d1f027c464b486c773753e722070f78d6ddf5 100644 (file)
@@ -66,7 +66,7 @@
         <item row="1" column="0">
          <widget class="QPushButton" name="pb_facefiss">
           <property name="toolTip">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;sélection du fichier brep (géométrie) décrivant la face de fissure.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;sélection du fichier brep (géométrie) décrivant la face de fissure.&lt;/p&gt;&lt;p&gt;Un champ rouge correspond à un fichier inexistant.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="text">
            <string>face fissure</string>
@@ -83,7 +83,7 @@
         <item row="0" column="0">
          <widget class="QPushButton" name="pb_maillage">
           <property name="toolTip">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;sélection du fichier med du maillage sain (hexaèdres)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;sélection du fichier med du maillage sain (hexaèdres)&lt;/p&gt;&lt;p&gt;Un champ rouge correspond à un fichier inexistant.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="text">
            <string>maillage sain</string>
    </item>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QPushButton" name="pb_exemple">
+       <property name="toolTip">
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;génération de jeux de données exemple :&lt;/p&gt;&lt;p&gt;maillages sain et face de fissure.&lt;/p&gt;&lt;p&gt;(from blocFissure.materielCasTests import genereMateriel)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+       </property>
+       <property name="text">
+        <string>Exemple</string>
+       </property>
+      </widget>
+     </item>
      <item>
       <widget class="QPushButton" name="pb_reset">
        <property name="toolTip">
      </item>
      <item>
       <widget class="QDialogButtonBox" name="bb_OkCancel">
+       <property name="toolTip">
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;OK : lancer le calcul, sans sauver les paramètres.&lt;/p&gt;&lt;p&gt;Close : fermer le dialogue sans exécution ni sauvegarde.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+       </property>
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
        <property name="standardButtons">
-        <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+        <set>QDialogButtonBox::Close|QDialogButtonBox::Ok</set>
        </property>
       </widget>
      </item>
index fe0627fd18559d53c00afabc0993644e11bd5116..e9645a8fe234ca08f7db81651105f32af3c05ec7 100644 (file)
@@ -63,6 +63,8 @@ def fissureGeneraleDlg(context):
       self.ui.lb_calcul.hide()
       
       # Connect up the buttons.
+      self.connect(self.ui.pb_exemple, QtCore.SIGNAL("clicked()"),
+                   self.genereExemples)
       self.connect(self.ui.pb_valPrec, QtCore.SIGNAL("clicked()"),
                    self.readValPrec)
       self.connect(self.ui.pb_reset, QtCore.SIGNAL("clicked()"),
@@ -188,6 +190,18 @@ def fissureGeneraleDlg(context):
       f.write(str(dico))
       f.close()
     
+    def genereExemples(self):
+      maillageSain      = os.path.join(gmu.pathBloc, 'materielCasTests/CubeAngle.med')
+      brepFaceFissure   = os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep")
+      if (os.path.exists(maillageSain) and os.path.exists(brepFaceFissure)):
+        self.initDialog(self.defaut)
+      else:
+        self.ui.lb_calcul.setText("--- Generation exemples en cours ---")
+        self.ui.lb_calcul.show()
+        from blocFissure.materielCasTests import genereMateriel
+        self.ui.lb_calcul.hide()
+        self.initDialog(self.defaut)
+      
     def readValPrec(self):
       filedef = self.fileDefault()
       if os.path.exists(filedef):
@@ -223,6 +237,8 @@ def fissureGeneraleDlg(context):
       if fileDiag.exec_() :
         fileNames = fileDiag.selectedFiles()
         filedef = fileNames[0]
+        if filedef[-4:] not in ['.dic']:
+          filedef += '.dic'
         dico = self.creeDico()
         f = open(filedef, 'w')
         f.write(str(dico))
@@ -324,6 +340,7 @@ def fissureGeneraleDlg(context):
       NOK = self.testval(dico)
       if not(NOK):
         self.writeDefault(dico)
+        self.ui.lb_calcul.setText("--- Calcul en cours ---")
         self.ui.lb_calcul.show()
         logfile=os.path.join(dico['reptrav'], dico['nomres']+".log")
         self.setLogVerbosity(logfile)
@@ -352,7 +369,8 @@ def fissureGeneraleDlg(context):
 #        except Exception as erreur:
 #          print "exception non répertoriée"
       self.NOK = NOK
-      self.accept()
+      self.ui.lb_calcul.hide()
+      #self.accept()
     
     pass 
 
index 940c983e2d5e5ca68bc27dbfee46caa8dcc75b4d..52a886f3c8bfc48b6d9d1806e765da66cffdb1ae 100644 (file)
@@ -60,7 +60,7 @@ except:
 
 try:
   from blocFissure.ihm.fissureCoude_plugin import fissureCoudeDlg
-  salome_pluginsmanager.AddFunction('Meshed Pipe with a crack',
+  salome_pluginsmanager.AddFunction('Meshed Pipe with a crack (blocFissure plugin)',
                                     'Create a mesh with blocFissure tool',
                                     fissureCoudeDlg)
 except:
@@ -68,7 +68,7 @@ except:
   pass
 try:
   from blocFissure.ihm.fissureGenerale_plugin import fissureGeneraleDlg
-  salome_pluginsmanager.AddFunction('Add a crack in a mesh',
+  salome_pluginsmanager.AddFunction('Add a crack in a mesh (blocFissure plugin)',
                                     'Insert a crack in an hexahedral mesh with blocFissure tool',
                                     fissureGeneraleDlg)
 except: