7 Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande
\r
8 En clair : un chaine de longueur 24.
\r
10 def __convert__(cls,valeur):
\r
12 Fonction de verification de la longueur de la chaine
\r
14 if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:
\r
15 return valeur.strip()
\r
16 raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))
\r
17 __convert__ = classmethod(__convert__)
\r
21 Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande
\r
22 En clair : un chaine de longueur 24.
\r
24 def __convert__(cls,valeur):
\r
26 Fonction de verification de la longueur de la chaine
\r
28 if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:
\r
29 return valeur.strip()
\r
30 raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))
\r
31 __convert__ = classmethod(__convert__)
\r
35 def __init__(self,ntuple):
\r
38 def __convert__(self,valeur):
\r
39 if type(valeur) == types.StringType: return None
\r
40 if len(valeur) != self.ntuple: return None
\r
44 return "Tuple de %s elements" % self.ntuple
\r
49 class ObjetUtilisateur(ASSD): pass
\r
52 JdC = JDC_CATA(code='PATTERNS',
\r
57 EXAMPLE = PROC (nom = 'EXAMPLE',
\r
60 TITRE = SIMP(statut ='o', typ = 'TXM', defaut = 'Mon Etude',),
\r
61 TITRE2 = SIMP(statut ='f', typ = 'TXM', ),
\r
63 CREEOBJET = OPER (nom="CREEOBJET",
\r
65 sd_prod=ObjetUtilisateur,
\r
66 UIinfo={"groupes":("Group1",)},
\r
68 TITLE = SIMP(statut ='o', typ = 'TXM', defaut = '',),
\r
69 RB1 = SIMP(statut ='o', typ = 'I', into = [1,2,3],),
\r
70 RB2 = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,],),
\r
71 CB = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,7,8,9],),
\r
72 MBool = SIMP(statut ='o', typ = bool,),
\r
73 MFile = SIMP(statut ='o', typ = ('Fichier','All Files (*)')),
\r
74 MDir = SIMP(statut ='o', typ = 'Repertoire'),
\r
75 Reel1 = SIMP(statut ='o', typ = 'R'),
\r
76 Compl = SIMP(statut ='o', typ = 'C'),
\r
77 Tuple2 = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R'))),
\r
78 Tuple3 = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R'))),
\r
79 InSalome = SIMP(statut ='o', typ = SalomeEntry),
\r
81 LTITLE = SIMP(statut ='o', typ = 'TXM', max='**', defaut = '',),
\r
82 LRB2 = SIMP(statut ='o', typ = 'I', max = '**', into = [1,2,3,4,5,6,],),
\r
83 LCB = SIMP(statut ='o', typ = 'I', max = '**', homo="SansOrdreNiDoublon", into = [1,2,3,4,5,6,7,8,9],),
\r
84 LReel1 = SIMP(statut ='o', typ = 'R', max = "**"),
\r
85 LCompl = SIMP(statut ='o', typ = 'C', max = "**"),
\r
86 LTuple2 = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R')), max = "**"),
\r
87 LTuple3 = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R')), max = "**"),
\r
88 LInSalome = SIMP(statut ='o', typ = SalomeEntry, max="**"),
\r
90 LREEL = SIMP(statut ='f', typ = 'R', max='**', defaut = '',),
\r
93 UTILISEOBJET = PROC (nom="UTILISEOBJET",
\r
95 UIinfo={"groupes":("Group1",)},
\r
96 Obj = SIMP (statut ='o', typ = ObjetUtilisateur,)
\r
99 ESSAI_FACT=OPER(nom="ESSAI_FACT",
\r
100 sd_prod=ObjetUtilisateur,
\r
102 fr="Affectation de caractéristiques à des éléments de structure",
\r
103 regles = (AU_MOINS_UN('Poutre','Barre'),
\r
104 EXCLUS('Discret','Discret_2D'),),
\r
105 Info = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
\r
106 Verif = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),
\r
108 # ==============================================================================
\r
109 Poutre = FACT(statut= 'f',max= '**',
\r
110 Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
\r
112 b_generale = BLOC(condition = " Section == 'GENERALE'",
\r
113 regles = (UN_PARMI('Maille','GroupeMailles'),),
\r
114 Maille = SIMP(statut= 'f',typ= 'TXM' ,validators= NoRepeat(),max= '**'),
\r
115 GroupeMailles = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
\r
117 Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
\r
119 b_constant = BLOC(condition = "Vari == 'CONSTANT'",
\r
120 regles = (PRESENT_ABSENT('Table','Cara'),
\r
121 PRESENT_PRESENT('Table','Nom'),
\r
122 PRESENT_PRESENT('Cara','Valeur'),),
\r
123 Table = SIMP(statut= 'f',typ='TXM'),
\r
124 Nom = SIMP(statut= 'f',typ= 'TXM'),
\r
125 Cara = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,
\r
126 fr= "A,IY,IZ,JX sont des paramètres obligatoires",
\r
127 validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],
\r
128 into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),
\r
129 Valeur = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),
\r
132 b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",
\r
133 regles = (UN_PARMI('Maille','GroupeMailles'),),
\r
134 Maille = SIMP(statut= 'f',typ= 'TXM' ,validators= NoRepeat(),max= '**'),
\r
135 GroupeMailles = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
\r
136 Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
\r
137 b_constant = BLOC(condition = "Vari == 'CONSTANT'",
\r
138 Cara = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,
\r
139 validators = [NoRepeat(),
\r
140 OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
\r
141 AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
\r
142 into= ("H","EP", "HY","HZ","EPY","EPZ"),),
\r
143 Valeur = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),
\r
146 Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
\r
147 Fcx = SIMP(statut= 'f',typ= 'R'),
\r
148 Tuyau = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
\r
152 # ==============================================================================
\r
153 Barre = FACT(statut='f',max='**',
\r
154 regles = (UN_PARMI('Maille','GroupeMailles'),),
\r
155 Maille = SIMP(statut='f',typ='TXM' ,validators=NoRepeat(),max='**'),
\r
156 GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
\r
157 Section = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
\r
158 b_generale = BLOC(condition = "Section=='GENERALE'",
\r
159 regles = (PRESENT_ABSENT('Table','Cara'),
\r
160 PRESENT_PRESENT('Table','Nom'),
\r
161 PRESENT_PRESENT('Cara','Valeur')),
\r
162 Table = SIMP(statut='f',typ='TXM'),
\r
163 Nom = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),
\r
164 Cara = SIMP(statut='f',typ='TXM',into=("A",) ),
\r
165 Valeur = SIMP(statut='f',typ='R',min=1,max=1 ),
\r
167 b_rectangle = BLOC(condition = "Section=='RECTANGLE'",
\r
168 Cara = SIMP(statut='o',typ='TXM', min=1, max=4,
\r
169 validators = [NoRepeat(),
\r
170 OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
\r
171 AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
\r
172 into=("H","EP","HZ","HY","EPY","EPZ"), ),
\r
173 Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),
\r
174 b_cercle = BLOC(condition = "Section=='CERCLE'",
\r
175 Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),
\r
176 Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),
\r
179 # ==============================================================================
\r
180 Discret = FACT(statut='f',max='**',
\r
181 REPERE = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
\r
182 AMOR_HYST = SIMP(statut='f',typ='R' ),
\r
183 SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
\r
184 b_SYME_OUI = BLOC(condition="SYME=='OUI'",
\r
185 fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
\r
186 Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
\r
187 into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
\r
188 "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
\r
189 "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
\r
190 # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
\r
191 b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",
\r
192 fr = "Noeud: 3 valeurs (triangulaire supérieure par colonne)",
\r
193 regles = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),
\r
194 Noeud = SIMP(statut='f',typ='TXM' ,validators=NoRepeat(),max='**'),
\r
195 GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
\r
196 Maille = SIMP(statut='f',typ='TXM' ,validators=NoRepeat(),max='**'),
\r
197 GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),
\r
198 Valeur = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
\r
202 # ==============================================================================
\r
203 Discret_2D = FACT(statut='f',max='**',
\r
204 REPERE = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
\r
205 AMOR_HYST = SIMP(statut='f',typ='R' ),
\r
206 SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
\r