Third Party Libraries/fr

Vue d'ensemble
Ce sont des bibliothèques que FreeCAD utilise comme dépendances tierces lors de la compilation. Ils sont généralement bibliothèques liées dynamiquement et ont une extension sous Linux/MacOS et  sous Windows, et sont accompagnés de leurs fichiers d’en-tête  ou  ou similaire. Si une bibliothèque modifiée est nécessaire, ou si une classe wrapper est nécessaire, le code de la bibliothèque modifiée, ou du wrapper, doit faire partie du code source de FreeCAD et être compilé avec ce dernier.

Les dépendances doivent être installées dans le système avant de procéder à la compilation. Voir Compiler sous Unix, Compiler sous Windows et Compiler sur Mac pour plus d'informations.

Si voulez compiler en utilisant Windows, pensez à utiliser le LibPack au lieu d'essayer d'installer individuellement des librairies.

Python
Version : 3.3 ou plus

Licence : Python 3.3 licence

Python est un langage de script polyvalent populaire largement utilisé sous Linux et dans les logiciels open source. Dans FreeCAD, Python est utilisé de différentes manières lors de la compilation et lors de l'exécution. C'est utilisé
 * écrire des scripts de test pour tester différentes conditions, telles que des fuites de mémoire, afin de garantir la fonctionnalité du logiciel après les modifications, pour les vérifications après la construction et les tests de couverture,
 * pour écrire macros et l'enregistrement de macros,
 * implémenter la logique d'application pour les packages standard,
 * pour implémenter des outils auxiliaires tels que Addon Manager,
 * mettre en place des ateliers complets comme Draft et Arch,
 * charger dynamiquement des paquets,
 * mettre en place des règles de conception (des connaissances en ingénierie),
 * faire des interactions Internet fantaisistes comme des groupes de travail et PDM

Sous Linux, Python est généralement déjà installé dans votre distribution. Pour Windows, vous pouvez utiliser le source ou le binaire pré compilées de Python.org ou utiliser ActiveState Python bien qu’il soit un peu difficile d’obtenir les bibliothèques de débogage de ce dernier.

Python a été choisi comme langage de script pour FreeCAD pour différentes raisons:
 * Il est plus orienté objet que Perl et Tcl.
 * Le code est plus lisible que Perl et Visual Basic.
 * Il est plus facile d'intégrer une autre application, contrairement à Java.

En résumé, Python est bien documenté et il est facile à intégrer et à étendre dans une application C++. Il est également bien testé et bénéficie du soutien de la communauté open source. Pour en savoir plus sur Python et parcourir la documentation officielle voyez à l'adresse Python.org.

Boost
Version: 1.33 ou plus

License: Boost Software License - Version 1.0

Les bibliothèques Boost C++ sont des collections de bibliothèques open source révisées par des pairs qui étendent les fonctionnalités de C++. Elles sont destinés à être largement utilisées dans un grand nombre d'applications et à bien fonctionner avec la bibliothèque standard C++. La licence Boost est conçue pour encourager son utilisation dans les projets open source et sources propriétaires.

En raison de leur popularité et de leur stabilité, de nombreuses bibliothèques Boost ont été acceptées pour être incorporées dans la norme C++11 et d’autres sont prévues pour être intégrées dans les normes C++ suivantes.

Afin d'assurer l'efficacité et la flexibilité, Boost fait un usage intensif de modèles (templates). Boost a été une source de travail, et, de recherches approfondies dans la programmation générique, et, méta-données en C++. Vous en saurez plus sur Boost en visitant la page Boost homepage.

OpenCasCade Technologie
Version: 6.7 ou plus

Licence: version 6.7.0 et les versions ultérieures sont régies par GNU Lesser General Public License (LGPL) version 2.1 with additional exception. Les versions antérieures utilisent une licence légèrement différente: Open CASCADE Technology Public License.

La technologie OpenCASCADE (OCCT) est un noyau CAO complet de qualité professionnelle. Il a été développé en 1993 et s'appelait à l'origine CAS.CADE par Matra Datavision en France pour les applications Strim (Styler) et Euclid Quantum. En 1999, il a été publié en tant que logiciel open source, et depuis lors, il s'appelle OpenCASCADE.

OCC est un noyau complet CAD. A l'origine, il a été développé en France par Matra Datavision, pour la Strim (Styler) et Euclide applications quantiques, et, plus tard fait pour l'Open Source. C'est une bibliothèque vraiment énorme, et, faire en premier lieu une application de CAO libre est possible, en fournissant certains paquets, qui seraient difficiles, ou impossibles à mettre en œuvre dans un projet Open Source :
 * Un noyau géométrique complet conforme à STEP.
 * Un modèle topologique de données et toutes les fonctions nécessaires pour travailler sur les (coupes, fusion, extrusion, etc ...)
 * Import-standard/exportation des processeurs comme STEP, IGES, VRML.
 * Visionneuse 2D et 3D avec le soutien de la sélection.
 * Une structure de document, et, données de projet, avec le soutien de, sauvegarde et restauration, de liaison externe des documents, de recalcul de l'historique du dessin (modélisation paramétrique) et d'un centre de chargement de nouveaux types de données, comme un module d'extension dynamique.

Il existe deux versions principales d'OpenCASCADE dans différentes distributions Linux. L'un est distribué par les développeurs d'origine; il est appelé OCCT et est regroupé sous les noms ou. L'autre version est "l'édition communautaire", en abrégé OCE, et se trouve normalement sous le nom. FreeCAD peut être compilé avec l'une ou l'autre version, cependant, depuis 2016, FreeCAD recommande de compiler avec les bibliothèques officielles de l'OCCT plutôt que celles de l'OCE. La raison en est que l'édition de la communauté manque d'importantes corrections de bogues et de fonctions qui améliorent l'utilisation de FreeCAD.

Pour en savoir plus sur OpenCascade visitez la page OpenCASCADE website.

Qt
Version: 4.1 ou plus

Licence : GPL v2.0/v3.0 ou commerciale; (à partir de la version 4.5 aussi sur v2.1 LPGL).

Je ne pense pas que j'ai besoin de dire beaucoup de choses sur Qt. C'est un des outils les plus souvent utilisés, dans l'interface graphique des projets Open Source. Pour moi, le point le plus important d'utiliser Qt est le Qt Designer et la possibilité de charger les boîtes de dialogue entières comme, une ressource (XML), et, d'intégrer des widgets spécialisés.

Vous trouverez de plus amples informations sur la librairie Qt et une très bonne documentation en ligne sur la documentation Qt.

Shiboken2 and Pyside2
Shiboken est le générateur de liaison Python utilisé par Qt pour créer le module PySide pour être utilisé par Python. En d'autres termes, c'est le système utilisé pour exposer l'API Qt C++ au langage Python.

Les paquets originaux Shiboken et PySide devaient être utilisés avec Python 2 et Qt4; étant donné que ces deux versions sont considérées obsolètes en 2019, veuillez utiliser Shiboken2 et PySide2, qui fonctionnent avec Python 3 et Qt5. Les nouveaux développements de FreeCAD sont réalisés avec Python 3 et Qt5. Par conséquent, la compatibilité avec Python 2 et Qt4 n’est plus garantie après FreeCAD 0.18.

Pour en savoir plus sur Shiboken et Pyside voyez sur la page Qt for Python.

Coin3D
Version: 3.0 ou plus

License: BSD 3-clause license

Coin3D est une bibliothèque graphique 3D de haut niveau avec une interface de programmation d'applications C++. Il utilise des structures de données scenegraph pour rendre les graphiques en temps réel adaptés à tout type d'applications de visualisation scientifique et technique.

Coin3D est basé sur la bibliothèque de rendu en mode immédiat OpenGL, standard du secteur, et ajoute des abstractions pour les primitives de niveau supérieur, fournit une interactivité 3D et contient de nombreuses fonctionnalités d'optimisation complexes pour le rendu rapide, transparentes pour le programmeur d'application.

Coin3D est compatible avec l'API Open Inventor 2.1 de SGI. Cette API est devenue l'interface graphique standard de facto pour la visualisation 3D dans la communauté scientifique et technique. Il a fait ses preuves depuis l'an 2000 en tant que pierre angulaire de milliers d'applications d'ingénierie dans le monde.

Coin3D (Open Inventor) est utilisé comme visualiseur 3D dans FreeCAD car le visualiseur OpenCASCADE (AIS et Graphics3D) présente des limitations et des goulots d'étranglement en termes de performances, notamment avec le rendu technique à grande échelle; d'autres éléments tels que les textures ou le rendu volumétrique ne sont pas entièrement pris en charge par le visualiseur OpenCASCADE.

Coin3D est portable sur une large gamme de plates-formes: systèmes d'exploitation UNIX, Linux, BSD, MacOS X et Microsoft Windows. Pour en savoir plus sur cette bibliothèque, visitez Coin3D homepage.

SoQt (déprécié)
Version: 1.2.0 ou plus

License: BSD 3-clause license

SoQt est l'inventeur de la liaison avec la boîte à outils Qt Gui. Malheureusement, il n'est plus LGPL, et, nous devons donc le supprimer du code de FreeCAD, et le lier comme une bibliothèque. Il a le même type de licence que Coin. Et vous devez le compiler avec votre version de Qt.

SoQt n'est plus utilisé dans FreeCAD, il a été remplacé par Quarter qui est une connexion plus récente.

Quarter
Version : 1.0 ou suivantes

License: BSD 3-clause license

Quarter est une nouvelle connexion Coin3d à la boîte à outils Qt. Une version de celui-ci est incluse dans le code source de FreeCAD.

Xerces-C++
Version: 2.7.0 ou plus

License: Apache Software License Version 2.0

Xerces-C++ est un analyseur de validation XML, écrit dans un sous-ensemble portable de C++. Avec Xerces-C++, il est facile de donner à votre application la capacité de lire et écrire des données au format XML. Une bibliothèque partagée est prévue pour l'analyse, la génération, la manipulation et la validation des documents XML.

L'analyseur est utilisé, pour sauvegarder, et, restaurer les paramètres dans FreeCAD.

Eigen3
Version: 3.0 or higher

License: Starting from the 3.1.1 version, it is licensed under the Mozilla Public License 2.0. Earlier versions were licensed under the GNU Lesser General Public License 3.

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

If you just want to use Eigen, you can use the header files right away. There is no binary library to link to, and no configured header file. Eigen is a pure template library defined in the headers.

Eigen is used in FreeCAD for many vector operations in 3D space. To learn more, visit Eigen homepage.

Zipios++
Version: 0.1.5 or higher

License: GNU Lesser General Public License 2.1

Zipios++ is a C++ library for reading and writing files. Access to individual entries is provided through standard C++ iostreams. A simple read-only virtual file system that mounts regular directories and files is also provided. The structure and public interface of Zipios++ are loosely based on the package of Java.

FreeCAD's native file format is in reality a  file that stores and compresses other types of data within it, such as BREP and XML files. Therefore, Zipios++ is used to save and open compressed archives, including FreeCAD files.

A copy of Zipios++ is included in the source code of FreeCAD so it is compiled together with it. If you want to use an external Zipios++ library, provided by your operating system, you may set  with.

Zipios++ uses the Zlib library to perform the actual decompression of files.

Zlib
Version: 1.x.x

License: zlib Licence

zlib est conçu pour comprimer des données de toute sorte, il est libre, et légalement utilisé, il n'est pas couvert par des brevets, il compresse sans perte de données, et pour une utilisation sur pratiquement n'importe quel matériel informatique et système d'exploitation. Le format des données zlib est lui-même portable sur toutes les plateformes. Contrairement à la méthode de compression LZW utilisée sous Unix compress(1) et dans le format d'image GIF, la méthode de compression utilisée actuellement dans zlib, ne "gonfle" jamais les données. (LZW peut doubler ou dans les cas extrêmes, tripler la taille du fichier). L'empreinte mémoire de la librairie zlib, est également indépendante des données entrées et peut être, si nécessaire, réduite à un certain taux de compression.

A copy of this library is included in the source code of FreeCAD so it is compiled together with it.

libarea
Version: non applicable

License: nouvelle BSD (BSD 3-Clause)

Area est un logiciel créé par Dan Heeks pour HeeksCNC. Il sert de bibliothèque pour la génération d'opérations liées au CAM dans Path Workbench.

A copy of the library is included with the source code of the Path Workbench, so it is compiled together with it.

LibPack
LibPack est un paquet pratique qui regroupe toutes les bibliothèques ci-dessus. Cela n'est nécessaire que si vous utilisez une plate-forme Windows. Vous pouvez le trouver à l'adresse https://github.com/FreeCAD/FreeCAD-ports-cache/releases. Si vous travaillez sous Linux, vous devez utiliser les référentiels de paquets de votre distribution Linux. LibPack n’est nécessaire dans Linux et fourni par Linux.

If you're working under Linux, you don't need the LibPack, as you can get the dependencies from your distribution's repositories as mentioned in the compile on Unix page.

FreeCAD 12.1.2
See the announcement in the forum: New libpacks for Windows with Qt5.12, OCC7.3 and Python 3.6 by apeltauer

It includes among other things: Boost 1.67, Coin3D 4.0.0a, Eigen3, Open CASCADE Technology 7.3.0, Python 3.6.8, PySide2, Qt 5.12.1, Salome SMESH, Shiboken2, vtk7, Xerces-C, Zipios++, zlib 1.2.11