]> SALOME platform Git repositories - tools/eficas.git/blob - generator/generator_dicoImbrique.py
Salome HOME
Merge branch 'nouvelEficas' of http://git.forge-pleiade.der.edf.fr/git/eficas into...
[tools/eficas.git] / generator / generator_dicoImbrique.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 """Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
21 """
22
23 import traceback
24 import types,string,re,os
25 from Extensions.i18n import tr
26 from generator_python import PythonGenerator
27
28 def entryPoint():
29    """
30       Retourne les informations necessaires pour le chargeur de plugins
31       Ces informations sont retournees dans un dictionnaire
32    """
33    return {
34         # Le nom du plugin
35           'name' : 'dicoImbrique',
36         # La factory pour creer une instance du plugin
37           'factory' : DicoImbriqueGenerator,
38           }
39
40
41 class DicoImbriqueGenerator(PythonGenerator):
42    """
43       Ce generateur parcourt un objet de type JDC et produit
44       un texte au format eficas et 
45       un texte au format dictionnaire
46
47    """
48    # Les extensions de fichier permis?
49    extensions=('.comm',)
50
51 #----------------------------------------------------------------------------------------
52    def gener(self,obj,format='brut',config=None):
53        
54       self.initDico()
55       
56       # Cette instruction genere le contenu du fichier de commandes (persistance)
57       self.text=PythonGenerator.gener(self,obj,format)
58       return self.text
59
60
61 #----------------------------------------------------------------------------------------
62 # initialisations
63 #----------------------------------------------------------------------------------------
64    
65    def initDico(self) :
66  
67       self.Dico={}
68       self.Entete = ''
69
70
71 #----------------------------------------------------------------------------------------
72 # ecriture
73 #----------------------------------------------------------------------------------------
74
75    def writeDefault(self,fn) :
76        print "je passe par writeDefault"
77        fileDico = fn[:fn.rfind(".")] + '.py'
78        f = open( str(fileDico), 'wb')
79        f.write( self.Entete + "Dico =" + str(self.Dico) )
80        f.close()
81
82 #----------------------------------------------------------------------------------------
83 #  analyse de chaque noeud de l'arbre 
84 #----------------------------------------------------------------------------------------
85
86    def generMCSIMP(self,obj) :
87         """recuperation de l objet MCSIMP"""
88
89         s=PythonGenerator.generMCSIMP(self,obj)
90         liste=obj.get_genealogie() 
91         nom=obj.etape.nom
92         if hasattr(obj.etape,'sdnom') and obj.etape.sdnom != None and obj.etape.sdnom != "" : 
93            nom = nom+ obj.etape.sdnom
94         if not(self.Dico.has_key(nom)) : dicoCourant={}
95         else : dicoCourant=self.Dico [nom]
96         if hasattr(obj.valeur,'nom'):dicoCourant[liste[-1]]=obj.valeur.nom
97         else : dicoCourant[liste[-1]]=obj.valeurFormatee
98         self.Dico[nom]=dicoCourant
99
100         return s
101
102