Salome HOME
PN intégration des modifs faites pour Homard
authoreficas <>
Thu, 29 Jul 2004 13:26:01 +0000 (13:26 +0000)
committereficas <>
Thu, 29 Jul 2004 13:26:01 +0000 (13:26 +0000)
Aster/editeur.ini
Editeur/panelsSalome.py
Editeur/readercata.py
Homard/editeur.ini [new file with mode: 0644]
Homard/eficas_homard.py [new file with mode: 0755]
Homard/homard_cata_STA7.py [new file with mode: 0755]
Homard/prefs.py [new file with mode: 0644]
Homard/properties.py [new file with mode: 0644]

index 1d18074c2e49908087dd53150b6e49209237cdd2..f44719c7bf9b89bce994e9372f46379c5d564648 100644 (file)
@@ -42,5 +42,6 @@ catalogues = (
               #('ASTER','v5',os.path.join(rep_cata,'cata_STA5.py'),'asterv5'),
               #('ASTER','v6',os.path.join(rep_cata,'cata_STA6.py'),'python'),
               ('ASTER','v7',os.path.join(rep_cata,'cata_STA7.py'),'python','defaut'),
+              ('HOMARD','v1',os.path.join(rep_cata,'homard_cata_STA7.py'),'homard'),
              )
 
index d9364e97995b6a3835579bfc4e80cedc62736840..f0e0ccd5dbc64ae86c21b0314df754d639ac5514 100644 (file)
@@ -377,6 +377,44 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
 
   dict_fichier_unite={}
 
+
+  def SALOME_DONNEES_HOMARD_FICHIERS_NOM_MED_MAILLAGE_N(self):
+      entrychaine=salome.sg.getAllSelected()
+      if entrychaine != '':
+          self.entry2.delete(0,END)
+          try:
+              print salome.myStudy
+              SO = salome.myStudy.FindObjectID(entrychaine[0])
+          except:
+              boo = 0
+              SO = None
+
+          FileName=''
+          if SO != None:
+              myBuilder = salome.myStudy.NewBuilder()
+              boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeFileType")
+              if boo:
+                 val=FileAttr.Value()
+                 if (val !="FICHIERMED"):
+                     boo=0
+                     showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+                 else:
+                     boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeExternalFileDef")
+              if boo :
+                FileName=FileAttr.Value()
+              else:
+                 showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+          if FileName != '' :
+              self.entry2.insert(0,FileName)
+              self.entry.delete(0,END)
+              self.entry.insert(0,FileName)
+              self.valid_valeur()
+
+
+  def SALOME_DONNEES_HOMARD_FICHIERS_NOM_MED_MAILLAGE_NP1(self):
+      self.SALOME_DONNEES_HOMARD_FICHIERS_NOM_MED_MAILLAGE_N()
+
+
   def SALOME_LIRE_MAILLAGE_UNITE(self):
 
       unite=self.node.item.get_valeur()
@@ -396,29 +434,42 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
              myBuilder = salome.myStudy.NewBuilder()
               boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeComment")
 
-          if boo == 0 :
-            FileName=''
-             print "a"
-          else :
-            Comment=FileAttr.Value()
-             print Comment
-             if Comment.find("FICHIERMED")== -1 :
-                FileName=''
-             else :
-                FileName=Comment[10:]
-
+          FileName=''
+          if SO != None:
+              myBuilder = salome.myStudy.NewBuilder()
+              boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeFileType")
+              if boo:
+                 boo=0
+                 val=FileAttr.Value()
+                 if (val !="FICHIERMED"):
+                     showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+                 else:
+                     boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeExternalFileDef")
+          if boo :
+              FileName=FileAttr.Value()
+          else:
+              showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
 
           print "FileName = " , FileName
-         if FileName != '' :
+          if FileName != '' :
               print FileName
-             self.entry2.insert(0,FileName)
+              self.entry2.insert(0,FileName)
               typefic='D'
               SALOME_UNIQUE_BASE_Panel.dict_fichier_unite[unite]=typefic+FileName
           else :
-             print "il faut afficher une Fenetre d impossibilité"
-             showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associé")
+              print "il faut afficher une Fenetre d impossibilit\xe9"
+              showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
 
-  def makeValeurPage(self,page):
+  def redistribue_selon_simp(self):
+      genea = self.node.item.get_genealogie()
+      commande="SALOME"
+      for i in range(0,len( genea )) :
+        commande=commande+"_"+ genea[i]
+      print SALOME_UNIQUE_BASE_Panel.__dict__[commande]
+      (SALOME_UNIQUE_BASE_Panel.__dict__[commande])(self)
+
+
+  makeValeurPage(self,page):
       """
       Génère la page de saisie de la valeur du mot-clé simple courant qui doit être de type
       de base cad entier, réel, string ou complexe
@@ -441,8 +492,8 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
       self.entry.bind("<Return>",lambda e,c=self.valid_valeur:c())
 
       # PN : Ajout d'un bouton pour selectionner  à partir de Salome  
-      self.b = Button(self.frame_valeur,text='Relier a selection',command=self.SALOME_LIRE_MAILLAGE_UNITE)
-      self.b.place(relx=0.1,rely=0.1)
+      self.b = Button(self.frame_valeur,text='Relier selection',command=self.redistribue_selon_simp)
+      self.b.place(relx=0.05,rely=0.1)
       unite=self.node.item.get_valeur()
       self.entry2 = Entry(self.frame_valeur,relief='sunken')
       self.entry2.place(relx=0.3,rely=0.1)
index b5b68c360e48a3fc84d8b178fcbe5085bcbc26ec..edc1916f3b1c1d0c8422d4fb2824f7745c66a5eb 100644 (file)
@@ -70,12 +70,16 @@ class READERCATA:
       message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..."
       splash._splash.configure(text = message1)
       self.configure_barre(4)
-      if len(self.appli.CONFIGURATION.catalogues) == 1:
-          self.fic_cata = self.appli.CONFIGURATION.catalogues[0][2]
+      liste_cata_possibles=[]
+      for catalogue in self.appli.CONFIGURATION.catalogues:
+          if catalogue[0] == self.code :
+             liste_cata_possibles.append(catalogue)
+      if len(liste_cata_possibles)==1:
+          self.fic_cata = liste_cata_possibles[0][2]
           self.code = self.appli.CONFIGURATION.catalogues[0][0]
-          self.version_code = self.appli.CONFIGURATION.catalogues[0][1]
-          self.appli.format_fichier.set(self.appli.CONFIGURATION.catalogues[0][3])
-      elif len(self.appli.CONFIGURATION.catalogues) == 0:
+          self.version_code = liste_cata_possibles[0][1]
+          self.appli.format_fichier.set(liste_cata_possibles[0][3])
+      elif len(liste_cata_possibles)==0:
           # aucun catalogue défini dans le fichier Accas/editeur.ini
           if self.code == 'ASTER' :
               self.fic_cata = os.path.join(prefs.CODE_PATH,'Cata','cata.py')
diff --git a/Homard/editeur.ini b/Homard/editeur.ini
new file mode 100644 (file)
index 0000000..bb337aa
--- /dev/null
@@ -0,0 +1,24 @@
+import os
+
+import prefs
+
+rep_cata = prefs.REPINI
+
+# Accès à la documentation 
+path_doc              = os.path.join(rep_cata,'Doc')
+exec_acrobat    =       "/usr/bin/xpdf"
+# Utilisateur/Développeur
+isdeveloppeur   =       "NON"
+path_cata_dev   =       "/tmp/cata"
+# Répertoire temporaire
+rep_travail     =   "/tmp"
+# Répertoire initial
+initialdir=os.curdir
+
+# Choix des catalogues
+rep_mat="bidon"
+
+catalogues = (
+  ('HOMARD','v1',os.path.join(rep_cata,'homard_cata_STA7.py'),'homard'),
+             )
+
diff --git a/Homard/eficas_homard.py b/Homard/eficas_homard.py
new file mode 100755 (executable)
index 0000000..0310868
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+#            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 \xe0 lancer EFICAS configur\xe9 pour Code_Aster
+"""
+# Modules Python
+import sys
+
+# Modules Eficas
+import prefs
+sys.path[:0]=[prefs.INSTALLDIR]
+
+import Editeur
+from Editeur import eficas_go
+
+if len(sys.argv) > 1 :
+    # on veut ouvrir un fichier directement au lancement d'Eficas
+    eficas_go.lance_eficas(code='HOMARD',fichier = sys.argv[1])
+else:
+    # on veut ouvrir Eficas 'vide'
+    eficas_go.lance_eficas(code='HOMARD')
+
diff --git a/Homard/homard_cata_STA7.py b/Homard/homard_cata_STA7.py
new file mode 100755 (executable)
index 0000000..6e83873
--- /dev/null
@@ -0,0 +1,251 @@
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+#CONTEXT.debug=1
+
+JdC = JDC_CATA(code='HOMARD',
+               execmodul=None,
+               regles = (AU_MOINS_UN('DONNEES_HOMARD'),),
+                       )
+
+# Type le plus general
+class entier  (ASSD):pass
+class reel    (ASSD):pass
+class complexe(ASSD):pass
+class liste   (ASSD):pass
+class chaine  (ASSD):pass
+
+# Types geometriques
+class no  (GEOM):pass
+class grno(GEOM):pass
+class ma  (GEOM):pass
+class grma(GEOM):pass
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",op= 189, docu="U7.04.01-b",
+            UIinfo={"groupes":("Fonction",)},
+                    fr="Imprime le fichier de configuration de HOMARD.",
+                    ang="Writes the configuration file for HOMARD.",
+#
+# 1. Langue des messages issus de HOMARD
+#
+         LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
+                               into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
+                           fr="Langue des messages issus de HOMARD.",
+                           ang="Language for HOMARD messages." ),
+#
+# 2. Les fichiers en entree/sortie
+#
+         FICHIERS = FACT(statut='o',
+               NOM_MED_MAILLAGE_N = SIMP(statut='o' ,typ='TXM',
+                        fr="Nom du fichier contenant le maillage à adapter",
+                        ang="File name including the in-mesh"),
+               NOM_MED_MAILLAGE_NP1 = SIMP(statut='o' ,typ='TXM',
+                         fr="Nom du fichier qui contiendra le maillage adapté",
+                         ang="File name for resulting out-mesh"),
+               INFORMATION =  SIMP(statut='o' ,typ='TXM',
+                         fr="Nom du fichier contenant les informations de sortie",
+                         ang="Log File"),
+                     ),
+#
+# 3. Le type de traitement :
+#
+         TRAITEMENT      =FACT(statut='o',
+#
+# 3.1. DEUX CHOIX EXCLUSIFS :
+#
+#      A. ADAPTATION AVEC DES VARIANTES SUR LE MODE DE RAFFINEMENT/DERAFFINEMENT
+#         . RAFFINEMENT ET DERAFFINEMENT
+#         . RAFFINEMENT SEUL
+#         . DERAFFINEMENT SEUL
+#      B. INFORMATION SUR UN MAILLAGE
+#
+           regles=( AU_MOINS_UN('RAFFINEMENT','DERAFFINEMENT','INFORMATION'),
+                    EXCLUS('RAFFINEMENT','INFORMATION'),
+                    EXCLUS('DERAFFINEMENT','INFORMATION'),),
+           RAFFINEMENT      =SIMP(statut='f',typ='TXM',     
+                                 fr="Choix du mode de raffinement.",
+                                 ang="Choice of refinement mode.",
+                                 defaut="LIBRE",
+                                 into=("LIBRE","UNIFORME","NON","NON-CONFORME","NON-CONFORME-INDICATEUR") ),
+           DERAFFINEMENT   =SIMP(statut='f',typ='TXM',     
+                                 fr="Choix du mode de deraffinement.",
+                                 ang="Choice of unrefinement mode.",
+                                 defaut="LIBRE",
+                                 into=("LIBRE","UNIFORME","NON") ),
+           INFORMATION     =SIMP(statut='f',typ='TXM',
+                                 fr="Information sur un maillage",
+                                 ang="Information on a mesh",
+                                 into=("OUI",) ),
+#
+# 3.2. LES CONTRAINTES :
+#
+# 3.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT :
+#      A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
+#      B. LE NOM MED DU MAILLAGE D'ENTREE
+#      C. LE NOM MED DE L'INDICATEUR D'ERREUR
+#      D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
+#      E. LA MISE A JOUR DE SOLUTION
+#      F. LE NOM MED DU MAILLAGE DE SORTIE
+#      REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS
+#
+# 3.2.2. POUR DE L'ADAPTATION UNIFORME
+#          IL FAUT :
+#      A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
+#      B. LE NOM MED DU MAILLAGE DE SORTIE
+#          IL NE FAUT PAS :
+#      A. LE NOM MED DE L'INDICATEUR D'ERREUR
+#      B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
+#      C. LES CRITERES
+#      REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION,
+#                 IL FAUT LE NOM MED DU MAILLAGE D'ENTREE
+#
+# 3.2.3. POUR DE L'INFORMATION :
+#          IL FAUT :
+#      A. LE NOM MED DU MAILLAGE D'ENTREE
+#          IL NE FAUT PAS :
+#      A. LE NOM MED DE L'INDICATEUR D'ERREUR
+#      B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
+#      C. LES CRITERES
+#      D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
+#      E. LA MISE A JOUR DE SOLUTION
+#
+           NOM_MED_MAILLAGE_N    =SIMP(statut='o',typ='TXM',     
+                                 fr="Nom MED du maillage en entrée",
+                                 ang="MED name of the in-mesh",),
+#
+           b_iteration_maj_champ =BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != None ) ",
+                           fr="Nom MED du maillage en sortie, numero d'iteration et mise à jour de champs",
+                           ang="MED name of the out-mesh, iteration rank and field updating",
+                           NITER                =SIMP(statut='o',typ='I',
+                           fr="Numéro d'itération avant l'adaptation.",
+                           ang="Iteration number before adaptation." ),
+                           NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
+                           fr="Nom MED du maillage en sortie",
+                           ang="MED name of the out-mesh" ),
+                           ) ,
+#
+           b_indicateur_d_erreur  =BLOC(condition = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \
+                                                     ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or ( DERAFFINEMENT == 'LIBRE' ) ",
+                           fr="Indicateur d'erreur",
+                           ang="Error indicator",
+                           NOM_MED  =SIMP(statut='o',typ='TXM',
+                           fr="Nom MED de l'indicateur d'erreur.",
+                           ang="MED name of error indicator.",),
+                           COMPOSANTE  =SIMP(statut='o',typ='TXM',
+                           fr="Nom de la composante de l'indicateur d'erreur retenue.",
+                           ang="Name of the selected component of the error indicator.",),
+                           NUME_ORDRE  =SIMP(statut='f',typ='I',
+                           fr="Numero d'ordre de l'indicateur.",
+                           ang="Rank number of the error indicator.",),
+                           ) ,
+#
+           b_critere_de_raffinement =BLOC( condition = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \
+                                                        ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) ",
+                           fr="Critère de raffinement.",
+                           ang="Refinement threshold.",
+                           regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
+                           CRIT_RAFF_ABS   =SIMP(statut='f',typ='R',
+                                                 fr="Critère absolu",
+                                                 ang="Absolute threshold"  ),
+                           CRIT_RAFF_REL   =SIMP(statut='f',typ='R',
+                                                 fr="Critère relatif",
+                                                 ang="Relative threshold" ),
+                           CRIT_RAFF_PE    =SIMP(statut='f',typ='R',
+                                                 fr="Pourcentage d'éléments",
+                                                 ang="Percentage of elements" ),
+                           ) ,
+#
+           b_critere_de_deraffinement =BLOC ( condition = "( DERAFFINEMENT == 'LIBRE' ) ",
+                           fr="Critère de déraffinement.",
+                           ang="Unrefinement threshold.",
+                           regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
+                           CRIT_DERA_ABS   =SIMP(statut='f',typ='R' ,
+                                                 fr="Critère absolu",
+                                                 ang="Absolute threshold" ),
+                           CRIT_DERA_REL   =SIMP(statut='f',typ='R',
+                                                 fr="Critère relatif",
+                                                 ang="Relative threshold" ),
+                           CRIT_DERA_PE    =SIMP(statut='f',typ='R',
+                                                 fr="Pourcentage d'éléments",
+                                                 ang="Percentage of elements" ),
+                           ) ,
+#
+           b_niveau_maximum =BLOC ( condition = " ( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \
+                                                  ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or ( RAFFINEMENT == 'UNIFORME' ) ",
+                           NIVE_MAX        =SIMP(statut='f',typ='I',
+                                                 fr="Niveau maximum de profondeur de raffinement",
+                                                 ang="Maximum level for refinement"),
+                           ) ,
+#
+           b_niveau_minimum =BLOC ( condition = " ( DERAFFINEMENT == 'LIBRE' ) or ( DERAFFINEMENT == 'UNIFORME' ) ",
+                           NIVE_MIN        =SIMP(statut='f',typ='I',
+                                                 fr="Niveau minimum de déraffinement",
+                                                 ang="Minimum level for unrefinement" ),
+                           ) ,
+#
+# 3.3. Le suivi de frontiere eventuel :
+#
+         NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM',
+                           fr="Nom MED du maillage de la frontiere à suivre",
+                           ang="MED name of the boundary mesh" ),
+#
+         b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" ,
+                           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                                                 fr="Groupes définissant la frontière",
+                                                 ang="Groups which define the boundary" ),
+                               ) ,
+         fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" ,
+                         FIC_FRON = SIMP(statut='f',typ='TXM',
+                                        fr="Nom du fichier MED contenant le maillage frontiere",
+                                        ang="MED File including the boundary mesh" ),
+                               ), 
+#
+         ),
+#
+# 4. L'ANALYSE DU MAILLAGE
+#
+         ANALYSE         =FACT(statut='f',
+                               fr="Analyse du maillage.",
+                               ang="Mesh analysis.",
+#
+#    5 CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
+#    A. NOMBRE DES ELEMENTS
+#    B. QUALITE DES ELEMENTS
+#    C. INTERPENETRATION DES ELEMENTS
+#    D. CONNEXITE DU MAILLAGE
+#    E. TAILLE DES DIFFERENTS SOUS-DOMAINES
+#
+           regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),),
+#
+         NOMBRE          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Nombre de noeuds et éléments du maillage",
+                          ang="Number of nodes and elements in the mesh" ),
+#
+         QUALITE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+                          fr="Qualité du maillage",
+                          ang="Mesh quality" ),
+#
+         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+                          fr="Controle de la non interpénétration des éléments.",
+                          ang="Overlapping checking." ),
+#
+         CONNEXITE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+                          fr="Connexité du maillage.",
+                          ang="Mesh connexity." ),
+#
+         TAILLE          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+                          fr="Tailles des sous-domaines du maillage.",
+                          ang="Sizes of mesh sub-domains." ),
+#
+         ),
+#
+)  ;
diff --git a/Homard/prefs.py b/Homard/prefs.py
new file mode 100644 (file)
index 0000000..c14833e
--- /dev/null
@@ -0,0 +1,25 @@
+import os
+
+# REPINI sert à localiser le fichier editeur.ini
+# Obligatoire
+REPINI=os.path.dirname(os.path.abspath(__file__))
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+# Obligatoire
+INSTALLDIR=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
+#CODE_PATH = os.path.join(REPINI,'../../Superv')
+
+# ICONDIR sert à localiser le répertoire contenant les icones
+# Par défaut on utilise le répertoire icons dans Editeur
+ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+
diff --git a/Homard/properties.py b/Homard/properties.py
new file mode 100644 (file)
index 0000000..96d09b7
--- /dev/null
@@ -0,0 +1,2 @@
+version = "6.3.20"
+date = "10/10/2002"