1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| def Lecture_Noeud(src):
content = src.readlines() # on lit tout
read_node = False # on n'est pas en train de lire un noeud
read_elt = False # ni un element
# initialisation des listes
deplacements = []
efforts = []
n = []
e = []
# c'est parti, on boucle sur les lignes
for ligne in content:
if '///' in ligne or '!!!' in ligne: # on saute les commentaires
continue
if read_node: # lecture noeud
if '/END' in ligne: # si on est au bout, on passe à l'itération suivante
read_node = False
continue
else: # sinon on lit
data = ligne.split('|')
deplacements.append(int(data[u]))
deplacements.append(int(data[v]))
efforts.append(float(data[fx]))
efforts.append(float(data[fy]))
n.append(ef.Noeud(int(data[Idt_Noeud]),float(data[coord_x]),float(data[coord_y])))
elif read_elt: # lecture elt
if '/END' in ligne: # si on est au bout, on passe à l'itération suivante
read_elt = False
continue
else: # sinon on lit
data = ligne.split('|')
id_1= int(data[Idt_Nd1])-1
id_2= int(data[Idt_Nd2])-1
e.append(ef.Barre( int(data[Idt_Ele]), n[id_1], n[id_2]))
print"type noeud",type(n[id_1])
e[-1].setProp(float(data[Module_E]),float(data[Section])) # -1 est le dernier de la liste, celui qui vient d'etre ajouté
else: # sinon, on teste l'entrée dans un noeud ou un elt
if 'Idt Noeud|' in ligne: # on entre dans un noeud et on initialise les index. Le | permet de ne pas lire le Idt Noeud dans le première ligne d'un element :)
read_node = True
headline = ligne.strip().split("|") #strip() élimine espaces, \t, \r, \n au début et à la fin
Idt_Noeud = headline.index("Idt Noeud")
coord_x=headline.index("coord x")
coord_y=headline.index("coord y")
u=headline.index("u")
v=headline.index("v")
fx=headline.index("fx")
fy=headline.index("fy")
elif 'Idt Element' in ligne:
read_elt = True
headline = ligne.strip().split("|")
Idt_Ele=headline.index("Idt Element")
Idt_Nd1=headline.index("Idt Noeud1")
Idt_Nd2=headline.index("Idt Noeud2")
Module_E=headline.index("Module E")
Section=headline.index("Section")
return (n,deplacements,efforts,e) |
Partager