From 4714dbcd9d2f5f40cb455c6df488c6fa681e0edd Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Tue, 7 Feb 2012 10:20:37 +0000 Subject: [PATCH] Remise a plat des prefs et des surcharges par les integrateurs et les utilisateurs --- Aster/Cata/cataSTA9/Macro/test_fichier_ops.py | 2 +- Aster/configuration_ASTER.py | 407 ++---------------- Aster/editeur.ini | 49 --- Aster/editeur.ini.win | 49 --- Aster/editeur_salome.ini | 48 --- Aster/prefs_ASTER.py | 88 +--- Aster/qtEficas_aster.py | 2 +- Carmel3D/configuration_CARMEL3D.py | 23 +- Carmel3D/editeur.ini | 18 - Carmel3D/prefs_CARMEL3D.py | 82 +--- Cuve2dg/configuration_CUVE2DG.py | 215 ++------- Cuve2dg/prefs_CUVE2DG.py | 22 +- Editeur/utils.py | 17 +- InterfaceQT4/configuration.py | 127 +++--- InterfaceQT4/monChoixCode.py | 5 +- InterfaceQT4/monChoixMap.py | 25 +- InterfaceQT4/qtEficas.py | 15 +- InterfaceQT4/readercata.py | 15 +- InterfaceQT4/viewManager.py | 2 + MAP/catalogues_MAP.ini | 19 - MAP/configuration_MAP.py | 7 +- MAP/prefs_MAP.py | 23 +- MAP/s_Perfect_V1.py | 230 ++++++++++ MAP/s_scc_3d_analysis_V1.py | 31 ++ MAP/s_scc_st_2_V1.py | 2 +- Openturns_Study/catalogues_openturns.ini | 10 - .../configuration_OPENTURNS_STUDY.py | 16 +- Openturns_Study/prefs_OPENTURNS_STUDY.py | 22 +- Openturns_Wrapper/catalogues_openturns.ini | 10 - .../configuration_OPENTURNS_WRAPPER.py | 17 +- Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py | 23 +- .../prefs_OPENTURNS_WRAPPER.py.in | 4 +- UiQT4/desChoixMap.ui | 40 +- 33 files changed, 576 insertions(+), 1089 deletions(-) delete mode 100644 Aster/editeur.ini delete mode 100644 Aster/editeur.ini.win delete mode 100644 Aster/editeur_salome.ini delete mode 100644 Carmel3D/editeur.ini delete mode 100644 MAP/catalogues_MAP.ini create mode 100644 MAP/s_Perfect_V1.py create mode 100644 MAP/s_scc_3d_analysis_V1.py delete mode 100644 Openturns_Study/catalogues_openturns.ini delete mode 100644 Openturns_Wrapper/catalogues_openturns.ini diff --git a/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py index 591d5f70..ba54e7c1 100644 --- a/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py +++ b/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py @@ -21,7 +21,6 @@ import sys import os import re -import md5 #------------------------------------------------------------------------------- class TestFichierError(Exception): @@ -66,6 +65,7 @@ def test_fichier_ops(self, FICHIER, NB_VALE, VALE, VALE_K, TYPE_TEST, On teste le nombre de réels présents, et, facultativement, la somme de ces nombres et le texte du fichier. """ + import md5 ier = 0 # La macro compte pour 1 dans la numerotation des commandes self.set_icmd(1) diff --git a/Aster/configuration_ASTER.py b/Aster/configuration_ASTER.py index 3307f10a..5ed9e82c 100644 --- a/Aster/configuration_ASTER.py +++ b/Aster/configuration_ASTER.py @@ -1,364 +1,43 @@ -# -*- 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 "dans Aster" -import os, sys, string, types, re -import traceback - - -# Modules Eficas -from Editeur import utils - -class CONFIGbase: - - #----------------------------------- - def __init__(self,appli): - #----------------------------------- - - # Classe de base permettant de lire, afficher - # et sauvegarder les fichiers utilisateurs editeur.ini - # et style.py - # Classe Mere de : class CONFIG(CONFIGbase) - # class CONFIGStyle(CONFIGbase): - self.appli = appli - self.salome = appli.salome - self.dRepMat={} - if self.appli: - self.parent=appli.top - else: - self.parent=None - self.rep_user = utils.get_rep_user() - if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user) - self.lecture_fichier_ini_standard() - self.lecture_catalogues_standard() - self.lecture_fichier_ini_utilisateur() - self.init_liste_param() - - - #-------------------------------------- - def lecture_fichier_ini_standard(self): - #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier - if not os.path.isfile(self.fic_ini): - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n") - print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini - sys.exit(0) - self.lecture_fichier(self.fic_ini) - - #----------------------------- - def lecture_fichier(self,fic): - #------------------------------ - # lit les paramètres du fichier eficas.ini ou style.py - # les transforme en attribut de l 'objet - # utilisation du dictionnaire local pour récuperer style - txt = utils.read_file(fic) - 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]) - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") - print ("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") - sys.exit() - - for k in d.keys() : - if k in self.labels.keys() : - setattr(self,k,d[k]) - # Glut horrible pour les repertoires materiau... - elif k[0:9]=="rep_mat_v" : - setattr(self,k,d[k]) - - for k in d['style'].__dict__.keys() : - setattr(self,k,d['style'].__dict__[k]) - - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self,chaine): - rep_mat=getattr(self,chaine) - self.dRepMat[version]=str(rep_mat) - - - #-------------------------------------- - 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.fichier) - if not os.path.isfile(self.fic_ini_utilisateur): - return - self.lecture_fichier(self.fic_ini_utilisateur) - - #-------------------------------------- - def lecture_catalogues_standard(self): - #-------------------------------------- - # repertoires Materiau - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - cata=ligne[2] - self.dRepMat[version]=os.path.join(cata,'materiau') - - #-------------------------------------- - def affichage_fichier_ini(self): - #-------------------------------------- - """ - Affichage des valeurs des paramètres relus par Eficas - """ - import widgets - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = self.titre, - texte = self.texte_ini, - items = self.l_param, - mode='display', - commande=('Modifier',self.commande)) - if result.resultat : - #print 'on sauvegarde les nouveaux paramètres :',result.resultat - self.save_param_ini(result.resultat) - - #-------------------------------------- - def save_param_ini(self,dico): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - f=open(self.fic_ini_utilisateur,'w+') - for k,v in dico.items(): - if self.types[k] in ('mot2','mot3','mot4'): - v1=v[1:-1] - val=v1.split(",") - p = "(" - listeval="" - for valeur in val: - listeval = listeval+ p + str(valeur) - p=" , " - listeval = listeval + ")" - f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n') - elif k == 'catalogues' : - f.write(k + '\t=\t' + str(v) + '\n') - else: - f.write(str(self.pref)+str(k) + '\t=\t"' + str(v) + '"\n') - f.close() - self.lecture_fichier_ini_utilisateur() - - #------------------------------------------- - def creation_fichier_ini_si_possible(self): - #------------------------------------------- - return self.creation_fichier_ini(mode='ignorer_annuler') - - #-------------------------------------------------------- - def creation_fichier_ini(self,mode='considerer_annuler'): - #--------------------------------------------------------- - # Récupération des valeurs des paramétres requis pour la création du fichier - # eficas.ini - # - import widgets - items = self.l_param - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = "Saisie des donnees indispensables a la configuration d'EFICAS", - texte = self.texte, - items = items, - mode='query') - if not result.resultat : - if mode == 'considerer_annuler': - test=0 - if self.appli.ihm=="TK" : - from widgets import showerror,askretrycancel - test = askretrycancel("Erreur","Données incorrectes !") - if not test: - # XXX On sort d'EFICAS, je suppose - self.appli.exitEFICAS() - else: - self.creation_fichier_ini() - else: - return None - else : - self.save_param_ini(result.resultat) - return result.resultat - - #-------------------------- - def init_liste_param (self): - #-------------------------- - # construit self.l_param - # a partir de self.labels et des attributs - # de l objet (mis a jour lors de la lecture du fichier) - # l_param est une liste de tuples où chaque tuple est de la forme : - # (label,nature,nom_var,defaut) - - self.l_param=[] - for k in self.labels.keys() : - if hasattr(self,k) : - if k in self.YesNo.keys(): - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k], - self.YesNo[k][0],self.YesNo[k][1])) - else : - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k])) - self.l_param = tuple(self.l_param) - - -class CONFIG(CONFIGbase): - def __init__(self,appli,repIni): - - self.dFichierEditeur={"ASTER" : "editeur.ini", - "ASTER_SALOME" : "editeur_salome.ini"} - self.texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\ - "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\ - "Si vous annulez, EFICAS ne se lancera pas !!" - - self.salome=appli.salome - self.code=appli.code - clef=self.code - if self.salome != 0 : - clef = clef + "_SALOME" - self.fichier=self.dFichierEditeur[clef] - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = 'Parametres necessaires a la configuration d\'EFICAS' - self.texte_ini = "Voici les parametres que requiert Eficas" - self.commande = self.creation_fichier_ini_si_possible - self.labels={"savedir" : "Repertoire initial pour Open/Save des fichiers", - "rep_travail" : "Repertoire de travail", - "rep_mat" : "Repertoire materiaux", - "path_doc" : "Chemin d'acces a la doc Aster", - "exec_acrobat" : "Ligne de commande Acrobat Reader", - "catalogues" : "Versions du code ", - "isdeveloppeur" : "Niveau de message ", - "path_cata_dev" : "Chemin d'acces aux catalogues developpeurs"} - - - self.types ={"savedir":"rep", "rep_travail":"rep","rep_mat":"rep", - "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file", - "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep", - "DTDDirectory":"rep"} - - self.YesNo={} - self.YesNo['isdeveloppeur']=('Deboggage','Utilisation') - - # Valeurs par defaut - self.rep_user = utils.get_rep_user() - self.initialdir=self.rep_user - self.savedir = os.environ['HOME'] - self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas') - self.rep_mat="" - self.path_doc=self.rep_user - self.exec_acrobat=self.rep_user - self.isdeveloppeur='NON' - self.path_cata_dev=os.path.join(self.rep_user,'cata') - CONFIGbase.__init__ (self,appli) - self.pref="" - - #-------------------------------------- - def save_params(self): - #-------------------------------------- - # sauvegarde - # les nouveaux parametres dans le fichier de configuration utilisateur - # - l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc','savedir') - 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() - - -class CONFIGStyle(CONFIGbase): - def __init__(self,appli,repIni): - self.salome=appli.salome - self.texte = "Pour prendre en compte les modifications \n"+\ - " RELANCER EFICAS" - self.fichier="style.py" - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = "Parametres d affichage" - self.texte_ini = "Voici les parametres configurables : " - self.commande = self.creation_fichier_ini_si_possible - self.labels={"background":"couleur du fonds", - "foreground":"couleur de la police standard" , - "standard":" police et taille standard", - "standard_italique":"police utilisee pour l'arbre ", - "standard_gras_souligne":"police utilisee pour le gras souligne", - "canvas_italique":"police italique", - "standard_gras":"gras", - } - self.types ={"background":"mot", - "foreground":"mot" , - "standard":"mot2", - "standard_italique":"mot3", - "standard_gras":"mot3", - "standard_gras_souligne":"mot4", - "canvas":"mot2", - "canvas_italique":"mot3", - "canvas_gras":"mot3", - "canvas_gras_italique":"mot4", - "standard12":"mot2", - "standard12_gras":"mot3", - "standard12_gras_italique":"mot4", - "statusfont":"mot2", - "standardcourier10":"mot2"} - self.YesNo={} - self.l_param=[] - CONFIGbase.__init__ (self,appli) - self.pref="style." - - def affichage_style_ini(self): - self.affichage_fichier_ini() - -def make_config(appli,rep): - return CONFIG(appli,rep) - -def make_config_style(appli,rep): - return CONFIGStyle(appli,rep) - - +# -*- 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 +import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['exec_acrobat', 'catalogues','savedir','lang'] + self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues'] + + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_install') + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/Aster/editeur.ini b/Aster/editeur.ini deleted file mode 100644 index 9ce15b53..00000000 --- a/Aster/editeur.ini +++ /dev/null @@ -1,49 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -import os - -# Répertoire initial -import prefs_ASTER -initialdir=prefs_ASTER.repIni -rep_cata = os.path.join(initialdir,'Cata') -rep_Pmw = os.path.join(initialdir,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.abspath(os.path.join(rep_cata,'..','Doc')) -exec_acrobat = "acroread" - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" - -# Choix des catalogues -rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') -rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') -rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') -# -catalogues=( -('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), -('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), -('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python'), -('ASTER','STA11',os.path.join(rep_cata,'cataSTA11'),'python','defaut'), -) diff --git a/Aster/editeur.ini.win b/Aster/editeur.ini.win deleted file mode 100644 index 356b91d3..00000000 --- a/Aster/editeur.ini.win +++ /dev/null @@ -1,49 +0,0 @@ -# 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. -# -# -# ====================================================================== - -import os - -import prefs - -rep_cata = os.path.join(prefs.repIni,'Cata') -rep_Pmw = os.path.join(prefs.repIni,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = os.environ['ASTER']+'/OUTILS/acroread.bat' - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = os.environ['TEMP'] -# Répertoire temporaire -rep_travail = os.environ['TEMP'] -# Répertoire initial -initialdir=os.curdir - -# Choix des catalogues -rep_mat=os.path.join(rep_cata,'..','materiau') - -catalogues = ( -# ('ASTER','v5.9',os.path.join(rep_cata,'cataSTA5'),'asterv5'), -# ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'), -# ('ASTER','v7.7',os.path.join(rep_cata,'cataSTA7'),'python'), - ('ASTER','v8.3',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), - ) - diff --git a/Aster/editeur_salome.ini b/Aster/editeur_salome.ini deleted file mode 100644 index 398dc653..00000000 --- a/Aster/editeur_salome.ini +++ /dev/null @@ -1,48 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -import os - -# Répertoire initial -import prefs_ASTER -initialdir=prefs_ASTER.repIni -rep_cata = os.path.join(initialdir,'Cata') -rep_Pmw = os.path.join(initialdir,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = "acroread" - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" - -# Choix des catalogues -rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') -rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') -rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') -# -catalogues=( -('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), -('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), -('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python','defaut'), -) diff --git a/Aster/prefs_ASTER.py b/Aster/prefs_ASTER.py index eb0beef3..bb1b1576 100644 --- a/Aster/prefs_ASTER.py +++ b/Aster/prefs_ASTER.py @@ -21,84 +21,30 @@ import os -# repIni sert à localiser le fichier editeur.ini +# repIni sert a localiser le fichier editeur.ini # Obligatoire repIni=os.path.dirname(os.path.abspath(__file__)) -INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) +rep_cata = os.path.join(repIni,'Cata') +mode_nouv_commande='alpha' -# 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 - - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang +# lang indique la langue utilisee 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' +# Utilisateur/Developpeur +isdeveloppeur = "NON" -# Preference -if os.name == 'nt': - userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ]) -else : - userprefs=os.path.expanduser("~/.Eficas_install/prefs.py") - -if os.path.isfile(userprefs): - try: - execfile(userprefs) - except: - pass - -#------------------------------------------------------------------- -# Partie pour TK -#------------------------------------------------------------------- - -labels= ('Fichier','Edition','Jeu de commandes', - 'Options', - 'Aide', - 'Traduction', - ) - -appli_composants=['readercata','bureau', - 'options', - ] - -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC','','Ctrl+N'), - ('Nouvel INCLUDE','newJDC_include'), - ('Ouvrir','openJDC','','Ctrl+O'), - ('Enregistrer','saveJDC','','Ctrl+S'), - ('Enregistrer sous','saveasJDC','','Ctrl+E'), - None, - ('Fermer','closeJDC','','Ctrl+W'), - ('Quitter','exitEFICAS','','Ctrl+Q'), - ] - ), - ('Edition',[ - ('Copier','copy','','Ctrl+C'), - ('Couper','cut','','Ctrl+X'), - ('Coller','paste','','Ctrl+V'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC','','Ctrl+R'), - ('Fichier source','visu_txt_brut_JDC','','Ctrl+B'), - #('Paramètres Eficas','affichage_fichier_ini'), - ] - ), - ('Traduction',[ - ('Traduction v7 en v8','TraduitFichier7'), - ('Traduction v8 en v9','TraduitFichier8','','Ctrl+T'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS','','Ctrl+A'), - ] - ), - ] - } +# Choix des catalogues +rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') +rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') +rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') +# +catalogues=( +('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), +('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), +('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python'), +('ASTER','STA11',os.path.join(rep_cata,'cataSTA11'),'python','defaut'), +) diff --git a/Aster/qtEficas_aster.py b/Aster/qtEficas_aster.py index 299b7f64..33e6bdd7 100755 --- a/Aster/qtEficas_aster.py +++ b/Aster/qtEficas_aster.py @@ -21,7 +21,7 @@ # ====================================================================== """ - Ce module sert à lancer EFICAS configuré pour Code_Aster + Ce module sert a lancer EFICAS configure pour Code_Aster """ # Modules Python # Modules Eficas diff --git a/Carmel3D/configuration_CARMEL3D.py b/Carmel3D/configuration_CARMEL3D.py index 8b632ed5..fc7bd489 100644 --- a/Carmel3D/configuration_CARMEL3D.py +++ b/Carmel3D/configuration_CARMEL3D.py @@ -32,25 +32,12 @@ class CONFIG(configuration.CONFIG_BASE): def __init__(self,appli,repIni): #----------------------------------- - configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Carmel3D') + self.labels_user=['exec_acrobat', 'catalogues','savedir'] + self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues'] + self.INSTALLDIR =os.path.dirname(__file__) - self.REPINI =os.path.dirname(__file__) - - self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc',] - self.labels_eficas=["rep_user","INSTALLDIR","path_doc","exec_acrobat"] - self.labels_eficas=self.labels_eficas+["rep_cata","initialdir","savedir","catalogues"] - self.cataFile="editeur.ini" - self.setValeurs() - - #--------------------------------------- - def lecture_fichier_ini_standard(self): - #--------------------------------------- - configuration.CONFIG_BASE.lecture_fichier_ini_standard(self) - - #--------------------------------------- - def lecture_fichier_ini_utilisateur(self): - #--------------------------------------- - configuration.CONFIG_BASE.lecture_fichier_ini_utilisateur(self) + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Carmel3D') + def make_config(appli,rep): return CONFIG(appli,rep) diff --git a/Carmel3D/editeur.ini b/Carmel3D/editeur.ini deleted file mode 100644 index 6096b491..00000000 --- a/Carmel3D/editeur.ini +++ /dev/null @@ -1,18 +0,0 @@ -# Choix des catalogues -import os -import prefs_CARMEL3D -rep_cata=prefs_CARMEL3D.repIni - -catalogues = ( -# (code,version,catalogue,formatIn,formatOut) -# catalogue entier et etendu : tout est decrit avec les repetitions qui en decoulent - ('CARMEL3D','V1',os.path.join(rep_cata,'Carmel3D_cata_etendu.py'),'python','python'), -# catalogue avec essai de mise en commun de certains blocs (loi) - ('CARMEL3D','V2',os.path.join(rep_cata,'Carmel3D_cata_fact.py'),'python','python'), -# catalogue avec materiau en tete - ('CARMEL3D','V3',os.path.join(rep_cata,'Carmel3D_cata_mat.py'),'python','python'), - ('CARMEL3D','V4',os.path.join(rep_cata,'Carmel3D_cata_matloi.py'),'python','python'), - ('CARMEL3D','V5',os.path.join(rep_cata,'Carmel3D_cata_pa.py'),'python','python'), - ('CARMEL3D','V6',os.path.join(rep_cata,'Carmel3D_cata_pn.py'),'python','python'), -) - diff --git a/Carmel3D/prefs_CARMEL3D.py b/Carmel3D/prefs_CARMEL3D.py index eca54ea0..6ce34d7d 100644 --- a/Carmel3D/prefs_CARMEL3D.py +++ b/Carmel3D/prefs_CARMEL3D.py @@ -21,85 +21,19 @@ import os -# repIni sert à localiser le fichier editeur.ini -# Obligatoire +# repIni sert a localiser le fichier editeur.ini repIni=os.path.dirname(os.path.abspath(__file__)) -REPINI=os.path.dirname(os.path.abspath(__file__)) -INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) - -# 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 - - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang +# lang indique la langue utilisee 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' +# Choix des catalogues +# format du Tuple (code,version,catalogue,formatOut, finit par defaut Ãventuellement) +catalogues = ( + ('CARMEL3D','V1',os.path.join(repIni,'Carmel3D_cata_v0.py'),'python'), + ('CARMEL3D','V0',os.path.join(repIni,'Carmel3D_cata_v0.py'),'carmel3d','defaut'), +) -# Preference -if os.name == 'nt': - userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ]) -else : - userprefs=os.path.expanduser("~/.Eficas_install/prefs.py") - -if os.path.isfile(userprefs): - try: - execfile(userprefs) - except: - pass - -#------------------------------------------------------------------- -# Partie pour TK -#------------------------------------------------------------------- - -labels= ('Fichier','Edition','Jeu de commandes', - 'Options', - 'Aide', - 'Traduction', - ) - -appli_composants=['readercata','bureau', - 'options', - ] - -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC','','Ctrl+N'), - ('Nouvel INCLUDE','newJDC_include'), - ('Ouvrir','openJDC','','Ctrl+O'), - ('Enregistrer','saveJDC','','Ctrl+S'), - ('Enregistrer sous','saveasJDC','','Ctrl+E'), - None, - ('Fermer','closeJDC','','Ctrl+W'), - ('Quitter','exitEFICAS','','Ctrl+Q'), - ] - ), - ('Edition',[ - ('Copier','copy','','Ctrl+C'), - ('Couper','cut','','Ctrl+X'), - ('Coller','paste','','Ctrl+V'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC','','Ctrl+R'), - ('Fichier source','visu_txt_brut_JDC','','Ctrl+B'), - #('Paramètres Eficas','affichage_fichier_ini'), - ] - ), - ('Traduction',[ - ('Traduction v7 en v8','TraduitFichier7'), - ('Traduction v8 en v9','TraduitFichier8','','Ctrl+T'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS','','Ctrl+A'), - ] - ), - ] - } diff --git a/Cuve2dg/configuration_CUVE2DG.py b/Cuve2dg/configuration_CUVE2DG.py index da942b57..6cda48b9 100644 --- a/Cuve2dg/configuration_CUVE2DG.py +++ b/Cuve2dg/configuration_CUVE2DG.py @@ -1,171 +1,44 @@ -# -*- 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 OTW" -import os, sys, string, types, re -import traceback -from PyQt4.QtGui import * -from utils import read_file - -# 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/Cuve2dg - # et la directorie de l utilisateur - # HOME/.Eficas_Cuve2dg - # 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 - - if self.appli: - self.parent=appli.top - self.appli.mode_nouv_commande='initial' - else: self.parent=None - - - # Valeurs par defaut - self.rep_user = os.path.join(os.environ['HOME'],'.Eficas_Cuve2dg') - if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user) - self.initialdir = self.rep_user - self.path_doc = self.rep_user - self.savedir = os.path.join(os.environ['HOME'],'Eficas_Cuve2dg') - if not os.path.isdir(self.savedir) : os.mkdir(self.savedir) - self.exec_acrobat = self.rep_user - - self.labels_user=('exec_acrobat', 'catalogues','savedir','path_doc') - self.labels_eficas=("rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir","catalogues") - - #Lecture des fichiers utilisateurs - self.lecture_fichier_ini_standard() - self.lecture_fichier_ini_utilisateur() - self.lecture_catalogues() - rep_mat=" " # Compatibilite Aster - - - #-------------------------------------- - def lecture_fichier_ini_standard(self): - #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier - import prefs - name='prefs_'+prefs.code - prefsCode=__import__(name) - self.prefsUser=name+".py" - for k in self.labels_eficas : - try : - valeur=getattr(prefsCode,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.prefsUser) - if not os.path.isfile(self.fic_ini_utilisateur): return - - 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_user : - try : - setattr(self,k,d[k]) - except : - pass - - - #-------------------------------------- - def lecture_catalogues(self): - #-------------------------------------- - rep_mat=" " # Compatibilite Aster - if hasattr(self,"catalogues") : - return - - fic_ini = os.path.join(self.repIni,"catalogues_cuve2dg.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) - - txt = utils.read_file(fic_ini) - 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 " + fic_ini ) - sys.exit(0) - - - - #-------------------------------------- - def save_params(self): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - texte="" - for clef in self.labels_user : - if hasattr(self,clef): - valeur=getattr(self,clef) - texte= texte + clef+" = " + repr(valeur) +"\n" - f=open(self.fic_ini_utilisateur,'w+') - print self.fic_ini_utilisateur - f.write(texte) - f.close() -# - - -def make_config(appli,rep): - return CONFIG(appli,rep) - -def make_config_style(appli,rep): - return None - - +# -*- 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 +import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['exec_acrobat', 'catalogues','savedir'] + self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues'] + + self.INSTALLDIR =os.path.dirname(__file__) + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Cuve2DG') + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/Cuve2dg/prefs_CUVE2DG.py b/Cuve2dg/prefs_CUVE2DG.py index 2252bb33..9f96a733 100644 --- a/Cuve2dg/prefs_CUVE2DG.py +++ b/Cuve2dg/prefs_CUVE2DG.py @@ -25,27 +25,35 @@ import os, sys print "import des prefs de CUVE2DG" -# repIni sert à localiser le fichier -# initialdir sert comme directory initial des QFileDialog +# repIni sert a localiser le fichier # positionnee a repin au debut mise a jour dans configuration repIni=os.path.dirname(os.path.abspath(__file__)) -initialdir=repIni +rep_cata=repIni -# INSTALLDIR sert à localiser l'installation d'Eficas +# INSTALLDIR sert a localiser l'installation d'Eficas INSTALLDIR=os.path.join(repIni,'..') # 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 indique la langue utilisee pour les chaines d'aide : fr ou ang lang='fr' encoding='iso-8859-1' # Acces a la documentation -rep_cata = INSTALLDIR -path_doc = os.path.join(rep_cata,'Doc') +path_doc = os.path.join(INSTALLDIR,'Doc') exec_acrobat = "/usr/bin/xpdf" +# Choix des catalogues +import os + +catalogues = ( +# (code,version,catalogue,formatIn,formatOut) +# ('CUVE2DG','V1',os.path.join(rep_cata,'Cuve2dg_Cata_VPN.py'),'cuve2dg','cuve2dg'), + ('CUVE2DG','V2',os.path.join(rep_cata,'DefaillCUVE_Cata.py'),'cuve2dg','cuve2dg'), +) + +print os.path.join(rep_cata,'DefaillCUVE_Cata.py') # Choix des catalogues sys.path[:0]=[INSTALLDIR] diff --git a/Editeur/utils.py b/Editeur/utils.py index 93d52150..994dfa7b 100644 --- a/Editeur/utils.py +++ b/Editeur/utils.py @@ -37,24 +37,13 @@ def substract_list(liste1,liste2): pass return liste1 -def get_rep_user(): +def get_rep_user(dir): """ Determine sur quelle plate-forme s'execute Eficas et recherche le repertoire de l'utilisateur /$home/Eficas_install """ - if os.name not in ('posix','nt'): - print "Systeme non reconnu par Eficas" - print "Prevenir la maintenance" - sys.exit(0) - if os.name == 'nt': - try: - drive = os.environ['HOMEDRIVE'] - nom_user = os.environ['USERNAME'] - rep_user_eficas = drive+'\\'+nom_user+'\\'+'Eficas_install' - except: - rep_user_eficas = os.path.join('C:','Eficas_install') - else : - rep_user_eficas= os.path.join(os.environ['HOME'],'.Eficas_install') + + rep_user_eficas= os.path.join(os.environ['HOME'],dir) if os.path.exists(rep_user_eficas): if os.path.isfile(rep_user_eficas) : print "Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom" %rep_user_eficas diff --git a/InterfaceQT4/configuration.py b/InterfaceQT4/configuration.py index a9934a05..5dcf64b3 100644 --- a/InterfaceQT4/configuration.py +++ b/InterfaceQT4/configuration.py @@ -19,16 +19,13 @@ # # ====================================================================== """ - Ce module sert pour charger les paramètres de configuration d'EFICAS + Ce module sert pour charger les parametres de configuration d'EFICAS """ # Modules Python import os, sys, string, types, re import traceback -from PyQt4.QtGui import * -from utils import read_file - -# Modules Eficas -from Editeur import utils +from PyQt4.QtGui import QMessageBox +from Editeur.utils import read_file class CONFIG_BASE: @@ -38,113 +35,123 @@ class CONFIG_BASE: # 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 + # On a deux directories : la directory generale (Repertoire d install + Nom du code # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper # et la directorie de l utilisateur # HOME/.Eficas_Openturns - # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement - # par celui de l utilisateur + # Le fichier prefs.py va etre lu dans la directory generale + # puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} + # 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 + if self.salome : self.name="editeur_salome.ini" + else : self.name="editeur.ini" self.repIni = repIni self.rep_user = os.path.join(os.environ['HOME'],nomDir) + self.mode_nouv_commande='initial' + + self.setValeursParDefaut() + + self.lecture_fichier_ini_standard() + self.lecture_fichier_ini_integrateur() + #self.lecture_fichier_ini_utilisateur() + + #Particularite des schemas MAP + if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode) + if self.appli: self.parent=appli.top - self.appli.mode_nouv_commande='initial' + self.appli.mode_nouv_commande= self.mode_nouv_commande else: self.parent=None + - - def setValeurs(self): - #--------------------- + def setValeursParDefaut(self): + #----------------------------- # Valeurs par defaut if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user) - self.initialdir = self.rep_user - self.path_doc = self.rep_user - self.savedir = self.rep_user - self.exec_acrobat = self.rep_user + self.path_doc = os.path.join(self.repIni,'..','Doc') # sert pour la documentation du Node (clic droit) + self.exec_acrobat = 'acroread' + nomDir="Eficas_"+self.code + self.savedir = os.path.abspath(os.path.join(os.environ['HOME'],nomDir)) + if not os.path.isdir(self.savedir) : os.mkdir(self.savedir) - #Lecture des fichiers utilisateurs - self.lecture_fichier_ini_standard() - if hasattr(self,'make_ssCode'): - self.make_ssCode(self.ssCode) - self.lecture_fichier_ini_utilisateur() - self.lecture_catalogues() - #-------------------------------------- def lecture_fichier_ini_standard(self): #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier + name='prefs_'+self.appli.code prefsCode=__import__(name) - self.prefsUser=name+".py" - for k in self.labels_eficas : - try : - valeur=getattr(prefsCode,k) - setattr(self,k,valeur) - except : - pass + for k in dir(prefsCode): + if (k[0:1] != "__" and k[-1:-2] !='__'): + valeur=getattr(prefsCode,k) + setattr(self,k,valeur) + #-------------------------------------- - def lecture_fichier_ini_utilisateur(self): + def lecture_fichier_ini_integrateur(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.prefsUser) - if not os.path.isfile(self.fic_ini_utilisateur): return - - txt = utils.read_file(self.fic_ini_utilisateur) - from styles import style + # Verifie l'existence du fichier "standard" + # appelle la lecture de ce fichier + clef="PREFS_CATA_"+self.code + try : + repIntegrateur=os.path.abspath(os.environ[clef]) + print repIntegrateur + except : + return + + fic_ini_integrateur=os.path.join(repIntegrateur,self.name) + if not os.path.isfile(fic_ini_integrateur): return + txt = read_file(fic_ini_integrateur) 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_user : + "Erreur a la lecture du fichier de configuration " + fic_ini_integrateur) + return + for k in self.labels_eficas : try : setattr(self,k,d[k]) except : pass + #Glut pour les repertoires materiaux + for k in d.keys() : + if k[0:9]=="rep_mat_v" : + setattr(self,k,d[k]) #-------------------------------------- - def lecture_catalogues(self): + def lecture_fichier_ini_utilisateur(self): #-------------------------------------- - rep_mat=" " # Compatibilite Aster - if hasattr(self,"catalogues") : return - - fic_ini = os.path.join(self.repIni,self.cataFile) - 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) + # Surcharge les parametres standards par les parametres utilisateur s'ils existent + fic_ini_utilisateur = os.path.join(self.rep_user,self.name) + if not os.path.isfile(fic_ini_utilisateur): return - txt = utils.read_file(fic_ini) + txt = read_file(fic_ini_utilisateur) 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 " + fic_ini ) - sys.exit(0) - - + "Erreur a la lecture du fichier de configuration " + fic_ini_utilisateur ) + for k in self.labels_user : + try : + setattr(self,k,d[k]) + except : + pass #-------------------------------------- def save_params(self): #-------------------------------------- # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur + # les nouveaux parametres dans le fichier de configuration utilisateur # texte="" for clef in self.labels_user : diff --git a/InterfaceQT4/monChoixCode.py b/InterfaceQT4/monChoixCode.py index d91aa3da..d7dac20f 100644 --- a/InterfaceQT4/monChoixCode.py +++ b/InterfaceQT4/monChoixCode.py @@ -26,7 +26,6 @@ from desChoixCode import Ui_ChoixCode from PyQt4.QtGui import * from PyQt4.QtCore import * - # Import des panels @@ -51,7 +50,7 @@ class MonChoixCode(Ui_ChoixCode,QDialog): def verifieInstall(self): self.groupCodes=QButtonGroup(self) - for code in ('Aster','Cuve2dg','Openturns_Study','Openturns_Wrapper','Carmel3D'): + for code in ('Aster','Cuve2dg','Openturns_Study','Openturns_Wrapper','Carmel3D','MAP'): nom='rB_'+code bouton=getattr(self,nom) dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code)) @@ -60,7 +59,6 @@ class MonChoixCode(Ui_ChoixCode,QDialog): self.groupCodes.addButton(bouton) except : bouton.close() - def choisitCode(self): bouton=self.groupCodes.checkedButton() @@ -68,5 +66,4 @@ class MonChoixCode(Ui_ChoixCode,QDialog): codeUpper=code.upper() self.parentAppli.code=codeUpper sys.path.insert(0,os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))) - print sys.path self.close() diff --git a/InterfaceQT4/monChoixMap.py b/InterfaceQT4/monChoixMap.py index 208595aa..8e78dc5d 100644 --- a/InterfaceQT4/monChoixMap.py +++ b/InterfaceQT4/monChoixMap.py @@ -33,9 +33,10 @@ labels = { "s_oxides_mt_1" : "Estimation du champ mecanique dans une couche de zircone \npresentant des defauts et de l'energie elastique relaxee", "s_scc_st_1" : "Analyse morphologique et mecanique d'une couche d'oxydes", "s_scc_st_2" : "Analyse statistique de donnees locales et experimentales \nou numeriques", -"s_scc_st_3" : "taux de couverture des joints de grains par des precipites", +"s_scc_st_3" : "taux de couverture des joints de grains par des precipites", +"s_scc_3d" : "Analyse 3D", "s_polymers_st_1" : "Estimation numerique 3D de la diffusion effective des gaz dans les polymeres charges", -"s_rpv2" : "Essai Pascale", +"s_Perfect" : "Essai Perfect", "s_DIC" : "Essai Felix", } @@ -44,15 +45,16 @@ dico={"oxides" : {"irradiation" : "s_oxides_st_1", "mecanique avec defaut" : "s_oxides_mt_1"}, "scc" : {"analyse morphologique" : "s_scc_st_1", "analyse statistique" : "s_scc_st_2", - "analyse 3d" : "s_scc_pn", + "analyse 3d" : "s_scc_3d", "taux de couverture" : "s_scc_st_3"}, "concrete" : {}, - "polycristals" : {"essai Pascale" : "s_rpv2",}, + "polycristals" : {}, "polymers" : {"numerique 3D" : "s_polymers_st_1"}, "micro" : {}, "seal" : {}, "mox" : {}, "nano" : {}, + "perfect" : {"Essai pour Perfect":"s_Perfect"}, "insulator" : {}, "images" : {"Felix" : "s_DIC"} } @@ -73,14 +75,13 @@ class MonRadioBouton(QRadioButton) : class MonChoixMap(Ui_ChoixMap,QtGui.QDialog): """ """ - def __init__(self, choixCata,parentQT=None,parentAppli=None): - QtGui.QDialog.__init__(self,parentQT) + def __init__(self, parentAppli): + QtGui.QDialog.__init__(self) self.setMinimumSize(50, 50); self.setModal(True) self.setupUi(self) - self.ajouteCeQuilFaut() - self.choixCata=choixCata self.parentAppli=parentAppli + self.ajouteCeQuilFaut() def ajouteCeQuilFaut(self) : @@ -97,6 +98,7 @@ class MonChoixMap(Ui_ChoixMap,QtGui.QDialog): self.groupModules.addButton(self.RBM9) self.groupModules.addButton(self.RBM10) self.groupModules.addButton(self.RBM11) + self.groupModules.addButton(self.RBM12) self.groupScheme=QButtonGroup(self.groupBoxScheme) self.connect(self.groupModules,SIGNAL("buttonClicked (QAbstractButton*)"),self.modifieModule) self.connect(self.groupScheme,SIGNAL("buttonClicked (QAbstractButton*)"),self.choisitSchema) @@ -108,7 +110,6 @@ class MonChoixMap(Ui_ChoixMap,QtGui.QDialog): def modifieModule(self): self.module=str(self.groupModules.checkedButton().text()) dicoModules=dico[self.module] - self.choixCata.module=self.module for bouton in self.groupScheme.buttons(): self.groupScheme.removeButton(bouton) bouton.close() @@ -121,11 +122,7 @@ class MonChoixMap(Ui_ChoixMap,QtGui.QDialog): def choisitSchema(self): schema=str(self.groupScheme.checkedButton().text()) - self.choixCata.schema=schema nomCata= dico[self.module][schema] - if self.parentAppli==None : - self.choixCata.nom=nomCata - else : - self.parentAppli.ssCode=nomCata + self.parentAppli.ssCode=nomCata self.close(); diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 29a7e6b3..4a4e437d 100644 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -31,12 +31,15 @@ class Appli(Ui_Eficas,QMainWindow): self.QWParent=None #(Pour lancement sans IHM) self.indice=0 self.dict_reels={} + self.code=code self.RepIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'../Editeur/icons') self.multi=multi if self.multi == False : self.definitCode(code,ssCode) if code==None: return + + if self.code=="MAP" and ssCode== None : self.definitSsCode() eficas_root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) self.ajoutIcones() @@ -66,7 +69,6 @@ class Appli(Ui_Eficas,QMainWindow): prefsCode=__import__(name) self.repIni=prefsCode.repIni - self.INSTALLDIR=prefsCode.INSTALLDIR if ssCode != None : self.format_fichier= ssCode #par defaut prefsCode.NAME_SCHEME=ssCode @@ -88,6 +90,12 @@ class Appli(Ui_Eficas,QMainWindow): self.initPatrons() self.ficRecents={} + def definitSsCode(self) : + from InterfaceQT4 import monChoixMap + ChoixMap = monChoixMap.MonChoixMap(self) + ChoixMap.show() + ret=ChoixMap.exec_() + def ASTER(self) : self.menuTraduction = self.menubar.addMenu("menuTraduction") self.actionTraduitV7V8 = QAction(self) @@ -335,7 +343,7 @@ class Appli(Ui_Eficas,QMainWindow): monVisuDialg.show() def aidePPal(self) : - maD=self.INSTALLDIR+"/Aide" + maD=self.repIni+"../Aide" docsPath = QDir(maD).absolutePath() try : monAssistant=QAssistantClient(QString(""), self) @@ -468,7 +476,8 @@ class Appli(Ui_Eficas,QMainWindow): if __name__=='__main__': # Modules Eficas - sys.path.append(INSTALLDIR+"/Aster") + rep=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__),'..','ASTER'))) + sys.path.append(rep) from Aster import prefsCode if hasattr(prefsCode,'encoding'): # Hack pour changer le codage par defaut des strings diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index dcb3a0a6..37d55b43 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -89,17 +89,12 @@ class READERCATA: liste_cata_possibles = all_cata_list else: for catalogue in all_cata_list: - #print catalogue.code - #print catalogue.file_format if catalogue.code == self.code and catalogue.file_format == self.ssCode: liste_cata_possibles.append(catalogue) - #print "___________" - #print self.ssCode - #print self.code if len(liste_cata_possibles)==0: QMessageBox.critical(self.QWParent, "Import du catalogue", - u"Pas de catalogue défini pour le code %s" % self.code) + "Pas de catalogue de©fini pour le code %s" % self.code) self.appliEficas.close() if self.appliEficas.salome == 0 : sys.exit(1) @@ -147,7 +142,6 @@ class READERCATA: # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur # lequel il veut utiliser ... self.ask_choix_catalogue(cata_choice_list) - # On est dans Salome et il faut sortir proprement if self.fic_cata == None : if self.appliEficas.salome == 0 : @@ -158,9 +152,6 @@ class READERCATA: return self.determineMater() - # détermination de fic_cata_c et fic_cata_p - self.fic_cata_c = self.fic_cata + 'c' - self.fic_cata_p = os.path.splitext(self.fic_cata)[0]+'_pickled.py' # import du catalogue self.cata = self.import_cata(self.fic_cata) @@ -180,7 +171,7 @@ class READERCATA: self.Retrouve_Ordre_Cata_Standard() # - # analyse des données liées a  l'IHM : UIinfo + # analyse des données liées l'IHM : UIinfo # uiinfo.traite_UIinfo(self.cata) @@ -238,7 +229,7 @@ class READERCATA: def Retrouve_Ordre_Cata_Standard_autre(self): """ Construit une structure de données dans le catalogue qui permet - a  EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue. + a EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue. Pour chaque entité du catlogue on crée une liste de nom ordre_mc qui contient le nom des mots clés dans le bon ordre """ diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py index a70b4fed..fa0d8098 100644 --- a/InterfaceQT4/viewManager.py +++ b/InterfaceQT4/viewManager.py @@ -54,6 +54,7 @@ class MyTabview: if self.appliEficas.multi==True : self.appliEficas.definitCode(None,None) if self.appliEficas.code == None:return + if self.appliEficas.code=="MAP" and self.appliEficas.ssCode== None : self.appliEficas.definitSsCode() fichier = QFileDialog.getOpenFileName(self.appliEficas, self.appliEficas.trUtf8('Ouvrir Fichier'), self.appliEficas.CONFIGURATION.savedir, @@ -148,6 +149,7 @@ class MyTabview: def newEditor(self,include=0): if self.appliEficas.multi==True : self.appliEficas.definitCode(None,None) + if self.appliEficas.code=="MAP" and self.appliEficas.ssCode== None : self.appliEficas.definitSsCode() if self.appliEficas.code == None:return maPage=self.getEditor(include=include) diff --git a/MAP/catalogues_MAP.ini b/MAP/catalogues_MAP.ini deleted file mode 100644 index f9a681dc..00000000 --- a/MAP/catalogues_MAP.ini +++ /dev/null @@ -1,19 +0,0 @@ -# Choix des catalogues -import os -#rep_cata=os.path.dirname(os.path.abspath(__file__)) -rep_cata=os.getcwd() -MAP_DIRECTORY=os.getenv("MAP_DIRECTORY") - -catalogues = ( -# (code, ssCode, catalogue, formatOut, formatIN) - ('MAP','s_Perfect_V1',os.path.join(rep_cata,'s_Perfect_V1.py'),'s_Perfect','MAP'), - ('MAP','s_polymers_st_1_V1',os.path.join(rep_cata,'s_polymers_st_1_V1.py'),'s_polymers_st_1','MAP'), - ('MAP','s_scc_st_2_V1',os.path.join(rep_cata,'s_scc_st_2_V1.py'),'s_scc_st_2','MAP'), - ('MAP','s_scc_st_2_V1',os.path.join(rep_cata,'s_scc_st_2_V1.py'),'s_scc_pn','MAP'), - ('MAP','s_rpv2_V0',os.path.join(rep_cata,'s_rpv2_V0.py'),'s_rpv2','MAP'), - ('MAP','V0',os.path.join(rep_cata,'s_DIC_V1.py'),'s_DIC','MAP'), - ('MAP','V1',os.path.join(rep_cata,'s_DIC_V1.py'),'s_DIC','MAP'), - ('MAP','s_scc_3d',os.path.join(rep_cata,'s_scc_3d_analysis_V1.py'),'s_DIC','MAP'), - ('MAP','c_transverse_empty_python_V1',os.path.join(MAP_DIRECTORY,'components/transverse/c_transverse_empty_python/deploy/c_transverse_empty_python_eficas.py'),'c_transverse_empty_python','MAP'), -) - diff --git a/MAP/configuration_MAP.py b/MAP/configuration_MAP.py index a49dd11a..b082665a 100644 --- a/MAP/configuration_MAP.py +++ b/MAP/configuration_MAP.py @@ -19,7 +19,7 @@ # # ====================================================================== """ - Ce module sert pour charger les paramètres de configuration d'EFICAS + Ce module sert pour charger les parametres de configuration d'EFICAS """ # Modules Python import os @@ -35,7 +35,6 @@ class CONFIG(configuration.CONFIG_BASE): def __init__(self,appli,repIni): #----------------------------------- self.ssCode=appli.ssCode - configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_MAP') self.INSTALLDIR =os.path.dirname(__file__) self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc','map_path'] @@ -47,8 +46,8 @@ class CONFIG(configuration.CONFIG_BASE): self.labels_eficas=self.labels_eficas+['PATH_BENHUR','PATH_ASTER','PATH_MODULE','PATH_STUDY'] self.labels_eficas=self.labels_eficas+['NAME_SCHEME','PATH_FDVGRID','PATH_MAP','OpenTURNS_path','PATH_GMSH'] - self.cataFile="catalogues_MAP.ini" - self.setValeurs() + #self.cataFile="catalogues_MAP.ini" + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_MAP') def make_ssCode(self,ssCode): if ssCode == None : return diff --git a/MAP/prefs_MAP.py b/MAP/prefs_MAP.py index e2189ca5..b667b55a 100644 --- a/MAP/prefs_MAP.py +++ b/MAP/prefs_MAP.py @@ -23,15 +23,13 @@ import os, sys # Les variables pouvant positionnees sont : print "import des prefs de MAP" -# repIni sert à localiser le fichier +# repIni sert a 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 -print repIni - -# INSTALLDIR sert à localiser l'installation d'Eficas INSTALLDIR=os.path.join(repIni,'..') + +# INSTALLDIR sert a localiser l'installation d'Eficas PATH_MAP="/local/noyret/MAP/" #PATH_MAP="/local00/bin/MAP/" PATH_PYGMEE=PATH_MAP+"/components/pygmee_v2" @@ -45,16 +43,25 @@ PATH_GMSH="/usr/bin" # 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 indique la langue utilisee pour les chaines d'aide : fr ou ang lang='fr' encoding='iso-8859-1' # Acces a la documentation -rep_cata = INSTALLDIR path_doc = os.path.join(repIni,'Doc') exec_acrobat = "/usr/bin/xpdf" savedir = os.environ['HOME'] -OpenTURNS_path='/opt/Openturns/Install_0_13_2/lib/python2.5/site-packages' +MAP_DIRECTORY=os.getenv("MAP_DIRECTORY") + +catalogues = ( +# (code, identifiant, catalogue, formatOut, formatIN) + ('MAP','s_Perfect_V1',os.path.join(repIni,'s_Perfect_V1.py'),'s_Perfect'), + ('MAP','V0',os.path.join(repIni,'s_DIC_V1.py'),'s_DIC'), + ('MAP','V1',os.path.join(repIni,'s_DIC_V1.py'),'s_DIC','defaut'), + ('MAP','V1',os.path.join(repIni,'s_scc_3d_analysis_V1.py'),'s_scc_3d','defaut'), +) + +OpenTURNS_path='/local/noyret/Salome/V6_main/tools/install/Openturns_tool-0150-py266-r272-ro144-rp208-sw204-xm278-la331-gr2263-dox173_patch-tbb30/lib/python2.6/site-packages' sys.path[:0]=[INSTALLDIR, OpenTURNS_path] diff --git a/MAP/s_Perfect_V1.py b/MAP/s_Perfect_V1.py new file mode 100644 index 00000000..1d45aa4f --- /dev/null +++ b/MAP/s_Perfect_V1.py @@ -0,0 +1,230 @@ +#)# -*- coding: utf-8 -*- +# +## -------------------------------------------------- +## debut entete +## -------------------------------------------------- +# +from Accas import * +import os +import sys +from prefs_MAP import PATH_MAP + + +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 + +# +#CONTEXT.debug = 1 +JdC = JDC_CATA ( code = 'MAP', + execmodul = None, + #regles=(AU_MOINS_UN('DISPL',),A_CLASSER('RBM','DISPL')) + )# Fin JDC_CATA +# +specter_path=PROC(nom="specter_path",op= None, + path = SIMP ( typ = 'TXM', defaut=PATH_MAP+"perfect_dev/tools/bin/specter", + statut='o', fr = "", ang = "specter_path ", max=1, + ), +) +residual_energy_model=PROC(nom="residual_energy_model",op= None, + beta = FACT (statut='o', max=1, + ang = "total number of surviving point defects for cascades in iron up", + name= SIMP(statut= "f",typ = 'TXM', ang = "",max=1), + value=SIMP(statut= "o",typ = 'R', defaut=0.779, max=1), + unit= SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + alpha = FACT (statut='o', max=1, + name= SIMP(statut= "f",typ = 'TXM', ang = "",max=1), + value=SIMP(statut= "o",typ = 'R', defaut=5.67, ang = "",max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), +) +mfvisc2_path=PROC(nom="mfvisc2_path",op= None, + path = SIMP ( typ = 'TXM', defaut=PATH_MAP+"perfect_dev/tools/bin/mfvisc", + statut='o', fr = "", ang = "specter_path ", max=1, + ), +) + +mfvisc2_parametrisation=PROC(nom="mfvisc2_parametrisation",op= None, + stop_if_solute_loss=SIMP (statut= "f",typ = 'TXM', + ang = "Yes if you want the rate-theory calculation to stop when a solute loss is detected", + defaut="No",into=("Yes","No") + ), + bound_solute=SIMP (statut= "f",typ = 'TXM', + ang = "Yes if you want the to artifically impose the solute conservation by imposing a null flux for concentrations at Nob", + defaut="Yes",into=("Yes","No") + ), + numerical_scheme_i = FACT (statut='o', max=1, + ang="Numerical parameters scheme for interstitial", + No=FACT(statut='o', max=1, + ang='Number of discrete equations for species i', + name=SIMP(statut= "f", typ = 'TXM', defaut='No_i', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=30,into=(30,), ang = "",max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + Nc=FACT(statut='o', max=1, + ang='Number of continous equations for species i', + name=SIMP(statut= "f", typ = 'TXM', defaut='Nc_i', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=300, ang = "",max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + M=FACT(statut='o', max=1, ang='Step value for species i', + name=SIMP(statut= "f", typ = 'TXM', defaut='M_i', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=50, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + kmet=FACT(statut='o', max=1, ang='Step value for species i', + name=SIMP(statut= "f", typ = 'TXM', defaut='kmet_i', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=97, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + species=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + numerical_scheme_b = FACT (statut='o', max=1, + ang="Numerical parameters scheme for the solute element", + No=FACT(statut='o', max=1, + ang='Number of discrete equations for species b', + name=SIMP(statut= "f", typ = 'TXM', defaut='No_b', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=0, ang = "",max=1,val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + Nc=FACT(statut='o', max=1, + ang='Number of continous equations for species b', + name=SIMP(statut= "f", typ = 'TXM', defaut='Nc_b', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=0, ang = "",max=1,val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + M=FACT(statut='o', max=1, ang='Step value for species b', + name=SIMP(statut= "f", typ = 'TXM', defaut='M_b', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=0, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + kmet=FACT(statut='o', max=1, ang='Step value for species b', + name=SIMP(statut= "f", typ = 'TXM', defaut='kmet_b', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=0, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + species=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + numerical_scheme_v = FACT (statut='o', max=1, + ang="Numerical parameters scheme for vacancies", + No=FACT(statut='o', max=1, + ang='Number of discrete equations for species v', + name=SIMP(statut= "f", typ = 'TXM', defaut='No_v', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=30, ang = "",max=1,val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + Nc=FACT(statut='o', max=1, + ang='Number of continous equations for species v', + name=SIMP(statut= "f", typ = 'TXM', defaut='Nc_v', ang = "",max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=300, ang = "",max=1,val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + M=FACT(statut='o', max=1, ang='Step value for species v', + name=SIMP(statut= "f", typ = 'TXM', defaut='M_v', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=30, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + kmet=FACT(statut='o', max=1, ang='Step value for species v', + name=SIMP(statut= "f", typ = 'TXM', defaut='kmet_v', max=1,), + value=SIMP(statut= "o",typ = 'I', defaut=55, max=1,), + unit=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + species=SIMP (statut= "f",typ = 'TXM', ang = "",max=1), + ), + + ignore_Helium = SIMP (statut= "f",typ = 'TXM', ang = "",max=1, + defaut="Yes",into=("Yes","No"),), + bound_self_defects = SIMP (statut= "f",typ = 'TXM', max=1, + ang="Yes if you want the to artifically impose self defects conservation by imposing a null flux for concentrations at $(No+Nc)$. Choose 'stop' to stop the calculation in case of leakage.", + defaut="Stop",into=("Yes","No","Stop"),) +) + +operating_conditions=PROC(nom="operating_conditions",op= None, + + relative_time_increments=SIMP (statut= "o",typ = 'R', min=3, max='**', + ang="Relative time increments for the LONG_TERM computation", + defaut=(1e-10, 1.0000000000000001e-09, 3e-09, 1e-08, 2.9999999999999997e-08, 9.9999999999999995e-08, 2.9999999999999999e-07, 9.9999999999999995e-07, 3.0000000000000001e-06, 1.0000000000000001e-05, 3.0000000000000001e-05, 0.0001, 0.00029999999999999997, 0.001, 0.0030000000000000001, 0.01, 0.029999999999999999, 0.10000000000000001, 0.29999999999999999, 1.0), + ), + rescaling_NRT_damage_rate=FACT(statut='o', max=1, + ang="rescaling NRT damage rate (dpa/s)", + value=SIMP(statut= "o",typ = 'R', defaut=0.0, val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', defaut='dpa_per_s',into=('dpa_per_s',)), + ), + flux_cut_off_energy=FACT(statut='o', max=1, + ang="Energy threshold for the calculation of the flux", + value=SIMP(statut= "o",typ = 'R', defaut=1.0, val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', defaut='MeV',into=('MeV',)), + ), + toughness_calculation_time_index = SIMP (statut= "o",typ = 'R', defaut=-1,into=(-1,),), + temp_irrad=FACT(statut='o', max=1, + ang="Energy threshold for the calculation of the flux", + name=SIMP(statut= "f", typ = 'TXM', defaut='T', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=573.0, val_min=0,), + unit=SIMP (statut= "f",typ = 'TXM', defaut='K',into=('K',)), + ), + time_irrad=FACT(statut='o', max=1, + unit=SIMP(statut= "f", typ = 'TXM', defaut='s', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=100000.0, val_min=0,), + ), + rescaling_flux=FACT(statut='o', max=1, + unit=SIMP(statut= "f", typ = 'TXM', defaut='n_per_cm2_per_s', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=0.0, val_min=0,), + ), +) + +bcc_crystal=PROC(nom="bcc_crystal",op= None, + lattice_parameter=FACT(statut='o', max=1, + unit=SIMP(statut= "f", typ = 'TXM', defaut='angstrom', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=2.87, ), + ), + atomic_volume=FACT(statut='o', max=1, + unit=SIMP(statut= "f", typ = 'TXM', defaut='m3', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=1.18199515e-29, ), + ), + structure=SIMP (statut= "f",typ = 'TXM', defaut='bcc',into=('bcc','fcc'), + ang='Crystalline structure of the considered alloy'), + atomic_density=FACT(statut='o', max=1, + unit=SIMP(statut= "f", typ = 'TXM', defaut='at_per_m3', max=1,), + value=SIMP(statut= "o",typ = 'R', defaut=8.46027160095e+28, ), + ), +) + +neutron_spectrum=PROC(nom="neutron_spectrum",op= None, + spectrum=SIMP(statut= "o",typ = 'R',max='**', defaut=(0.0465, 21000000000000.0, 0.10000000000000001, 24300000000000.0, 0.20000000000000001, 27300000000000.0, 0.40000000000000002, 37800000000000.0, 0.80000000000000004, 46600000000000.0, 1.0, 16400000000000.0, 1.3999999999999999, 25800000000000.0, 2.5, 41200000000000.0)), + + spectrum_description=SIMP(statut= "f", typ = 'TXM', max=1,), +) + +diffusion_model=PROC(nom="diffusion_model",op=None, + mv=FACT(statut='o', max=1, + value=SIMP(statut= "o",typ = 'R', defaut=5., ), + unit=SIMP(statut= "f", typ = 'TXM', defaut='atomic percent', max=1,), +) +) + + + + + + + + + + + + + diff --git a/MAP/s_scc_3d_analysis_V1.py b/MAP/s_scc_3d_analysis_V1.py new file mode 100644 index 00000000..188db743 --- /dev/null +++ b/MAP/s_scc_3d_analysis_V1.py @@ -0,0 +1,31 @@ +## -*- coding: utf-8 -*- +# +## -------------------------------------------------- +## debut entete +## -------------------------------------------------- +# +from Accas import * +from prefs_MAP import PATH_MODULE + +# +#CONTEXT.debug = 1 +JdC = JDC_CATA ( code = 'MAP', + execmodul = None, + #regles=(AU_MOINS_UN('TABLEAU',),AU_MOINS_UN('BENHUR',), AVANT ('PYGMEE' , 'BENHUR'),), + regles=(AU_MOINS_UN('TABLEAU',),AU_MOINS_UN('TRAITEMENT',),A_CLASSER('TABLEAU','TRAITEMENT',)), + )# Fin JDC_CATA +# + +TABLEAU= PROC(nom="TABLEAU",op=None, + fr='lecture des proprietes a traiter ', + FICHIER=SIMP(statut = "o", typ='Fichier',), +) + +TRAITEMENT= PROC(nom="TRAITEMENT",op=None, + fr='analyse statistique classique d une des variables du tableau ', + TYPE =SIMP(statut='o',typ='TXM',defaut="analyse statistique classique", + into=( "analyse statistique classique", "analyse statistique de la qualite","analyse de la dispersion suivant la distance au joint", "analyse de la dispersion suivant la distance a la pointe de fissure","visualisation dans le triangle standard"),), + VARIABLE =SIMP(statut='o',typ='TXM',defaut="stress_eq", + into=( "stress_eq", "strain_eq","strain_xx","strain_yy","strain_zz"),) +) + diff --git a/MAP/s_scc_st_2_V1.py b/MAP/s_scc_st_2_V1.py index 97ad6ae3..188db743 100644 --- a/MAP/s_scc_st_2_V1.py +++ b/MAP/s_scc_st_2_V1.py @@ -5,7 +5,7 @@ ## -------------------------------------------------- # from Accas import * -from prefs_Map import PATH_MODULE +from prefs_MAP import PATH_MODULE # #CONTEXT.debug = 1 diff --git a/Openturns_Study/catalogues_openturns.ini b/Openturns_Study/catalogues_openturns.ini deleted file mode 100644 index 54f17f95..00000000 --- a/Openturns_Study/catalogues_openturns.ini +++ /dev/null @@ -1,10 +0,0 @@ -import os - -from Editeur.catadesc import CatalogDescription - -# Choix des catalogues -catalogues = ( - CatalogDescription(identifier = "OPENTURNS_STUDY_V8", - cata_file_path = os.path.join(os.path.abspath(os.path.dirname(fic_ini)), 'OpenTURNS_Cata_Study_V8.py'), - file_format = "openturns_study"), -) diff --git a/Openturns_Study/configuration_OPENTURNS_STUDY.py b/Openturns_Study/configuration_OPENTURNS_STUDY.py index e6e8d9eb..04bddc3a 100644 --- a/Openturns_Study/configuration_OPENTURNS_STUDY.py +++ b/Openturns_Study/configuration_OPENTURNS_STUDY.py @@ -32,24 +32,20 @@ class CONFIG(configuration.CONFIG_BASE): def __init__(self,appli,repIni): #----------------------------------- - configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Openturns') - self.INSTALLDIR =os.path.dirname(__file__) - self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc','OpenTURNS_path'] - self.labels_eficas=["OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat"] - self.labels_eficas=self.labels_eficas+["rep_cata","initialdir","savedir","catalogues"] - self.cataFile="catalogues_openturns.ini" - self.setValeurs() + self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc'] + self.labels_eficas=["OpenTURNS_path","path_doc","exec_acrobat"] + self.labels_eficas=self.labels_eficas+["rep_cata","lang","catalogues"] + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Openturns') #--------------------------------------- def lecture_fichier_ini_standard(self): #--------------------------------------- configuration.CONFIG_BASE.lecture_fichier_ini_standard(self) - if hasattr(self,'OpenTURNS_path') : - self.oldOTPath=self.OpenTURNS_path + if hasattr(self,'OpenTURNS_path') : self.oldOTPath=self.OpenTURNS_path #--------------------------------------- - def lecture_fichier_ini_utilisateur(self): + def lecture_fichier_ini_integrateur(self): #--------------------------------------- configuration.CONFIG_BASE.lecture_fichier_ini_utilisateur(self) if hasattr(self,'OpenTURNS_path') : diff --git a/Openturns_Study/prefs_OPENTURNS_STUDY.py b/Openturns_Study/prefs_OPENTURNS_STUDY.py index 7f544647..4b44fd48 100644 --- a/Openturns_Study/prefs_OPENTURNS_STUDY.py +++ b/Openturns_Study/prefs_OPENTURNS_STUDY.py @@ -23,14 +23,12 @@ import os, sys # Les variables pouvant positionnees sont : print "import des prefs de OPENTURNS" -# repIni sert à localiser le fichier +# repIni sert a 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 INSTALLDIR=os.path.join(repIni,'..') +sys.path[:0]=[INSTALLDIR] # Codage des strings qui accepte les accents (en remplacement de 'ascii') @@ -39,15 +37,21 @@ lang='fr' encoding='iso-8859-1' # Acces a la documentation -rep_cata = INSTALLDIR -path_doc = os.path.join(rep_cata,'Doc') +path_doc = os.path.join(INSTALLDIR,'Doc') exec_acrobat = "/usr/bin/xpdf" savedir = os.environ['HOME'] # OpenTURNS Python module OpenTURNS_path="" +if len(OpenTURNS_path) > 0: sys.path[:0]=[OpenTURNS_path] + # Choix des catalogues -if len(OpenTURNS_path) > 0: - sys.path[:0]=[OpenTURNS_path] -sys.path[:0]=[INSTALLDIR] +from Editeur.catadesc import CatalogDescription + +catalogues = ( + CatalogDescription(identifier = "OPENTURNS_STUDY_V8", + cata_file_path = os.path.join(os.path.abspath(repIni), 'OpenTURNS_Cata_Study_V8.py'), + file_format = "openturns_study"), +) + diff --git a/Openturns_Wrapper/catalogues_openturns.ini b/Openturns_Wrapper/catalogues_openturns.ini deleted file mode 100644 index 46ffc331..00000000 --- a/Openturns_Wrapper/catalogues_openturns.ini +++ /dev/null @@ -1,10 +0,0 @@ -import os - -from Editeur.catadesc import CatalogDescription - -# Choix des catalogues -catalogues = ( - CatalogDescription(identifier = "OPENTURNS_WRAPPER_V4", - cata_file_path=os.path.join(os.path.abspath(os.path.dirname(fic_ini)),'OpenTURNS_Cata_Wrapper_V4.py'), - file_format = "openturns_wrapper"), -) diff --git a/Openturns_Wrapper/configuration_OPENTURNS_WRAPPER.py b/Openturns_Wrapper/configuration_OPENTURNS_WRAPPER.py index 20dfb33d..04bddc3a 100644 --- a/Openturns_Wrapper/configuration_OPENTURNS_WRAPPER.py +++ b/Openturns_Wrapper/configuration_OPENTURNS_WRAPPER.py @@ -32,25 +32,20 @@ class CONFIG(configuration.CONFIG_BASE): def __init__(self,appli,repIni): #----------------------------------- - configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Openturns') - self.INSTALLDIR =os.path.dirname(__file__) - - self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc','OpenTURNS_path'] - self.labels_eficas=["OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat"] - self.labels_eficas=self.labels_eficas+["rep_cata","initialdir","savedir","catalogues"] - self.cataFile="catalogues_openturns.ini" - self.setValeurs() + self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc'] + self.labels_eficas=["OpenTURNS_path","path_doc","exec_acrobat"] + self.labels_eficas=self.labels_eficas+["rep_cata","lang","catalogues"] + configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Openturns') #--------------------------------------- def lecture_fichier_ini_standard(self): #--------------------------------------- configuration.CONFIG_BASE.lecture_fichier_ini_standard(self) - if hasattr(self,'OpenTURNS_path') : - self.oldOTPath=self.OpenTURNS_path + if hasattr(self,'OpenTURNS_path') : self.oldOTPath=self.OpenTURNS_path #--------------------------------------- - def lecture_fichier_ini_utilisateur(self): + def lecture_fichier_ini_integrateur(self): #--------------------------------------- configuration.CONFIG_BASE.lecture_fichier_ini_utilisateur(self) if hasattr(self,'OpenTURNS_path') : diff --git a/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py b/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py index 50616278..57eb4d9a 100644 --- a/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py +++ b/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py @@ -23,15 +23,13 @@ import os, sys # Les variables pouvant positionnees sont : print "import des prefs de OPENTURNS" -# repIni sert à localiser le fichier +# repIni sert a 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=os.path.join(repIni,'..') +sys.path[:0]=[INSTALLDIR] -# INSTALLDIR sert à localiser l'installation d'Eficas -INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) -sys.path.insert(0,INSTALLDIR) # 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 @@ -39,14 +37,21 @@ lang='fr' encoding='iso-8859-1' # Acces a la documentation -rep_cata = INSTALLDIR -path_doc = os.path.join(rep_cata,'Doc') +path_doc = os.path.join(INSTALLDIR,'Doc') exec_acrobat = "/usr/bin/xpdf" savedir = os.environ['HOME'] # OpenTURNS Python module OpenTURNS_path="" +if len(OpenTURNS_path) > 0: sys.path[:0]=[OpenTURNS_path] + # Choix des catalogues -if len(OpenTURNS_path) > 0: - sys.path[:0]=[OpenTURNS_path] +from Editeur.catadesc import CatalogDescription + +catalogues = ( + CatalogDescription(identifier = "OPENTURNS_WRAPPER_V4", + cata_file_path = os.path.join(os.path.abspath(repIni), 'OpenTURNS_Cata_Wrapper_V4.py'), + file_format = "openturns_study"), +) + diff --git a/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py.in b/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py.in index d37dc624..9933ec22 100644 --- a/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py.in +++ b/Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py.in @@ -23,13 +23,13 @@ import os, sys # Les variables pouvant positionnees sont : print "import des prefs de OPENTURNS" -# repIni sert à localiser le fichier +# repIni sert alocaliser 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 +# INSTALLDIR sert a localiser l'installation d'Eficas INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) sys.path.insert(0,INSTALLDIR) diff --git a/UiQT4/desChoixMap.ui b/UiQT4/desChoixMap.ui index 4fc16cf6..87c6215e 100644 --- a/UiQT4/desChoixMap.ui +++ b/UiQT4/desChoixMap.ui @@ -2,6 +2,9 @@ ChoixMap + + Qt::WindowModal + 0 @@ -61,78 +64,85 @@ Modules - - + + oxides - + scc - + concrete - + polycristals - + polymers - + micro - + seal - + mox - + nano - + + + + perfect + + + + insulator - + images @@ -234,12 +244,6 @@ - PBIconeMap - pushButton_3 - groupBoxScheme - groupBoxModule - verticalSpacer - verticalSpacer_2 -- 2.39.2