FreeCAD

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
FreeCAD
Description de l'image FreeCAD016-logo.svg.
Description de cette image, également commentée ci-après
FreeCAD 0.14
Informations
Créateur Juergen Riegel[1]
Développé par Juergen Riegel, Werner Mayer, Yorik van Havre[1]
Première version le 29 octobre 2002, il y a 17 ans
Dernière version 0.18.4 (le 26 octobre 2019, il y a 9 mois)
Version avancée 0.19_pre (le 3 novembre 2019, il y a 9 mois)
Dépôt github.com/FreeCAD/FreeCADVoir et modifier les données sur Wikidata
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en C++ et PythonVoir et modifier les données sur Wikidata/ QtVoir et modifier les données sur Wikidata
Supporte les langages / QtVoir et modifier les données sur Wikidata
Système d'exploitation Linux, Microsoft Windows, Unix et macOSVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Formats lus .OBJ, ISO 10303, IGES, DXF, DWG, DAE, STL, PLY, IFC, SVG et VRMLVoir et modifier les données sur Wikidata
Formats écrits ISO 10303, IGES, DXF, DWG, .OBJ, DAE, STL, PLY, IFC, SVG et VRMLVoir et modifier les données sur Wikidata
Langues Multilingue
Type Modélisation 3D,CAO, DAO,BIM, MEF,FAO
Licence Licence publique générale GNU et Licence publique générale limitée GNU[2].
Site web FreeCAD

Intérieur d'une maison en 3D

FreeCAD est un logiciel libre et open source, de CAO 3D paramétrique[3],[4], publié sous license LGPLv2+[2]. Il permet d'utiliser la modélisation volumique[5] ou CSG, la modélisation fonctionnelle[6] (constituée par des fonctions (en) sous-jacentes) et depuis la v.0.17 la modélisation surfacique[7], ou B-Rep. Ces trois types de modélisation sont entièrement paramétrables. 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[8] 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[3], ou en se servant du langage de programmation Python.

Génèse du projet[modifier | modifier le code]

L'histoire du logiciel commence en janvier 2001, lorsque Jürgen Riegel, un informaticien allemand, spécialiste des capteurs 3D et de la reconstruction de surface (des modèles 3D), a commencé à travailler sur le projet Cas.CADE[1],[9]. 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… ce qui aurait constitué un travail titanesque.

A 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 17 mars 2002, le logiciel est enregistré avec son nouveau nom. FreeCAD était né. 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 a fait don de la majeure partie de son module de maillage, à la communauté Open Source et a utilisé 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[1],[10].

Caractéristiques générales[modifier | modifier le code]

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[11],[12], un puissant noyau géométrique (c'est le kernel, le coeur 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 Coin 3D (en). L'interface graphique est bâtie sur Qt et FreeCAD fonctionne donc de façon identique sur les plateformes Windows, Mac OS X et GNU/Linux[13].

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[14]. Dans la version 0.18, ces différents ateliers sont une vingtaine et ils possèdent chacun des fonctions spécifiques[15].

Depuis 2015, FreeCAD intègre un module " OpenSCAD " toujours en développement ; destiné justement à offrir une interopérabilité avec le logiciel libre OpenSCAD[16]. 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[17]. 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)[18] 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[19] au module Arch[20], ou en direction de l'électrotechnique[21] 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[22].

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é[23]. 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[23].

Conception paramétrique[modifier | modifier le code]

Modélisation volumique[modifier | modifier le code]

Modélisation volumique avec opérations booléennes successives, réalisée avec FreeCAD 0.18.

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)[14] 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 "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[modifier | modifier le code]

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 toute sorte 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 au final sur l’objet[24],[6].

Modélisation paramétrique et fonctionnelle réalisée avec FreeCAD 0.18, d'après un tutoriel de HarryGeier.

Dans l’animation GIF de droite, un support mécanique est réalisé d’après un tutoriel de HarryGeier[25] ; en utilisant l'atelier PartDesign (conception de pièces) et Sketcher (esquisseur)[24]. 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, 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, sont souvent soumis à un problème de dénomination topologique[26].

Formats de fichiers pris en charge[modifier | modifier le code]

FreeCAD utilise son propre format de fichier, le FreeCAD Standard file format (.FCStd)[27]. Il s'agit d'un fichier zip standard qui contient des fichiers dans une certaine structure[27]. Les fichiers Document.xml contiennent des objets définis de manière géométrique et paramétrique mais sans leur représentation visuelle[27] ; contrairement à ceux du type GuiDocument.xml qui sont leurs équivalents GUI et sont plus complets[27].

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 [28].

Prise en charge du DWG[modifier | modifier le code]

La prise en charge par FreeCAD de l'important format de fichier DWG a été 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[29], ils ne pouvaient pas utiliser la bibliothèque GNU LibreDWG car les licences GPLv2 et GPLv3 sont essentiellement incompatibles (en)[30],[31]. Open CASCADE Technology (OCCT) a été contactée par l'équipe Debian en 2009 et en 2012 il a été envisagé une double licence concernant la bibliothèque d'OCCT ; mais finalement le mouvement a été reporté. Une demande a également été adressée à la FSF pour un renouvellement de licence (en) de GNU LibreDWG en GPLv2 ou LGPLv3, ce qui a été rejeté[32].

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[2]. Cependant, LibreDWG n'a pas été adopté. Le logiciel est capable d'importer et d'exporter un sous-ensemble limité[33] du format DWG via le Convertisseur ODA (l'ancienne bibliothèque OpenDWG).

FAO[modifier | modifier le code]

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[34].

Modèle de développement[modifier | modifier le code]

Le développement de FreeCAD repose sur un travail collaboratif, lancé à son origine par Jürgen Riegel en janvier 2001. L'équipe de base, s'est ensuite sensiblement élargie, mais il n'y a sans doute pas plus d'une dizaine de développeurs (en Juin 2020) et aucuns à plein temps, sur le logiciel[1]. Comme pour d'autres projets libre et Open source, chacun peut venir contribuer d'une manière ou d'une autre, en fonction de son temps et de ses compétences. Cela peut être la programmation, la documentation, la traduction ou des dons. Il n'existe pas à l'heure actuelle, de fondation FreeCAD, à la différence de Blender qui en possède une, ou de libreOffice dont le développement est soutenue par The Document Foundation.

Depuis 2016, FreeCAD participe au Google Summer of Code[35], avec BRL-CAD, OpenSCAD, LibreCAD (les quatre étant des logiciels de CAO libres) et Slic3r (pour la FAO). Ces événements permettent un effort combiné et se déroulent au sein de l'organisation parapluie de BRL-CAD, spécialement conçue pour l'occasion[36]. Cela renforce aussi, l’interopérabilité entre ces logiciels de CAO libre et open-source.

Une fondation ou une organisation parapluie permanente, permettrait à ces logiciels de se développer de manière plus "industrielle". Cela permettrait de décharger les développeurs, de toutes les tâches de maintenance administrative. Une organisation de ce type, peut en outre, collecter des fonds émanant d'entreprises et les redistribuer aux développeurs, suivant des schémas définis de manière transparente. Réciproquement, les entreprises peuvent intégrer les dons versés, à leurs bilans.

Le site web de FreeCAD est actuellement hébergé par DigitalOcean (en)[37], tandis que le code source et les dépôts logiciels se trouvent sur GitHub[38]. Cela permet lors du développement du logiciel, d'utiliser une forme d'ingénierie concourante grâce au logiciel de gestion de versions Git.

Documentation[modifier | modifier le code]

La documentation officielle de FreeCAD est organisée sous forme d'un wiki. Ce qui implique qu'elle repose sur un travail collaboratif. C'est à partir de l'anglais qui est la langue source, que toutes les modifications sont effectuées. Tout ajout ou retrait doit d'abord être fait en anglais et c'est ensuite que l'on peut effectuer les traductions vers les autres langues. De cette manière, on évite d'avoir des documentations divergentes, entres les différentes langues ; ce qui rendrait la compréhension du logiciel plus difficile[39]. C'est une différence avec wikipédia ou chaque version linguistique de l'encyclopédie, peut évoluer de manière indépendante ; sans que cela ne pose de problèmes.

Ce wiki est très fourni et déborde d'ailleurs du simple "mode d'emploi" du logiciel, puisqu'il permet aussi d'apprendre à utiliser des scripts Python[23].

Il existe aussi un manuel, sous forme de livre électronique, publié sous licence Creative Commons 4.0, qui peut être plus adapté aux débutants[40].

Dans la documentation, le français est une des langues les plus traduites. D'ailleurs Yorik Van Havre, un des principaux développeurs est francophone.

Historique des versions[modifier | modifier le code]

Versions Date de sortie Informations
Ancienne version, plus prise en charge : 0.0.1 Version initiale
Ancienne version, plus prise en charge : 0.1
Ancienne version, plus prise en charge : 0.2
Ancienne version, plus prise en charge : 0.3
Ancienne version, plus prise en charge : 0.4
Ancienne version, plus prise en charge : 0.5
Ancienne version, plus prise en charge : 0.6
Ancienne version, plus prise en charge : 0.7
Ancienne version, plus prise en charge : 0.8
Ancienne version, plus prise en charge : 0.9
Ancienne version, plus prise en charge : 0.10
Ancienne version, plus prise en charge : 0.11 [41]
Ancienne version, plus prise en charge : 0.12 [42]
Ancienne version, plus prise en charge : 0.13 [43]
Ancienne version, plus prise en charge : 0.14 Changement de License pour LGPLv2+[33]
Ancienne version, plus prise en charge : 0.15 Support de l'Oculus Rift [44]
Ancienne version, plus prise en charge : 0.16 [45]
Ancienne version, plus prise en charge : 0.17 Roland[46]
Dernière version stable: 0.18 [47]
Version future: 0.19 Version Développeur actuelle
Légende:
Ancienne version
Ancienne version, toujours prise en charge
Dernière version stable
Dernière version avancée
Version future


Galerie[modifier | modifier le code]

Cliquez sur une vignette pour l’agrandir.

Lecture complémentaire[modifier | modifier le code]

  • (en) Brad Collette, FreeCAD for Inventors, Ebook Rakuten Kobo, , 78 p. par sliptonic un des membres de l'équipe principale de développeurs[1].

Notes et références[modifier | modifier le code]

  1. a b c d e et f « Génèse de FreeCAD », sur wiki.freecadweb.org
  2. a b et c « Licence », sur wiki.freecadweb.org (consulté le 4 juin 2020)
  3. a et b « FreeCAD, le logiciel de modélisation gratuit et open-source », sur 3Dnatives, (consulté le 10 juin 2020)
  4. « Modéliser en 3D avec FreeCAD - session 1 », sur FUN-MOOC (consulté le 10 juin 2020)
  5. « Géométrie Solide Constructive — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 11 juin 2020)
  6. a et b « Édition de fonctions — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 11 juin 2020)
  7. « Atelier Surface — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 11 juin 2020)
  8. (en-US) « Testing FEM Workbench of FreeCAD », sur jolahde.kapsi.fi (consulté le 31 mai 2020)
  9. « User:Jriegel — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 18 juin 2020)
  10. « User:Yorik — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 18 juin 2020)
  11. « Fonctionnalités », sur wiki.freecadweb.org
  12. (en) « Open Cascade at FOSDEM 2020 », sur opencascade.com
  13. « Fonctionnalités », sur Wiki.freecadweb.org
  14. a et b « Part : Atelier pièce — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 10 juin 2020)
  15. « Ateliers (Workbenches) — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 14 juillet 2020)
  16. « Atelier OpenSCAD — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 14 juin 2020)
  17. « Atelier TechDraw — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 12 juin 2020)
  18. « Atelier Mesh (maillages) — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 12 juin 2020)
  19. (en) « freecad | Yorik's blog », sur yorik.uncreated.net (consulté le 10 juin 2020)
  20. « Atelier Arch (architecture) — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 12 juin 2020)
  21. François MOCQ, « Un boîtier de Raspberry Pi 4 avec FreeCAD », sur Framboise 314, le Raspberry Pi à la sauce française...., (consulté le 10 juin 2020)
  22. « Conception de matériel libre, où en sommes nous ? - LinuxFr.org », sur linuxfr.org (consulté le 10 juin 2020)
  23. a b et c « Exemples de scripts en Python », sur Wiki.freecadweb.org
  24. a et b « PartDesign : Atelier conception de pièce — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 14 juillet 2020)
  25. « PartDesign : Didacticiel d'introduction 0.17 — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 14 juillet 2020)
  26. « Problème de dénomination topologique — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 14 juillet 2020)
  27. a b c et d « Fichier au format FCStd », sur wiki.freecadweb.org (consulté le 31 mai 2020)
  28. « Import Export — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 29 décembre 2016)
  29. (en) Michael Larabel, « FSF Wastes Away Another "High Priority" Project » [archive du ], Phoronix, (consulté le 22 août 2013)
  30. (en) Alexandre Prokoudine, « What's up with DWG adoption in free software? » [archive du ], libregraphicsworld.org, (consulté le 3 novembre 2013)
  31. (en) « Frequently Asked Questions about the GNU Licenses – Is GPLv3 compatible with GPLv2? », The official site (consulté le 13 avril 2011)
  32. (en) Alexandre Prokoudine, « LibreDWG drama: the end or the new beginning? » [archive du ], libregraphicsworld.org, (consulté le 23 août 2013)
  33. a et b « Notes de version 0.14 » (consulté le 19 février 2019)
  34. « Atelier Path — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 12 juin 2020)
  35. « Google Summer of Code 2020 — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 16 juin 2020)
  36. « Google Summer of Code/Project Ideas - BRL-CAD », sur brlcad.org (consulté le 17 juin 2020)
  37. « FreeCAD: Your own 3D parametric modeler », sur www.freecadweb.org (consulté le 17 juin 2020)
  38. (en) « FreeCAD/FreeCAD », sur GitHub (consulté le 17 juin 2020)
  39. « Localisation — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 20 juin 2020)
  40. « Manuel : Introduction — FreeCAD Documentation », sur wiki.freecadweb.org (consulté le 20 juin 2020)
  41. « Notes de version 0.11 » (consulté le 19 février 2019)
  42. « Notes de version 0.12 » (consulté le 19 février 2019)
  43. « Notes de version 0.13 » (consulté le 19 février 2019)
  44. « Notes de version 0.15 » (consulté le 19 février 2019)
  45. « Notes de version 0.16 » (consulté le 19 février 2019)
  46. « Notes de version 0.17 » (consulté le 19 février 2019)
  47. « Notes de version 0.18 » (consulté le 15 mars 2019)

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Sur les autres projets Wikimedia :