1 #@ MODIF reca_mac Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2009 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 from Tkinter import Tk, Frame, StringVar, Entry, Label, Button
28 from Meidee.modes import MacWindowFrame
30 def extract_mac_array( mac_mode ):
32 data1 = mac_mode.EXTR_TABLE().Array('NUME_MODE_1','MAC')
33 data2 = mac_mode.EXTR_TABLE().Array('NUME_MODE_2','MAC')
35 N = int(NP.maximum.reduce(data1[:,0]))
36 M = int(NP.maximum.reduce(data2[:,0]))
37 mac = NP.zeros( (N,M) )
38 for i in range(data1.shape[0]):
39 i1 = int(data1[i,0])-1
40 i2 = int(data2[i,0])-1
41 mac[ i1, i2 ] = data1[i,1]
47 afreq = resu.LIST_PARA()['FREQ']
54 def __init__(self,resu1,resu2,mac):
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()