Compilar FreeCAD

FreeCAD: Cómo compilar la versión Dev en Kubuntu 25.10 (Python 3.13)

Si tienes una Impresora 3D, tarde o temprano vas a chocar con una verdad cósmica: sin modelado 3D no hay paraíso. Puedes descargar modelos, sí… pero cuando toca ajustar tolerancias, hacer una pieza a medida, reparar un STL, diseñar un soporte, o prototipar un producto, necesitas CAD.

El problema: muchos no pueden (o no quieren) pagar licencias tipo Fusion 360, SolidWorks, etc. Suscripciones, limitaciones, nube obligatoria, cambios de precio… ya sabes el cuento.

Ahí entra FreeCAD.


FreeCAD es un software de modelado 3D paramétrico y de código abierto (open source). “Paramétrico” significa que tus diseños se construyen con medidas, restricciones y operaciones (extrusiones, cortes, redondeos…), y luego puedes editar dimensiones sin empezar desde cero.

¿Por qué vale la pena?

  • Gratis y legal, sin cracks raros ni “licencias milagrosas”.
  • Tus archivos son tuyos: no dependes de una nube para abrir tu trabajo.
  • Multiplataforma (Linux/Windows/macOS).
  • Flexible: comunidad grande + extensiones (Addons) para casi todo.

En impresión 3D, FreeCAD sirve para:

  • Diseñar piezas mecánicas (soportes, adaptadores, carcasas, engranajes).
  • Crear modelos paramétricos (cambias una medida y todo se actualiza).
  • Exportar a STL / 3MF (para laminar en OrcaSlicer, Cura, PrusaSlicer…).
  • Hacer planos 2D (acotados) para fabricación o documentación.
  • Ensamblajes (con workbenches/addons).
  • Modelado para arquitectura/BIM (workbench BIM), y más.

En pocas palabras: si imprimes en 3D y te gusta que las piezas encajen, FreeCAD te da el control.


Las versiones “estables” suelen ir detrás de lo más nuevo. Compilar la rama main (desarrollo) tiene ventajas:

  • Accedes a mejoras recientes de rendimiento y correcciones.
  • Obtienes cambios de interfaz y herramientas nuevas antes que lleguen a repositorios.
  • En distros “bleeding edge” (como Kubuntu 25.10), compilar a veces es la forma más limpia de tenerlo funcionando fino.

Ojo nerd/realista: el famoso “Topological Naming Problem (TNP)” ha tenido mejoras y avances importantes a lo largo del tiempo, pero hablar de “solución total y definitiva” depende de versión y contexto. Lo correcto es decir: hay mejoras y herramientas para mitigar, y en ramas recientes suelen llegar más avances.


Guía Definitiva: Compilar FreeCAD (Dev) en Kubuntu 25.10 con Python 3.13

Estrategia híbrida: Entorno Virtual + Enlaces simbólicos (“injertos”)

Si eres usuario de Linux en versiones nuevas (Kubuntu 25.10) y te apasiona el diseño 3D, seguro te topaste con un muro al compilar FreeCAD: Python 3.13.

Algunas librerías clave (sobre todo bindings Qt/Python) pueden no estar listas en pip para 3.13, y mezclar paquetes del sistema con pip suele acabar en… tristeza.

La solución práctica:
usar un entorno virtual, pero enlazar (symlink) dentro del venv las librerías del sistema que ya existen como paquetes .deb.


Instalamos herramientas de compilación + dependencias. Usaremos PySide6 y Pivy desde el sistema, porque pip puede fallar con Python 3.13.





sudo apt update
sudo apt install -y \
  build-essential git cmake ninja-build ccache swig \
  libboost-all-dev libxerces-c-dev zlib1g-dev \
  libfmt-dev libspnav-dev libtiff-dev libyaml-cpp-dev \
  python3-dev libpython3-dev python3-venv python3-pip \
  qt6-base-dev qt6-tools-dev libqt6svg6-dev libqt6opengl6-dev \
  libcoin-dev libhdf5-dev libjsoncpp-dev libfreetype-dev \
  netgen-headers libgl1-mesa-dev \
  python3-pyside6.qtcore python3-pyside6.qtgui python3-pyside6.qtwidgets \
  python3-shiboken6 python3-pivy

Nota: los nombres de algunos paquetes pueden variar ligeramente según repositorios/edición, pero esta base suele funcionar bien en Kubuntu.


Creamos el venv, instalamos lo poco que sí conviene por pip, y luego enlazamos PySide6/Shiboken6/Pivy desde el sistema hacia el venv.





# 1. Crear directorio de trabajo
mkdir -p ~/dev/freecad_source
cd ~/dev

# 2. Crear entorno virtual
python3 -m venv freecad-venv

# 3. Activar entorno (haz esto siempre antes de compilar/ejecutar)
source ~/dev/freecad-venv/bin/activate

# 4. (Recomendado) actualizar pip/setuptools
pip install --upgrade pip setuptools wheel

# 5. Instalar dependencia útil (por ejemplo para BIM)
pip install lark

Ahora el “injerto” (symlinks):





# Ajusta la ruta si tu distro la maneja distinto, pero en Ubuntu/Kubuntu suele ser:
cd ~/dev/freecad-venv/lib/python3.13/site-packages

ln -s /usr/lib/python3/dist-packages/PySide6 .
ln -s /usr/lib/python3/dist-packages/shiboken6 .
ln -s /usr/lib/python3/dist-packages/pivy .





cd ~/dev/freecad_source
git clone https://github.com/FreeCAD/FreeCAD.git
cd FreeCAD
git submodule update --init --recursive

Creamos carpeta de build y configuramos. Usamos FREECAD_USE_EXTERNAL_PIVY=ON porque ya lo estamos aportando vía venv+symlink.

Nota: desactivo FEM (BUILD_FEM=OFF) para evitar dependencias extra. Si quieres FEM, hay que tener bien resuelto el stack de librerías asociadas.





mkdir -p build
cd build

cmake -G Ninja \
  -DBUILD_QT5=OFF \
  -DBUILD_ENABLE_CXX_STD=C++17 \
  -DCMAKE_BUILD_TYPE=Release \
  -DFREECAD_USE_EXTERNAL_PIVY=ON \
  -DFREECAD_USE_EXTERNAL_SMESH=OFF \
  -DBUILD_FEM=OFF \
  -DPython3_EXECUTABLE=$HOME/dev/freecad-venv/bin/python3 \
  ..

A veces CMake se pone exquisito comparando versión de Coin3D del sistema vs la detectada por Pivy. Si te falla en algo tipo SetupCoin3D.cmake:

  1. Abre el archivo:




nano ../cmake/FreeCAD_Helpers/SetupCoin3D.cmake
  1. Busca el bloque if(...) donde compara versiones (cerca del inicio del archivo).
  2. Comenta temporalmente esas líneas (con #) para saltarte la comprobación.

Es un workaround pragmático: si tu Coin/Pivy están funcionando, esa validación puede ser más “policía” que “médico”.






ninja

Creamos un script para que FreeCAD encuentre las librerías “inyectadas”.





cat << 'EOF' > ~/dev/freecad_source/FreeCAD/build/bin/FreeCAD_Launcher.sh
#!/bin/bash
VENV_PATH="$HOME/dev/freecad-venv"
FREECAD_BIN="$HOME/dev/freecad_source/FreeCAD/build/bin/FreeCAD"
SITE_PACKAGES="$VENV_PATH/lib/python3.13/site-packages"

export PYTHONPATH="$SITE_PACKAGES:$PYTHONPATH"
exec "$FREECAD_BIN" "$@"
EOF

chmod +x ~/dev/freecad_source/FreeCAD/build/bin/FreeCAD_Launcher.sh

Acceso directo en el menú:





cat <<EOF > ~/.local/share/applications/freecad-dev.desktop
[Desktop Entry]
Type=Application
Version=1.0
Name=FreeCAD Dev
Comment=Compilado desde fuente
Exec=$HOME/dev/freecad_source/FreeCAD/build/bin/FreeCAD_Launcher.sh %F
Icon=$HOME/dev/freecad_source/FreeCAD/src/Gui/Icons/freecad.svg
Terminal=false
Categories=Graphics;Science;Engineering;
EOF

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra