# lee_naca.py # este programa, abre un archivo externo generado por otros medios # donde la invormacion contenida representa para cada angulo d eincidencia # caracteristicas aerodinamicas de un perfil NACA # se filtran del archivo las lineas que comuenzan con el simbolo/ # posteriormente se almacenan dichos datos en listas y se los grafica import matplotlib.pyplot as plt import numpy as np archivo="NACA2412" f=open(archivo+".txt",'r') # el archivo debe estar en la misma carpeta que el programa alfa=[] # armo listas vacias para llenar las caracct. aerod. cl=[] cd=[] cdp=[] cm=[] top=[] bot=[] for linea in f.readlines(): #este for desgrana una a una la lista de lineas que lee readlines if not linea.find("/")==0: # me fijo si empieza con / #print linea dumm=linea.split(" ") # separo la linea en una lista de nombre dumm buscando las ocurrencias de " " #print "-",dumm[0],"-",float(dumm[1]) alfa.append(float(dumm[1])) # lleno las listas previamente definidas vacias mediante append cl.append(float(dumm[2])) cd.append(float(dumm[3])) cdp.append(float(dumm[4])) cm.append(float(dumm[5])) f.close() # cierro el archivo # grafico fig = plt.figure() plt.gcf().canvas.set_window_title('CARACT AERODINAMICAS') # defino el titulo de la ventana ax = fig.add_subplot(211) ax.plot(alfa, cl, color='lightblue', linewidth=1, label='Cl') ax.plot(alfa, cd, color='red', linewidth=1, label='Cd') ax.plot(alfa, cm, color='green', linewidth=1, label='Cm') leg=ax.legend() fig.suptitle(archivo) plt.xlabel('Alfa') plt.ylabel('C') plt.grid(True) x=[] top=[] f=open(archivo+"_perfil.txt",'r') x1=0. for linea in f.readlines(): #este for desgrana una a una la lista de lineas que lee readlines if not linea.find("/")==0: # me fijo si empieza con / print (linea) dumm=linea.split(" ") # separo la linea en una lista de nombre dumm buscando las ocurrencias de " " print ("-",dumm[0],"-",float(dumm[1])) x.append(float(dumm[0])) top.append(float(dumm[1])) f.close() bx = fig.add_subplot(212) plt.ylim(-0.1,0.1) bx.plot(x, top, color='lightblue', linewidth=1, label='Cl') plt.xlabel('Cuerda') plt.ylabel('%C') plt.grid(axis='x',color = 'green', linestyle = '--', linewidth = 0.5) plt.xticks(np.arange(0, 1.1, step=0.1)) fig.tight_layout() plt.show()