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