]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 3 Feb 2009 16:14:31 +0000 (16:14 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 3 Feb 2009 16:14:31 +0000 (16:14 +0000)
Cuve2dg/Cuve2dg_Cata_VPN.py [new file with mode: 0644]
Homard/configuration.py [new file with mode: 0644]
Homard/prefs.py
Homard/qtEficas_homard.py [new file with mode: 0755]

diff --git a/Cuve2dg/Cuve2dg_Cata_VPN.py b/Cuve2dg/Cuve2dg_Cata_VPN.py
new file mode 100644 (file)
index 0000000..1cd34a0
--- /dev/null
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+import types
+class Tuple:
+  def __init__(self,ntuple):
+    self.ntuple=ntuple
+
+  def __convert__(self,valeur):
+    if type(valeur) == types.StringType:
+      return None
+    if len(valeur) != self.ntuple:
+      return None
+    return valeur
+
+  def info(self):
+    return "Tuple de %s elements" % self.ntuple
+
+  __repr__=info
+  __str__=info
+
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ('OPTIONS','DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'), 
+                            A_CLASSER ( ('OPTIONS',), ('DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'))
+                          )
+                 ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+
+
+
+
+#================================
+# 1. Definition des OPTIONS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+
+OPTIONS = PROC ( nom = "OPTIONS",
+                 op = 68,
+                 fr = "Definitions des options", 
+
+#===
+# Liste des paramètres
+#===
+
+# INCRTPS
+  IncrementTemporel = SIMP ( statut = "o",
+                             typ = "I",
+                             defaut = "1",
+                            max = 1,
+                             #val_max = 100,
+                             fr = "Increment temporel (=1 pour calcul deterministe)",
+                             ),
+
+# DTPREC
+  IncrementMaxTemperature = SIMP ( statut = "o", 
+                                   typ = "R", 
+                                  defaut = "0.1", 
+                                  max = 1, 
+                                  val_max = 1., 
+                                  fr = "Increment maximum d'evolution de la temperature par noeud et par instant (°C)",
+                                  ),
+
+# DTARCH
+  IncrementMaxTempsAffichage = SIMP ( statut = "o", 
+                                      typ = "R", 
+                                     defaut = "1000.", 
+                                     max = 1, 
+                                     val_max = 1000., 
+                                     fr = "Increment maximum de temps pour l'affichage (s)",
+                                     ),
+
+# NBO
+# Question : NBO depend-il de TYPGEOM ??
+  NombreNoeudsMaillage = SIMP ( statut = "o", 
+                                typ = "R", 
+                               max=1, 
+                               val_max = 1000., 
+                               fr = "Nombre de noeuds a considerer dans le maillage interne",
+                               ),
+
+# 
+  ListeInstants = SIMP ( statut = "o",
+                         typ = Tuple(2),
+                         max = "**",
+                         fr = "Liste des instants ",
+                         ),
+
+  ListeInstants2 = SIMP ( statut = "o",
+                         typ = Tuple(3),
+                         max = "**",
+                         fr = "Liste des instants ",
+                         ),
+
+) # Fin OPER OPTIONS
diff --git a/Homard/configuration.py b/Homard/configuration.py
new file mode 100644 (file)
index 0000000..1f70895
--- /dev/null
@@ -0,0 +1,193 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+    Ce module sert pour charger les paramètres de configuration d'EFICAS
+"""
+# Modules Python
+print "passage dans la surcharge de configuration pour Homard"
+import os, sys, string, types, re
+import traceback
+from PyQt4.QtGui  import *
+
+# Modules Eficas
+from Editeur import utils
+
+class CONFIG:
+
+  #-----------------------------------
+  def __init__(self,appli,repIni):
+  #-----------------------------------
+
+  # Classe de base permettant de lire, afficher
+  # et sauvegarder les fichiers utilisateurs 
+  # On a deux directories : la directory generale (Repertoire d instal + Nom du code
+  #                       Par exemple : ~/Install_Eficas/EficasV1_14/Homard
+  # et la directorie de l utilisateur 
+  #                      HOME/.Eficas_Homard
+  # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement 
+  # par celui de l utilisateur
+  # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+  # dans le fichier general sinon
+      self.appli   = appli  
+      self.code    = appli.code
+      self.salome  = appli.salome
+      self.repIni = repIni
+      self.fic_prefs ="prefs.py"
+
+      if self.appli: 
+         self.parent=appli.top
+      else:         self.parent=None
+
+
+      self.labels=("rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir")
+
+      # Valeurs par defaut
+      self.rep_user     = os.path.join(os.environ['HOME'],'.Eficas_Homard')
+      self.initialdir   = self.rep_user
+      self.path_doc     = self.rep_user
+      self.savedir      = self.rep_user
+      self.exec_acrobat = self.rep_user
+      #Lecture des fichiers utilisateurs
+      self.lecture_fichier_ini_standard()
+      self.lecture_fichier_ini_utilisateur()
+      self.lecture_catalogues()
+      print self.initialdir
+
+  #--------------------------------------
+  def lecture_fichier_ini_standard(self):
+  #--------------------------------------
+  # Verifie l'existence du fichier "standard"
+  # appelle la lecture de ce fichier
+      self.fic_ini = os.path.join(self.repIni,self.fic_prefs)
+      if not os.path.isfile(self.fic_ini):
+          QMessageBox.critical( None, "Import du fichier de Configuration", 
+                               "Erreur à la lecture du fichier de configuration "+self.fic_ini+".py" )
+          sys.exit(0)
+      import prefs
+      for k in self.labels :
+         try :
+            valeur=getattr(prefs,k)
+            setattr(self,k,valeur)
+         except :
+            pass
+              
+
+  #--------------------------------------
+  def lecture_fichier_ini_utilisateur(self):
+  #--------------------------------------
+  # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
+      self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fic_prefs)
+      #if not os.path.isfile(self.fic_ini_utilisateur+".py"):
+      if not os.path.isfile(self.fic_ini_utilisateur):
+        return
+      from utils import read_file
+      txt = utils.read_file(self.fic_ini_utilisateur)
+      from styles import style
+      d=locals()
+      try:
+         exec txt in d
+      except :
+         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+         QMessageBox.critical( None, "Import du fichier de Configuration", 
+                       "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
+         sys.exit(0)
+      for k in self.labels :
+         try :
+            setattr(self,k,d[k])
+         except :
+            pass
+
+
+
+  #--------------------------------------
+  def lecture_catalogues(self):
+  #--------------------------------------
+      rep_mat=" " # Compatbilite Aster
+      fic_cata  ="catalogues_homard.ini"
+      fic_ini = os.path.join(self.repIni,fic_cata)
+      fic_user= os.path.join(self.rep_user,fic_cata)
+      if  os.path.isfile(fic_user):
+          fichier = fic_user
+      else  :
+          fichier = fic_ini
+          if not os.path.isfile(fic_ini) :
+             QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", 
+                       "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
+             sys.exit(0)
+
+      from utils import read_file
+      txt = utils.read_file(fichier)
+      d=locals()
+      try:
+         exec txt in d
+         self.catalogues=d["catalogues"]
+      except :
+         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+         QMessageBox.critical( None, "Import du fichier de Configuration", 
+                       "Erreur à la lecture du fichier de configuration " + fichier )
+         sys.exit(0)
+
+
+
+  #--------------------------------------
+  def save_params(self):
+  #--------------------------------------
+  # sauvegarde
+  # les nouveaux paramètres dans le fichier de configuration utilisateur
+  #
+       print "a ecrire PNPNPN"
+#      l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc')
+#      texte=""
+#      for clef in l_param :
+#          if hasattr(self,clef):
+#             valeur=getattr(self,clef)
+#             texte= texte + clef+"    = " + repr(valeur) +"\n"
+#
+#
+#      # recuperation des repertoires materiaux
+#      try :
+#          for item in self.catalogues :
+#              try :
+#                  (code,version,cata,format,defaut)=item
+#              except :
+#                  (code,version,cata,format)=item
+#              codeSansPoint=re.sub("\.","",version)
+#              chaine="rep_mat_"+codeSansPoint
+#              if hasattr(self,chaine):
+#                 valeur=getattr(self,chaine)
+#                 texte= texte + chaine+"      = '" + str(valeur) +"'\n"
+#      except :
+#             pass
+#
+#      f=open(self.fic_ini_utilisateur,'w+')
+#      f.write(texte) 
+#      f.close()
+#
+
+
+def make_config(appli,rep):
+    return CONFIG(appli,rep)
+
+def make_config_style(appli,rep):
+    return None
+
+
index 56bb96cd91d6e9c42af2b5e1ff44c30642bc81c1..f79fe6efb15cd5e8af3e678c74db9c13ee5cb7e1 100644 (file)
 #
 # ======================================================================
 
-import os
+import os, sys
+# Les variables pouvant positionnees sont :
+print "import des prefs de Homard"
 
-# REPINI sert à localiser le fichier editeur.ini
-# Obligatoire
+code = "Homard"
+
+# REPINI sert à localiser le fichier 
+# initialdir sert comme directory initial des QFileDialog
+# positionnee a repin au debut mise a jour dans configuration
 REPINI=os.path.dirname(os.path.abspath(__file__))
+initialdir=REPINI 
 
 # INSTALLDIR sert à localiser l'installation d'Eficas
-# Obligatoire
 INSTALLDIR=os.path.join(REPINI,'..')
+sys.path[:0]=[INSTALLDIR]
 
-# CODE_PATH sert à localiser Noyau et Validation éventuellement
-# non contenus dans la distribution EFICAS
-# Par défaut on utilise les modules de INSTALLDIR
-# Peut valoir None (defaut)
-CODE_PATH = None
-#CODE_PATH = os.path.join(REPINI,'../../Superv')
-
-# ICONDIR sert à localiser le répertoire contenant les icones
-# Par défaut on utilise le répertoire icons dans Editeur
-ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
 
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
 # lang indique la langue utilisée pour les chaines d'aide : fr ou ang
 lang='fr'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
 encoding='iso-8859-1'
 
-labels= ('Fichier','Edition','Jeu de commandes',
-#               'Catalogue','Browsers',
-                'Options',
-                'Aide',
-           )
-
-appli_composants=['readercata','bureau',
-#                  'browser',
-                   'options',
-           ]
+# Acces a la documentation
+rep_cata        = INSTALLDIR
+path_doc        = os.path.join(rep_cata,'Doc')
+exec_acrobat    = "/usr/bin/xpdf"
 
-menu_defs={ 'bureau': [
-              ('Fichier',[
-                           ('Nouveau','newJDC','<Control-n>'),
-                           ('Ouvrir','openJDC','<Control-o>'),
-                           ('Enregistrer','saveJDC','<Control-e>'),
-                           ('Enregistrer sous','saveasJDC','<Control-s>'),
-                           None,
-                           ('Fermer','closeJDC','<Control-f>'),
-                           ('Quitter','exitEFICAS','<Control-q>'),
-                         ]
-              ),
-              ('Edition',[
-                           ('Copier','copy','<Control-c>'),
-                           ('Couper','cut','<Control-x>'),
-                           ('Coller','paste','<Control-v>'),
-                         ]
-              ),
-              ('Jeu de commandes',[
-                                   ('Rapport de validation','visuCRJDC','<Control-r>'),
-                                   ('Fichier à plat','visu_a_plat','<Control-p>'),
-                                   ('Fichier format v6','visuJDC_py'),
-                                   ('Fichier source','visu_txt_brut_JDC','<Control-b>'),
-                                   ('Paramètres Eficas','affichage_fichier_ini'),
-                                   ('Mots-clés inconnus','mc_inconnus'),
-                                  ]
-              ),
-              ('Aide',[
-                        ('Aide EFICAS','aideEFICAS','<Control-a>'),
-                      ]
-              ),
-             ]
-           }
 
diff --git a/Homard/qtEficas_homard.py b/Homard/qtEficas_homard.py
new file mode 100755 (executable)
index 0000000..8ee037e
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+   Ce module sert à lancer EFICAS configuré pour Homard
+"""
+# Modules Python
+
+# Modules Eficas
+import prefs
+prefs.code="HOMARD"
+from InterfaceQT4 import eficas_go
+
+eficas_go.lance_eficas(code=prefs.code)