--- /dev/null
+# -*- 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
--- /dev/null
+# -*- 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
+
+
#
# ======================================================================
-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>'),
- ]
- ),
- ]
- }
--- /dev/null
+#!/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)