1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
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.
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.
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
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 Ce module contient le plugin generateur de fichier au format
25 from __future__ import print_function
26 from __future__ import absolute_import
28 from builtins import str
35 from .generator_python import PythonGenerator
39 Retourne les informations necessaires pour le chargeur de plugins
41 Ces informations sont retournees dans un dictionnaire
46 # La factory pour creer une instance du plugin
47 'factory' : MapGenerator,
51 class MapGenerator(PythonGenerator):
53 Ce generateur parcourt un objet de type JDC et produit
54 un texte au format eficas et
59 def gener(self,obj,format='brut',config=None,appli=None):
61 self.text=PythonGenerator.gener(self,obj,format)
62 if obj.isvalid() :self.genereExeMap()
66 def genereExeMap(self) :
68 Prepare le contenu du fichier de parametres python
69 peut ensuite etre obtenu au moyen de la fonction getTubePy().
71 nomSpec="spec_"+self.schema
72 self.texteEXE="from map.spec import %s;\n"%nomSpec
73 self.texteEXE+="node=%s.new();\n"%nomSpec
74 self.texteEXE+="node.getInputData();\n"
75 self.texteEXE+="node.setInputData(%s);\n"%self.dictValeur
76 self.texteEXE+="node.execute();\n"
77 self.texteEXE+="res=node.getOutputData();\n"
81 if not hasattr(self,'schema') : self.schema=""
85 def writeDefault(self, fn):
86 fileEXE = fn[:fn.rfind(".")] + '.py'
87 f = open( str(fileEXE), 'wb')
88 f.write( self.texteEXE )
91 def generMCSIMP(self,obj) :
93 Convertit un objet MCSIMP en texte python
94 Remplit le dictionnaire des MCSIMP
97 if obj.get_genealogie()[0][-6:-1]=="_PARA":
98 self.dictParam[obj.nom]=obj.valeur
100 self.dictValeur[obj.nom]=obj.valeur
101 s=PythonGenerator.generMCSIMP(self,obj)
105 def generRUN(self,obj,schema):
106 if not(obj.isvalid()) :
107 print ("TODO TODO TODO")
110 textComm=self.gener(obj)