import numpy as np
from stl import mesh
def create_wind_turbine_blade():
# Paramètres de base pour la pale
length = 10
width = 2
# Créer une grille de points pour la surface de la pale
t = np.linspace(0, length, 30)
s = np.linspace(0, width, 10)
t_grid, s_grid = np.meshgrid(t, s)
# Coordonnées de la pale
x = t_grid
y = s_grid
z = np.sin(t_grid / length * np.pi) * s_grid
# Créer le maillage STL
num_faces = (len(t) - 1) * (len(s) - 1) * 2
vertices = np.zeros(num_faces, dtype=mesh.Mesh.dtype)
idx = 0
for i in range(len(t) - 1):
for j in range(len(s) - 1):
# Définir les triangles pour le maillage
v1 = [x[i, j], y[i, j], z[i, j]]
v2 = [x[i + 1, j], y[i + 1, j], z[i + 1, j]]
v3 = [x[i + 1, j + 1], y[i + 1, j + 1], z[i + 1, j + 1]]
v4 = [x[i, j + 1], y[i, j + 1], z[i, j + 1]]
vertices['vectors'][idx] = [v1, v2, v3]
idx += 1
vertices['vectors'][idx] = [v1, v3, v4]
idx += 1
# Créer le maillage et sauvegarder dans un fichier STL
blade_mesh = mesh.Mesh(vertices)
blade_mesh.save('blade.stl')
create_wind_turbine_blade()