Third Party Libraries/de

Übersicht
Dies sind Bibliotheken, die FreeCAD als Abhängigkeiten von Dritten während der Kompilierung verwendet. Sie sind normalerweise dynamisch gelinkte Bibliotheken und haben eine Erweiterung in Linux/MacOS und  in Windows, und werden von ihren Kopfdateien  oder oder ähnlichem begleitet. Wenn eine modifizierte Bibliothek oder eine Hülle erforderlich ist, muss der Code der modifizierten Bibliothek oder der Hülle Teil des FreeCAD Quellcodes werden und zusammen mit diesem kompiliert werden.

Die Abhängigkeiten müssen im System installiert werden, bevor Du mit der Kompilierung fortfahren kannst; siehe Kompilieren unter Linux/Unix, Kompilieren unter Windows, und Kompilieren unter MacOS] für weitere Informationen.

Wenn du unter Windows kompilierst, ziehe es in Betracht, die LibPack zu verwenden, anstatt zu versuchen, die Bibliotheken einzeln zu installieren.

Python
Version: 3.3 oder höher

Lizenz: Python 3.3 Lizenz

Python ist eine beliebte Allzweck Skriptsprache, die unter Linux und Open Source Software weit verbreitet ist. In FreeCAD wird Python während der Kompilierung und auch zur Laufzeit auf unterschiedliche Weise verwendet. Es wird verwendet
 * um Testskripte zu schreiben, um auf verschiedene Bedingungen, wie z.B. Speicherlecks, zu testen, um die Funktionalität der Software nach Änderungen sicherzustellen, für Nach Bau Prüfungen und Testabdeckungstests,
 * zum Schreiben von Makros und zur Makroaufnahme,
 * zur Implementierung von Anwendungslogik für Standardpakete,
 * um Hilfswerkzeuge wie den Erweiterungs Manager zu implementieren,
 * um ganze Arbeitsbereiche wie Entwurf und Architektur zu implementieren,
 * um Pakete dynamisch zu laden,
 * die Regeln für Gestaltung umzusetzen (Wissensverarbeitung),
 * um ausgefallene Internet Wechselwirkungen wie Arbeitsgruppen und PDM durchzuführen

Unter Linux ist Python normalerweise bereits in deiner Distribution installiert. Für Windows kannst Du eine vorkompilierte Binärdatei von Python.org beziehen oder ActiveState Python verwenden, obwohl es schwieriger ist, die Fehlerdiagnosebibliotheken von letzterer zu bekommen.

Python wurde aus verschiedenen Gründen als Skriptsprache für FreeCAD gewählt:
 * Es ist mehr objektorientiert als Perl und Tcl.
 * Der Code ist lesbarer als Perl und Visual Basic.
 * Es ist einfacher in eine andere Anwendung einzubetten, im Gegensatz zu z.B. Java.

Zusammenfassend kann man sagen, dass Python gut dokumentiert ist, und dass es einfach in eine C++ Anwendung eingebettet und erweitert werden kann. Es ist außerdem gut getestet und wird von der Open Source Gemeinschaft stark unterstützt. Lies mehr über Python und durchsuche die offizielle Dokumentation unter Python.org.

Boost
Version: 1.33 oder höher

Lizenz: Boost Software Lizenz - Version 1.0

Die Boost C++ Bibliotheken sind Sammlungen von Fachkollegen geprüften, Open Source Bibliotheken, die die Funktionalität von C++ erweitern. Sie sind für ein breites Spektrum von Anwendungen gedacht und für eine gute Zusammenarbeit mit der C++ Standardbibliothek geeignet. Die Boost Lizenz soll ihre Verwendung sowohl in quelloffenen als auch in quellgeschlossenen Projekte fördern.

Aufgrund ihrer Popularität und Stabilität wurden viele Boost Bibliotheken für die Einbindung in den C++11 Standard akzeptiert, und weitere sind für die Aufnahme in nachfolgende C++ Standards geplant.

Um Effizienz und Flexibilität zu gewährleisten, macht Boost umfangreichen Gebrauch von Vorlagen. Boost hat umfangreiche Arbeiten und Forschungen zur generischen Programmierung und Metaprogrammierung in C++ durchgeführt. Lies mehr über Boost, indem Du die Boost Homepage besuchst.

OpenCASCADE Technologie
Version: 6.7 oder höher

Lizenz: Version 6.7.0 und später unterliegen der GNU Lesser General Public License (LGPL) Version 2.1 mit zusätzlicher Ausnahme. Frühere Versionen verwenden die Open CASCADE Technologie Öffentliche Lizenz.

Die OpenCASCADE Technologie (OCCT) ist ein vollwertiger, professioneller CAD Kernel. Er wurde 1993 entwickelt und ursprünglich unter dem Namen CAS.CADE von Matra Datavision in Frankreich für die Anwendungen Strim (Styler) und Euclid Quantum entwickelt. Im Jahr 1999 wurde es als Open Source Software veröffentlicht, und seitdem heißt es OpenCASCADE.

OCCT ist ein großer und komplexer Satz von C++ Bibliotheken, die die von einer CAD Anwendung benötigte Funktionalität bereitstellen:
 * Ein kompletter STEP konformer Geometriekern.
 * Ein topologisches Datenmodell und die benötigten Funktionen zur Arbeit mit Formen (Schneiden, Verschmelzen, Extrudieren und viele andere).
 * Standardimport- und -exportprozessoren für Dateien wie STEP, IGES, VRML.
 * Ein 2D und 3D Betrachter mit Auswahlunterstützung.
 * Eine Dokumenten und Projektdatenstruktur mit Unterstützung für Speichern und Wiederherstellen, externe Verknüpfung von Dokumenten, Neuberechnung der Konstruktionshistorie (parametrische Modellierung) und die Möglichkeit, neue Datentypen als Erweiterungspaket dynamisch zu laden.

Es gibt zwei Hauptversionen von OpenCASCADE, die in verschiedenen Linux-Distributionen existieren. Eine wird von den ursprünglichen Entwicklern vertrieben; sie ist als OCCT bekannt und wird unter den Namen oder  gepackt. Die andere Version ist die "Gemeinschafts Edition", abgekürzt OCE, und wird normalerweise unter dem Namen gefunden. FreeCAD kann gegen beide Versionen kompilieren, seit 2016 empfiehlt FreeCAD jedoch, gegen die offiziellen OCCT Bibliotheken und nicht gegen die OCE-Bibliotheken zu kompilieren. Der Grund dafür ist, dass der Gemeinschafts Edition wichtige Fehlerbehebungen und Funktionen fehlen, die die Benutzung von FreeCAD verbessern.

Um mehr zu erfahren, besuche die OpenCASCADE Webseite.

Qt
Version: 4.1 oder höher

Lizenz: GPL v2.0/v3.0 oder kommerziell; ab Version 4.5 auch LPGL v2.1.

Qt ist eines der populärsten Werkzeugsätze für grafische Benutzeroberflächen (GUI), die in der Open Source Welt verfügbar sind. FreeCAD verwendet diesen Werkzeugsatz um die Programmoberfläche zu zeichnen. Hierfür ist die Qt Designer Anwendung sehr nützlich, da sie es Entwicklern erlaubt, die Dialoge und Fenster schnell zu zeichnen, sie als XML Ressource Dateien zu exportieren und diese Schnittstellen zur Laufzeit zu laden.

Weitere Informationen zu den Qt-Bibliotheken und deren Programmierdokumentation findest Du unter Qt-Dokumentation.

Shiboken2 und Pyside2
Shiboken ist der Python Bindungsgenerator, den Qt für Python zur Erstellung des PySide Moduls verwendet, d.h. es ist das System, das verwendet wird, um die Qt C++ API der Sprache Python auszusetzen.

Die ursprünglichen Shiboken und PySide Pakete waren für die Verwendung mit Python 2 und Qt4 gedacht; da diese beiden Versionen 2019 als veraltet gelten, verwende bitte Shiboken2 und PySide2, die mit Python 3 und Qt5 funktionieren. Die Neuentwicklung von FreeCAD erfolgt mit Python 3 und Qt5, daher ist die Kompatibilität mit Python 2 und Qt4 nach FreeCAD 0.18 nicht mehr gewährleistet.

Lies mehr über Shiboken und Pyside auf Qt für Python.

Coin3D
Version: 3.0 oder höher

Lizenz: BSD 3-Klausel Lizenz

Coin3D ist eine hochgradige 3D Grafikbibliothek mit einer C++ Programmierschnittstelle. Sie verwendet szenegraphische Datenstrukturen, um Echtzeit Grafiken für alle Arten von wissenschaftlichen und technischen Visualisierungsanwendungen zu erstellen.

Coin3D basiert auf dem Industriestandard OpenGL Sofortmodus Wiedergabe Bibliothek und fügt Abstraktionen für übergeordnete Grundelemente hinzu, bietet 3D Interaktivität und enthält viele komplexe Optimierungsfunktionen für schnelle Wiedergabe, die für den Anwendungsprogrammierer transparent sind.

Coin3D ist kompatibel mit der Open Inventor 2.1 API von SGI. Diese API hat sich zur De-facto Standard Grafikschnittstelle für die 3D Visualisierung in der wissenschaftlichen und technischen Gemeinschaft entwickelt. Sie hat sich seit dem Jahr 2000 als ein wichtiger Baustein in tausenden von Ingenieuranwendungen weltweit bewährt.

Coin3D (Open Inventor) wird als 3D Betrachter in FreeCAD verwendet, da der OpenCASCADE Betrachter (AIS und Graphics3D) insbesondere bei großflächigem Ingenieurwissenschaftlichen Wiedergabe, Einschränkungen und Leistungsengpässe aufweist; andere Dinge wie Texturen oder volumetrische Wiedergabe werden vom OpenCASCADE Betrachter nicht vollständig unterstützt.

Coin3D ist über eine Vielzahl von Plattformen anwendbar: UNIX, Linux, BSD, MacOS X und Microsoft Windows Betriebssysteme. Um mehr über diese Bibliothek zu lesen, besuche Coin3D Homepage.

SoQt (veraltet)
Version: 1.2.0 oder höher

License: BSD 3-clause license

SoQt is the Coin3D (Open Inventor) binding to the Qt GUI toolkit. Unfortunately, it's not longer LGPL so we have to remove it from the code base of FreeCAD and link it as a library. It has the same licence model like Coin3D. And you have to compile it with your version of Qt.

SoQt is no longer used in FreeCAD, it was replaced by Quarter which is a more recent Qt binding.

Quarter
Version: 1.0 or higher

License: BSD 3-clause license

Quarter is a newer Coin3D binding to the Qt toolkit. A version of it is included in the source code of FreeCAD so it is compiled together with it.

Xerces-C++
Version: 3.0 or higher

License: Apache Software License Version 2.0

Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents. Xerces-C++ is faithful to the XML 1.0 recommendation and associated standards.

The parser is used for saving and restoring parameters in FreeCAD. For more information see Xerces-C++ homepage.

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.0 or higher

License: zlib license

Zlib is designed to be a free, general-purpose, lossless data-compression library for use on any computer hardware and operating system. It implements the compression algorithm commonly used in  and  files.

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

libarea
Version: 0.0.20140514-1 or higher

License: BSD 3-clause license

Libarea is a software library to compute profile and pocket operations which are used in computer aided manufacturing (CAM) software. It was created by Dan Heeks for his HeeksCNC project.

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

LibPack
LibPack is a convenient package with FreeCAD's build dependencies collected together. It is only needed if you are compiling FreeCAD on Windows with Visual Studio 2015 and above. You can find the latest LibPack on the releases page.

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