Guida Didattica · Librerie Python per Grafica 3D e CAD

Altre Librerie 3D

Una panoramica comparativa: MeshLib, PyMesh, Matplotlib mplot3d e Blender bpy, e quando scegliere ciascuna.

0 di 5 passaggi completati

01Fondamenti

Perché conoscere più librerie 3D

Hai già visto Open3D, PyVista e CadQuery. L'ecosistema Python per il 3D è ampio, e ogni libreria eccelle in un compito specifico. Conoscerne l'esistenza e lo scopo ti aiuta a scegliere lo strumento giusto senza dover reinventare la ruota.

LibreriaPunto di forza
MeshLibElaborazione e riparazione di mesh molto veloce
PyMeshOperazioni geometriche avanzate su mesh (booleane, remeshing)
Matplotlib mplot3dGrafici 3D semplici, integrati con l'ecosistema dati che già conosci
Blender bpyMotore 3D completo: modellazione, animazione, rendering fotorealistico

02Concetti Chiave

🔧 MeshLib▶

Libreria pensata per elaborare mesh in modo molto veloce: riparare buchi, rimuovere rumore, semplificare geometrie complesse. Utile quando i dati 3D (es. da uno scanner) sono "sporchi" e vanno ripuliti prima di ogni altra elaborazione.

import meshlib.mrmeshpy as mr mesh = mr.loadMesh("modello.stl") mr.saveMesh(mesh, "modello_pulito.stl")
🧩 PyMesh▶

Specializzata in operazioni geometriche avanzate: unioni e sottrazioni booleane tra mesh, remeshing (rigenerare la triangolazione di una superficie), analisi della qualità della mesh.

import pymesh mesh_unita = pymesh.boolean(mesh_a, mesh_b, operation="union")
📊 Matplotlib mplot3d▶

L'estensione 3D di Matplotlib, che già conosci per i grafici 2D. Perfetta per grafici scientifici semplici in 3D (superfici, scatter plot 3D) senza dover imparare una libreria nuova.

from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(projection='3d') ax.scatter(x, y, z)
🎬 Blender bpy▶

bpy è il modulo Python integrato in Blender, il software di modellazione e animazione 3D open source più completo. Permette di automatizzare modellazione, materiali, luci, animazioni e rendering fotorealistico via script.

import bpy bpy.ops.mesh.primitive_cube_add(size=2) bpy.context.object.location = (0, 0, 1)
🧭 Come scegliere▶

Dati "sporchi" da pulire → MeshLib. Operazioni geometriche complesse tra mesh → PyMesh. Un grafico 3D veloce per un report dati → Matplotlib mplot3d. Rendering fotorealistico o animazione → Blender bpy.

03Checklist Pratica

Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.

Esempio per il punto 1

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.scatter(x, y, z)
plt.show()
1. Crea uno scatter plot 3D con MatplotlibUsa mplot3d per visualizzare 50 punti casuali in 3D, come nell'esempio sopra.

Esempio per il punto 2

X = np.linspace(-5, 5, 50)
Y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))

ax = plt.figure().add_subplot(projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()
2. Crea una superficie 3DUsa plot_surface() con una griglia di dati, come nell'esempio sopra.

Esempio per il punto 3

# Confronto concettuale: quale libreria useresti per...
# "Ho una scansione 3D piena di buchi da riparare"    → MeshLib
# "Devo unire due mesh complesse in una sola forma"    → PyMesh
# "Voglio un rendering fotorealistico con luci e materiali" → Blender bpy
3. Abbina scenario e libreriaScrivi 3 scenari di tuo pugno (diversi da quelli sopra) e indica quale libreria tra le 4 useresti per ciascuno.

Esempio per il punto 4

import bpy
bpy.ops.mesh.primitive_cube_add(size=2)
print(bpy.context.object.name)  # "Cube"
4. Crea un cubo con Blender bpySe hai Blender installato, esegui lo script sopra nel suo editor Python integrato.
5. Completa il quiz di verificaScendi in fondo alla guida e rispondi correttamente ad almeno l'80% delle domande.

04Glossario Interattivo

Tocca ogni termine per vederne la definizione.

05Quiz di Verifica

06Esercitazioni Pratiche

Esercizio 1

Grafico 3D di una funzione matematica

Usa Matplotlib mplot3d per visualizzare la superficie della funzione z = x² + y² su una griglia di valori da -5 a 5.

⏱ 20 minuti📦 Grafico 3D generato🖥️ Individuale
Esercizio 2

La tabella di confronto

Costruisci una tabella (anche solo su carta o in un file di testo) che confronti le 4 librerie di questa guida più Open3D, PyVista e CadQuery per: facilità d'uso, velocità, e ambito d'uso principale.

⏱ 20 minuti📦 Tabella comparativa di 7 librerie🖥️ Individuale
Esercizio 3

Trova l'errore: la libreria sbagliata per il compito

Un collega usa Matplotlib mplot3d per cercare di riparare automaticamente una mesh 3D con migliaia di buchi provenienti da uno scanner. Spiega perché questa non è la scelta più adatta, e quale libreria sarebbe più indicata.

⏱ 10 minuti📦 Spiegazione scritta🖥️ Individuale o in coppia

🎓 Attestato di completamento

Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.

0 / 5 passaggi completati