1. Productos
  2.   CANALLA
  3.   Python
  4.   FreeCAD

FreeCAD

 
 

Modelador CAD 3D paramétrico de código abierto

Crea, modifica y automatiza diseños 3D con la API de Python para ingeniería mecánica, arquitectura y diseño de productos.

¿Qué es FreeCAD?

FreeCAD es un potente modelador CAD paramétrico 3D de código abierto diseñado para crear objetos del mundo real de cualquier tamaño. Soporta modelado paramétrico, lo que permite a los usuarios modificar fácilmente los diseños ajustando los parámetros en el historial del modelo. Construido sobre una arquitectura robusta que utiliza OpenCASCADE, Coin3D, Qt y Python, FreeCAD se dirige a la ingeniería mecánica, arquitectura, diseño de productos y más. Su flexible API de Python permite a desarrolladores y usuarios avanzados automatizar tareas, ampliar funcionalidades e integrarse con herramientas externas. Ya seas aficionado, estudiante, ingeniero o educador, FreeCAD ofrece una plataforma de nivel profesional para el diseño 3D sin costos de licencia.

La fortaleza principal de FreeCAD radica en su capacidad para unir el boceto 2D y el modelado 3D, permitiendo a los usuarios dibujar perfiles 2D con restricciones geométricas y extruirlos en características 3D. Incluye bancos de trabajo especializados para Diseño de piezas, Ensamblaje, Dibujo, Arquitectura y más. La aplicación se ejecuta de forma nativa en Windows, macOS y Linux, garantizando una amplia accesibilidad. Con el apoyo activo de la comunidad, documentación completa y una arquitectura modular de complementos, FreeCAD es ideal tanto para principiantes como para profesionales CAD experimentados que buscan una alternativa transparente, personalizable y gratuita a las herramientas propietarias. Su integración con flujos de trabajo de simulación y fabricación lo hace adecuado para todo el ciclo de vida del desarrollo de productos.

Previous Next

Comenzando con FreeCAD

FreeCAD está disponible como instaladores precompilados para Windows, macOS y Linux en la página de últimas versiones. En Linux, a menudo está disponible a través del gestor de paquetes o centro de software de tu distribución. Para desarrolladores y usuarios avanzados, la compilación desde el código fuente es compatible usando CMake. El Manual del Desarrollador oficial proporciona instrucciones detalladas de compilación. Una vez instalado, inicia FreeCAD y explora los bancos de trabajo mediante la barra de herramientas. La consola de Python y el sistema de macros permiten automatización y personalización. Para recursos de aprendizaje, visita la guía Guía de inicio en la wiki de FreeCAD.

Instalar FreeCAD mediante el gestor de paquetes (Linux) o descargar

# Ubuntu/Debian
sudo apt install freecad

# macOS (Homebrew)
brew install --cask freecad

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

Modelado 3D paramétrico con la API de Python

El motor de modelado paramétrico de FreeCAD permite a los usuarios definir objetos con parámetros editables, habilitando iteraciones de diseño simplemente ajustando valores. La API de Python expone toda la pila de modelado, permitiendo a los desarrolladores crear geometrías complejas programáticamente. Usando los bancos de trabajo Part y PartDesign, puedes generar primitivas, realizar operaciones booleanas, añadir chaflanes/redondeos y crear características como pads, pockets y revoluciones, todo mediante Python. Esta capacidad es esencial para el diseño generativo, la optimización topológica y la integración de CAD con flujos de trabajo de simulación o fabricación. La API soporta tanto enfoques orientados a objetos como funcionales, lo que la hace adecuada para scripts, macros y complementos completos. Con acceso al kernel subyacente OpenCASCADE, FreeCAD ofrece operaciones geométricas de nivel profesional manteniendo la facilidad de uso para principiantes.

Crear un cubo paramétrico y modificar sus dimensiones mediante 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()

Entorno de bocetos y dibujo 2D

FreeCAD incluye un robusto entorno de bocetos 2D integrado con la cadena de modelado 3D. El banco de trabajo Sketcher permite a los usuarios dibujar perfiles 2D con restricciones geométricas usando líneas, arcos, círculos y splines. Restricciones como horizontal, vertical, paralela, perpendicular y restricciones dimensionales garantizan un control preciso sobre la geometría del boceto. Una vez completados, estos bocetos sirven como base para características 3D como extrusiones, revoluciones y lofts. Además, el banco de trabajo Draft proporciona herramientas para crear dibujos vectoriales 2D sin restricciones, ideal para planos de planta arquitectónicos o ilustraciones técnicas. El banco de trabajo Drawing permite la generación de proyecciones ortográficas, vistas de sección y dibujos anotados a partir de modelos 3D, apoyando documentación técnica conforme a ISO con dimensionado, tolerancias y funciones de lista de materiales.

Crear un boceto, añadir restricciones y extruir para formar una característica 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()

Diseño de ensamblajes y resolución de restricciones

FreeCAD admite el modelado de ensamblajes complejos a través de los bancos de trabajo Assembly4 y Assembly3, lo que permite a los usuarios combinar múltiples piezas en mecanismos funcionales. Los ensamblajes se construyen utilizando restricciones como coincidente, paralela, perpendicular, tangente y de distancia para definir posiciones y movimientos relativos entre los componentes. El solucionador actualiza automáticamente el ensamblaje cuando se modifica cualquier pieza o restricción, garantizando la integridad del diseño. Esta capacidad es vital para tareas de ingeniería mecánica como trenes de engranajes, enlaces y diseños de carcasas. Los ensamblajes pueden exportarse como archivos STEP para la colaboración con otros sistemas CAD, y la simulación de movimiento es posible mediante la integración con herramientas externas como Yade o scripts personalizados de Python. La naturaleza paramétrica de FreeCAD asegura que los cambios en piezas individuales se propaguen automáticamente al ensamblaje, reduciendo actualizaciones manuales y minimizando errores.

Crear un ensamblaje simple con dos piezas y aplicar una restricción 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()

Herramientas BIM y de modelado arquitectónico

FreeCAD incluye herramientas especializadas para la Modelación de Información de Construcción (BIM) y el diseño arquitectónico a través del banco de trabajo Arch. Los usuarios pueden crear paredes, pisos, techos, ventanas, puertas y elementos estructurales utilizando objetos paramétricos intuitivos. Estos objetos se actualizan automáticamente cuando sus parámetros cambian, apoyando el diseño iterativo y el cumplimiento de los códigos de construcción. El banco de trabajo soporta la importación/exportación de IFC (Industry Foundation Classes), lo que permite la interoperabilidad con software BIM estándar de la industria como Revit y Archicad. Funciones como la planificación del sitio, la configuración del análisis energético y los cálculos de materiales hacen que FreeCAD sea adecuado para el diseño arquitectónico y la documentación en etapas tempranas. Además, los bancos de trabajo Draft y Sketcher se integran sin problemas para crear planos de planta y elevaciones precisas, mientras que el banco de trabajo Drawing genera documentos de construcción con anotaciones, dimensiones y cronogramas.

Crear una pared y añadir una ventana usando la API de 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()
 Español