Salome HOME
correction bugs adao + commentaire
[tools/eficas.git] / InterfaceQT4 / editor.py
old mode 100644 (file)
new mode 100755 (executable)
index 1dcfac5..ff25085
@@ -24,6 +24,7 @@ from PyQt4 import *
 from PyQt4.QtGui  import *
 from PyQt4.QtCore import *
 import time
 from PyQt4.QtGui  import *
 from PyQt4.QtCore import *
 import time
+import pdb
 from datetime import date
 from Extensions.i18n import tr
 
 from datetime import date
 from Extensions.i18n import tr
 
@@ -36,6 +37,8 @@ from Editeur        import comploader
 from Editeur        import Objecttreeitem
 from desBaseWidget  import Ui_baseWidget
 from monViewTexte   import ViewText 
 from Editeur        import Objecttreeitem
 from desBaseWidget  import Ui_baseWidget
 from monViewTexte   import ViewText 
+from monViewTexte   import ViewText2
+from monWidgetCreeParam import MonWidgetCreeParam 
 import browser
 import readercata
 
 import browser
 import readercata
 
@@ -54,8 +57,10 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
 
         QtGui.QWidget.__init__(self,None)
         self.setupUi(self)
 
         QtGui.QWidget.__init__(self,None)
         self.setupUi(self)
-        self.monOptionnel=None
+        self.widgetOptionnel=None
         self.fenetreCentraleAffichee=None
         self.fenetreCentraleAffichee=None
+        self.dejaDansPlieTout=False
+        self.afficheCommandesPliees = True
         self.appliEficas = appli
         self.appli       = appli  #---- attendu par IHM
         self.vm          = vm
         self.appliEficas = appli
         self.appli       = appli  #---- attendu par IHM
         self.vm          = vm
@@ -72,8 +77,11 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
 
         # ces attributs sont mis a jour par definitCode appelee par newEditor
         self.code = self.appliEficas.CONFIGURATION.code
 
         # ces attributs sont mis a jour par definitCode appelee par newEditor
         self.code = self.appliEficas.CONFIGURATION.code
-        self.affiche_alpha=1
-        if self.code in ['MAP','Adao'] : 
+        self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande
+        self.affiche=self.appliEficas.CONFIGURATION.affiche
+        #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
+        if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False
+        if self.code in ['MAP',] : 
            self.widgetTree.close()
            self.widgetTree=None
            self.appliEficas.resize(1440,self.appliEficas.height())
            self.widgetTree.close()
            self.widgetTree=None
            self.appliEficas.resize(1440,self.appliEficas.height())
@@ -89,6 +97,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
            self.readercata=self.appliEficas.readercata
         if self.readercata.fic_cata == None : return    #Sortie Salome
         self.titre=self.readercata.titre
            self.readercata=self.appliEficas.readercata
         if self.readercata.fic_cata == None : return    #Sortie Salome
         self.titre=self.readercata.titre
+        self.Ordre_Des_Commandes=self.readercata.Ordre_Des_Commandes
+        self.Classement_Commandes_Ds_Arbre=self.readercata.Classement_Commandes_Ds_Arbre
 
         self.format =  self.appliEficas.format_fichier
 
 
         self.format =  self.appliEficas.format_fichier
 
@@ -129,22 +139,29 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         self.node_selected = []
         self.deplier = True
         self.message=''
         self.node_selected = []
         self.deplier = True
         self.message=''
+        if self.code in ['Adao','MAP'] : self.afficheApresInsert=True
+        else :  self.afficheApresInsert=False
+        if self.code in ['TELEMAC',] : self.enteteQTree='premier'
+        else : self.enteteQTree='complet'
+        if self.code in ['Adao','TELEMAC'] : self.affichePlie=True
+        else : self.affichePlie=False
 
         self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
 
         #------- construction du jdc --------------
 
         jdc_item = None
 
         self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
 
         #------- construction du jdc --------------
 
         jdc_item = None
-        self.mode_nouv_commande=self.readercata.mode_nouv_commande
 
         self.nouveau=0
         if self.fichier is not None:        #  fichier jdc fourni
             self.fileInfo = QFileInfo(self.fichier)
             self.fileInfo.setCaching(0)
             if jdc==None :
 
         self.nouveau=0
         if self.fichier is not None:        #  fichier jdc fourni
             self.fileInfo = QFileInfo(self.fichier)
             self.fileInfo.setCaching(0)
             if jdc==None :
-               try :
+              # try :
+              if 1:
                    self.jdc = self.readFile(self.fichier)
                    self.jdc = self.readFile(self.fichier)
-               except :
+               #except :
+              else :
                    print "mauvaise lecture"
             else :
                self.jdc=jdc
                    print "mauvaise lecture"
             else :
                self.jdc=jdc
@@ -162,6 +179,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         if self.jdc:
             self.jdc.appli = self
             self.jdc.lang    = self.appli.langue
         if self.jdc:
             self.jdc.appli = self
             self.jdc.lang    = self.appli.langue
+            self.jdc.aReafficher=False
             txt_exception  = None
             if not jdc:
                 self.jdc.analyse()
             txt_exception  = None
             if not jdc:
                 self.jdc.analyse()
@@ -176,11 +194,47 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
                 jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
                 if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False):
                     self.viewJdcRapport()
                 jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
                 if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False):
                     self.viewJdcRapport()
+
 
         if jdc_item:
             self.tree = browser.JDCTree( jdc_item,  self )
         self.appliEficas.construitMenu()
 
 
         if jdc_item:
             self.tree = browser.JDCTree( jdc_item,  self )
         self.appliEficas.construitMenu()
 
+    #-------------------#   Pour execution avec output sans une fenetre EFICAS. (erreurs encore dans la fenetre bash)
+    def runPSEN_2(self):   
+    #-------------------#
+      if self.modified or self.fichier==None  :
+         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+         return
+        
+      #monPython="/home/A96028/salome75/prerequisites/install/Python-273-tcl8513-tk8513/bin/python"
+      #monWrapper="/local00/home/A96028/GitEficasTravail/eficas/PSEN_Eficas/PSSEWrapper.py"
+      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
+      monWrapper = os.path.join(path1, 'PSSEWrapper.py')
+      cmd=['python',monWrapper]
+
+      w = ViewText2( self.QWParent, cmd )
+      w.setWindowTitle( "execution" )
+      w.exec_()
+
+
+    #-------------------#  Pour execution avec output et error dans le bash
+    def runPSEN(self):
+    #-------------------#
+      if self.modified or self.fichier==None  :
+         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+         return
+        
+      #lancement avec le .bat
+      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
+      WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') 
+      import subprocess
+      p = subprocess.Popen(['python',WrapperFilePath])
+      (out,err)=p.communicate()        
+      print out
+      print err
+
     #--------------------------------#
     def _newJDC( self ,units = None):
     #--------------------------------#
     #--------------------------------#
     def _newJDC( self ,units = None):
     #--------------------------------#
@@ -193,6 +247,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         texte=""
         if self.code == "CARMELCND" : texte=self._newJDCCND()
         if self.code == "ZCRACKS" : texte=self._newZCRACKS()
         texte=""
         if self.code == "CARMELCND" : texte=self._newJDCCND()
         if self.code == "ZCRACKS" : texte=self._newZCRACKS()
+        if self.code == "TELEMAC" : texte=self._newTELEMAC()
+        if self.code == "PSEN" : texte = self._newPSEN()
         #   texte=self.newTexteCND
        
         jdc=self.readercata.cata[0].JdC( procedure =texte,
         #   texte=self.newTexteCND
        
         jdc=self.readercata.cata[0].JdC( procedure =texte,
@@ -322,12 +378,10 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
             QMessageBox.critical( self, tr("Type de fichier non reconnu"),tr("EFICAS ne sait pas ouvrir ce type de fichier"))
             return None
 
             QMessageBox.critical( self, tr("Type de fichier non reconnu"),tr("EFICAS ne sait pas ouvrir ce type de fichier"))
             return None
 
-    #----------------------------------------------#
-    def _viewText(self, txt, caption = "FILE_VIEWER"):
-    #----------------------------------------------#
-        w = ViewText( self.QWParent )
-        w.setWindowTitle( caption )
-        w.setText(txt)
+    #-----------------------------------------------------------------------#
+    def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600):
+    #--------------------------------------------------------------------#
+        w = ViewText( self.QWParent,self ,caption,txt,largeur,hauteur)
         w.show()
     #
 
         w.show()
     #
 
@@ -354,7 +408,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         f.close()
         self.connect(self.monExe, SIGNAL("readyReadStandardOutput()"), self.readFromStdOut )
         self.connect(self.monExe, SIGNAL("readyReadStandardError()"), self.readFromStdErr )
         f.close()
         self.connect(self.monExe, SIGNAL("readyReadStandardOutput()"), self.readFromStdOut )
         self.connect(self.monExe, SIGNAL("readyReadStandardError()"), self.readFromStdErr )
-        exe='sh /tmp/test.sh'
+        exe='sh ' + nomFichier
         self.monExe.start(exe)
         self.monExe.closeWriteChannel()
         self.w.exec_()
         self.monExe.start(exe)
         self.monExe.closeWriteChannel()
         self.w.exec_()
@@ -375,6 +429,12 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         
 
 
         
 
 
+    #-----------------------#
+    def gestionParam(self):
+    #-----------------------#
+        w = MonWidgetCreeParam( self)
+        w.show()
+
     #-----------------------#
     def viewJdcSource(self):
     #-----------------------#
     #-----------------------#
     def viewJdcSource(self):
     #-----------------------#
@@ -393,6 +453,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
     def viewJdcRapport(self):
     #-----------------------#
         strRapport = unicode( self.jdc.report() )
     def viewJdcRapport(self):
     #-----------------------#
         strRapport = unicode( self.jdc.report() )
+        # on ajoute les regles
+        
         self._viewText(strRapport, "JDC_RAPPORT")
 
     #----------------#
         self._viewText(strRapport, "JDC_RAPPORT")
 
     #----------------#
@@ -421,6 +483,11 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
     # appele par I_MACRO_ETAPE
         QMessageBox.information( self, titre, message)
 
     # appele par I_MACRO_ETAPE
         QMessageBox.information( self, titre, message)
 
+    #-----------------------------------#
+    def affiche_commentaire(self,message):
+    #-----------------------------------#
+        self.labelCommentaire.setText(message)
+
     #-------------------#
     def init_modif(self):
     #-------------------#
     #-------------------#
     def init_modif(self):
     #-------------------#
@@ -461,14 +528,23 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
     #---------------------#
     def handleDeplier(self):
     #---------------------#
     #---------------------#
     def handleDeplier(self):
     #---------------------#
+       print "je passe ici"
        if self.tree == None : return
        if self.tree == None : return
-       self.tree.collapseAll()
+       #self.tree.collapseAll()
        if self.deplier :
        if self.deplier :
-          self.tree.collapseItem(self.tree.topLevelItem(0))
+          #print "je plie"
+          self.tree.expandItem(self.tree.topLevelItem(0))
           self.deplier = False
           self.deplier = False
+          if self.fenetreCentraleAffichee != None  :
+             if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
+                 self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
        else:
        else:
+          #print "je deplie"
           self.tree.expandItem(self.tree.topLevelItem(0))
           self.deplier = True
           self.tree.expandItem(self.tree.topLevelItem(0))
           self.deplier = True
+          if self.fenetreCentraleAffichee != None  :
+             if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
+                 self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
 
     #---------------------#
     def handleEditCut(self):
 
     #---------------------#
     def handleEditCut(self):
@@ -672,9 +748,9 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
                    self.appliEficas.trUtf8('Wrapper Files (*.xml);;''All Files (*)'))
      return  fichier
 
                    self.appliEficas.trUtf8('Wrapper Files (*.xml);;''All Files (*)'))
      return  fichier
 
-    #----------------------------------#
-    def writeFile(self, fn, txt = None):
-    #----------------------------------#
+    #--------------------------------------------------#
+    def writeFile(self, fn, txt = None,formatLigne="beautifie"):
+    #--------------------------------------------------#
         """
         Public slot to write the text to a file.
 
         """
         Public slot to write the text to a file.
 
@@ -683,9 +759,9 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         """
 
         fn = unicode(fn)
         """
 
         fn = unicode(fn)
-
+       
         if txt == None :
         if txt == None :
-            txt = self.get_text_JDC(self.format)
+            txt = self.get_text_JDC(self.format,formatLigne=formatLigne)
             eol = '\n'
             if len(txt) >= len(eol):
                if txt[-len(eol):] != eol:
             eol = '\n'
             if len(txt) >= len(eol):
                if txt[-len(eol):] != eol:
@@ -706,15 +782,16 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
                     .arg(unicode(fn)).arg(str(why)))
             return 0
 
                     .arg(unicode(fn)).arg(str(why)))
             return 0
 
-    #-------------------------------------#
-    def get_text_JDC(self,format,pourRun=0):
-    #-------------------------------------#
+    #-----------------------------------------------------------#
+    def get_text_JDC(self,format,pourRun=0,formatLigne="beautifie"):
+    #-----------------------------------------------------------#
       if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP"
       if generator.plugins.has_key(format):
       if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP"
       if generator.plugins.has_key(format):
+         
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
          try :
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
          try :
-            jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
+            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION)
             if pourRun : jdc_formate=self.generator.textePourRun
          except ValueError,e:
             QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
             if pourRun : jdc_formate=self.generator.textePourRun
          except ValueError,e:
             QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
@@ -774,11 +851,11 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
 
           #textePython="ls -l"
           self._viewTextExecute( textePython,"map_run",".sh")
 
           #textePython="ls -l"
           self._viewTextExecute( textePython,"map_run",".sh")
-          try:
-             commande="rm  "+self.fichierMapInput
-             os.system(commande)
-          except :
-             pass
+          #try:
+          #  commande="rm  "+self.fichierMapInput
+          #   os.system(commande)
+          #except :
+          #   pass
       except Exception, e:
           print traceback.print_exc()
 
       except Exception, e:
           print traceback.print_exc()
 
@@ -884,7 +961,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
                                  )
            return
         if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir
                                  )
            return
         if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir
-        else : path=os.environ['HOME']
+        else : path='C:/'
 
         monNomFichier=""
         if self.fichier is not None and self.fichier != "" :
 
         monNomFichier=""
         if self.fichier is not None and self.fichier != "" :
@@ -928,6 +1005,41 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         (output, err) = p.communicate()
 
 
         (output, err) = p.communicate()
 
 
+    #-----------------#
+    def saveRunPSEN(self):
+    #-----------------#
+        print "saveRunPSEN"
+        self.saveFile()
+        return
+        if not(self.jdc.isvalid()):
+           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
+                                tr("Un JdC valide est necessaire pour creer un .input")
+                                 )
+           return
+
+        print generator.plugins.has_key(self.format)
+        if generator.plugins.has_key(self.format):
+             # Le generateur existe on l'utilise
+             self.generator=generator.plugins[self.format]()
+             try :
+                self.generator.gener(self.jdc)
+                self.generator.writeDefault('')
+             except ValueError,e:
+                QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
+             if not self.generator.cr.estvide():
+                self.affiche_infos(tr("Erreur a la generation"),Qt.red)
+                QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC"))
+                return ""
+        else:
+             # Il n'existe pas c'est une erreur
+             self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red)
+             QMessageBox.critical( self, "Format  non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format))
+             return ""
+        print "HELLO"
+        
+
+
+
     #-----------------------------------------#
     def cherche_Groupes(self):
     #-----------------------------------------#
     #-----------------------------------------#
     def cherche_Groupes(self):
     #-----------------------------------------#
@@ -961,9 +1073,9 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         #else :
            pass
 
         #else :
            pass
 
-    #-----------------------------------------#
-    def saveFile(self, path = None, saveas= 0):
-    #-----------------------------------------#
+    #-----------------------------------------------------------------#
+    def saveFile(self, path = None, saveas= 0,formatLigne="beautifie"):
+    #-----------------------------------------------------------------#
         """
         Public slot to save the text to a file.
 
         """
         Public slot to save the text to a file.
 
@@ -972,7 +1084,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
             the name of the saved file
         """
 
             the name of the saved file
         """
 
-        #self.modified=1
+        self.modified=1
         if not self.modified and not saveas:
             return (0, None)      # do nothing if text wasn't changed
 
         if not self.modified and not saveas:
             return (0, None)      # do nothing if text wasn't changed
 
@@ -997,7 +1109,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
           fn = unicode(QDir.convertSeparators(fn))
           newName = fn
 
           fn = unicode(QDir.convertSeparators(fn))
           newName = fn
 
-        if not (self.writeFile(fn)): return (0, None)
+
+        if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
         self.fichier = fn
         self.modified  = False
         if self.fileInfo is None or saveas:
         self.fichier = fn
         self.modified  = False
         if self.fileInfo is None or saveas:
@@ -1020,6 +1133,14 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
 
         return (1, self.fichier)
 #
 
         return (1, self.fichier)
 #
+
+    #----------------------------------------------#
+    def sauveLigneFile(self):
+    #----------------------------------------------#
+        self.modified=1
+        return self.saveFile(formatLigne="Ligne")
+
+
     #----------------------------------------------#
     def saveFileAs(self, path = None,fileName=None):
     #----------------------------------------------#
     #----------------------------------------------#
     def saveFileAs(self, path = None,fileName=None):
     #----------------------------------------------#
@@ -1033,7 +1154,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         if fileName != None :
            self.fichier = fileName
            return self.saveFile()
         if fileName != None :
            self.fichier = fileName
            return self.saveFile()
-        return self.saveFile(path,1)
+        return self.saveFile(path,1,"beautifie")
 
 
 
 
 
 
@@ -1157,6 +1278,22 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
         return ligne
 
 
         return ligne
 
 
+    #---------------------------#
+    def _newTELEMAC(self):
+    #---------------------------#
+        texte="INITIALIZATION();BOUNDARY_CONDITIONS();GENERAL_PARAMETERS();PHYSICAL_PARAMETERS();NUMERICAL_PARAMETERS();"
+        #texte=""
+        return texte
+
+    #---------------------------#
+    def _newPSEN(self):
+    #---------------------------#
+        texte="DIRECTORY() ; PSSE_PARAMETERS() ; SIMULATION() ; sansnom=DISTRIBUTION() ; sansnom=DISTRIBUTION() ; CORRELATION() ;"
+        #texte=""
+        return texte
+
+    #---------------------------#
+
     #---------------------------#
     def _newZCRACKS(self):
     #---------------------------#
     #---------------------------#
     def _newZCRACKS(self):
     #---------------------------#
@@ -1179,24 +1316,12 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
       from acquiertGroupes import getGroupes
       erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
       if erreur != "" : print "a traiter"
       from acquiertGroupes import getGroupes
       erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
       if erreur != "" : print "a traiter"
-      #else :
-      #   from monBoutonSalome import MonBoutonSalome
-      #   desBoutonSalome = MonBoutonSalome()
-      #   icon = QIcon()
-      #   icon = QIcon(self.appli.repIcon+"/image240.png")
-      #   desBoutonSalome.pushButton.setIcon(icon)
-      #   desBoutonSalome.setMinimumSize(QtCore.QSize(453, 103))
-
-      #   self.openfile=QFileDialog(self.appli,caption='Fichier Med',filter=extensions)
-      #   self.openfile.layout().addWidget(desBoutonSalome)
-      #   self.connect(desBoutonSalome.pushButton,SIGNAL("clicked()"),self.BoutonSalomePressed)
-      #   self.connect(self.openfile,SIGNAL("fileSelected(QString)"),self.BoutonFileSelected)
-      #   r=self.openfile.exec_()
       texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
       texteSources=""
       texteCond=""
       texteNoCond=""
       texteVcut=""
       texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
       texteSources=""
       texteCond=""
       texteNoCond=""
       texteVcut=""
+      texteZs=""
       for groupe in self.listeGroupes :
           if groupe[0:8]=='CURRENT_': 
              texteSources +=groupe[8:]+"=SOURCE("
       for groupe in self.listeGroupes :
           if groupe[0:8]=='CURRENT_': 
              texteSources +=groupe[8:]+"=SOURCE("
@@ -1204,7 +1329,8 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget):
           if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
           if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
           if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
           if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
           if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
           if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
-      texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut
+          if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
+      texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
       self.newTexteCND=texte
       self.modified=1
       return texte
       self.newTexteCND=texte
       self.modified=1
       return texte