Third Party Libraries/fr

Vue d'ensemble
Ce sont des bibliothèques, qui ne sont pas modifiées dans le projet FreeCAD. elles sont inchangées, et, essentiellements utilisées comme bibliothèques de liens dynamiques (*.So ou *.Dll). S'il y a un changement nécessaire, ou une classe wrapper est nécessaire, le code du package, ou le code de la bibliothèque ont changés et doivent être déplacés vers le package de base de FreeCAD. Les bibliothèques utilisées sont les suivantes :

Si vous utilisz Windows, pensez à utiliser LibPack au lieu de télécharger et d'installer toutes sorte de trucs.

Liens
{| class="wikitable" style="text-align:left" ! Nom de la Lib       !! Version nécessaire!! Lien pour l'obtenir }
 * + Link table
 * Python              || >= 2.5.x          || http://www.python.org/
 * OpenCasCade         || >= 5.2            || http://www.opencascade.org
 * Qt                  || >= 4.1.x          || https://www.qt.io/
 * Coin3D              || >= 2.x            || http://www.coin3d.org
 * SoQt                || >= 1.2            || http://www.coin3d.org
 * Xerces-C++          || >= 2.7.x < 3.0    || http://xml.apache.org/xerces-c/
 * Zlib                || >= 1.x.x          || http://www.zlib.net/
 * Boost               || >= 1.33.x         || http://www.boost.org/
 * Eigen3              || >= 3.0.1          || http://eigen.tuxfamily.org/index.php?title=Main_Page
 * Shiboken           || >= 1.1.2          || http://shiboken.readthedocs.org/en/latest/
 * libarea           || N/A          || https://github.com/danielfalck/libarea
 * Xerces-C++          || >= 2.7.x < 3.0    || http://xml.apache.org/xerces-c/
 * Zlib                || >= 1.x.x          || http://www.zlib.net/
 * Boost               || >= 1.33.x         || http://www.boost.org/
 * Eigen3              || >= 3.0.1          || http://eigen.tuxfamily.org/index.php?title=Main_Page
 * Shiboken           || >= 1.1.2          || http://shiboken.readthedocs.org/en/latest/
 * libarea           || N/A          || https://github.com/danielfalck/libarea
 * Eigen3              || >= 3.0.1          || http://eigen.tuxfamily.org/index.php?title=Main_Page
 * Shiboken           || >= 1.1.2          || http://shiboken.readthedocs.org/en/latest/
 * libarea           || N/A          || https://github.com/danielfalck/libarea
 * libarea           || N/A          || https://github.com/danielfalck/libarea
 * libarea           || N/A          || https://github.com/danielfalck/libarea

Python
Version: 2.5 ou plus

License: Python 2.5 licence

Vous pouvez utiliser le source ou binaire à partir de Python ou utiliser alternativement ActiveState Python à partir de activestate s'il est difficile d'obtenir des libs de débogage à partir d'ActiveState.

Description
Python, est le langage de script principal, et, est utilisé dans toute l'application. Par exemple :
 * Mettre en œuvre des scripts de test pour tester :
 * des pertes de mémoire.
 * d'assurer de nouvelles fonctionnalités après modifications.
 * poster, construire des contrôles.
 * des tests de contrôles de tests.
 * Macros et enregistrements de macros.
 * Mettre en œuvre une logique d'application, pour les paquets (packages) standards.
 * La mise en œuvre des boîtes à outils complètes.
 * Le chargement dynamique des paquets (packages).
 * Les règles d'application pour la conception (connaissances techniques).
 * Créer par exemple des groupes de travail et PDM sur Internet.
 * Et ainsi de suite ...

Le chargement de packages dynamiques pour Python est utilisé, en particulier, au moment de l'exécution, pour le chargement de fonctionnalités supplémentaires, et, établit le nécessaires pour les tâches réelles. Pour voir Python de plus près : Pourquoi Python direz vous ? vous pouvez le demander ici. Il y a plusieurs raisons : Jusqu'à présent, dans ma vie professionnelle, j'ai utilisé les langages de script différents :


 * Perl
 * Tcl/Tk
 * VB
 * Java

Python est plus orienté OO (object-oriented), le code n'est pas plus mauvais que Perl et Tcl, pareil pour Perl et VB. Java n'est pas un langage destiné au script, et, difficile (voire impossible) à intégrer. Python, est bien documenté, facile à intégrer, et, facile à étendre. Il est également bien fait ses preuves, et, est fort prisé dans la communauté open source.

Credits
Grâce à Guido van Rossum et beaucoup de gens, ont fait que Python ait un tel succès !

OpenCasCade
Version: 5.2 ou plus

Licence: v6.7.0 et les versions ultérieures sont régies par la version 2.1 de la Licence publique générale GNU (LGPL) avec une exception supplémentaire. https://www.opencascade.com/content/licensing. Les versions antérieures utilisent une licence légèrement différente: https://www.opencascade.com/content/occt-public-license

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.

Pour en savoir plus sur OpenCascade jeter un coup oeil à la page OpenCascade ou sur OpenCascade.

Qt
Version: 4.1.x or higher

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.

Dans une application CAX, l'interaction avec l'utilisateur, et, les boîtes de dialogue, sont de loin la plus grande partie du code, et, un bon concepteur de boîtes de dialogues, est très important pour ajouter facilement de nouvelles fonctionnalités à FreeCAD.

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

Shiboken et Pyside
Shiboken (Shi bō ken, 死某剣) est le générateur de liaisons Python utilisé par Qt pour Python pour créer le module PySide. En d'autres termes, c'est le système que nous utilisons pour exposer Qt C ++. API à Python.

Les noms Shiboken2 et  PySide2 font référence à la compatibilité avec Qt 5 puisque les versions précédentes (sans le 2 ) font référence à Qt 4. Pour en savoir plus sur Shiboken et Pyside voir Qt pour la page wiki de Python

Coin3D
Version: 2.0 ou plus

License: GPL v2.0 ou Commercial

Coin est une bibliothèque graphique 3D de haut niveau, avec une interface de programmation C++. Coin utilise une structure de données scenegraph, pour rendre des graphiques en temps réel, il est adapté à toutes sortes d'applications de visualisation scientifique, et, d'ingénierie.

Coin est portable sur un large éventail de plates-formes : tous les systèmes UNIX / Linux / BSD, tous les systèmes d'exploitation Microsoft Windows, et Mac OS X.

Coin est construit sur le standard industriel OpenGL avec les bibliothèques de rendu immédiat, et, ajoute les abstractions de primitives de haut niveau, fournit une interactivité 3D, augmente considérablement la commodité et la productivité du programmeur, contient de nombreuses fonctions d'optimisations complexes, pour obtenir un rendu rapide, et, de plus est transparent pour le programmeur d'applications.

Coin est basé sur l'API SGI Open Inventor. Pour ceux qui ne sont pas familier avec lui, dans la communauté scientifique et d'ingénierie, Open Inventor est depuis longtemps, devenu de facto, la bibliothèque graphique standard pour la visualisation 3D et pour les logiciels de simulation visuelle. Sur une période de plus de 10 ans, il a prouvé, qu'il en vaut la peine, sa maturité contribue à son succès, en tant que fondation majeure dans des milliers d'applications d'ingénierie de grande envergure à travers le monde.

Nous allons utiliser OpenInventor en tant que visualiseur 3D dans FreeCAD parce que les visualiseurs OpenCascade (AIS et Graphics3D) ont leurs limites, à cause de grands flux de données, et, quand il y a des rendus d'ingénierie à grande échelle. D'autres choses, comme les textures ou le rendu volumétrique ne sont pas bien pris en charge, et ainsi de suite ....

Depuis 2011, Coin est sous la licence BSD à 3 clauses approuvée par l'OSI.

SoQt
Version: 1.2.0 ou plus

License: GPL v2.0 ou commercial

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.

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.

Xerces-C++, est fidèle à la recommandation XML 1.0 et de nombreuses normes connexes (voir Caractéristiques ci-dessous).

L'analyseur fournit, de hautes performances, la modularité et l'évolutivité. Code source, les échantillons et documentation de l'API sont fournis avec l'analyseur. Pour la portabilité, nous avons pris soin de faire une utilisation minimale de modèles, pas de RTTI, et l'utilisation minimale de #ifdef.

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

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.

Boost
Version: 1.33.x

License: Boost Software License - Version 1.0

Les bibliothèques Boost C++ sont une collection évaluées par des pairs, les bibliothèques, sont open source, et, étendent les fonctionnalités de C++. Les bibliothèques sont sous licence Boost Software License, Boost est conçu, pour être utilisé avec des projets open source et fermés. Beaucoup de programmeurs Boost sont sur le C++ standard committee, et plusieurs bibliothèques Boost ont été acceptées, pour leurs incorporations dans le Technical Report 1 of C++0x.

Les bibliothèques Boost sont en C++, et, destinées à un large éventail de programmeurs et un vaste domaine d'applications. Les bibliothèques sont conçues à des fins générales, comme pour SmartPtr, à des applications comme OS et FileSystem, et a des bibliothèques principalement destinées aux développeurs de bibliothèques et d'autres utilisateurs avancés en C++, comme la bibliothèque MPL.

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++.

Allez voir sur : boost pour plus de détails.

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.

LibPack
LibPack est un package pratique, avec toutes les bibliothèques décrites ci-dessus, en un seul paquet. Il est actuellement disponible pour la plate-forme Windows, sur la page de téléchargement ! Si vous travaillez sous Linux, vous n'avez pas besoin d'un LibPack, à la place, utilisez les dépôts (package repositories) de votre distribution Linux.

FreeCADLibs7.x Changelog

 * Utilisation de QT 4.5.x et Coin 3.1.x
 * Eigen ajout de template lib pour Robot
 * SMESH expérimental