]> SALOME platform Git repositories - tools/eficas.git/blob - Exemples/ex11/main.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Exemples / ex11 / main.py
1 # -*- coding: utf-8 -*-
2 """
3    Exemple d'utilisation avec un opérateur
4    Cet exemple construit un objet de définition (OP1) de type OPER
5    qui est composé d'un objet SIMP
6
7    Dans un premier temps on vérifie la conformite de l'objet 
8    de définition ::
9
10       cr=OP1.report()
11       if cr.estvide(): ...
12
13    Dans un deuxième temps, on construit plusieurs objets de type 
14    ETAPE dont la définition est OP1 et on vérifie la conformité
15    de ces objets.
16 """
17
18 import sys,traceback
19 sys.path[:0]=['../..','../../Aster']
20
21 from Accas import SIMP,FACT,OPER,ASSD
22
23 # Construction objet de définition
24
25 class concept(ASSD):
26    def __init__(self,etape):
27       self.etape=etape
28    def is_object(sd):
29       """ Retourne 1 si sd est du bon type par rapport à la classe """
30       return 0
31
32 class cata:
33    def __init__(self):
34       CONTEXT.unset_current_cata()
35       CONTEXT.set_current_cata(self)
36
37    def enregistre(self,commande):
38       return
39
40 c=cata()
41
42 OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
43            a=SIMP(typ='I'),
44            c=SIMP(typ='I',position='global'),
45            b=SIMP(typ=concept),
46           )
47
48 # Vérification objet de définition
49 cr=OP1.report()
50 if cr.estvide():
51    print "L'objet de définition est valide "
52 else:
53    print cr
54
55 class definition:
56   code="BIDON"
57
58 class context:
59    def __init__(self):
60       self.etapes=[]
61       self.definition=definition()
62       self.mc_globaux={}
63       self.cata_ordonne_dico=None
64       self.par_lot="OUI"
65       self.UserError="UserError"
66
67    def register(self,etape):
68       self.etapes.append(etape)
69       return self.etapes.index(etape)
70
71    def get_jdc_root(self):
72       return self
73
74    def create_sdprod(self,etape,nomsd):
75       try:
76          sd= etape.get_sd_prod()
77       except:
78          traceback.print_exc()
79          raise
80       if sd != None and etape.reuse == None:
81          # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
82          sd.nom=nomsd
83       return sd
84
85
86 cont=context()
87 CONTEXT.set_current_step(cont)
88
89 sd=concept(None)
90 # Création de l'objet ETAPE
91 co1=OP1(a=1,b=sd)
92
93 # Vérification objet ETAPE
94 cr= co1.etape.report()
95 if cr.estvide():
96    print "L'objet ETAPE  est valide " 
97 else:
98    print "L'objet ETAPE  n'est pas valide " 
99    print cr
100 assert co1.etape.isvalid()==1
101
102 # Test avec reutilisation de concept
103 co=OP1(reuse=co1,a=1,b=sd)
104 e=cont.etapes[1]
105 cr= e.report()
106 if cr.estvide():
107    print "L'objet ETAPE  est valide "
108 else:
109    print "L'objet ETAPE  n'est pas valide "
110    print cr
111
112 assert e.isvalid()==0