FreeCADLe nom FreeCAD est la juxtaposition de Free (ou libre) et de CAD, qui provient de l'acronyme anglo-saxon Computer Aided Design (CAO en français). est un logiciel libre et open source, de CAO 3D paramétrique, publié sous licence LGPLv2+.
Il permet d'utiliser la modélisation volumique (ou CSG), la modélisation fonctionnelle (constituée par des sous-jacentes), et depuis la v.0.17 la modélisation surfacique (ou B-Rep). Ces trois types de modélisation sont entièrement paramétrables.
Attention ! La dernière version (1.0.2) ne prend plus en charge Windows 7 et antérieures.
D'abord destiné aux métiers du génie mécanique, avec la CMAO, FreeCAD s'est ensuite étendu à d'autres branches de l'ingénierie, comme l'architecture, grâce à son module BIM. Il supporte la MEF et peut être utilisé pour l'IAO, la FAO et la GCVP. FreeCAD possède une architecture modulaire et a vocation à devenir un logiciel de CFAO plus généraliste. Grâce à sa nature libre et open-source, les utilisateurs peuvent étendre ses possibilités en ajoutant divers plug-ins gratuits, ou en se servant du langage de programmation Python.
Genèse du projet L'histoire du logiciel commence en , lorsque Jürgen RiegelJürgen Riegel ne participe plus au développement actif de FreeCAD depuis fin 2015., un informaticien allemand, spécialiste des capteurs 3D et de la reconstruction de surface (des modèles 3D), commence à travailler sur le projet Cas.CADE. C'est un framework comprenant un noyau de modélisation géométrique. Publié en 2000, sous une licence open source et renommé Open CASCADE, puis Open CASCADE Technology ; ce framework a permis de réaliser un programme de CAO 3D open source, sans réécrire tout le code.
À partir de QSpect, un développement logiciel basé autour d'Open CASCADE, Jürgen Riegel le nomme tout d'abord : GOM ; pour Graphical Object Modeler, avec l'idée d'utiliser Python et Qt. Le , le logiciel est enregistré avec son nouveau nom : FreeCAD. Werner Meyer, l'un des collègues allemand qui participait au projet QSpect, est allé chez Imetric. C'est une société qui recherchait un nouveau logiciel pour ses capteurs 3D. En 2005, elle fait don de la majeure partie de son module de maillage, à la communauté Open Source et utilise FreeCAD, comme base logicielle pour son système de capteurs. Depuis ce temps, Werner Meyer est un développeur très actif de FreeCAD. En 2008, Yorik van Havre, un architecte belge, se joint au duo et commence à développer le module architecture, ainsi que la documentation. D'autres sont venus renforcer cette équipe par la suite.
Caractéristiques générales vignette|Modèle 3D d'un roulement à billes fonctionnant sur FreeCAD 0.10 (version Windows). FreeCAD est un modeleur à conception paramétrique, qui propose des outils similaires à CATIA, NX, SolidWorks et Solid Edge. Pour l'instant, il n'est cependant pas possible d'utiliser l'ingénierie concourante, comme sur les gros logiciels de GCVP ; où plusieurs concepteurs travaillent simultanément sur le même document. C'est par contre possible pour la documentation collaborative, ou pour le développement du logiciel sur Github.
FreeCAD utilise des bibliothèques logicielles open-source dans le domaine des sciences numériques comme Open CASCADE Technology, un puissant noyau géométrique (c'est le kernel, le cœur de FreeCAD). Ce programme dispose aussi, d'un modèle de représentation de scènes 3D, conforme au format Open Inventor et fourni par . L'interface graphique est bâtie sur Qt et FreeCAD fonctionne donc de façon identique sur les plateformes Windows, macOS et GNU/Linux.
L'architecture logicielle modulaire de FreeCAD, lui permet de se développer, sans devoir modifier les couches profondes de l'application ; les différents ateliers (ou modules) du programme étant situés à un niveau plus superficiel. Dans la version 0.18, ces différents ateliers sont une vingtaine et ils possèdent chacun des fonctions spécifiques.
Depuis 2015, FreeCAD intègre un module « OpenSCAD » toujours en développement, destiné justement à offrir une interopérabilité avec le logiciel libre OpenSCAD. Réciproquement, FreeCAD peut aussi être utilisé comme bibliothèque par d'autres programmes.
Comme de nombreux modeleurs CAO 3D modernes, FreeCAD possède un composant 2D pour faciliter la conversion de modèles 3D en dessin 2D ; l'atelier Tech Draw introduit avec la v.0.17 (auparavant l'atelier Drawing) se chargeant de cette fonction. Toutefois le dessin 2D direct (comme AutoCAD) n'est pas la raison d'être de ce logiciel, pas plus que l'animation ou la manipulation de modèles 3D, comme Blender, Maya ou Cinema 4D qui utilisent la modélisation polygonale. Le module Mesh (maillage) de FreeCAD lui permet cependant de s'adapter à de tels environnements.
Des efforts sont faits pour étendre FreeCAD dans des secteurs comme l'architecture, avec l'ajout de fonctionnalités BIM au module Arch, ou en direction de l'électrotechnique et de la construction.
FreeCAD intègre un module de calcul, utilisant la méthode des éléments finis, basée sur le logiciel Calculix.
Au-delà des fonctionnalités proposées par l'interface graphique, FreeCAD propose à ses utilisateurs avancés de piloter et de personnaliser le logiciel via un interpréteur et une API Python dédié. L'utilisation de la plateforme FreeCAD par ce biais nécessite des connaissances en programmation, mais la documentation officielle met à disposition un tutoriel de découverte du langage Python, ainsi que des exemples de scripts pour se familiariser avec cet environnement.
Depuis fin 2020, le pour les modèles 3D de CADENAS, appelé 3DfindIT.com, est intégré à FreeCAD.
Conception paramétrique
Modélisation volumique
Dans la modélisation volumique traditionnelle (ou CSG), on utilise des primitives simples, comme les cubes, les sphères et les cylindres ; que l'on va transformer à l'aide d'opérations booléennes, pour créer des solides plus complexes. Dans l'animation de gauche, réalisée avec le module Part (atelier pièce) du logiciel, une sphère et un cube sont intersectés (common dans l'arborescence), ce qui produit un nouveau volume. A ce nouveau volume, on va soustraire (cut dans l'arborescence) trois cylindres précédemment fusionnés (fusion dans l'arborescence).
Les primitives doivent être placées précisément les unes par rapport aux autres pour obtenir le résultat escompté. Cependant du fait de la conception paramétrique, il est possible à tout moment, de modifier les positions relatives des primitives, en augmentant ou en diminuant l'interpénétration des volumes. On peut aussi faire varier les angles, ou les dimensions (longueur, largeur, profondeur) de ces primitives.
C'est d'ailleurs ce qui est fait avec les diamètres des trois cylindres, qui sont agrandis à deux reprises après leur fusion. Dans cette animation GIF, les rotations sont réalisées sur les solides (et non sur la vue 3D) par incrément successif, à partir de l'onglet « Propriété » qui permet d'éditer les paramètres (non visibles dans l'animation pour éviter la stroboscopie des images). On peut observer en haut à gauche, un onglet intitulé « Modèle » et en dessous un autre intitulé « Etiquettes & attributs ». C'est là que se trouve l'arbre de construction (ou arborescence), contenant les primitives et les opérations booléennes effectuées.
Modélisation fonctionnelle Dans la modélisation fonctionnelle ou modélisation directe, il n’est plus nécessaire de s’appuyer sur des opérations booléennes. En CAO, une fonction est une opération qui modifie la géométrie d’un objet. Des fonctions spécifiques sont déjà intégrées à certains modules ou ateliers. Nous avons par exemple les fonctions « chanfrein » et « congé » dans le module Part (l’atelier Pièce) qui permettent de travailler directement sur la pièce, comme si on l’usinait en temps réel.
Il existe toutes sortes de fonctions, elles peuvent être additive, soustractive, basée sur un profil ou sur des primitives géométriques (comme les solides de l’atelier Part utilisés en CSG), etc. Au fur et à mesure que de nouvelles fonctions sont ajoutées au modèle, chaque fonction s’appuie sur la fonction précédente. Là encore, on retrouve l’intérêt de la conception paramétrique, les fonctions étant listées de façon séquentielle dans l’arborescence du modèle, une modification en amont est répercutée en aval et finalement sur l’objet.
Dans l’animation GIF de droite, un support mécanique est réalisé d’après un tutoriel de HarryGeier ; en utilisant l'atelier PartDesign (conception de pièces) et Sketcher (esquisseur). Une esquisse « variationnelle » en 2D, constituant la fonction de base de notre objet (ou fonction sous-jacente) est d’abord dessinée, puis contrainte à l'aide de paramètres et enfin extrudée. Une nouvelle esquisse, créée sur la face arrière va permettre de réaliser une cavité ; puis nous allons rendre la pièce symétrique, grâce à une fonction de symétrie intégrée à l’atelier. Une autre esquisse va servir pour une extrusion et la pièce va à nouveau être rendue symétrique. Enfin une dernière cavité, créée à partir de deux nouvelles esquisses sur la face avant et arrière, va donner à ce support mécanique son aspect final.
La modélisation fonctionnelle (ou modélisation directe) permet de réaliser beaucoup plus rapidement que la modélisation volumique traditionnelle, des pièces relativement complexes. Il est aussi plus facile et plus direct de modifier ou d'éditer les paramètres qui contraignent les esquisses. Cependant, les corps créés avec l'atelier PartDesign, peuvent être soumis à un problème de dénomination topologique.
Formats de fichiers pris en charge FreeCAD utilise son propre format de fichier, le FreeCAD Standard file format (.FCStd). Il s'agit d'un fichier zip standard qui contient des fichiers dans une certaine structure. Les fichiers Document.xml contiennent des objets définis de manière géométrique et paramétrique mais sans leur représentation visuelle ; contrairement à ceux du type GuiDocument.xml qui sont leurs équivalents GUI et sont plus complets.
En plus du format développé par FreeCAD, les documents peuvent être exportés et importés dans les formats de fichier suivants : DXF, SVG, VRML, STEP, IGES, STL, OBJ, PLY, DAE (Collada), SCAD (OpenSCAD), IV (Inventor) et IFC .
Prise en charge du DWG La prise en charge par FreeCAD de l'important format de fichier DWG est problématique, en raison de l'incompatibilité des licences logicielles avec la bibliothèque GNU LibreDWG. Cette dernière a initié une véritable alternative libre, à la bibliothèque Open Design Alliance, à « code source disponible » (avec plus tard les convertisseurs de fichier Teigha et ODA) et avec une licence GPLv3. Comme FreeCAD (et aussi LibreCAD) ont des dépendances avec Open CASCADE Technology, qui avant la version 6.7.0 n'était compatible qu'avec la GPLv2, ils ne pouvaient pas utiliser la bibliothèque GNU LibreDWG car les licences GPLv2 et GPLv3 sont essentiellement . Open CASCADE Technology (OCCT) est contactée par l'équipe Debian en 2009 et en 2012, il est envisagé une double licence concernant la bibliothèque d'OCCT ; mais finalement le mouvement est reporté. Toujours en 2012, une demande est adressée à la FSF pour un de GNU LibreDWG en GPLv2 ou LGPLv3, mais cette dernière est rejetée.
Depuis 2014 avec la version 0.14 de FreeCAD, incluant la nouvelle version LGPL d'Open Cascade, la version sous licence BSD de Coin3D et la suppression de PyQT, FreeCAD est désormais dépourvu de GPL. Cependant, LibreDWG n'est pas adopté. Le logiciel est capable d'importer et d'exporter un sous-ensemble limité du format DWG via le convertisseur ODA (l'ancienne bibliothèque OpenDWG).
FAO Un module de FreeCAD, l'atelier Path, est disponible pour produire des instructions en G-Code, pour les machines à commande numérique, comme les fraiseuses et les tours CNC, pour la technologie soustractive, ou les imprimantes 3D pour la technologie additive. Cet atelier offre une API de script Python étendue et permet d'étendre les possibilités de la FAO.