From: pascale.noyret Date: Thu, 2 Jun 2016 16:04:45 +0000 (+0200) Subject: sauve0206 X-Git-Tag: V8_1_0~25 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=18b409dacd2948006ce412ffc017295e59bb1524;p=tools%2Feficas.git sauve0206 --- diff --git a/Extensions/localisation.py b/Extensions/localisation.py index 36c47f3d..0de1f72e 100644 --- a/Extensions/localisation.py +++ b/Extensions/localisation.py @@ -78,6 +78,7 @@ def localise(application, locale=None ): #print "eficas_" + locale, monPath if eficas_translator.load("eficas_" + locale, monPath): QApplication.installTranslator(eficas_translator) + print "chargement eficas_", locale, monPath else: print "Unable to load Eficas translator!" diff --git a/InterfaceQT4/eficas_go.py b/InterfaceQT4/eficas_go.py index 3d8e098d..b89b25a0 100644 --- a/InterfaceQT4/eficas_go.py +++ b/InterfaceQT4/eficas_go.py @@ -49,7 +49,7 @@ def lance_eficas(code=None,fichier=None,ssCode=None,multi=False,langue='en'): from qtEficas import Appli from Extensions import localisation app = QApplication(sys.argv) - localisation.localise(app,langue) + #localisation.localise(app,langue) Eficas=Appli(code=code,ssCode=ssCode,multi=multi,langue=langue) Eficas.show() diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py index b8581c2d..961c4195 100644 --- a/InterfaceQT4/feuille.py +++ b/InterfaceQT4/feuille.py @@ -83,7 +83,10 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): def setNom(self): self.debutToolTip="" + print "kkkkkkkkkkkkkkkkkk" + print self.objSimp.nom nomTraduit=tr(self.objSimp.nom) + print nomTraduit #if len(nomTraduit) >= nomMax : # nom=nomTraduit[0:nomMax]+'...' # self.label.setText(nomTraduit) diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 9e0868c0..5d4cc30c 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -62,6 +62,11 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): maPolice= QFont("Times", 10,) self.setFont(maPolice) + print 'jjjjjjjjjjjjjjjjjjjjjjjjj' + print self.obj.nom + print tr(self.obj.nom) + print tr("TITLE") + print 'jjjjjjjjjjjjjjjjjjjjjjjjj' self.labelNomCommande.setText(tr(self.obj.nom)) self.commandesLayout.addStretch() diff --git a/UiQT5/eficas_fr.ts.sansTelemac b/UiQT5/eficas_fr.ts.sansTelemac new file mode 100644 index 00000000..57791a70 --- /dev/null +++ b/UiQT5/eficas_fr.ts.sansTelemac @@ -0,0 +1,3941 @@ + + + + @default + + + lecture du fichier impossible : + unable to read file + + + + Impossible d'ouvrir le fichier %s + unable to read file + + + + Format de sortie : %s, non supporte + + + + + Impossible d'ouvrir le fichier : %s + + + + + Erreur a l'evaluation : + %s + + + + + Erreur ! Erreur ! + + + + + Erreur rencontree dans recherche_enfants : %s + + + + + Erreur dans la creation du mot-cle : %s + + + + + Impossible d'ouvrir le fichier : %s + + + + + le texte a analyser n'est pas celui d'une commande ou d'un operateur : + + + + + Erreur dans la recherche du nom de la commande : + + + + + Erreur dans la recherche des args de la commande : + + + + + Erreur dans la recherche du nom de la commande : + + + + + Erreur dans la recherche des args de la commande : + + + + + %d n'est pas un index valide pour append_brother + + + + + le fichier de commandes %s n'existe pas + + + + + un fichier de commandes doit etre defini avant une poursuite %s + + + + + le fichier poursuite %s n'existe pas + + + + + include mal defini %s + + + + + un fichier de commandes doit etre defini avant un include %s + + + + + le fichier include %s n'existe pas + + + + + le fichier jdc %s n'existe pas + + + + + jdc %s manque option jdc dans section jdc + + + + + %(v_1)s include %(v_2)s : %(v_3)s + v_1 + + + + + %(v_1)s fichier poursuite: %(v_2)s + v_1 + + + + + nom etude : %s + + + + + utilisation : %prog [options] + + + + + nom du fichier de commandes + + + + + nom du fichier poursuite + + + + + numero d'unite suivi du nom du fichier include + + + + + fichier decrivant une etude + + + + + version de catalogue a utiliser + + + + + nom du code a utiliser + + + + + niveau de debug + + + + + schema + + + + + localisation de l'application, pour la traduction + + + + + Nombre incorrect d'arguments + + + + + Localisation specifiee pour l'application. + + + + + Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom + + + + + Creation du repertoire %s impossible + Verifiez vos droits d'acces + + + + + Impossible de transferer les fichiers requis dans : %s + + + + + Erreur + + + + + Erreurs fatales + + + + + Impossible reconstruire commande + + + + + + Objet commentaire non valorise + + + + + Debut Fonction %s + + + + + Fin Fonction %s + + + + + Nom de concept deja defini : %s + + + + + Longueur incorrecte + + + + + L'attribut 'min' doit etre un entier : + + + + + L'attribut 'max' doit etre un entier : + + + + + Nombres d'occurrence min et max invalides : + + + + + L'attribut 'fr' doit etre une chaine de caracteres + + + + + L'attribut 'statut' doit valoir 'o','f','c' ou 'd' + + + + + L'attribut 'docu' doit etre une chaine de caracteres + + + + + Fin + + + + + Le parametre EVAL %s ne peut valoir None + + + + + Le parametre EVAL ne peut valoir None + + + + + Pas de nom donne au parametre EVAL + + + + + Un nom de parametre ne peut depasser 8 caracteres + + + + + ERREUR + + + + + Format pas implemente : %s + + + + + Type d'objet non prevu : %s + + + + + ce groupe de maillage %s est associe a au moins un materiau et au moins une source. + + + + + ce groupe de maillage %s n'est associe a aucun materiau ou source. + + + + + ATTENTION! Une source constante n'est possible qu'a frequence nulle en regime frequentiel + + + + + ERREUR! ce groupe de maille (%s) n'a pas de prefixe valable + + + + + ERREUR! ce type de bloc (%s) n'est pas valable + + + + + toutes les donnees ne sont pas connues + + + + + Fichier patron %s n'existe pas. + + + + + Pas supporte + + + + + Entite inconnue ou interdite :%s + + + + + Entite inconnue ou interdite :%s. Elle est ignoree + + + + + Les tuples ne sont pas supportes pour le format ini :%s + + + + + Type de valeur non supportee par le format ini :%(nom)s +%(exception)s + nom + + + + + Il y a un pb a la Creation du XML + + + + + Il y a un pb a la Creation du STD + + + + + Entite inconnue ou interdite : %s. Elle est ignoree + + + + + Type de valeur non supporte par le format pyth : n %(exception)s + nom + + + + + Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs. + + + + + Le mot-cle %s est obligatoire. + + + + + concept %(inst_name)s de type %(class_name)s + inst_name + + + + + Un nom de concept doit etre un identificateur Python + + + + + Concept existant + + + + + Operateur reentrant mais concept non existant + + + + + Operateur reentrant et concept existant trouve + + + + + Concept deja existant et de mauvais type + + + + + Nommage du concept refuse : un concept de meme nom existe deja + + + + + Nommage du concept effectue + + + + + Nommage impossible %s + + + + + La liste des arguments d'une formule doit etre entre parentheses : parenthese ouvrante manquante + + + + + La liste des arguments d'une formule doit etre entre parentheses : parenthese fermante manquante + + + + + Pas de nom donne a la FORMULE + + + + + Un nom de FORMULE ne peut depasser 8 caracteres + + + + + Un nom de FORMULE ne peut pas commencer par un chiffre + + + + + Le type de la valeur retournee n'est pas specifie + + + + + Une formule ne peut retourner une valeur de type : %s + + + + + Impossible d'ajouter la commande + + + + + Impossible d ajouter la commande + + + + + Pas implemente + + + + + Nom de concept deja defini + + + + + Nom de concept deja defini : + + + + + Impossible de trouver le fichier correspondant a l'unite + + + + + n'est pas un fichier existant + + + + + Fichier invalide %s + + + + + Impossible de construire le jeu de commandes correspondant au fichier + + + + + Erreur lors de l'evaluation du fichier inclus + + + + + Ce fichier ne sera pas pris en compte + %s + + + + + Ce fichier ne sera pas pris en compte +Le fichier associe n'est pas defini + + + + + Le fichier n est pas defini + + + + + le fichier doit contenir une unique variable de sortie + + + + + Fichier invalide + + + + + Le contenu de ce fichier ne sera pas pris en compte + %s + + + + + Le fichier INCLUDE n est pas defini + + + + + Le contenu de ce fichier ne sera pas pris en compte + + + + + + Erreur lors de l'evaluation du fichier poursuite + + + + + L'objet %(v_1)s ne peut etre un fils de %(v_2)s + v_1 + + + + + L'objet %s ne peut pas etre repete + + + + + Erreur - mclist inexistante : %s + + + + + Erreur - mot cle facteur de nom : %s + + + + + traitement non-prevu + + + + + L'objet %s ne peut pas etre ajoute + + + + + None n'est pas une valeur autorisee + + + + + un concept de meme nom existe deja + + + + + Concept cree + + + + + La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d + n_lign + + + + + Impossible de relire le fichier %s + + + + + + Le fichier include contient des erreurs + + + + + n'est pas un index valide pour append_brother + + + + + Decommenter + + + + + Decommente la commande + + + + + Impossible de supprimer un mot-cle obligatoire + + + + + Mot-cle %s supprime + + + + + Pb interne : impossible de supprimer ce mot-cle + + + + + Commentaire supprime + + + + + Commande %s supprimee + + + + + Pb interne : impossible de supprimer cet objet + + + + + Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas + + + + + + + Include vide + + + + + L'include doit etre correctement initialise pour etre visualise + + + + + Impossible de supprimer ce mot-clef + + + + + View3D + + + + + affiche dans Geom les elements de structure + + + + + Graphique + + + + + affiche la distribution + + + + + Erreur interne + + + + + La PDF de la loi ne peut pas etre affichee. + + + + + &Annuler + + + + + Impossible de supprimer un mot-clef obligatoire + + + + + Mot-clef %s supprime + + + + + Pb interne : impossible de supprimer ce mot-clef + + + + + Definition d'un parametre + + + + + Import du fichier de Configuration + + + + + Erreur a la lecture du fichier de configuration %s + + + + + Erreur fatale au chargement de %s + + + + + Erreur fatale au chargement d'un fichier + + + + + fichier modifie + + + + + Attention! fichier change hors EFICAS + + + + + Type de fichier non reconnu + + + + + EFICAS ne sait pas ouvrir le type de fichier %s + + + + + EFICAS ne sait pas ouvrir ce type de fichier + + + + + Copie impossible + + + + + Veuillez selectionner un objet a copier + + + + + Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne + + + + + Aucun Objet n a ete copie ou coupe + + + + + Copie refusee + + + + + Eficas n a pas reussi a copier l objet + + + + + Copie refusee pour ce type d objet + + + + + Deplacement refuse + + + + + Deplacement refuse entre 2 fichiers. Seule la copie est autorisee + + + + + Copie impossible a cet endroit + + + + + Veuillez selectionner une commande, un parametre, un commentaire ou une macro + + + + + Choix d'un fichier XML + + + + + Le fichier contient une commande MODEL + + + + + + Donnez le nom du fichier XML qui contient la description des variables + + + + + Ouvrir Fichier + + + + + Erreur a la generation + + + + + EFICAS ne sait pas convertir ce JDC + + + + + Format %s non reconnu + + + + + EFICAS ne sait pas convertir le JDC selon le format + + + + + Execution impossible + + + + + le JDC doit etre valide pour une execution MAP + + + + + le JDC doit contenir un et un seul composant + + + + + le JDC doit etre valide pour une execution + + + + + Sauvegarder SVP avant l'execution + + + + + sauvegarde + + + + + Sauvegarde du Fichier + + + + + Le fichier <b>%s</b> existe deja. + + + + + &Ecraser + + + + + Sauvegarde de l'input impossible + + + + + Un JdC valide est necessaire pour creer un .input + + + + + Choix du composant obligatoire + + + + + Choix unite %d + + + + + Le fichier %s contient une commande INCLUDE + + + + + + Donnez le nom du fichier correspondant a l unite logique + + + + + Fichier pour unite + + + + + Choix d'un fichier de poursuite + + + + + Le fichier %s contient une commande POURSUITE + + + + + + Donnez le nom du fichier dont vous + voulez faire une poursuite + + + + + Fichiers Med (*.med);;Tous les Fichiers (*) + + + + + Fichier Med + + + + + Veuillez selectionner un fichier Med + + + + + reel + + + + + entier + + + + + complexe + + + + + Entrez + + + + + Entrez entre + + + + + et + + + + + Type de base inconnu + + + + + Aide Indisponible + + + + + l'aide n est pas installee + + + + + Visualisation Fichier + + + + + Impossibilite d'afficher le Fichier + + + + + Sauvegarder Fichier + + + + + Fichier selectionne + + + + + Selection + + + + + Export Med vers Fichier + + + + + Impossibilite d exporter le Fichier + + + + + Traduire Fichier + + + + + Fichiers JDC (*.comm);;Tous les Fichiers (*) + + + + + Fichier Traduit : %s + + + + + + + Pas de difference entre le fichier origine et le fichier traduit + + + + + objet valide + + + + + %d versions du catalogue sont disponibles + + + + + Sauvegarder le fichier + + + + + Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s + v_1 + + + + + Options pour + + + + + + valeurs + + + + + Nombre minimal de valeurs : + + + + + Nombre maximal de valeurs : + + + + + expression valide + + + + + expression invalide + + + + + l expression n est pas de la forme a+bj + + + + + expression n est pas de la forme a+bj + + + + + entrer une seule valeur SVP + + + + + saisir le type de complexe + + + + + Valeur du mot-cle enregistree + + + + + Valeur du mot-cle non autorisee + + + + + &Recents + + + + + Aide specifique + + + + + Options + + + + + Traduction + + + + + TraduitV7V8 + + + + + TraduitV8V9 + + + + + TraduitV9V10 + + + + + Acquiert Groupe Maille + + + + + Specificites Maille + + + + + version + + + + + pour + + + + + Parametrage + + + + + Veuillez d abord choisir un code + + + + + Pas de possibilite de personnalisation de la configuration + + + + + &Effacer + + + + + Veuillez entrer le complexe sous forme aster ou sous forme python + + + + + Import du catalogue + + + + + Pas de catalogue defini pour le code + + + + + Aucun catalogue trouve + + + + + Impossible d'importer le catalogue + + + + + avec le catalogue + + + + + Choix d une version du code + + + + + Choix d une version + + + + + Parametre + + + + + Insere un parametre + + + + + item invalide + + + + + l item doit etre valide + + + + + &Ok + &Ok + + + + apres + + + + + Insere un commentaire apres la commande + + + + + avant + + + + + Insere un commentaire avant la commande + + + + + Insere un parametre apres la commande + + + + + Insere un parametre avant la commande + + + + + Supprimer + + + + + supprime le mot clef + + + + + Documentation + + + + + documentation sur la commande + + + + + Documentation Vide + + + + + Aucune documentation n'est associee a ce noeud + + + + + impossible de trouver la commande + + + + + Lecteur PDF + + + + + impossible d'ouvrir + + + + + Commentaire + + + + + ce noeud + + + + + commente le noeud + + + + + Fichiers JDC (*.comm);;Tous les Fichiers (*) + + + + + &Quitter + + + + + Quitter + + + + + Fichier Duplique + + + + + Le fichier ne sera pas sauvegarde. + + + + + Fichier + + + + + Le fichier <b>%s</b> est deja ouvert. + + + + + &Duplication + + + + + &Abort + + + + + Fichier Modifie + + + + + Le fichier %s n a pas ete sauvegarde. + + + + + &Sauvegarder + + + + + SOURCE + + + + + EnveloppeConnexeInducteur + + + + + EnveloppeConnexe2 + + + + + VecteurDirecteur + + + + + Centre + + + + + SectionBobine + + + + + Amplitude + + + + + NbdeTours + + + + + CONDUCTEUR + + + + + Conductivite + + + + + PermeabiliteRelative + + + + + NOCOND + + + + + VCUT + + + + + Orientation + + + + + ZS + + + + + PARAMETRES + + + + + RepCarmel + + + + + TypedeFormule + + + + + Frequence + + + + + Nb_Max_Iterations + + + + + Erreur_Max + + + + + PARAMETRE + + + + + Valeur non modifiable + + + + + Format non implemente + + + + + Type d'objet non prevu + + + + + Select + + + + + Sauve Format Ligne + + + + + %s n'est pas un fichier valide + + + + + Fichier de donnees + + + + + Tous les Fichiers (*) + + + + + nb min de valeurs : + + + + + nb max de valeurs atteint + + + + + TraduitV10V11 + + + + + TraduitV11V12 + + + + + Valeur du mot-clef enregistree + + + + + Valeur du mot-clef non autorisee : + + + + + Un concept de nom %s existe déjà ! + + + + + La cardinalite n'est pas correcte, la derniere valeur est ignoree + + + + + n est pas un tuple de + + + + + valeurs + + + + + Valeur incorrecte + + + + + n est pas un identifiant correct + + + + + + Entrer un float SVP + + + + + Entrer un float inferieur a + + + + + Entrer un float superieur a + + + + + Mauvaise execution + + + + + impossible d executer la methode + + + + + Mauvaise Commande + + + + + Aucune variable connue + + + + + Mauvaise dimension de matrice + + + + + le nombre de ligne n est pas egal a + + + + + le nombre de colonne n est pas egal a + + + + + Mauvaise Valeur + + + + + l element + + + + + n est pas correct + + + + + Modification Impossible + + + + + le parametre n'est pas valide + + + + + n est pas un identifiant correct + + + + + Valeur incorrecte: + + + + + Valeur incorrecte + + + + + Valeur correcte + + + + + impossible d'evaluer : + + + + + La formule passee a l'interpreteur doit etre sous forme de tuple + + + + + Debut + + + + + Pas de nom donne au parametre + + + + + Le parametre %s ne peut valoir None + + + + + Format non implemente : %s + + + + + Impossible de realiser la verification de la formule + + + + + Un concept de nom %s existe deja ! + + + + + existe deja + + + + + + Fichier non encore nomme + + + + + La matrice n'a pas le bon entete + + + + + le mot clef + + + + + doit etre insere avant + + + + + insertion impossible + + + + + doit etre insere apres + + + + + Nb maximum de valeurs atteint + + + + + pas de regle de construction pour ce jeu de commandes + + + + + Gestion Maillage + + + + + Acquiert groupe mailles + + + + + Acquisition Groupe Maille + + + + + VERSION + + + + + NUM + + + + + FILETYPE + + + + + PARAMETERS + + + + + Fichier_maillage + + + + + Echelle_du_maillage + + + + + Formulation + + + + + Timeproblem + + + + + spectral + + + + + Basis + + + + + Fourier + + + + + Ordre + + + + + FREQUENCY + + + + + minimisation + + + + + no + + + + + yes + + + + + nb_procs_para + + + + + POLYMER + + + + + MODEL_DATABASE + + + + + Stabilise + + + + + Non Stabilise + + + + + Local + + + + + ESSAI_OPTION + + + + + MATERIEL + + + + + Cable + + + + + Peinture + + + + + Tuyauterie + + + + + Materiau_De_Cable + + + + + PE + + + + + EPDM + + + + + Modele + + + + + Impossible de convertir le fichier Python qui doit contenir des erreurs. + + On retourne le fichier non converti. Prevenir la maintenance. + + %s + + + + + Eficas ne peut pas traiter plusieurs instructions + sur la meme ligne : %s + + + + + le texte a analyser n'est pas celui d'une commande ou + d'un operateur : %s + + + + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + + + + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + + + + + jdc %(v_1)s manque + fichier comm dans section %(v_2)s + v_1 + + + + + jdc %(v_1)s, le fichier + de commandes %(v_2)s n'existe pas + v_1 + + + + + jdc %(v_1)s + fichier include %(v_2)s, %(v_3)s + n'existe pas + v_1 + + + + + jdc %(v_1)s manque fichier comm + dans section %(v_2)s + v_1 + + + + + jdc %(v_1)s, le fichier de commandes + %(v_2)s n'existe pas + v_1 + + + + + Objet commande commentarisé invalide + + + + + ATTENTION! Une source constante + n'est possible qu'a frequence nulle + en regime frequentiel + + + + + ERREUR! Une forme de la source du + type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + + + + + ATTENTION! Une source constante n'est + possible qu'a frequence nulle en regime frequentiel + + + + + ERREUR! Une forme de la source du type + WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + + + + + ERREUR! ce groupe de maille (%s) n'a pas de prefixe + indiquant le type de materiau ou de source associee + + + + + ERREUR! ce groupe de maille (%(nom)s) n'a pas + le prefixe correct pour etre associe a un type %(type_bloc)s + nom + + + + + + Include Invalide. + ne sera pas pris en compte + + + + + : verifie les types dans un tuple + + + + + Les types entres ne sont pas permis + + + + + ChoixCode + + + Choix du code + + + + + Veuillez choisir un code : + + + + + &Cancel + + + + + Validate choice + + + + + &OK + + + + + ChoixCommandes + + + DMacro + + + + + <html><head/><body><p align="center"><span style=" text-decoration: underline;">Affichage</span></p></body></html> + + + + + affiche les commandes par ordre alphabetique + + + + + Alphabetique + + + + + affiche les commandes selon les thèmes + + + + + Ordre de la modélisation + + + + + Par Groupe + + + + + <html><head/><body><p align="center">Filtre Commande</p></body></html> + + + + + filter commands + + + + + affiche les régles de validité + + + + + ... + + + + + Règles de construction + + + + + Sensible à la casse + + + + + Effacer + + + + + selectionne les mots qui CONTIENNENT l expression + + + + + ré-affiche toutes les commandes + + + + + DChoixCata + + + Choix d'une version du code Aster + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2 versions sont disponibles</span></p></body></html> + + + + + &Cancel + + + + + Validate choice + + + + + &OK + + + + + DSelVal + + + Sélection de valeurs + + + + + Separateur + + + + + espace + + + + + virgule + + + + + point-virgule + + + + + Ajouter Selection + + + + + Importer Tout + + + + + DVisu + + + Visualisation Include Materiau + + + + + Eficas + + + MainWindow + + + + + &Fichier + + + + + &Aide + + + + + toolBar + + + + + &Nouveau + + + + + Ctrl+N + + + + + Nouvel Include + + + + + &Ouvrir + + + + + Ctrl+O + + + + + Enregistrer + + + + + Enregistrer sous + + + + + Fermer + + + + + Ctrl+W + + + + + Fermer tout + + + + + Couper + + + + + Ctrl+X + + + + + Copier + + + + + Ctrl+C + + + + + Coller + + + + + Ctrl+V + + + + + Quitter + + + + + Ctrl+Q + + + + + Rapport de Validation + + + + + Fichier Source + + + + + Fichier Résultat + + + + + Parametres Eficas + + + + + Lecteur documentation + + + + + Eficas + + + + + Version + + + + + Supprimer + + + + + Rechercher + + + + + Rechercher dans l'arbre d'etude + + + + + Ctrl+F + + + + + Replier/Deplier + + + + + Tab 1 + + + + + &Edition + + + + + &JeuDeDonnées + + + + + Shift+I + + + + + Ctrl+S + + + + + Ctrl+Shift+S + + + + + Shift+V + + + + + Chercher Mot-Clef + + + + + Rechercher dans le catalogue + + + + + Shift+F + + + + + Shift+D + + + + + Commentaire + + + + + Shift+C + + + + + Paramètres + + + + + Gestion des paramètres + + + + + Shift+P + + + + + Parametre Eficas + + + + + Execution + + + + + Execution + + + + + Save Run + + + + + Patrons + + + + + Run + + + + + &bad + + + + + Régles du JdC + + + + + JDCEditor + + + Save File + + + + + The file <b>%1</b> could not be saved.<br>Reason: %2 + + + + + JDC (*.comm);;All Files (*) + + + + + &Abandonner + &Abandonner + + + + Tuple2 + + + Form + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + Tuple3 + + + Form + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + Widget4a6RadioButton + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + RadioButton + + + + + Détruit le mot-clef + + + + + WidgetBloc + + + Form + + + + + WidgetCB + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetCommande + + + DCommandeUnique + + + + + Affiche le rapport de validité de la commande + + + + + ... + + + + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + + + + + Nom de l'objet. Seuls, les objets valides peuvent être nommés + + + + + Lance un script associé à la commande + + + + + ouvre un navigateur sur l'aide contextuelle + + + + + affiche les régles de validité + + + + + Détruit la commande + + + + + Affiche les commandes possibles + + + + + &Commandes + + + + + Shift+A, Alt+A, Alt+A, Alt+A + + + + + Affiche le formulaire de la commande précédente + + + + + << + + + + + Affiche le formulaire de la commande suivante + + + + + >> + + + + + TextLabel + + + + + WidgetCommentaire + + + DCommandeUnique + + + + + ... + + + + + <html><head/><body><p><span style=" color:#0000ff;">Commentaire</span></p></body></html> + + + + + Détruit le commentaire + + + + + Affiche les commandes possibles + + + + + &Commandes + + + + + Shift+A, Alt+A, Alt+A, Alt+A + + + + + Affiche le formulaire de la commande précédente + + + + + << + + + + + Affiche le formulaire de la commande suivante + + + + + >> + + + + + WidgetDate + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetFact + + + Form + + + + + ... + + + + + <html><head/><body><p><span style=" font-style:italic;">TextLabel</span></p></body></html> + + + + + WidgetFactPlie + + + Form + + + + + ... + + + + + TextLabel + + + + + WidgetHeure + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + <html><head/><body><p><br/></p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetInformative + + + Form + + + + + WidgetOptionnel + + + WidgetOptionnel + + + + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + + + + + WidgetParam + + + DCommandeUnique + + + + + ... + + + + + <html><head/><body><p><span style=" color:#000000;">Paramètre</span></p></body></html> + + + + + Détruit le commentaire + + + + + Affiche les commandes possibles + + + + + &Commandes + + + + + Shift+A, Alt+A, Alt+A, Alt+A + + + + + Affiche le formulaire de la commande précédente + + + + + << + + + + + Affiche le formulaire de la commande suivante + + + + + >> + + + + + <html><head/><body><p>Valeur: </p></body></html> + + + + + <html><head/><body><p>Nom: </p></body></html> + + + + + Verifie la valeur + + + + + <html><head/><body><p><br/></p></body></html> + + + + + WidgetPlusieursBase + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Remonte la ligne + + + + + Descend la ligne + + + + + supprime une ligne + + + + + Ajoute une ligne + + + + + Montre l'ensemble des valeurs + + + + + Sélectionne depuis Salome + + + + + Visualise dans Salome + + + + + Ouvre un fichier de sélection des valeurs + + + + + Détruit le mot-clef + + + + + permet de gérer la liste + + + + + TextLabel + + + + + WidgetPlusieursInto + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Détruit le mot-clef + + + + + permet de gérer la liste + + + + + WidgetPlusieursIntoOrdonne + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + TextLabel + + + + + Remonte d'une ligne + + + + + Descend d'une ligne + + + + + Détruit une ligne + + + + + ajoute une ligne + + + + + visualise l'ensemble des valeurs + + + + + Détruit le mot-clef + + + + + permet de gérer la liste + + + + + WidgetPlusieursPlie + + + Form + + + + + Affiche le rapport de validité du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + permet de gérer la liste + + + + + Détruit le mot-clef + + + + + WidgetPlusieursTuple + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Remonte la ligne + + + + + Descend la ligne + + + + + supprime une ligne + + + + + Ajoute une ligne + + + + + Montre l'ensemble des valeurs + + + + + Ouvre un fichier de sélection des valeurs + + + + + Détruit le mot-clef + + + + + TextLabel + + + + + WidgetRadioButton + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + RadioButton + + + + + Détruit le mot-clef + + + + + WidgetSDCOInto + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + <html><head/><body><p>Structures de données du type requis </p><p><br/></p></body></html> + + + + + <html><head/><body><p>ou Nom du concept</p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetSimpBase + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetSimpBool + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + True + + + + + False + + + + + Détruit le mot-clef + + + + + WidgetSimpComplexe + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Complexe : a+bj + + + + + <html><head/><body><p align="center">OU </p></body></html> + + + + + Réel/Imaginaire + + + + + Module/Phase + + + + + WidgetSimpFichier + + + Form + + + + + Affiche le rapport de validité du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + affiche l'explorateur de fichier + + + + + ouvre le fichier choisi + + + + + Détruit le mot-clef + + + + + WidgetSimpTxt + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetTuple2 + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetTuple3 + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + + Détruit le mot-clef + + + + + WidgetUniqueSDCO + + + Form + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + Attend un objet de type CO + + + + + Détruit le mot-clef + + + + + WidgetVide + + + Form + + + + + ... + + + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + + Attend un objet de type XXXX. Il faut le créer + + + + + baseWidget + + + DMacro + + + + + dView + + + Dialog + + + + + Fermer + + + + + Sauver + + + + + desRecherche + + + Rechercher dans le JDC + + + + + Next + + + + + Suivant + + + + + desWidgetCreeParam + + + Gestion des Paramètres + + + + + <html><head/><body><p>Nom: </p></body></html> + + + + + <html><head/><body><p>Valeur: </p></body></html> + + + + + <html><head/><body><p><span style=" text-decoration: underline;">Créer un paramètre</span></p></body></html> + + + + + desWidgetMatrice + + + Dialog + + + + + Affiche le rapport de validation du mot-clef + + + + + ... + + + + + <html><head/><body><p>Met à jour l'en-tête</p></body></html> + + + + + <html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html> + + + + + self.appliEficas + + + Wrapper Files (*.xml);;All Files (*) + + + + + Noname + + + + + viewRegles + + + Dialog + + + + diff --git a/convert/convert_TELEMAC2.py b/convert/convert_TELEMAC2.py new file mode 100644 index 00000000..51b29e3d --- /dev/null +++ b/convert/convert_TELEMAC2.py @@ -0,0 +1,463 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +import re, string +from Extensions.i18n import tr + + +from convert_python import PythonParser + +pattern_comment_slash = re.compile(r"^\s*/") +pattern_eta = re.compile(r".*&ETA.*") +pattern_fin = re.compile(r".*&FIN.*") +pattern_oui = re.compile(r"^\s*(oui|OUI|YES|yes|TRUE|VRAI)\s*$") +pattern_non = re.compile(r"^\s*(non|NON|NO|no|FALSE|FAUX)\*s$") +pattern_blanc = re.compile(r"^\s*$") +pattern_listeVide = re.compile(r"^\s*'\s*'\s*$") + +pattern_ligne=re.compile(r'^\s*(?P[^=:]*)\s*[:=]\s*(?P.*)$') + +pattern_variables=re.compile (r"^\s*(?PVARIABLES POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P\w(,\w)*)\s*(?P.*)$") + +# Attention aux listes de flottants +pattern_liste=re.compile(r'^\s*(?P[+-.\w]+(\s*;\s*[+-.\w]+)+)\s*(?P.*)$') +pattern_flottant=re.compile(r'^\s*(?P[+-]?((\d+(\.\d*)?)|(\.\d+))([dDeE][+-]?\d+)?)\s*(?P.*)$') +pattern_texteQuote = re.compile (r"^\s*(?P'[^']+(''[^']+)*')\s*(?P.*)$") +pattern_texteSimple = re.compile (r"(?P(^|\s)\s*[\w\.-]+)\s*(?P.*)$") +pattern_texteVide = re.compile (r"^\s*(?P'')\s*(?P.*)$") + +pattern_ContientDouble=re.compile (r"^.*''.*$") + + +# le pattern texte reconnait +#nom1 nom 2 : ou = chaine entre ' +# avec eventuellement des quotes au milieu par exemple +# TITRE = 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' +# m.group("texte") va rendre 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' + + +#Si le code n est pas Telemac +try : + from aideAuxConvertisseurs import DicoEficasToCas, ListeSupprimeCasToEficas + from aideAuxConvertisseurs import ListeCalculCasToEficas, DicoAvecMajuscules + from enumDicoTelemac import DicoEnumCasEn +except : + pass + +from Extensions import localisation + +from determine import monEnvQT5 + + + +def entryPoint(): + """ + Return a dictionary containing the description needed to load the plugin + """ + return { + 'name' : 'TELEMAC2', + 'factory' : TELEMACParser + } + +class TELEMACParser(PythonParser): + """ + This converter works like PythonParser, except that it also initializes all + model variables to None in order to avoid Python syntax errors when loading + a file with a different or inexistent definition of variables. + """ + + def convert(self, outformat, appli=None): + from Accas import A_BLOC, A_FACT, A_SIMP + #self.dicoInverseFrancais=appli.readercata.dicoInverseFrancais + #self.dicoAnglaisFrancais=appli.readercata.dicoAnglaisFrancais + #self.dicoFrancaisAnglais=appli.readercata.dicoFrancaisAnglais + self.dicoInverse=appli.readercata.dicoInverse + self.dicoMC=appli.readercata.dicoMC + self.Ordre_Des_Commandes=appli.readercata.Ordre_Des_Commandes + + + #print self.dicoInverseFrancais + #text = PythonParser.convert(self, outformat, appli) + + text="" + l_lignes = string.split(self.text,'\n') + self.dictSimp={} + for ligne in l_lignes : + + if pattern_comment_slash.match(ligne) : continue + if pattern_eta.match(ligne) : continue + if pattern_fin.match(ligne) : continue + if pattern_blanc.match(ligne) : continue + + + finLigne=ligne + while finLigne != "" : + #print finLigne + if pattern_comment_slash.match(finLigne) : finLigne=""; continue + valeur="" + if pattern_variables.match(finLigne) : + m=pattern_variables.match(finLigne) + valeur=m.group('valeur') + finLigne=m.group('reste') + self.dictSimp[simp]=valeur + continue + + m=pattern_ligne.match(finLigne) + if m == None : + #print "________________________________________________" + print 'pb avec ****', finLigne , '**** dans ', ligne + #print "________________________________________________" + break + + simp=self.traiteIdent(m.group('ident')) + finLigne=m.group('reste') + + # attention, l ordre des if est important + if pattern_liste.match(finLigne) : + m=pattern_liste.match(finLigne) + elif pattern_texteQuote.match(finLigne) : + m=pattern_texteQuote.match(finLigne) + elif pattern_flottant.match(finLigne) : + m=pattern_flottant.match(finLigne) + elif pattern_texteVide.match(finLigne): + m=pattern_texteVide.match(finLigne) + elif pattern_texteSimple.match(finLigne): + m=pattern_texteSimple.match(finLigne) + else : + #print "________________________________________________" + print 'pb avec ****', finLigne , '**** dans ', ligne + print "non match" + #print "________________________________________________" + break + + valeur=m.group('valeur') + if pattern_blanc.match(valeur) : valeur=None + + if pattern_flottant.match(finLigne) : + valeur=re.sub("d","e",valeur) + valeur=re.sub("D","E",valeur) + + if pattern_liste.match(finLigne): + valeur=valeur.split(";") + + finLigne=m.group('reste') + self.dictSimp[simp]=valeur + + if 'TITLE' not in self.dictSimp.keys() : + import os + self.dictSimp['TITLE']=os.path.basename(self.filename) + + dicoParMC={} + for simp in self.dictSimp.keys(): + if simp in TELEMACParser.__dict__.keys() : apply(TELEMACParser.__dict__[simp],(self,)) + + for simp in self.dictSimp.keys(): + if simp in ListeSupprimeCasToEficas: continue + if simp not in self.dicoInverse.keys() : + print "************" + print "pb avec dans dicoInverse", simp,'------' + print "************" + #print poum + continue + listeGenea=self.dicoInverse[simp] + listeGeneaReverse=[] + for (u,v) in listeGenea : + if isinstance(v,A_BLOC.BLOC): continue + listeGeneaReverse.append(u) + listeGeneaReverse.reverse() + dicoTravail=dicoParMC + i=0 + #print (listeGeneaReverse[0:-1]) + while i < len(listeGeneaReverse[0:-1]) : + mot=listeGeneaReverse[i] + i=i+1 + if mot not in dicoTravail.keys(): dicoTravail[mot]={} + dicoTravail=dicoTravail[mot] + dicoTravail[simp]=self.dictSimp[simp] + + self.textePy="" + #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + #print dicoParMC + #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + listeMC=self.tri(dicoParMC.keys()) + for k in listeMC : + #print "----------- traitement de " , k + #self.textePy += self.dicoFrancaisAnglais[k] + "(" + self.textePy += str(k )+ "(" + #self.traiteMC(dicoParMC[k]) + self.textePy += ");\n" + #print "----------- " + + + print self.textePy + return self.textePy + + + #---------------------------------------- + def traiteIdent(self,ident): + # enleve les espaces de part et autre + #---------------------------------------- + while ident[-1] == " " or ident[-1] == '\t' : ident=ident[0:-1] + while ident[0] == " " or ident[0] == '\t' : ident=ident[1:] + return tr(ident) + + + def traiteMC(self,dico) : + from Accas import A_BLOC, A_FACT, A_SIMP + for k in dico.keys() : + valeur= dico[k] + if k not in self.dicoMC.keys() : kA=self.dicoFrancaisAnglais[k] + else : kA=k + obj=self.dicoMC[kA] + if isinstance(obj,A_FACT.FACT): self.convertFACT(obj,kA,valeur) + elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur) + elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur) + else : print "%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%" + + #print "_____________" + + def convertFACT(self,obj,nom,valeur): + if nom in TELEMACParser.__dict__.keys() : + apply(TELEMACParser.__dict__[nom],(self,)) + return + self.textePy += nom + "=_F( " + self.traiteMC(valeur) + self.textePy += '),\n' + + + def convertBLOC(self,obj,nom,valeur): + print "BLOC " + print nom + + def convertSIMP(self,obj,nom,valeur): + if nom in ("PRESCRIBED_FLOWRATES", "PRESCRIBED_VELOCITIES", "PRESCRIBED_ELEVATIONS" ): return + if obj.max==1 : + if hasattr(obj.type[0],'ntuple') : + lval=[] + for v in valeur : + try : v=eval(v,{}) + except : pass + lval.append(v) + self.textePy += nom + "=" + str(lval) +"," + return + if 'TXM' in obj.type : + + if pattern_ContientDouble.match(str(valeur)): + valeur=re.sub("''","\'\'",str(valeur)) + self.textePy += nom + "=" + str(valeur) +"," + return + valeur=str(valeur) + + # ceinture et bretelle si les re sont correctes -) + while valeur[-1] == " " or valeur[-1] == '\t' : valeur=valeur[0:-1] + while valeur[0] == " " or valeur[0] == '\t' : valeur=valeur[1:] + + + + # Pour les enum + try : valeur=eval(valeur,{}) + except : pass + if nom in DicoEnumCasEn.keys(): + try : + valeur=DicoEnumCasEn[nom][valeur] + self.textePy += nom + "= '" + str(valeur) +"'," + return + except : pass + + + if obj.into != [] and obj.into != None and not('R' in obj.type) and not('I' in obj.type): + for possible in obj.into : + try : + if possible.upper() == valeur.upper(): + valeur=possible + break + v=valeur[0].upper()+valeur[1:].lower() + v2=tr(v) + if possible.upper() == v2.upper(): + valeur=possible + break + except: + print "pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur + + if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type : + valeur=str(valeur) + while valeur[-1] == " " : valeur=valeur[0:-1] + while valeur[0] == " " : valeur=valeur[1:] + self.textePy += nom + "= '" + str(valeur) +"' ," + return + + if bool in obj.type : + if valeur == True : self.textePy += nom + "= True," + elif valeur == False : self.textePy += nom + "= False," + elif pattern_oui.match(valeur) : self.textePy += nom + "= True," + elif pattern_non.match(valeur) : self.textePy += nom + "= False," + else : self.textePy += nom + "= None," + return + self.textePy += nom + "=" + str(valeur) +"," + + else : + if pattern_listeVide.match(valeur) : + self.textePy += nom + "= None," + return + while valeur[-1] == " " or valeur[-1]=="'" : valeur=valeur[0:-1] + while valeur[0] == " " or valeur[-0]=="'" : valeur=valeur[1:] + + if ";" in valeur : valeur=valeur.split(';') + elif "," in valeur : valeur=valeur.split(',') + + if valeur == None : return + newVal=[] + for v in valeur : + try : v=eval(v,{}) + except : pass + if nom in DicoEnumCasEn.keys(): + #print "est dans le dico des enum, valeurs multiples" + try : v=DicoEnumCasEn[nom][v] + except : pass + newVal.append(v) + self.textePy += nom + "=" + str(newVal) +"," + + + + def tri(self, listeIn): + if len(listeIn) == 1 : return listeIn + if self.Ordre_Des_Commandes == None : return listeIn + #print self.Ordre_Des_Commandes + listeOut=[listeIn[0],] + for kF in listeIn[1:]: + k=str(self.dicoFrancaisAnglais[kF]) + ordreK=self.Ordre_Des_Commandes.index(k) + i=0 + while i < len(listeOut): + ordreI=self.Ordre_Des_Commandes.index(self.dicoFrancaisAnglais[listeOut[i]]) + if ordreK < ordreI : break + i=i+1 + listeOut.insert(i,kF) + return listeOut + + def Processeurs_Paralleles(self): + #YOANN + if self.dictSimp["Processeurs_Paralleles"] == 0 : del self.dictSimp["Processeurs_Paralleles"] + else : self.dictSimp["Parallel_Computation"]="Parallel" + + def decoupeListe(self,valeurs,label): + #print "decoupeListe" + #print valeurs + i=0 + for prefixe in ('_U_And_V','_H'): + labelComplet=label+prefixe + valeur=valeurs[i] + try : valeur=eval(valeur,{}) + except : pass + if tr(label) in DicoEnumCasEn.keys(): + try : valeur=DicoEnumCasEn[tr(label)][valeur] + except : pass + self.dictSimp[labelComplet]=valeur + i=i+1 + if len(valeurs)==2 : return + for prefixe in ('_K_And_Epsilon','_Tracers'): + labelComplet=label+prefixe + valeur=valeurs[i] + try : valeur=eval(valeur,{}) + except : pass + if tr(label) in DicoEnumCasEn.keys(): + try : valeur=DicoEnumCasEn[tr(label)][valeur] + except : pass + self.dictSimp[labelComplet]=valeur + i=i+1 + + def Option_De_Supg(self): + #print "ds Option_De_Supg" + self.decoupeListe( self.dictSimp["Option_De_Supg"],"Option_De_Supg") + del self.dictSimp["Option_De_Supg"] + + def Forme_De_La_Convection(self): + self.decoupeListe( self.dictSimp["Forme_De_La_Convection"],"Forme_De_La_Convection") + valeurs=self.dictSimp["Forme_De_La_Convection"] + del self.dictSimp["Forme_De_La_Convection"] + self.dictSimp['Convection_De_U_Et_V']=True + self.dictSimp['Convection_De_H']=True + if len(valeurs)==2 : return + self.dictSimp['Convection_De_K_Et_Epsilon']=True + self.dictSimp['Convection_Des_Traceurs']=True + + def Discretisations_En_Espace(self): + self.decoupeListe( self.dictSimp["Discretisations_En_Espace"],"Discretisations_En_Espace") + del self.dictSimp["Discretisations_En_Espace"] + + def Date_De_L_Origine_Des_Temps (self): + valeurs=self.dictSimp["Date_De_L_Origine_Des_Temps"] + self.dictSimp['Annee']=valeurs[0] + self.dictSimp['Mois']=valeurs[1] + self.dictSimp['Jour']=valeurs[2] + del self.dictSimp["Date_De_L_Origine_Des_Temps"] + + + def Heure_De_L_Origine_Des_Temps (self): + valeurs=self.dictSimp["Heure_De_L_Origine_Des_Temps"] + self.dictSimp['Heure']=valeurs[0] + self.dictSimp['Minute']=valeurs[1] + self.dictSimp['Seconde']=valeurs[2] + del self.dictSimp["Heure_De_L_Origine_Des_Temps"] + + def Liquid_Boundaries(self): + #print 'Liquid Boundaries' + texte_Boundaries="Liquid_Boundaries=( " + premier=0 + if 'Prescribed_Elevations' in self.dictSimp.keys(): + valeurs=self.dictSimp["Prescribed_Elevations"] + elif 'Cotes_Imposees' in self.dictSimp.keys(): + valeurs=self.dictSimp["Cotes_Imposees"] + else : valeurs=() + #print valeurs + for e in range(len(valeurs)): + if valeurs[e] == "" or valeurs[e] == "\n" : continue + if eval(valeurs[e],{})==0 : continue + if not premier : premier=1 + texte_Boundaries += "_F(Type_Condition = 'Prescribed Elevations',\n" + texte_Boundaries += "Prescribed_Elevations = " + str(valeurs[e]) + "),\n" + + if 'Prescribed_Flowrates' in self.dictSimp.keys(): + valeurs=self.dictSimp["Prescribed_Flowrates"] + elif 'Debits_Imposes' in self.dictSimp.keys(): + valeurs=self.dictSimp["Debits_Imposes"] + else : valeurs=() + #print valeurs + for e in range(len(valeurs)): + if valeurs[e] == "" or valeurs[e] == "\n" : continue + if eval(valeurs[e],{})==0 : continue + if not premier : premier=1 + texte_Boundaries += "_F(Type_Condition = 'Prescribed Flowrates',\n" + texte_Boundaries += "Prescribed_Flowrates = " + str(valeurs[e]) + "),\n" + + if 'Prescribed_Velocity' in self.dictSimp.keys(): + valeurs=self.dictSimp["Prescribed_Velocity"] + elif 'Vitesses_Imposees' in self.dictSimp.keys(): + valeurs=self.dictSimp["Vitesses_Imposees"] + else : valeurs=() + #print valeurs + for e in range(len(valeurs)): + if valeurs[e] == "" or valeurs[e] == "\n" : continue + if eval(valeurs[e],{})==0 : continue + if not premier : premier=1 + texte_Boundaries += "_F(Type_Condition = 'Prescribed Velocity',\n" + texte_Boundaries += "Prescribed_Velocity = " + str(valeurs[e]) + "),\n" + if premier : texte_Boundaries +="),\n" + else : texte_Boundaries="" ; print "pb texte_Boundaries " + self.textePy += texte_Boundaries +