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

Lizenz: BSD 3-Klausel Lizenz

SoQt ist die Coin3D (Open Inventor) Anbindung an den Qt GUI Werkzeugkasten. Leider ist es nicht mehr unter der LGPL, so dass wir es aus der Code Basis von FreeCAD entfernen und als Bibliothek verlinken müssen. Es hat das gleiche Lizenzmodell wie Coin3D. Und du musst es mit deiner Version von Qt kompilieren.

SoQt wird in FreeCAD nicht mehr verwendet, es wurde durch Quarter ersetzt, welches eine neuere Qt Bindung ist.

Quarter
Version: 1.0 oder höher

Lizenz: BSD 3-Klausel Lizenz

Quarter ist eine neuere Coin3D Bindung an den Qt Werkzeugkasten. Eine Version davon ist im Quellcode von FreeCAD enthalten, so dass es zusammen mit diesem kompiliert wird.

Xerces-C++
Version: 3.0 oder höher

Lizenz: Apache Software Lizenz Version 2.0

Xerces-C++ ist ein validierender XML Parser, der in einer portablen Untermenge von C++ geschrieben ist. Xerces-C++ macht es einfach, deiner Anwendung die Möglichkeit zu geben, XML Daten zu lesen und zu schreiben. Eine gemeinsame Bibliothek wird für das Parsen, Generieren, Manipulieren und Validieren von XML Dokumenten bereitgestellt. Xerces-C++ ist konform mit der XML 1.0 Empfehlung und den damit verbundenen Standards.

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

Eigen3
Version: 3.0 oder höher

Lizenz: Ab der Version 3.1.1 ist sie unter der Mozilla Public License 2.0 lizenziert. Frühere Versionen waren unter der GNU Lesser General Public License 3 lizenziert.

Eigen ist eine C++ Vorlagenbibliothek für lineare Algebra: Matrizen, Vektoren, numerische Löser und verwandte Algorithmen.

Wenn Du nur Eigen verwenden möchtest, kannst Du die Kopfzeilen Dateien sofort verwenden. Es gibt keine binäre Bibliothek zum Verknüpfen und keine konfigurierte Kopfzeilen Datei. Eigen ist eine reine Vorlagen Bibliothek, die in den Kopfzeilen definiert ist.

Eigen wird in FreeCAD für viele Vektoroperationen im 3D Raum verwendet. Um mehr zu erfahren, besuche Eigen Homepage.

Zipios++
Version: 0.1.5 oder höher

Lizenz: GNU Lesser General Public License 2.1

Zipios++ ist eine C++ Bibliothek zum Lesen und Schreiben von Dateien. Der Zugriff auf einzelne Einträge erfolgt über Standard C++ iostreams. Ein einfaches, schreibgeschütztes virtuelles Dateisystem, das reguläre Verzeichnisse und Dateien einhängt, wird ebenfalls zur Verfügung gestellt. Die Struktur und die öffentliche Schnittstelle von Zipios++ basiert lose auf dem Paket von Java.

FreeCADs ursprüngliches Dateiformat ist in Wirklichkeit eine  Datei, die andere Datentypen darin speichert und komprimiert, wie z.B. BREP  und XML Dateien. Daher wird Zipios++ zum Speichern und Öffnen von komprimierten Archiven, einschließlich FreeCAD Dateien, verwendet.

Eine Kopie von Zipios++ ist im Quellcode von FreeCAD enthalten, so dass es zusammen mit diesem kompiliert wird. Wenn Du eine externe Zipios++-Bibliothek verwenden willst, die von deinem Betriebssystem zur Verfügung gestellt wird, kannst Du  mit  setzen.

Zipios++ verwendet die Zlib Bibliothek, um die eigentliche Dekomprimierung von Dateien durchzuführen.

Zlib
Version: 1.0 oder höher

Lizenz: zlib lizenz

Zlib ist als eine freie, verlustfreie, universell einsetzbare Datenkompressionsbibliothek für die Verwendung auf jeder Computer Hardware und jedem Betriebssystem konzipiert. Sie implementiert den Kompressionsalgorithmus, der üblicherweise in  und  Dateien verwendet wird.

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