1 <?xml version='1.0' encoding='iso-8859-1' ?>
3 <property name="DefaultStudyID" value="1"/>
4 <objref name="CALCIUM_real" id="IDL:Ports/Calcium_Ports/Calcium_Real_Port:1.0"/>
5 <type name="string" kind="string"/>
6 <struct name="Engines/dataref">
7 <member name="ref" type="string"/>
9 <objref name="HOMARD_Boundary" id="IDL:HOMARD/HOMARD_Boundary:1.0"/>
10 <objref name="HOMARD_Cas" id="IDL:HOMARD/HOMARD_Cas:1.0"/>
11 <objref name="HOMARD_Hypothesis" id="IDL:HOMARD/HOMARD_Hypothesis:1.0"/>
12 <objref name="HOMARD_Iteration" id="IDL:HOMARD/HOMARD_Iteration:1.0"/>
13 <objref name="HOMARD_Zone" id="IDL:HOMARD/HOMARD_Zone:1.0"/>
14 <objref name="Study" id="IDL:SALOMEDS/Study:1.0"/>
15 <type name="bool" kind="bool"/>
16 <sequence name="boolvec" content="bool"/>
17 <type name="double" kind="double"/>
18 <sequence name="dblevec" content="double"/>
19 <objref name="file" id="file"/>
20 <type name="int" kind="int"/>
21 <sequence name="intvec" content="int"/>
22 <struct name="stringpair">
23 <member name="name" type="string"/>
24 <member name="value" type="string"/>
26 <sequence name="propvec" content="stringpair"/>
27 <objref name="pyobj" id="python:obj:1.0"/>
28 <sequence name="seqboolvec" content="boolvec"/>
29 <sequence name="seqdblevec" content="dblevec"/>
30 <sequence name="seqint" content="int"/>
31 <sequence name="seqintvec" content="intvec"/>
32 <sequence name="stringvec" content="string"/>
33 <sequence name="seqstringvec" content="stringvec"/>
34 <container name="DefaultContainer">
35 <property name="container_name" value="FactoryServer"/>
36 <property name="name" value="localhost"/>
38 <datanode name="DataInit">
39 <parameter name="MeshFile" type="string">
40 <value><string>/scratch/D68518/HOMARD_SVN/trunk/training/tet_aster_ther/maill.00.med</string></value>
43 <bloc name="Etude_Initialisation">
44 <inline name="StudyCreation">
45 <script><code><![CDATA[
52 import HOMARD_Iteration_idl
53 import HOMARD_Hypothesis_idl
54 import HOMARD_Zone_idl
55 import HOMARD_Boundary_idl
57 clt = orbmodule.client()
58 StudyManager = clt.Resolve("/myStudyManager")
59 NewStudy = StudyManager.NewStudy("my_homard_study")
61 <outport name="NewStudy" type="Study"/>
63 <service name="SetCurrentStudy">
64 <component>HOMARD</component>
65 <load container="DefaultContainer"/>
66 <method>SetCurrentStudy</method>
67 <inport name="theStudy" type="Study"/>
69 <control> <fromnode>StudyCreation</fromnode> <tonode>SetCurrentStudy</tonode> </control>
70 <datalink control="false">
71 <fromnode>StudyCreation</fromnode> <fromport>NewStudy</fromport>
72 <tonode>SetCurrentStudy</tonode> <toport>theStudy</toport>
75 <while name="Boucle_de_convergence">
76 <bloc name="Alternance_Calcul_HOMARD">
77 <inline name="Calcul">
78 <script><code><![CDATA[
82 rep_calc = "/scratch/D68518/HOMARD_SVN/trunk/training/tet_aster_ther"
83 rep_script = os.path.dirname("/scratch/D68518/Salome/HOMARD_SALOME/HOMARD_SRC/doc/files/ScriptAster.py")
84 sys.path.append(rep_script)
85 from ScriptAster import Script
88 argu.append("--rep_calc=" + rep_calc)
89 argu.append("--num=%d" % numCalc)
90 argu.append("--mesh_file=" + MeshFile)
92 Script_A = Script(argu)
94 Error, message_erreur, dico_resu = Script_A.compute ()
96 dico_resu["rep_calc"] = rep_calc
99 <inport name="numCalc" type="int"/>
100 <inport name="MeshFile" type="string"/>
101 <outport name="Error" type="int"/>
102 <outport name="dico_resu" type="pyobj"/>
104 <inline name="Analyse">
105 <script><code><![CDATA[
109 NumCalcP1 = NumCalc + 1
118 # Si le calcul a fini en erreur, on arrete :
121 MessInfo = "Erreur de calcul numero %d" % ErrCalc
125 # Si le fichier n'a pas ete defini, on arrete :
127 if dico_resu.has_key("FileName") :
128 FileName = dico_resu["FileName"]
130 MessInfo = "Le fichier du maillage n'a pas ete defini"
134 # Si le critere est respecte, on arrete :
136 if dico_resu.has_key("V_TEST") :
137 valeur_v = dico_resu["V_TEST"]
141 resu1.append(valeur_v)
144 rap = ( resu1[-1] - solu_m1 ) / solu_m1
145 if abs(rap) < 0.001 :
150 MessInfo = "La valeur a tester n'a pas ete fournie"
154 # Si on depasse le maximum, on arrete :
156 if NumCalc > NbCalcMax :
157 MessInfo = "La limite en nombre de calculs a ete atteinte : %d" % NbCalcMax
163 <inport name="NumCalc" type="int"/>
164 <inport name="ErrCalc" type="int"/>
165 <inport name="dico_resu" type="pyobj"/>
166 <outport name="Error" type="int"/>
167 <outport name="NumCalcP1" type="int"/>
168 <outport name="FileName" type="string"/>
169 <outport name="MessInfo" type="string"/>
171 <switch name="Adaptation" select="0">
173 <bloc name="Arret_boucle">
174 <inline name="Arret">
175 <script><code><![CDATA[
179 <inport name="MessInfo" type="string"/>
180 <outport name="OK" type="bool"/>
181 <outport name="MeshFile" type="string"/>
182 <outport name="MessInfo" type="string"/>
187 <bloc name="Adaptation_HOMARD">
188 <switch name="HOMARD_Initialisation" select="0">
191 <service name="LastIteration">
192 <node>Etude_Initialisation.SetCurrentStudy</node>
193 <method>LastIteration</method>
194 <inport name="CaseName" type="string"/>
195 <outport name="return" type="HOMARD_Iteration"/>
197 <service name="GetHypothesis">
198 <node>Etude_Initialisation.SetCurrentStudy</node>
199 <method>GetHypothesis</method>
200 <inport name="HypoName" type="string"/>
201 <outport name="return" type="HOMARD_Hypothesis"/>
203 <control> <fromnode>LastIteration</fromnode> <tonode>GetHypothesis</tonode> </control>
208 <service name="CreateCase">
209 <node>Etude_Initialisation.SetCurrentStudy</node>
210 <method>CreateCase</method>
211 <inport name="CaseName" type="string"/>
212 <inport name="MeshName" type="string"/>
213 <inport name="FileName" type="string"/>
214 <outport name="return" type="HOMARD_Cas"/>
216 <inline name="Case_Options">
217 <script><code><![CDATA[
219 # Repertoire d'adaptation
220 DirName = "/scratch/D68518/HOMARD_SVN/trunk/training/tet_aster_ther/HOMARD"
221 Case.SetDirName(DirName)
223 # Iteration 0 associee
224 Iter0 = Case.GetIter0()
226 <inport name="Case" type="HOMARD_Cas"/>
227 <outport name="Iter0" type="HOMARD_Iteration"/>
229 <service name="CreateHypothesis">
230 <node>Etude_Initialisation.SetCurrentStudy</node>
231 <method>CreateHypothesis</method>
232 <inport name="HypoName" type="string"/>
233 <outport name="return" type="HOMARD_Hypothesis"/>
235 <control> <fromnode>CreateCase</fromnode> <tonode>Case_Options</tonode> </control>
236 <control> <fromnode>Case_Options</fromnode> <tonode>CreateHypothesis</tonode> </control>
238 <datalink control="false">
239 <fromnode>CreateCase</fromnode> <fromport>return</fromport>
240 <tonode>Case_Options</tonode> <toport>Case</toport>
245 <inline name="HOMARD_Exec">
246 <script><code><![CDATA[
248 # Repertoire d'execution
249 DirName = "/scratch/D68518/HOMARD_SVN/trunk/training/tet_aster_ther"
254 # . Nom de l'hypothese
255 # --------------------
256 HypoName = Hypo.GetName()
260 # . Le mode d'adaptation : raffinement et deraffinement selon un champ
261 Hypo.SetAdapRefinUnRef(1, 1, 1)
263 Hypo.SetField("ERREUR")
264 # . Valeurs prises par maille
267 Hypo.AddComp("ERTABS")
269 Hypo.SetRefinThr(4, 3)
270 Hypo.SetUnRefThr(4, 4)
273 Hypo.SetTypeFieldInterp(2)
274 Hypo.AddFieldInterp("TEMPERATURE")
276 # . Taille de maille limite
280 # Nom de la future iteration
281 # ==========================
282 # . Nom de l'iteration precedente
283 LastIterName = LastIter.GetName()
284 aux = '%03d' % NumAdapt
285 # . A l'iteration 1, on complete
287 IterName = LastIterName + "_" + aux
288 # . Ensuite, on substitue
290 IterName = LastIterName[:-3] + aux
292 # Creation de l'iteration
293 # =======================
294 Iter = LastIter.NextIteration(IterName)
296 # Options de l'iteration
297 # ======================
298 # . Association de l'hypothese
299 Iter.AssociateHypo(HypoName)
301 # . Le nom du futur maillage
302 Iter.SetMeshName(MeshName)
304 # . Le fichier du futur maillage
305 aux = '%02d' % NumAdapt
306 MeshFile = os.path.join (DirName, "maill."+aux+".med")
307 Iter.SetMeshFile(MeshFile)
309 # . Le fichier contenant les champs
310 FileName = dico_resu["FileName"]
311 Iter.SetFieldFile(FileName)
315 Error = Iter.Compute(1,1)
317 # Arret de la boucle si erreur
318 # ============================
321 MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % NumAdapt
326 <inport name="NumAdapt" type="int"/>
327 <inport name="LastIter" type="HOMARD_Iteration"/>
328 <inport name="Hypo" type="HOMARD_Hypothesis"/>
329 <inport name="dico_resu" type="pyobj"/>
330 <outport name="OK" type="bool"/>
331 <outport name="MessInfo" type="string"/>
332 <outport name="MeshFile" type="string"/>
334 <control> <fromnode>HOMARD_Initialisation</fromnode> <tonode>HOMARD_Exec</tonode> </control>
335 <datalink control="false">
336 <fromnode>HOMARD_Initialisation.default_Iter_n.LastIteration</fromnode> <fromport>return</fromport>
337 <tonode>HOMARD_Exec</tonode> <toport>LastIter</toport>
339 <datalink control="false">
340 <fromnode>HOMARD_Initialisation.p1_Iter_1.Case_Options</fromnode> <fromport>Iter0</fromport>
341 <tonode>HOMARD_Exec</tonode> <toport>LastIter</toport>
343 <datalink control="false">
344 <fromnode>HOMARD_Initialisation.default_Iter_n.GetHypothesis</fromnode> <fromport>return</fromport>
345 <tonode>HOMARD_Exec</tonode> <toport>Hypo</toport>
347 <datalink control="false">
348 <fromnode>HOMARD_Initialisation.p1_Iter_1.CreateHypothesis</fromnode> <fromport>return</fromport>
349 <tonode>HOMARD_Exec</tonode> <toport>Hypo</toport>
354 <control> <fromnode>Calcul</fromnode> <tonode>Analyse</tonode> </control>
355 <control> <fromnode>Analyse</fromnode> <tonode>Adaptation</tonode> </control>
356 <datalink control="false">
357 <fromnode>Analyse</fromnode> <fromport>Error</fromport>
358 <tonode>Adaptation</tonode> <toport>select</toport>
360 <datalink control="false">
361 <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
362 <tonode>Calcul</tonode> <toport>numCalc</toport>
364 <datalink control="false">
365 <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
366 <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation</tonode> <toport>select</toport>
368 <datalink control="false">
369 <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
370 <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</tonode> <toport>NumAdapt</toport>
372 <datalink control="false">
373 <fromnode>Analyse</fromnode> <fromport>FileName</fromport>
374 <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase</tonode> <toport>FileName</toport>
376 <datalink control="false">
377 <fromnode>Analyse</fromnode> <fromport>MessInfo</fromport>
378 <tonode>Adaptation.default_Arret_boucle.Arret</tonode> <toport>MessInfo</toport>
380 <datalink control="false">
381 <fromnode>Calcul</fromnode> <fromport>Error</fromport>
382 <tonode>Analyse</tonode> <toport>ErrCalc</toport>
384 <datalink control="false">
385 <fromnode>Calcul</fromnode> <fromport>dico_resu</fromport>
386 <tonode>Analyse</tonode> <toport>dico_resu</toport>
388 <datalink control="false">
389 <fromnode>Calcul</fromnode> <fromport>dico_resu</fromport>
390 <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</tonode> <toport>dico_resu</toport>
392 <datalink control="false">
393 <fromnode>Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>MeshFile</fromport>
394 <tonode>Calcul</tonode> <toport>MeshFile</toport>
396 <datalink control="false">
397 <fromnode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>MeshFile</fromport>
398 <tonode>Calcul</tonode> <toport>MeshFile</toport>
401 <datalink control="false">
402 <fromnode>Alternance_Calcul_HOMARD.Analyse</fromnode> <fromport>NumCalcP1</fromport>
403 <tonode>Alternance_Calcul_HOMARD.Analyse</tonode> <toport>NumCalc</toport>
406 <inline name="Bilan">
407 <script><code><![CDATA[
408 from PyQt4 import QtGui
410 app = QtGui.QApplication(sys.argv)
411 MessageBoxTitle = "Bilan"
413 MessInfo = "Le calcul est converge."
414 QtGui.QMessageBox.information(None, MessageBoxTitle, MessInfo)
416 QtGui.QMessageBox.critical(None, MessageBoxTitle, MessInfo)
418 <inport name="MessInfo" type="string"/>
420 <control> <fromnode>DataInit</fromnode> <tonode>Etude_Initialisation</tonode> </control>
421 <control> <fromnode>Etude_Initialisation</fromnode> <tonode>Boucle_de_convergence</tonode> </control>
422 <control> <fromnode>Boucle_de_convergence</fromnode> <tonode>Bilan</tonode> </control>
423 <datalink control="false">
424 <fromnode>DataInit</fromnode> <fromport>MeshFile</fromport>
425 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Calcul</tonode> <toport>MeshFile</toport>
427 <datalink control="false">
428 <fromnode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>OK</fromport>
429 <tonode>Boucle_de_convergence</tonode> <toport>condition</toport>
431 <datalink control="false">
432 <fromnode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>OK</fromport>
433 <tonode>Boucle_de_convergence</tonode> <toport>condition</toport>
435 <datalink control="false">
436 <fromnode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>MessInfo</fromport>
437 <tonode>Bilan</tonode> <toport>MessInfo</toport>
439 <datalink control="false">
440 <fromnode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>MessInfo</fromport>
441 <tonode>Bilan</tonode> <toport>MessInfo</toport>
444 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase</tonode><toport>CaseName</toport>
445 <value><string>Calcul</string></value>
448 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Calcul</tonode><toport>numCalc</toport>
449 <value><int>0</int></value>
452 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation</tonode><toport>select</toport>
453 <value><int>0</int></value>
456 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation</tonode><toport>select</toport>
457 <value><int>0</int></value>
460 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_Iter_n.LastIteration</tonode><toport>CaseName</toport>
461 <value><string>Calcul</string></value>
464 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_Iter_n.GetHypothesis</tonode><toport>HypoName</toport>
465 <value><string>Hypo</string></value>
468 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateHypothesis</tonode><toport>HypoName</toport>
469 <value><string>Hypo</string></value>
472 <tonode>Boucle_de_convergence</tonode><toport>condition</toport>
473 <value><boolean>true</boolean></value>
476 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Analyse</tonode><toport>NumCalc</toport>
477 <value><int>0</int></value>
480 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Analyse</tonode><toport>ErrCalc</toport>
481 <value><int>0</int></value>
484 <tonode>Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase</tonode><toport>MeshName</toport>
485 <value><string>BOX</string></value>
488 <presentation name="__ROOT__" x="0" y="0" width="704" height="977" expanded="1" expx="0" expy="0" expWidth="704" expHeight="977" shownState="0"/>
489 <presentation name="DataInit" x="4" y="32" width="158" height="63" expanded="1" expx="4" expy="32" expWidth="158" expHeight="63" shownState="0"/>
490 <presentation name="Etude_Initialisation" x="175" y="32" width="158" height="38" expanded="0" expx="175" expy="32" expWidth="162.5" expHeight="40.5" shownState="1"/>
491 <presentation name="Etude_Initialisation.StudyCreation" x="0" y="0" width="158" height="36" expanded="1" expx="4" expy="32" expWidth="158" expHeight="36" shownState="2"/>
492 <presentation name="Etude_Initialisation.SetCurrentStudy" x="0" y="0" width="158" height="36" expanded="1" expx="163" expy="32" expWidth="158" expHeight="36" shownState="2"/>
493 <presentation name="Boucle_de_convergence" x="4" y="103" width="569" height="514" expanded="1" expx="4" expy="103" expWidth="569" expHeight="514" shownState="0"/>
494 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD" x="4" y="59" width="561" height="451" expanded="1" expx="10" expy="59" expWidth="561" expHeight="451" shownState="0"/>
495 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Calcul" x="4" y="32" width="158" height="90" expanded="1" expx="4" expy="32" expWidth="158" expHeight="90" shownState="0"/>
496 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Analyse" x="181" y="32" width="158" height="171" expanded="1" expx="181" expy="32" expWidth="158" expHeight="171" shownState="0"/>
497 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation" x="4" y="204" width="553" height="243" expanded="1" expx="4" expy="204" expWidth="553" expHeight="243" shownState="0"/>
498 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle" x="4" y="59" width="166" height="153" expanded="1" expx="4" expy="59" expWidth="166" expHeight="153" shownState="0"/>
499 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret" x="4" y="32" width="158" height="117" expanded="1" expx="4" expy="32" expWidth="158" expHeight="117" shownState="0"/>
500 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD" x="202" y="59" width="347" height="180" expanded="1" expx="202" expy="59" expWidth="347" expHeight="180" shownState="0"/>
501 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation" x="4" y="32" width="158" height="65" expanded="0" expx="4" expy="32" expWidth="167" expHeight="67.5" shownState="1"/>
502 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1" x="0" y="0" width="162.5" height="40.5" expanded="1" expx="4" expy="59" expWidth="162.5" expHeight="40.5" shownState="2"/>
503 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase" x="0" y="0" width="158" height="36" expanded="1" expx="4" expy="32" expWidth="158" expHeight="36" shownState="2"/>
504 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.Case_Options" x="0" y="0" width="158" height="36" expanded="1" expx="163" expy="32" expWidth="158" expHeight="36" shownState="2"/>
505 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateHypothesis" x="0" y="0" width="158" height="36" expanded="1" expx="322" expy="32" expWidth="158" expHeight="36" shownState="2"/>
506 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_Iter_n" x="0" y="0" width="162.5" height="40.5" expanded="1" expx="4" expy="1639.5" expWidth="162.5" expHeight="40.5" shownState="2"/>
507 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_Iter_n.LastIteration" x="0" y="0" width="158" height="36" expanded="1" expx="4" expy="32" expWidth="158" expHeight="36" shownState="2"/>
508 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_Iter_n.GetHypothesis" x="0" y="0" width="158" height="36" expanded="1" expx="163" expy="32" expWidth="158" expHeight="36" shownState="2"/>
509 <presentation name="Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec" x="185" y="32" width="158" height="144" expanded="1" expx="185" expy="32" expWidth="158" expHeight="144" shownState="0"/>
510 <presentation name="Bilan" x="350" y="32" width="158" height="63" expanded="1" expx="350" expy="32" expWidth="158" expHeight="63" shownState="0"/>