Salome HOME
PN : pour prendre en compte le nouveau panneau : UNIQUE_ASSD_Panel_Reel
[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
19 sys.path[:0]=['../..']
20
21 from Accas import SIMP,FACT,OPER
22
23 # Construction objet de définition
24
25 class concept:
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 context:
56    def __init__(self):
57       self.etapes=[]
58       self.mc_globaux={}
59       self.cata_ordonne_dico=None
60       self.par_lot="OUI"
61
62    def register(self,etape):
63       self.etapes.append(etape)
64       return self.etapes.index(etape)
65
66    def get_jdc_root(self):
67       return self
68
69    def create_sdprod(self,etape,nomsd):
70       sd= etape.get_sd_prod()
71       if sd != None and etape.reuse == None:
72          # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
73          sd.nom=nomsd
74       return sd
75
76
77 cont=context()
78 CONTEXT.set_current_step(cont)
79
80 sd=concept(None)
81 # Création de l'objet ETAPE
82 co1=OP1(a=1,b=sd)
83
84 # Vérification objet ETAPE
85 cr= co1.etape.report()
86 if cr.estvide():
87    print "L'objet ETAPE  est valide " 
88 else:
89    print "L'objet ETAPE  n'est pas valide " 
90    print cr
91
92 # Test avec reutilisation de concept
93 co=OP1(reuse=co1,a=1,b=sd)
94 e=cont.etapes[1]
95 cr= e.report()
96 if cr.estvide():
97    print "L'objet ETAPE  est valide "
98 else:
99    print "L'objet ETAPE  n'est pas valide "
100    print cr
101