Third Party Libraries/it

Panoramica
Si tratta di librerie che FreeCAD utilizza come dipendenze di terze parti durante la compilazione. Di solito sono librerie collegate dinamicamente e hanno un'estensione in Linux/MacOS e  in Windows, e sono accompagnati dai loro file di intestazione  o  o simili. Se è necessaria una libreria modificata o una classe wrapper, il codice della libreria modificata, o wrapper, deve diventare parte del codice sorgente di FreeCAD e compilato insieme ad esso.

Le dipendenze devono essere installate nel sistema prima di procedere con la compilazione; vedi Compilazione in Linux, Compilazione in Windows e Compilazione in MacOS per maggiori informazioni.

Se stai compilando usando Windows, prendi in considerazione l'utilizzo di LibPack invece di provare a installare le librerie singolarmente.

Python
Versione: 3.3 o superiore

Licenza: licenza Python 3.3

Python è un popolare linguaggio di scripting per tutti gli usi ampiamente utilizzato in Linux e nel software open source. In FreeCAD, Python viene utilizzato durante la compilazione e anche in fase di esecuzione in diversi modi. È utilizzato
 * per scrivere script di test per testare condizioni diverse, come perdite di memoria, per garantire la funzionalità del software dopo le modifiche, per controlli post-compilazione e test di copertura dei test,
 * per scrivere macro e registrazione di macro,
 * per implementare la logica dell'applicazione per i pacchetti standard,
 * per implementare strumenti ausiliari come Addon Manager,
 * per implementare interi ambienti di lavoro come Draft e Arch,
 * per caricare dinamicamente i pacchetti,
 * implementare regole per la progettazione (ingegneria della conoscenza),
 * per creare interazioni fantasiose su Internet come gruppi di lavoro e PDM

Su Linux, Python è solitamente già installato nella propria distribuzione. Per Windows è possibile ottenere un binario precompilato da o usare ActiveState Python, anche se è più difficile ottenere le librerie di debug da quest'ultimo.

Python è stato scelto come linguaggio di scripting per FreeCAD per diversi motivi:
 * È più orientato agli oggetti rispetto a Perl e Tcl.
 * Il codice è più leggibile di Perl e Visual Basic.
 * È più facile da incorporare in un'altra applicazione, a differenza, ad esempio, di Java.

In sintesi, Python è ben documentato ed è facile da incorporare ed estendere in un'applicazione C++. È anche ben testato e gode di un forte sostegno da parte della comunità open source. Letture ulteriori su Python sfogliando la documentazione ufficiale su Python.org.

Boost
Versione: 1.33 o superiore

Licenza: Boost Software License - Versione 1.0

Le librerie Boost C++ sono raccolte di librerie open source sottoposte a revisione paritaria che estendono le funzionalità di C++. Sono pensate per essere ampiamente utili in un ampio spettro di applicazioni e per funzionare bene con la libreria standard C++. La licenza Boost è progettata per incoraggiarne l'uso in progetti open source e closed source.

A causa della loro popolarità e stabilità, molte librerie Boost sono state accettate per l'incorporazione nello standard C++11 e altre sono pianificate per l'inclusione nei successivi standard C++.

Al fine di garantire efficienza e flessibilità, Boost fà ampio uso di modelli. Boost è stata una fonte di intenso lavoro e di ricerca nella programmazione generica e nella meta-programmazione in C++. Maggiori informazioni su Boost visitando la home page di Boost.

OpenCASCADE Technology
Versione: 6.7 o superiore

Licenza: la versione 6.7.0 e successive sono regolate dalla GNU Lesser General Public License (LGPL) versione 2.1 con eccezioni aggiuntive. Le versioni precedenti utilizzano la Open CASCADE Technology Public License.

OpenCASCADE Technology (OCCT) è un kernel CAD completo e di livello professionale. È stato sviluppato nel 1993 e originariamente chiamato CAS.CADE, da Matra Datavision in Francia per le applicazioni Strim (Styler) ed Euclid Quantum. Nel 1999 è stato rilasciato come software open source e da allora si chiama OpenCASCADE.

OCCT è un insieme ampio e complesso di librerie C++ che forniscono le funzionalità richieste da un'applicazione CAD:
 * Un kernel geometrico completo conforme a STEP.
 * Un modello di dati topologici e le funzioni necessarie per lavorare con le forme (taglio, fusione, estrusione e molte altre).
 * Processori d'importazione ed esportazione standard per file come STEP, IGES, VRML.
 * Un visualizzatore 2D e 3D con supporto alla selezione.
 * Una struttura di dati di documenti e progetti con supporto per salvataggio e ripristino, collegamento esterno di documenti, ricalcolo della cronologia di progettazione (modellazione parametrica) e una funzione per caricare dinamicamente nuovi tipi di dati come pacchetto di estensione.

Esistono due versioni principali di OpenCASCADE esistenti in diverse distribuzioni Linux. Una è distribuita dagli sviluppatori originali; è noto come OCCT ed è impacchettato con i nomi o. L'altra versione è la "community edition", abbreviata OCE, e si trova normalmente con il nome. FreeCAD può compilare con entrambe le versioni, tuttavia, dal 2016 FreeCAD consiglia di compilare con le librerie OCCT ufficiali piuttosto che con quelle OCE. Il motivo è che l'edizione della comunità mancano importanti correzioni di bug e funzioni che rendono migliore l'utilizzo di FreeCAD.

Per ulteriori informazioni, visitare il sito web di OpenCASCADE.

Qt
Versione: 4.1 o superiore

Licenza: GPL v2.0/v3.0 o commerciale; dalla versione 4.5 in poi anche LPGL v2.1.

Qt è uno dei toolkit di interfaccia utente grafica (GUI) più popolari disponibili nel mondo open source. FreeCAD utilizza questo toolkit per disegnare l'interfaccia del programma. Per questo, l'applicazione Qt Designer è molto utile in quanto consente agli sviluppatori di disegnare rapidamente finestre di dialogo e finestre, esportarle come file di risorse XML e quindi caricare queste interfacce in fase di esecuzione.

Ulteriori informazioni sulle librerie Qt e la relativa documentazione di programmazione sono disponibili nella Documentazione di Qt.

Shiboken2 e Pyside2
Shiboken è il generatore di binding Python che Python Qt utilizza per creare il modulo PySide, in altre parole, è il sistema utilizzato per esporre l'API Qt C++ al linguaggio Python.

I pacchetti originali Shiboken e PySide dovevano essere usati con Python 2 e Qt4; poiché queste due versioni sono considerate obsolete dal 2019, utilizzare Shiboken2 e PySide2, che funzionano con Python 3 e Qt5. Il nuovo sviluppo di FreeCAD è fatto con Python 3 e Qt5, quindi la compatibilità con Python 2 e Qt4 non è garantita dopo FreeCAD 0.18.

Maggiori informazioni su Shiboken e Pyside su Qt per Python.

Coin3D
Versione: 3.0 o superiore

Licenza: BSD 3-clause license

Coin3D è una libreria di grafica 3D di alto livello con una interfaccia di programmazione delle applicazioni (Application Programming Interface) in C++. Per "renderizzare" i grafici in tempo reale utilizza la struttura di dati scenegraph (grafo di scena) adatta alla maggior parte delle applicazioni di visualizzazione scientifica e ingegneristica.

Coin3D è costruito secondo lo standard del settore OpenGL delle librerie di modalità di renderizzazione immediata, e aggiunge astrazioni per primitive di livello superiore, fornisce interattività 3D e contiene molte funzioni di ottimizzazione complesse per il rendering veloce che sono trasparenti per il programmatore di applicazioni.

Coin3D è compatibile con l'API Open Inventor 2.1 di SGI. Questa API è diventata l'interfaccia grafica standard de facto per la visualizzazione 3D nella comunità scientifica e ingegneristica. Ha dimostrato il suo valore sin dal 2000 come componente principale in migliaia di applicazioni ingegneristiche in tutto il mondo.

Coin3D (Open Inventor) viene utilizzato come visualizzatore 3D in FreeCAD perché il visualizzatore OpenCASCADE (AIS e Graphics3D) presenta limitazioni e colli di bottiglia nelle prestazioni, in particolare con il rendering ingegneristico su larga scala; altre cose come texture o rendering volumetrico non sono interamente supportate dal visualizzatore OpenCASCADE.

Coin3D è portatile su un'ampia gamma di piattaforme: sistemi operativi UNIX, Linux, BSD, macOS e Microsoft Windows. Per saperne di più su questa libreria, visita la homepage di Coin3D.



SoQt (deprecato)
Versione: 1.2.0 o superiore

Licenza: BSD 3-clause license

SoQt è il binding di Coin3D (Open Inventor) al toolkit GUI Qt.

SoQt non è più utilizzato in FreeCAD, è stato sostituito da Quarter che è un binding a Qt più recente.

Quarter
Versione: 1.0 or higher

Licenza: BSD 3-clause license

Quarter è un binding a Coin3D più recente rispetto al toolkit Qt. Una sua versione è inclusa nel codice sorgente di FreeCAD, quindi viene compilata insieme ad esso.

Pivy
Versione: 0.6.3 o successiva

Licenza: BSD 3-clause license

Pivy è una libreria che avvolge la libreria Coin3d per l'uso in Python. Non è necessaria per compilare FreeCAD o per avviarla, ma è necessaria come dipendenza di runtime dall'Ambiente Draft e da altri ambienti che la utilizzano internamente, come Arch e [ [BIM_Workbench/it|BIM]].

Se non si utilizzano questi ambienti di lavoro, non ci sarà bisogno di Pivy.

Ply
Versione: 3.11 o successiva

Licenza: BSD 3-clause license

Ply è il parser Python-Lex-Yacc. Viene utilizzato come dipendenza di runtime dall'Ambiente OpenSCAD. Se non si utilizza questo workbench, si potrebbe non aver bisogno di questo pacchetto.

Per ulteriori informazioni, vedere la home page di Ply

Xerces-C++
Versione: 3.0 o successiva

Licenza: Apache Software License Versión 2.0

Xerces-C++ è un analizzatore (parser) di convalida XML scritto in un sottoinsieme portatile di C++. Xerces-C++ rende più facile fornire alla propria applicazione la capacità di leggere e scrivere dati XML. Per l'analisi, la generazione, la manipolazione, e la convalida di documenti XML è prevista una libreria condivisa.

Xerces-C++ è un analizzatore XML di convalida scritto in un sottoinsieme portabile di C++. Xerces-C++ rende facile dare alla tua applicazione la capacità di leggere e scrivere dati XML. Viene fornita una libreria condivisa per l'analisi, la generazione, la manipolazione e la convalida di documenti XML. Xerces-C++ è fedele alla raccomandazione XML 1.0 e agli standard associati.

L'analizzatore viene utilizzato per salvare e ripristinare i parametri in FreeCAD. Per ulteriori informazioni, vedere la homepage di Xerces-C++.

Eigen3
Versione: 3.0 o successiva

Licenza: A partire dalla versione 3.1.1, è concesso in licenza con la Mozilla Public License 2.0. Le versioni precedenti erano concesse in licenza in base alla GNU Lesser General Public License 3.

Eigen è una libreria di template C++ per l'algebra lineare: matrici, vettori, solutori numerici e algoritmi correlati.

Se vuoi solo usare Eigen, puoi usare subito i file di header. Non esiste alcuna libreria binaria a cui collegarsi e nessun file di intestazione configurato. Eigen è una libreria di modelli pura definita negli header.

Eigen è utilizzato in FreeCAD per molte operazioni vettoriali nello spazio 3D. Per saperne di più, visita la homepage di Eigen.

Zipios++
Versione: 0.1.5 o successiva

Licenza: GNU Lesser General Public License 2.1

Zipios++ è una libreria C++ per leggere e scrivere file. L'accesso alle singole voci viene fornito tramite iostream C++ standard. Viene inoltre fornito un semplice file system virtuale di sola lettura che monta directory regolari e file. La struttura e l'interfaccia pubblica di Zipios++ sono vagamente basate sul pacchetto di Java.

Il formato di file nativo di FreeCAD è in realtà un file  che memorizza e comprime altri tipi di dati al suo interno, come i file BREP e XML. Pertanto, Zipios++ viene utilizzato per salvare e aprire archivi compressi, inclusi i file FreeCAD.

Una copia di Zipios++ è inclusa nel codice sorgente di FreeCAD quindi viene compilata insieme ad esso. Se desideri utilizzare una libreria Zipios++ esterna, fornita dal tuo sistema operativo, si può impostare  con.

Zipios++ utilizza la libreria Zlib per eseguire l'effettiva decompressione dei file.

Zlib
Versione: 1.0 o successiva

Licenza: licenza zlib

Zlib è progettato per essere una libreria di compressione dei dati gratuita, generica e senza perdite da utilizzare su qualsiasi hardware e sistema operativo. Implementa l'algoritmo di compressione comunemente usato nei file  e.

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

libarea
Versione: N/A

Licenza: New BSD (BSD 3-Clause)

Area è una parte di software creato da Dan Heeks per HeeksCNC. Viene impiegato come una libreria per la generazione di operazioni CAM correlate all'ambiente Path.

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

LibPack
LibPack è un utile pacchetto che comprende tutte le librerie di cui sopra. È necessario solo sulla piattaforma Windows e lo si può trovare su https://github.com/FreeCAD/FreeCAD-ports-cache/releases. Lavorando sotto Linux non si ha bisogno di LibPack, si deve invece fare uso dei repository di pacchetti della propria distribuzione 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 Linux 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