Third Party Libraries/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(119 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{docnav|Compiling (Speeding up)|Third Party Tools}}


{{Docnav/it
<div class="mw-translate-fuzzy">
|[[Compiling_(Speeding_up)/it|Velocizzare la compilazione]]
=== Panoramica ===
|[[Third_Party_Tools/it|Strumenti di terze parti]]
}}


{{TOCright}}
Si tratta di librerie che nel progetto di FreeCAD non vengono modificate. Sono utilizzate sostanzialmente senza modifiche come librerie a collegamento dinamico (*.so o *.dll). Se è necessario modificarle o è necessaria una classe wrapper (classe involucro), allora il codice della wrapper o il codice della libreria modificata deve essere spostato nel pacchetto base di FreeCAD.
</div>


<span id="Overview"></span>
The dependencies need to be installed in the system before proceeding with compilation; see [[CompileOnUnix|compile on Unix]], [[CompileOnWindows|compile on Windows]], and [[CompileOnMac|compile on Mac]] for more information.
== Panoramica ==


Si tratta di librerie che FreeCAD utilizza come dipendenze di terze parti durante la compilazione. Di solito sono [https://en.wikipedia.org/wiki/Dynamic_loading librerie collegate dinamicamente] e hanno un'estensione {{incode|.so}} in Linux/MacOS e {{incode|.dll}} in Windows, e sono accompagnate dai loro file di intestazione {{incode|.h}} o {{incode|.hpp}} 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.
<div class="mw-translate-fuzzy">
Per l'ambiente Windows, considerare la possibilità di usare [[#LibPack/it|LibPack]] invece di scaricare e installare tutto da soli.


Le dipendenze devono essere installate nel sistema prima di procedere con la compilazione; vedi [[Compile_on_Linux/it|Compilazione in Linux]], [[Compile_on_Windows/it|Compilazione in Windows]] e [[Compile_on_MacOS/it|Compilazione in MacOS]] per maggiori informazioni.
Le librerie utilizzate sono:
</div>


Se stai compilando usando Windows, prendi in considerazione l'utilizzo di [[#LibPack|LibPack]] invece di provare a installare le librerie singolarmente.
<div class="mw-translate-fuzzy">

=== Link ===
<span id="Links"></span>
</div>
== Collegamenti ==


<div class="mw-translate-fuzzy">
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|+ Link table
|-
|-
! Lib name !! Version needed !! Link to get it
! Nome della libreria !! Versione necessaria !! Link per ottenerla
|-
|-
| Python || >= 2.5.x || http://www.python.org/
| Python || >= 3.6 || http://www.python.org/
|-
|-
| OpenCasCade || >= 5.2 || http://www.opencascade.org
| Boost || >= 1.33 || http://www.boost.org/
|-
|-
| Qt || >= 4.1.x || https://www.qt.io/
| OpenCASCADE || >= 7.3 || http://www.opencascade.org
|-
|-
| Coin3D || >= 2.x || http://www.coin3d.org
| Qt || >= 5.4 || https://www.qt.io/
|-
|-
| SoQt || >= 1.2 || http://www.coin3d.org
| Shiboken2 || {{Emphasis|same as Qt}} || https://wiki.qt.io/Qt_for_Python/Shiboken
|-
|-
| Xerces-C++ || >= 2.7.x < 3.0 || http://xml.apache.org/xerces-c/
| PySide2 || {{Emphasis|same as Qt}} || https://wiki.qt.io/Qt_for_Python/Shiboken
|-
|-
| Zlib || >= 1.x.x || http://www.zlib.net/
| Coin3D || >= 3.x || https://github.com/coin3d/coin
|-
|-
| Boost || >= 1.33.x || http://www.boost.org/
| SoQt (deprecated) || >= 1.2 || https://github.com/coin3d/soqt
|-
|-
| Eigen3 || >= 3.0.1 || http://eigen.tuxfamily.org/index.php?title=Main_Page
| Quarter || >= 1.0 || https://github.com/coin3d/quarter
|-
|-
| Shiboken || >= 1.1.2 || http://shiboken.readthedocs.org/en/latest/
| Pivy || >= 0.6.5 || https://github.com/coin3d/pivy/
|-
| FreeType || >= XXX || XXX
|-
| PyCXX || >= XXX || XXX
|-
| KDL || >= XXX || https://orocos.org/wiki/orocos/kdl-wiki.html
|-
| Point Cloud Library || >= XXX || XXX
|-
| Salome SMESH || >= XXX || XXX
|-
| VTK || >= 6.0 || XXX
|-
| Ply || >= 3.11 || https://www.dabeaz.com/ply/
|-
| Xerces-C++ || >= 3.0 || https://xerces.apache.org/xerces-c/
|-
| Eigen3 || >= 3.0 || http://eigen.tuxfamily.org/index.php?title=Main_Page
|-
| Zipios++ || >= 0.1.5 || https://snapwebsites.org/project/zipios, https://github.com/Zipios/Zipios
|-
| Zlib || >= 1.0 || http://www.zlib.net/, https://github.com/madler/zlib
|-
|-
| libarea || N/A || https://github.com/danielfalck/libarea
| libarea || >= 0.0.20140514-1 || https://github.com/danielfalck/libarea
|-
|-
|}
|}
</div>


<span id="Details"></span>
<div class="mw-translate-fuzzy">
=== Dettagli ===
== Dettagli ==
</div>


=== Python ===
<div class="mw-translate-fuzzy">
==== Python ====


'''Versione:''' 2.5 o superiore
'''Versione:''' 3.3 o superiore
</div>


'''Licenza:''' licenza Python 3.3
<div class="mw-translate-fuzzy">
'''Licenza:''' licenza Python 2.5
</div>


{{VeryImportantMessage|Python 2 became obsolete in 2019. Further development of FreeCAD will use exclusively Python 3; compatibility with Python 2 won't be tested, so old workbenches and macros that use this version will have to be updated or they may stop working. Please post on the [https://forum.freecadweb.org/ FreeCAD forum] if you encounter problems with Python 3.}}
{{VeryImportantMessage|Python 2 è diventato obsoleto nel 2019. L'ulteriore sviluppo di FreeCAD utilizzerà esclusivamente Python 3; la compatibilità con Python 2 non verrà testata, quindi i vecchi ambienti di lavoro e le macro che utilizzano questa versione dovranno essere aggiornati o potrebbero smettere di funzionare. Si prega di avvisare sul [https://forum.freecadweb.org/ forum di FreeCAD] se si riscontrano problemi con Python 3.}}


Python is a popular all-purpose scripting language that is widely used in Linux and open source software. In FreeCAD, Python is used during compilation and also at runtime in different ways. It is used
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,
* to write test scripts to test for different conditions, such as memory leaks, to ensure functionality of the software after changes, for post build checks, and test coverage tests,
* to write [[macros|macros]] and macro recording,
* per scrivere [[Macros/it|macro]] e registrazione di macro,
* per implementare la logica dell'applicazione per i pacchetti standard,
* to implement application logic for standard packages,
* to implement auxiliary tools such as the [[Addon Manager|Addon Manager]],
* per implementare strumenti ausiliari come [[Std_AddonMgr/it|Addon Manager]],
* to implement entire workbenches like [[Draft Workbench|Draft]] and [[Arch Workbench|Arch]],
* per implementare interi ambienti di lavoro come [[Draft_Workbench/it|Draft]] e [[Arch_Workbench/it|Arch]],
* per caricare dinamicamente i pacchetti,
* to dynamically load packages,
* per implementare regole per la progettazione (ingegneria della conoscenza)
* to implement rules for design (knowledge engineering),
* to do fancy Internet interactions like work groups and PDM
* 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 [http://www.python.org/ Python.org] o usare [http://www.activestate.com/ ActiveState Python], anche se è più difficile ottenere le librerie di debug da quest'ultimo.
<div class="mw-translate-fuzzy">
È possibile utilizzare il codice sorgente o i binari forniti da http://www.python.org/ oppure, in alternativa, utilizzare ActiveState Python fornito da http://www.activestate.com/ anche se è un po' difficile ottenere le librerie di debug da ActiveState.
</div>


Python was chosen as the scripting language for FreeCAD for different reasons:
Python è stato scelto come linguaggio di scripting per FreeCAD per diversi motivi:
* It is more object oriented than Perl and Tcl.
* È più orientato agli oggetti rispetto a Perl e Tcl.
* The code is more readable than Perl and Visual Basic.
* Il codice è più leggibile di Perl e Visual Basic.
* It is easier to embed in another application, unlike, say, Java.
* È più facile da incorporare in un'altra applicazione, a differenza, ad esempio, di Java.


In summary, Python is well documented, and it's easy to embed and extend in a C++ application. It is also well tested and has strong support from the open source community. Read more about Python and browse the official documentation at [http://www.python.org Python.org].
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 [http://www.python.org Python.org].


=== Boost ===
<div class="mw-translate-fuzzy">
==== Boost ====
</div>


'''Versione:''' 1.33 o superiore
<div class="mw-translate-fuzzy">
'''Versione:''' 1.33.x
</div>


'''Licenza:''' Boost Software License - Versione 1.0
'''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.
<div class="mw-translate-fuzzy">
Le librerie Boost C++ sono un insieme di librerie open source sottoposte a revisione paritaria, librerie che estendono le funzionalità di C++. Le librerie sono rilasciate sotto Licenza Boost Software, progettate per consentire a Boost di essere utilizzato sia con progetti aperti che chiusi. Molti dei fondatori di Boost fanno parte della commissione C++ standard e diverse librerie di Boost sono state accettate per l'incorporazione nel Technical Report 1 di C++0x.
</div>


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++.
Due to their popularity and stability, many Boost libraries have been accepted for incorporation into the C++11 standard, and more are planned for inclusion in subsequent C++ standards.


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 [http://www.boost.org/ home page di Boost].
<div class="mw-translate-fuzzy">
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++.
</div>


=== OpenCASCADE Technology ===
<div class="mw-translate-fuzzy">
==== OpenCasCade ====
</div>


'''Versione:''' 6.7 o superiore
<div class="mw-translate-fuzzy">
'''Versione:''' 5.2 o superiore
</div>


'''Licenza:''' la versione 6.7.0 e successive sono regolate dalla [https://www.opencascade.com/content/licensing GNU Lesser General Public License (LGPL) versione 2.1 con eccezioni aggiuntive]. Le versioni precedenti utilizzano la [https://www.opencascade.com/content/occt-public-license Open CASCADE Technology Public License].
<div class="mw-translate-fuzzy">
'''Licenza:''' v6.7.0 and later are governed by GNU Lesser General Public License (LGPL) version 2.1 with additional exception. https://www.opencascade.com/content/licensing Earlier versions use a slightly different license: https://www.opencascade.com/content/occt-public-license
</div>


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.
<div class="mw-translate-fuzzy">
OCC è un kernel di CAD completo. Originariamente, è stato sviluppato da Matra Datavision in Francia per le applicazioni Strim e Euclid Quantum e successivamente è stato reso Open Source. E' una enorme libreria e sopratutto rende possibile un programma di CAD gratuito, mettendo a disposizione alcuni pacchetti che sarebbero difficili o impossibili da realizzare in un progetto Open Source:
* Un kernel di geometria che supporta STEP
* Un modello topologico di dati e tutte le funzioni necessarie per lavorare con essi (taglio, fusione, estrusione, ecc ...)
* Processori standard di importazione / esportazione come STEP, IGES, VRML
* Visualizzatore 3D e 2D con il supporto per la selezione
* Un documento e una struttura di dati del progetto con il supporto per salvare e ripristinare, collegamenti esterni dei documenti, il ricalcolo della cronologia del progetto (modellazione parametrica) e un sistema per caricare nuovi tipi di dati in modo dinamico come un pacchetto di estensione.
</div>


OCCT è un insieme ampio e complesso di librerie C++ che forniscono le funzionalità richieste da un'applicazione CAD:
OCCT is a big and complex set of C++ libraries that provide functionality required by a CAD application:
* Un kernel geometrico completo conforme a STEP.
* A complete STEP compliant geometry kernel.
* Un modello di dati topologici e le funzioni necessarie per lavorare con le forme (taglio, fusione, estrusione e molte altre).
* A topological data model and needed functions to work with shapes (cut, fuse, extrude, and many others).
* Standard import and export processors for files like STEP, IGES, VRML.
* Processori d'importazione ed esportazione standard per file come STEP, IGES, VRML.
* A 2D and 3D viewer with selection support.
* 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.
* A document and project data structure with support for save and restore, external linking of documents, recalculation of design history (parametric modeling) and a facility to load new data types as an extension package dynamically.


There are two main versions of OpenCASCADE in existence in different Linux distributions. One is distributed by the original developers; it is known as OCCT, and is packaged under the names {{incode|occ}} or {{incode|occt}}. The other version is the "community edition", abbreviated OCE, and is normally found with the {{incode|oce}} name. FreeCAD can compile against either version, however, since 2016 FreeCAD recommends compiling against the official OCCT libraries rather than the OCE ones. The reason is that the community edition lacks important bug fixes and functions that make using FreeCAD better.
Esistono due versioni principali di OpenCASCADE esistenti in diverse distribuzioni Linux. Una è distribuita dagli sviluppatori originali; è noto come OCCT ed è impacchettato con i nomi {{incode|occ}} o {{incode|occt}}. L'altra versione è la "community edition", abbreviata OCE, e si trova normalmente con il nome {{incode|oce}}. 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 [http://www.opencascade.org sito web di OpenCASCADE].
<div class="mw-translate-fuzzy">
Per saperne di più su OpenCascade visitare la pagina di OpenCascade o consultare http://www.opencascade.org.
</div>


=== Qt ===
<div class="mw-translate-fuzzy">
==== Qt ====
</div>


'''Versione:''' 4.1 o superiore
<div class="mw-translate-fuzzy">
'''Versione:''' 4.1.x o superiore
</div>


'''Licenza:''' GPL v2.0/v3.0 o commerciale; dalla versione 4.5 in poi anche LPGL v2.1.
<div class="mw-translate-fuzzy">
'''Licenza:''' GPL v2.0/v3.0 o Commerciale (dalla versione 4.5 anche LPGL v2.1)
</div>


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.
<div class="mw-translate-fuzzy">
Non credo sia necessario dire molto su Qt. E' uno degli strumenti più utilizzati per i progetti di GUI (Interfacce grafiche) Open Source. Secondo me, i motivi principali per utilizzare Qt sono Qt Designer e la possibilità di caricare intere finestre di dialogo come risorse (XML) e di incorporarvi dei widget (componenti accessori) specializzati. In un'applicazione CAX l'interazione tra l'utente e le finestre di dialogo costituiscono sicuramente la maggior parte del codice e disporre un buon disegnatore di dialoghi è molto importante per poter estendere facilmente FreeCAD con nuove funzionalità. Ulteriori informazioni e una buona documentazione online si trova in http://www.qtsoftware.com.
</div>


Further information about Qt libraries and their programming documentation are available at [https://doc.qt.io/?hsCtaTracking=f641fd1a-772b-4957-964b-dad954b8d702%7C46c97dac-f1f6-49b3-ae46-8070fc35ea13 Qt Documentation].
Ulteriori informazioni sulle librerie Qt e la relativa documentazione di programmazione sono disponibili nella [https://doc.qt.io/?hsCtaTracking=f641fd1a-772b-4957-964b-dad954b8d702%7C46c97dac-f1f6-49b3-ae46-8070fc35ea13 Documentazione di Qt].


<span id="Shiboken2_and_Pyside2"></span>
<div class="mw-translate-fuzzy">
===== Shiboken e Pyside =====
==== Shiboken2 e Pyside2 ====
'''Shiboken''' (''Shi bō ken'', 死某剣) è il generatore di binding Python che Qt per Python usa per creare il modulo PySide, in altre parole, è il sistema che usiamo per esporre l'API Qt C ++ a Python.
</div>


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.
The original Shiboken and PySide packages were meant to be used with Python 2 and Qt4; since these two versions are considered obsolete in 2019, please use Shiboken2 and PySide2, which work with Python 3 and Qt5. New development of FreeCAD is done with Python 3 and Qt5, so compatibility with Python 2 and Qt4 is not guaranteed after FreeCAD 0.18.


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.
Read more about Shiboken and Pyside on [https://wiki.qt.io/Qt_for_Python/Shiboken Qt for Python].


Maggiori informazioni su Shiboken e Pyside su [https://wiki.qt.io/Qt_for_Python/Shiboken Qt per Python].
<div class="mw-translate-fuzzy">
==== Coin3D ====
</div>


=== Coin3D ===
<div class="mw-translate-fuzzy">
'''Versione:''' 2.0 o superiore
</div>


'''Versione:''' 3.0 o superiore
<div class="mw-translate-fuzzy">
'''Licenza:''' GPL v2.0 o Commerciale
</div>


'''Licenza:''' BSD 3-clause license
<div class="mw-translate-fuzzy">
Coin è 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 Coin utilizza la struttura di dati scenegraph (grafo di scena) adatta alla maggior parte delle applicazioni di visualizzazione scientifica e ingegneristica.
</div>


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.
<div class="mw-translate-fuzzy">
Coin è 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, aumenta enormemente la praticità e la produttività del programmatore, e contiene molte funzioni di ottimizzazione complesse per il rendering veloce che sono trasparenti per il programmatore di applicazioni.
</div>


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.
<div class="mw-translate-fuzzy">
Coin si basa sul SGI (sistema di gestione integrato) della API (interfaccia di programmazione di applicazioni) di Open Inventor. Open Inventor, per coloro che non hanno familiarità con essa, è da tempo diventata di fatto la libreria standard per la visualizzazione grafica 3D e per i software di simulazione visiva nella comunità scientifica e di ingegneria. È stata sperimentata per un periodo di oltre 10 anni, la sua maturità contribuisce al suo successo. È utilizzata quale blocco di costruzione principale per migliaia di applicazioni di ingegneria in larga scala in tutto il mondo.
</div>


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.
<div class="mw-translate-fuzzy">
In FreeCAD useremo OpenInventor come visualizzatore 3D perché il visualizzatore OpenCascade (AIS e Graphics3D) ha forti limitazione e costituisce una strozzatura delle prestazioni, soprattutto quando si tratta di grandi renderizzazioni di ingegneria. Altre cose quali texture o renderizzazione volumetrica non sono proprio supportate, ecc ....
</div>


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.
<div class="mw-translate-fuzzy">
Coin è portabile su un'ampia gamma di piattaforme: qualsiasi piattaforma UNIX / Linux / * BSD, tutti i sistemi operativi Microsoft Windows, e Mac OS X.
</div>


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 [https://github.com/coin3d/coin homepage di Coin3D].
<div class="mw-translate-fuzzy">

==== SoQt ====
<span id="SoQt_(deprecated)"></span>
</div>
==== SoQt (deprecato) ====


'''Versione:''' 1.2.0 o superiore
'''Versione:''' 1.2.0 o superiore


'''Licenza:''' BSD 3-clause license
<div class="mw-translate-fuzzy">
'''Licenza:''' GPL v2.0 o Commerciale
</div>


SoQt è il binding di Coin3D (Open Inventor) al toolkit GUI Qt.
<div class="mw-translate-fuzzy">
SoQt è il collante tra il toolkit dei componenti GUI Qt e Inventor. Purtroppo, non è più LGPL quindi dobbiamo rimuoverlo dal codice base di FreeCAD e collegarlo come una libreria. Ha lo stesso modello di licenza di Coin. Deve essere compilato con la propria versione di Qt.
</div>


SoQt is no longer used in FreeCAD, it was replaced by Quarter which is a more recent Qt binding.
SoQt non è più utilizzato in FreeCAD, è stato sostituito da Quarter che è un binding a Qt più recente.


==== Quarter ====
==== Quarter ====
'''Version:''' 1.0 or higher


'''License:''' BSD 3-clause license
'''Versione:''' 1.0 o successiva


'''Licenza:''' 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.


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.
<div class="mw-translate-fuzzy">
==== Xerces-C++ ====
</div>


==== Pivy ====
<div class="mw-translate-fuzzy">

'''Versione:''' 2.7.0 o superiore
'''Versione:''' 0.6.3 o successiva
</div>

'''Licenza:''' BSD 3-clause license

[[Pivy/it|Pivy]] è una libreria che avvolge la libreria Coin3d per l'uso in [[Python/it|Python]]. Non è necessaria per compilare FreeCAD o per avviarla, ma è necessaria come dipendenza di runtime dall'[[Draft_Workbench/it|Ambiente Draft]] e da altri ambienti che la utilizzano internamente, come [[Arch_Workbench/it|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'[[OpenSCAD Workbench/it|Ambiente OpenSCAD]]. Se non si utilizza questo workbench, si potrebbe non aver bisogno di questo pacchetto.

Per ulteriori informazioni, vedere la [https://www.dabeaz.com/ply/ home page di Ply]

=== Xerces-C++ ===

'''Versione:''' 3.0 o successiva


'''Licenza:''' Apache Software License Versión 2.0
'''Licenza:''' Apache Software License Versión 2.0


<div class="mw-translate-fuzzy">
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 (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.
</div>


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.
<div class="mw-translate-fuzzy">

In FreeCAD il parser è utilizzato per salvare e ripristinare i parametri.
L'analizzatore viene utilizzato per salvare e ripristinare i parametri in FreeCAD. Per ulteriori informazioni, vedere la [https://xerces.apache.org/xerces-c/ homepage di Xerces-C++].
</div>


=== Eigen3 ===
=== Eigen3 ===


'''Version:''' 3.0 or higher
'''Versione:''' 3.0 o successiva


'''License:''' Starting from the 3.1.1 version, it is licensed under the [http://www.mozilla.org/MPL/2.0 Mozilla Public License 2.0]. Earlier versions were licensed under the [https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License 3].
'''Licenza:''' A partire dalla versione 3.1.1, è concesso in licenza con la [http://www.mozilla.org/MPL/2.0 Mozilla Public License 2.0]. Le versioni precedenti erano concesse in licenza in base alla [https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License 3].


Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
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.
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 [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen homepage].
Eigen è utilizzato in FreeCAD per molte operazioni vettoriali nello spazio 3D. Per saperne di più, visita la [http://eigen.tuxfamily.org/index.php?title=Main_Page homepage di Eigen].


=== Zipios++ ===
=== Zipios++ ===


'''Version:''' 0.1.5 or higher
'''Versione:''' 0.1.5 o successiva


'''License:''' GNU Lesser General Public License 2.1
'''Licenza:''' GNU Lesser General Public License 2.1


Zipios++ is a C++ library for reading and writing {{incode|.zip}} files. Access to individual entries is provided through standard C++ iostreams. A simple read-only virtual file system that mounts regular directories and {{incode|.zip}} files is also provided. The structure and public interface of Zipios++ are loosely based on the {{incode|java.util.zip}} package of Java.
Zipios++ è una libreria C++ per leggere e scrivere file {{incode|.zip}}. 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 {{incode|.zip}}. La struttura e l'interfaccia pubblica di Zipios++ sono vagamente basate sul pacchetto {{incode|java.util.zip}} di Java.


FreeCAD's native file format {{incode|.FCstd}} is in reality a {{incode|.zip}} 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.
Il formato di file nativo di FreeCAD {{incode|.FCstd}} è in realtà un file {{incode|.zip}} 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.


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 <code>-DFREECAD_USE_EXTERNAL_ZIPIOS=ON</code> with {{incode|cmake}}.
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 <code>-DFREECAD_USE_EXTERNAL_ZIPIOS=ON</code> con {{incode|cmake}}.


Zipios++ uses the Zlib library to perform the actual decompression of files.
Zipios++ utilizza la libreria Zlib per eseguire l'effettiva decompressione dei file.


==== Zlib ====
<div class="mw-translate-fuzzy">
==== Zlib ====
</div>


'''Versione:''' 1.0 o successiva
<div class="mw-translate-fuzzy">
'''Versione:''' 1.x.x
</div>


'''Licenza:''' licenza zlib
<div class="mw-translate-fuzzy">
'''Licenza:''' zlib
</div>


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 {{incode|DEFLATE}} comunemente usato nei file {{incode|.zip}} e {{incode|.gzip}}.
<div class="mw-translate-fuzzy">
zlib è una libreria di compressione usabile praticamente su qualsiasi hardware e sistema operativo senza perdita di dati. Di proposito generale, è progettata per essere libera, giuridicamente svincolata, cioè non coperta da alcun brevetto. Il formato dei dati zlib è di per sé portabile sulle varie piattaforme. A differenza del metodo di compressione LZW utilizzato nella compressione Unix e nel formato immagine GIF, il metodo di compressione attualmente utilizzato in zlib sostanzialmente non espande mai i dati. (LZW può raddoppiare o triplicare le dimensioni del file in casi estremi.) Inoltre, l'utilizzo di memoria di Zlib è indipendente dai dati di input e, se necessario, può essere ridotta, ma con una perdita di efficienza di compressione.
</div>


A copy of this library is included in the source code of FreeCAD so it is compiled together with it.
Una copia di questa libreria è inclusa nel codice sorgente di FreeCAD, quindi viene compilata insieme ad esso.


=== libarea ===
<div class="mw-translate-fuzzy">
==== libarea ====
</div>


'''Versione:''' 0.0.20140514-1 o successiva
<div class="mw-translate-fuzzy">
'''Versione:''' N/A
</div>


'''Licenza:''' BSD 3-clause license
<div class="mw-translate-fuzzy">
'''Licenza:''' New BSD (BSD 3-Clause)
</div>


Libarea è una libreria software per calcolare le operazioni di profili e tasche utilizzate nel software di produzione assistita da computer (CAM). È stata creata da Dan Heeks per il suo progetto HeeksCNC.
<div class="mw-translate-fuzzy">
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.
</div>


Una copia della libreria è inclusa nel codice sorgente dell'[[CAM_Workbench/it|Ambiente CAM]], quindi viene compilata insieme ad esso.
A copy of the library is included with the source code of the [[Path Workbench|Path Workbench]], so it is compiled together with it.


== LibPack ==
<div class="mw-translate-fuzzy">
=== 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.
</div>


LibPack è un comodo pacchetto contenente le dipendenze di compilazione di FreeCAD raccolte tutte insieme. È necessario solo se si sta compilando FreeCAD su Windows con Visual Studio 2015 o versioni successive. È possibile trovare l'ultimo LibPack nella [https://github.com/FreeCAD/FreeCAD/releases 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 [[CompileOnUnix|compile on Unix]] page.


Se si sta lavorando sotto Linux, non c'è bisogno del LibPack, poiché si può ottenere le dipendenze dai repository della tua distribuzione come menzionato nella pagina [[Compile_on_Linux/it|Compilazione in Linux]].
=== FreeCAD 12.1.2 ===


=== FreeCAD 12.1.2 ===
See the announcement in the forum: [https://forum.freecadweb.org/viewtopic.php?f=4&t=35789 New libpacks for Windows with Qt5.12, OCC7.3 and Python 3.6 by apeltauer]


Vedere l'annuncio nel forum: [https://forum.freecadweb.org/viewtopic.php?f=4&t=35789 Nuovi libpack per Windows con Qt5.12, OCC7.3 e Python 3.6 di 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


Include tra le altre cose: 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
{{docnav/it|[[CompileOnMac/it|Compilare in Mac]]|[[Third Party Tools/it|Strumenti di terze parti]]}}


{{Userdocnavi}}


{{Docnav/it
[[Category:Developer Documentation/it]]
|[[Compiling_(Speeding_up)/it|Velocizzare la compilazione]]
|[[Third_Party_Tools/it|Strumenti di terze parti]]
}}


{{Userdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
{{clear}}
{{clear}}

Latest revision as of 19:25, 28 April 2024

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 .so in Linux/MacOS e .dll in Windows, e sono accompagnate dai loro file di intestazione .h o .hpp 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.

Collegamenti

Nome della libreria Versione necessaria Link per ottenerla
Python >= 3.6 http://www.python.org/
Boost >= 1.33 http://www.boost.org/
OpenCASCADE >= 7.3 http://www.opencascade.org
Qt >= 5.4 https://www.qt.io/
Shiboken2 same as Qt https://wiki.qt.io/Qt_for_Python/Shiboken
PySide2 same as Qt https://wiki.qt.io/Qt_for_Python/Shiboken
Coin3D >= 3.x https://github.com/coin3d/coin
SoQt (deprecated) >= 1.2 https://github.com/coin3d/soqt
Quarter >= 1.0 https://github.com/coin3d/quarter
Pivy >= 0.6.5 https://github.com/coin3d/pivy/
FreeType >= XXX XXX
PyCXX >= XXX XXX
KDL >= XXX https://orocos.org/wiki/orocos/kdl-wiki.html
Point Cloud Library >= XXX XXX
Salome SMESH >= XXX XXX
VTK >= 6.0 XXX
Ply >= 3.11 https://www.dabeaz.com/ply/
Xerces-C++ >= 3.0 https://xerces.apache.org/xerces-c/
Eigen3 >= 3.0 http://eigen.tuxfamily.org/index.php?title=Main_Page
Zipios++ >= 0.1.5 https://snapwebsites.org/project/zipios, https://github.com/Zipios/Zipios
Zlib >= 1.0 http://www.zlib.net/, https://github.com/madler/zlib
libarea >= 0.0.20140514-1 https://github.com/danielfalck/libarea

Dettagli

Python

Versione: 3.3 o superiore

Licenza: licenza Python 3.3

Python 2 è diventato obsoleto nel 2019. L'ulteriore sviluppo di FreeCAD utilizzerà esclusivamente Python 3; la compatibilità con Python 2 non verrà testata, quindi i vecchi ambienti di lavoro e le macro che utilizzano questa versione dovranno essere aggiornati o potrebbero smettere di funzionare. Si prega di avvisare sul forum di FreeCAD se si riscontrano problemi con Python 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,
  • per 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 Python.org 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 occ o occt. L'altra versione è la "community edition", abbreviata OCE, e si trova normalmente con il nome oce. 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 o successiva

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.

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 .zip. 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 .zip. La struttura e l'interfaccia pubblica di Zipios++ sono vagamente basate sul pacchetto java.util.zip di Java.

Il formato di file nativo di FreeCAD .FCstd è in realtà un file .zip 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 -DFREECAD_USE_EXTERNAL_ZIPIOS=ON con cmake.

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 DEFLATE comunemente usato nei file .zip e .gzip.

Una copia di questa libreria è inclusa nel codice sorgente di FreeCAD, quindi viene compilata insieme ad esso.

libarea

Versione: 0.0.20140514-1 o successiva

Licenza: BSD 3-clause license

Libarea è una libreria software per calcolare le operazioni di profili e tasche utilizzate nel software di produzione assistita da computer (CAM). È stata creata da Dan Heeks per il suo progetto HeeksCNC.

Una copia della libreria è inclusa nel codice sorgente dell'Ambiente CAM, quindi viene compilata insieme ad esso.

LibPack

LibPack è un comodo pacchetto contenente le dipendenze di compilazione di FreeCAD raccolte tutte insieme. È necessario solo se si sta compilando FreeCAD su Windows con Visual Studio 2015 o versioni successive. È possibile trovare l'ultimo LibPack nella releases page.

Se si sta lavorando sotto Linux, non c'è bisogno del LibPack, poiché si può ottenere le dipendenze dai repository della tua distribuzione come menzionato nella pagina Compilazione in Linux.

FreeCAD 12.1.2

Vedere l'annuncio nel forum: Nuovi libpack per Windows con Qt5.12, OCC7.3 e Python 3.6 di apeltauer

Include tra le altre cose: 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