1. Prodotti
  2.   CAD
  3.   Python
  4.   FreeCAD

FreeCAD

 
 

Modeler CAD 3D parametrico open source

Crea, modifica e automatizza progetti 3D con l'API Python per ingegneria meccanica, architettura e design di prodotto.

Cos'è FreeCAD?

FreeCAD è un potente modellatore CAD parametrico 3D open source progettato per creare oggetti reali di qualsiasi dimensione. Supporta la modellazione parametrica, consentendo agli utenti di modificare facilmente i progetti regolando i parametri nella cronologia del modello. Costruito su un'architettura robusta che utilizza OpenCASCADE, Coin3D, Qt e Python, FreeCAD si rivolge all'ingegneria meccanica, all'architettura, al design di prodotto e altro ancora. La sua flessibile API Python consente a sviluppatori e utenti avanzati di automatizzare le attività, estendere le funzionalità e integrarsi con strumenti esterni. Che tu sia un hobbista, uno studente, un ingegnere o un educatore, FreeCAD offre una piattaforma di livello professionale per la progettazione 3D senza costi di licenza.

La forza principale di FreeCAD risiede nella sua capacità di collegare la progettazione 2D e la modellazione 3D, consentendo agli utenti di disegnare profili 2D vincolati geometricamente ed estruderli in caratteristiche 3D. Include banchi di lavoro specializzati per Progettazione Parti, Assemblaggio, Disegno, Architettura e altro. L'applicazione gira nativamente su Windows, macOS e Linux, garantendo una vasta accessibilità. Con il supporto attivo della comunità, una documentazione completa e un'architettura modulare di plugin, FreeCAD è ideale sia per i principianti sia per i professionisti CAD esperti che cercano un'alternativa trasparente, personalizzabile e gratuita agli strumenti proprietari. La sua integrazione con i flussi di lavoro di simulazione e produzione lo rende adatto all'intero ciclo di vita dello sviluppo del prodotto.

Previous Next

Iniziare con FreeCAD

FreeCAD è disponibile come installer precompilati per Windows, macOS e Linux nella pagina delle ultime versioni. Su Linux, è spesso disponibile tramite il gestore di pacchetti o il centro software della tua distribuzione. Per sviluppatori e utenti avanzati, la compilazione dal sorgente è supportata usando CMake. Il Manuale per sviluppatori ufficiale fornisce istruzioni dettagliate per la compilazione. Una volta installato, avvia FreeCAD ed esplora i banchi di lavoro tramite la barra degli strumenti. La console Python e il sistema di macro consentono automazione e personalizzazione. Per risorse di apprendimento, visita la guida Guida introduttiva sul wiki di FreeCAD.

Installa FreeCAD tramite gestore di pacchetti (Linux) o scarica

# Ubuntu/Debian
sudo apt install freecad

# macOS (Homebrew)
brew install --cask freecad

# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest

Modellazione 3D parametrica con API Python

Il motore di modellazione parametrica di FreeCAD consente agli utenti di definire oggetti con parametri modificabili, permettendo iterazioni di progetto semplicemente regolando i valori. L'API Python espone l'intero stack di modellazione, consentendo agli sviluppatori di creare geometrie complesse programmaticamente. Utilizzando i banchi di lavoro Part e PartDesign, è possibile generare primitive, eseguire operazioni booleane, aggiungere raccordi/sbavature e creare funzionalità come pad, tasche e rivoluzioni—tutto tramite Python. Questa capacità è essenziale per il design generativo, l'ottimizzazione topologica e l'integrazione del CAD con flussi di lavoro di simulazione o produzione. L'API supporta sia approcci orientati agli oggetti sia funzionali, rendendola adatta a scripting, macro e plugin completi. Con l'accesso al kernel OpenCASCADE sottostante, FreeCAD offre operazioni geometriche di livello professionale mantenendo facilità d'uso per i principianti.

Crea un cubo parametrico e modifica le sue dimensioni tramite Python

import FreeCAD as App
import Part

# Create document and object
doc = App.newDocument()
cube = doc.addObject("Part::Box", "Cube")
cube.Length = 10
cube.Width = 20
cube.Height = 30
App.ActiveDocument.recompute()

# Modify dimensions later
cube.Length = 15
App.ActiveDocument.recompute()

Banco di lavoro per schizzi 2D e disegno

FreeCAD include un ambiente di disegno 2D robusto integrato nel flusso di lavoro di modellazione 3D. Il banco di lavoro Sketcher consente agli utenti di disegnare profili 2D vincolati geometricamente usando linee, archi, cerchi e spline. Vincoli come orizzontale, verticale, parallelo, perpendicolare e vincoli dimensionali garantiscono un controllo preciso sulla geometria dello schizzo. Una volta completati, questi schizzi fungono da base per funzionalità 3D come estrusioni, rivoluzioni e loft. Inoltre, il banco di lavoro Draft fornisce strumenti per creare disegni vettoriali 2D senza vincoli, ideali per planimetrie architettoniche o illustrazioni tecniche. Il banco di lavoro Drawing consente la generazione di proiezioni ortografiche, viste in sezione e disegni annotati da modelli 3D, supportando documentazione tecnica conforme alle norme ISO con funzioni di quotatura, tolleranza e distinta base.

Crea uno schizzo, aggiungi vincoli ed estrudi per formare una caratteristica 3D

import FreeCAD as App
import Sketcher
import PartDesign

doc = App.newDocument()
Part = doc.addObject("PartDesign::Body")
Sketch = doc.addObject("Sketcher::SketchObject", "Sketch")
Sketch.Placement = App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0))

# Add geometry
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,0,0),App.Vector(10,0,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,0,0),App.Vector(10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,10,0),App.Vector(-10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,10,0),App.Vector(-10,0,0)),False)

# Add constraints
Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,1,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',2,2,3,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1))
Sketch.addConstraint(Sketcher.Constraint('Horizontal',0))
Sketch.addConstraint(Sketcher.Constraint('Vertical',1))

# Extrude
Pad = doc.addObject("PartDesign::Pad", "Pad")
Pad.Profile = Sketch
Pad.Length = 5
doc.recompute()

Progettazione di assiemi e risoluzione dei vincoli

FreeCAD supporta la modellazione complessa di assiemi tramite i banchi di lavoro Assembly4 e Assembly3, consentendo agli utenti di combinare più parti in meccanismi funzionali. Gli assiemi vengono costruiti utilizzando vincoli come coincidente, parallelo, perpendicolare, tangente e distanza per definire posizioni relative e movimenti tra i componenti. Il risolutore aggiorna automaticamente l'assieme quando qualsiasi parte o vincolo viene modificato, garantendo l'integrità del progetto. Questa capacità è fondamentale per compiti di ingegneria meccanica come treni di ingranaggi, collegamenti e progetti di alloggiamenti. Gli assiemi possono essere esportati come file STEP per la collaborazione con altri sistemi CAD, e la simulazione del moto è possibile tramite integrazione con strumenti esterni come Yade o script Python personalizzati. La natura parametrica di FreeCAD assicura che le modifiche alle singole parti si propaghino automaticamente all'assieme, riducendo gli aggiornamenti manuali e minimizzando gli errori.

Crea un assemblaggio semplice con due parti e applica un vincolo coincidente

import FreeCAD as App
import Assembly4

doc = App.newDocument("Assembly")
# Add parts
Part1 = doc.addObject("Part::Box", "Block1")
Part1.Length, Part1.Width, Part1.Height = 10, 10, 10
Part2 = doc.addObject("Part::Cylinder", "Cylinder1")
Part2.Radius, Part2.Height = 3, 15

# Create assembly
asm = doc.addObject("App::Part", "Assembly")
asm.Type = "Assembly"
asm.addObject(Part1)
asm.addObject(Part2)

# Apply constraint (simplified)
# In practice, use Assembly4's Constraint class for full functionality
App.ActiveDocument.recompute()

Strumenti BIM e di modellazione architettonica

FreeCAD include strumenti specializzati per il Building Information Modeling (BIM) e la progettazione architettonica tramite il banco di lavoro Arch. Gli utenti possono creare pareti, pavimenti, tetti, finestre, porte e elementi strutturali utilizzando oggetti parametrici intuitivi. Questi oggetti si aggiornano automaticamente quando i loro parametri cambiano, supportando la progettazione iterativa e la conformità ai codici edilizi. Il banco di lavoro supporta l'import/export IFC (Industry Foundation Classes), consentendo l'interoperabilità con software BIM standard del settore come Revit e Archicad. Funzionalità come la pianificazione del sito, la configurazione dell'analisi energetica e le quantità di materiale rendono FreeCAD adatto alla progettazione architettonica preliminare e alla documentazione. Inoltre, i banchi di lavoro Draft e Sketcher si integrano perfettamente per creare planimetrie e elevazioni precise, mentre il banco di lavoro Drawing genera documenti di costruzione con annotazioni, quote e tabelle.

Crea un muro e aggiungi una finestra usando l'API Python

import FreeCAD as App
import Arch

doc = App.newDocument("Building")
# Create wall
Wall = Arch.makeWall(length=5000, width=200, height=3000)
Wall.Base = Arch.makeSketch([0,0,0], [5000,0,0], [5000,200,0], [0,200,0])

# Create window
Window = Arch.makeWindow(1200, 1500)
Window.Base = Arch.makeSketch([1000,100,0], [2200,100,0], [2200,1600,0], [1000,1600,0])
Window.Host = Wall

App.ActiveDocument.recompute()
 Italiano