Cómo Usar FreeCAD con Python: Guía Definitiva de Automatización OpenBIM
1. Introducción: Por qué FreeCAD y Python son el futuro del diseño AEC
La mayoría de los profesionales en arquitectura e ingeniería civil enfrentan el mismo cuello de botella: tareas repetitivas en software de modelado que consumen horas de trabajo manual. Plataformas comerciales imponen suscripciones anuales elevadas y formatos propietarios cerrados.
FreeCAD no es solo una alternativa gratuita y de código abierto; es un entorno paramétrico completamente modular construido sobre OpenCASCADE cuyo verdadero potencial se desbloquea mediante su API de Python. Todo lo que puedes hacer con el mouse dentro de la interfaz gráfica se puede automatizar, calcular y exportar con código limpio y reproducible.
En esta guía aprenderás cómo configurar tu entorno de desarrollo, escribir tus primeros scripts de geometría paramétrica y preparar tu flujo de trabajo para estándares abiertos OpenBIM.
–>
2. Requisitos y Configuración del Entorno
Para replicar este tutorial necesitas:
* FreeCAD 1.0 o 1.1 (Recomendado): Descarga la versión estable oficial para Windows, Linux o macOS.
* Entorno de Programación: Puedes usar la consola interna de Python en FreeCAD (Ver > Vistas > Consola Python) o un editor externo moderno como Antigravity IDE o VS Code.
* Librerías Python: Vienen preinstaladas con FreeCAD (FreeCAD, FreeCADGui, Part, Draft). Si deseas interoperabilidad BIM avanzada, instala ifcopenshell.
3. Paso a Paso: Tu Primer Script Paramétrico en FreeCAD
Paso 1: Inicializar el documento y cargar módulos
Abre la consola de Python o crea un archivo .py y comienza cargando los módulos esenciales:
import FreeCAD as App
import Part
# Crear un nuevo documento o conectar con el activo
nombre_doc = "Automatizacion_AEC"
doc = App.newDocument(nombre_doc) if not App.getDocument(nombre_doc) else App.getDocument(nombre_doc)
print(f"Documento activo: {doc.Name}")
Paso 2: Generar geometría paramétrica (Losa de cimentación)
En lugar de extruir manualmente bocetos, definimos variables de ingeniería:
# Variables paramétricas de diseño (en milímetros)
LARGO = 12000.0 # 12 metros
ANCHO = 8000.0 # 8 metros
ESPESOR = 300.0 # 30 cm
# Creación de caja paramétrica
losa = doc.addObject("Part::Box", "Losa_Cimentacion")
losa.Length = LARGO
losa.Width = ANCHO
losa.Height = ESPESOR
losa.Placement.Base = App.Vector(0, 0, -ESPESOR) # Nivel de desplante
doc.recompute()
print("Losa generada exitosamente.")
💡 Tip Técnico: En FreeCAD, cualquier cambio geométrico requiere llamar a
doc.recompute()para recalcular el árbol de dependencias gráficas.
Paso 3: Automatización en serie (Matriz de columnas con bucle For)
Generemos una retícula estructural completa en milisegundos:
# Parámetros de la estructura
COL_X, COL_Y = 400.0, 400.0 # Sección 40x40 cm
ALTURA = 3200.0 # 3.20 m de entrepiso
DISTANCIA_EJES = 4000.0 # 4 metros entre columnas
# Bucle para colocar columnas en los ejes
num_ejes_x = int(LARGO // DISTANCIA_EJES) + 1
num_ejes_y = int(ANCHO // DISTANCIA_EJES) + 1
contador = 1
for i in range(num_ejes_x):
for j in range(num_ejes_y):
pos_x = i * DISTANCIA_EJES
pos_y = j * DISTANCIA_EJES
columna = doc.addObject("Part::Box", f"Columna_{contador}")
columna.Length = COL_X
columna.Width = COL_Y
columna.Height = ALTURA
columna.Placement.Base = App.Vector(pos_x, pos_y, 0)
contador += 1
doc.recompute()
print(f"Se generaron {contador - 1} columnas automáticamente.")
4. Exportación a OpenBIM con IfcOpenShell
El verdadero valor en proyectos de construcción radica en la interoperabilidad sin software privativo. Puedes vincular tu script con ifcopenshell para enriquecer la geometría con propiedades IFC (IfcColumn, IfcSlab) y exportar directamente a formato .ifc estándar para coordinar en Navisworks, Solibri o BlenderBIM.
🏛️ Únete al Ecosistema Maestro BIM
Accede a mi repositorio personal de ingeniería OpenBIM. Obtén de inmediato todos los manuales y archivos base (.FCStd y Blender) de Vivienda, Estructuras, Sketcher y Python. Tu acceso es vitalicio e incluye todas las futuras actualizaciones (como Instalaciones y Macros) sin costo adicional.
Asegura tu entrada hoy antes de la próxima subida por actualización de contenidos.
5. Preguntas Frecuentes (FAQ)
¿FreeCAD es completamente gratuito para uso comercial?
Sí. FreeCAD está licenciado bajo LGPLv2+, lo que significa que puedes usarlo legalmente en proyectos comerciales de ingeniería y arquitectura sin pagar licencias de suscripción.
¿Qué versión de Python utiliza FreeCAD?
A partir de las versiones recientes (FreeCAD 0.21, 1.0 y 1.1), FreeCAD corre nativamente sobre Python 3.10 o Python 3.11, permitiendo utilizar librerías modernas de cálculo numérico y ciencia de datos como NumPy, Pandas e IfcOpenShell.
¿Se pueden automatizar proyectos completos sin abrir la interfaz gráfica?
Sí. FreeCAD cuenta con un ejecutable sin interfaz llamado FreeCADCmd que permite correr scripts en modo headless (por lotes o en servidores de automatización CI/CD).
6. Datos Estructurados JSON-LD (Schema FAQ)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿FreeCAD es completamente gratuito para uso comercial?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sí. FreeCAD cuenta con licencia LGPLv2+, lo que permite su uso en proyectos comerciales de ingeniería y arquitectura sin costos de licencia."
}
},
{
"@type": "Question",
"name": "¿Qué versión de Python utiliza FreeCAD?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Las versiones modernas de FreeCAD operan con Python 3.10 o 3.11, permitiendo la integración de paquetes como IfcOpenShell y NumPy."
}
},
{
"@type": "Question",
"name": "¿Se pueden automatizar proyectos completos en FreeCAD sin abrir la interfaz?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sí, FreeCAD incluye el ejecutable FreeCADCmd para ejecutar automatizaciones en modo headless desde terminal o servidores."
}
}
]
}
Preguntas Frecuentes (FAQ)
¿FreeCAD es completamente gratuito para uso comercial?
▼
¿Qué versión de Python utiliza FreeCAD?
▼
¿Se pueden automatizar proyectos completos en FreeCAD sin abrir la interfaz?
▼