📐 Análisis y vistas técnicas de modelos STL con Python

Este módulo enseña cómo usar Python para apoyar el dibujo técnico desde archivos STL. Aprenderás a:

📚 Instalación de bibliotecas

pip install trimesh pandas openpyxl matplotlib

🔍 Código completo con vistas



		import trimesh
import matplotlib.pyplot as plt

# Cargar el archivo STL
malla = trimesh.load('cajita.stl')  # Reemplaza con tu archivo STL

# Función para guardar una vista con matplotlib
def guardar_vista(malla, elev, azim, nombre_archivo):
    # Crear una figura con proyección 3D
    fig = plt.figure(figsize=(6, 6))
    ax = fig.add_subplot(111, projection='3d')

    # Obtener vértices y caras
    vertices = malla.vertices
    caras = malla.faces

    # Crear colección de polígonos para el mesh
    mesh = trimesh.base.Trimesh(vertices=vertices, faces=caras)
    ax.plot_trisurf(
        mesh.vertices[:, 0],
        mesh.vertices[:, 1],
        mesh.vertices[:, 2],
        triangles=mesh.faces,
        color='lightblue',
        edgecolor='gray',
        linewidth=0.2,
        alpha=1.0
    )

    # Configurar la vista
    ax.view_init(elev=elev, azim=azim)
    ax.axis('off')

    # Ajustar límites
    limites = malla.bounds
    for i in range(3):
        medio = (limites[1][i] + limites[0][i]) / 2
        rango = (limites[1][i] - limites[0][i]) * 0.6
        ax.set_xlim(limites[0][0] - rango, limites[1][0] + rango)
        ax.set_ylim(limites[0][1] - rango, limites[1][1] + rango)
        ax.set_zlim(limites[0][2] - rango, limites[1][2] + rango)

    # Guardar imagen
    plt.tight_layout()
    plt.savefig(nombre_archivo)
    plt.close()

# Generar las vistas
guardar_vista(malla, elev=0, azim=0, nombre_archivo='vista_frontal.png')
guardar_vista(malla, elev=0, azim=90, nombre_archivo='vista_lateral.png')
guardar_vista(malla, elev=90, azim=0, nombre_archivo='vista_superior.png')
guardar_vista(malla, elev=45, azim=45, nombre_archivo='vista_isometrica.png')

print("✅ Vistas guardadas como imágenes PNG.")

📊 Resultado

El script generará las siguientes imágenes: