1 #@ MODIF reca_mac Macro DATE 03/01/2011 AUTEUR BODEL C.BODEL
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
21 On regroupe ici les fonctions Python necessaires au lancement
22 de la fenetre graphique d'appariement manuel des MAC pour le
27 def extract_mac_array( mac_mode ):
29 data1 = mac_mode.EXTR_TABLE().Array('NUME_MODE_1','MAC')
30 data2 = mac_mode.EXTR_TABLE().Array('NUME_MODE_2','MAC')
32 N = int(NP.maximum.reduce(data1[:,0]))
33 M = int(NP.maximum.reduce(data2[:,0]))
34 mac = NP.zeros( (N,M) )
35 for i in range(data1.shape[0]):
36 i1 = int(data1[i,0])-1
37 i2 = int(data2[i,0])-1
38 mac[ i1, i2 ] = data1[i,1]
44 afreq = resu.LIST_PARA()['FREQ']
51 def __init__(self,resu1,resu2,mac):
52 from Calc_essai.outils_ihm import MacWindowFrame
53 from Tkinter import Tk, Frame, StringVar, Entry, Label, Button
62 titre = "MAC pour la base " + nom1 + " et " + nom2
66 mac_win = MacWindowFrame( self.root, titre, nom1, nom2, size)
67 mac_win.grid(row=0,column=0)
69 self.freq1 = get_modes(resu1)
70 self.freq2 = get_modes(resu2)
71 # la variable NUMERIQUE qui contient ces memes listes. On remplit
72 # ces valeurs quand on ferme la fenetre
75 # la variable GRAPHIQUE qui donne le contenu des listes
76 self.var_l1 = StringVar()
77 self.var_l2 = StringVar()
79 mac_win.set_modes(self.freq1,self.freq2,self.mac)
81 # Une deuxieme fentre, dans laquelle on peut modifier l'appariement des modes
83 f.grid(row=1, column=0,sticky='news')
84 f.columnconfigure(0,weight=1)
85 f.columnconfigure(1,weight=4)
87 Label(f,text="Liste de mode 1").grid(row=0,column=0,sticky='e')
88 l1 = Entry(f, textvariable=self.var_l1 )
89 l1.grid(row=0,column=1,sticky='ew')#,columnspan=3)
90 Label(f,text="Liste de mode 2").grid(row=1,column=0,sticky='e')
91 l2 = Entry(f, textvariable=self.var_l2 )
92 l2.grid(row=1,column=1,sticky='ew')#,columnspan=3)
93 close = Button(f,text='Fermer',command=self.close_win)
95 close.grid(row=2,column=1,sticky='e')
97 self.set_default_pair()
102 """rend une double liste donnant les appariements de modes"""
103 return [self.var_l1.get(),self.var_l2.get()]
105 def set_pair(self,liste):
106 """affiche une liste d'appariement donnee"""
107 self.var_l1.set(liste[0])
108 self.var_l2.set(liste[1])
110 def set_default_pair(self):
111 """ affiche la liste d'appariement par defaut. Le nombre de modes
112 correspond au plus petit nombre de modes entre resu1 et resu2"""
113 nb_mod = min(len(self.freq1),len(self.freq2))
114 self.var_l1.set(range(1,nb_mod+1))
115 self.var_l2.set(range(1,nb_mod+1))
118 self.l1 = self.var_l1.get()
119 self.l2 = self.var_l2.get()