Biblioteci de la terți

From FreeCAD Documentation
Revision as of 11:42, 21 August 2018 by Luc (talk | contribs) (Created page with "Nu cred că trebuie să spun foarte multe despre QT. Este unul dintre cele mai utilizate instrumente de GUI în proiectele Open Source. Pentru mine cel mai important punct de...")

Prezentare generală

Acestea sunt biblioteci care nu sunt modificate în proiectul FreeCAD. Ele sunt practic utilizate ca o bibliotecă dinamică de legătură (* .so sau * .dll). Dacă este nevoie de schimbare, sau a wrapper class este necesar , atunci codul wrapper sau biblioteca modificată trebuie mutat în pachetul de bază FreeCAD. Bibliotecile folosite sunt:

Dacă utilizați Windows, luați în considerare folosireaLibPack în loc de a descărca și a instala tot felul de chestii pe cont propriu.

Legături

Link table
Lib name Version needed Link to get it
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

Detalii

Python

Version: 2.5 or higher

License: Python 2.5 license

Puteți folosi programul sursă sau binarul de la http://www.python.org/ ori să utlizați alternativ ActiveState Python from http://www.activestate.com/ deși este puțin greu să obțineți depanarea bibliotecilor/libs din ActiveState.

Descriere

Python este limbajul principal de scripting și este utilizat în întreaga aplicație. De exemplu:

  • Implementarea de scripturi de testare pentru testarea de:
    • scurgeri de memorie
    • asigurarea noile funcționalități după schimbări
    • verificări post build
    • teste de acoperire a testelor
  • Macro și înregistrare macrocomenzi
  • Implementarea unei logici a aplicațiilor pentru pachetele standard
  • Implementarea de ateliere întregi
  • Încărcarea dinamică a pachetelor
  • Reguli de implementare pentru proiectare (Ingineria cunoașterii)
  • Făcând niște lucruri drăguțe de pe Internet cum ar fi grupurile de lucru și PDM
  • Și așa mai departe ...

Mai ales încărcarea dinamică a pachetului Python este folosită pentru a încărca, la runtime, funcționalități suplimentare și ateliere de lucru necesare pentru sarcinile reale.. Pentru o privire mai atentă la Python, vedeți: www.python.org De ce puteți întreba Python. Există câteva motive: Până în prezent, am folosit limbaje diferite în viața profesională:

  • Perl
  • Tcl / Tk
  • VB
  • Java

Python este mai mult OO apoi Perl și Tcl, codul nu este ca în Perl și VB. Java nu este o limbaj de programare script în primul rând și greu (sau imposibil) de a încorpora. Python este bine documentat și ușor de încorporat și extins. De asemenea, este bine testat și are o susținere puternică în comunitatea open source.

Credits

Mulțumită lui Guido van Rossum și a mulțor alți oameni care au făcut Python un astfel de succes!

OpenCasCade

Version: 5.2 or higher

License: 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

OCC este un kernel CAD complet echipat. Inițial, este dezvoltat de Matra Datavision în Franța pentru aplicațiile Strim (Styler) și Euclid Quantum și mai târziu l-au făcut Open Source. Este o bibliotecă cu adevărat imensă și face posibilă o aplicație CAO gratuită, oferind câteva pachete care ar fi greu sau imposibil de implementat într-un proiect Open Source:

  • Un nucleu geometric complet compatibil cu STEP
  • Un model topologic de date și toate funcțiile necesare pentru a lucra pe (tăiere, fuziune, extrudere, și așa mai departe ...)
  • Procese standard de import / export precum STEP, IGES, VRML
  • Viewer 3D și 2D cu selectare suport
  • O structura de document și a datelor unui proiect cu suport pentru salvare și restaurare, legătura externă a documentelor, recalcularea istoricului de desenului/proiectului (modelarea parametrică) și a unui centru de încărcare a datelor de tip nou, ca un modul de extensie dinamic.

To learn more about OpenCasCade take a look at the OpenCasCade page or http://www.opencascade.org.

Qt

Version: 4.1.x or higher

License: GPL v2.0/v3.0 or Commercial (from version 4.5 on also LPGL v2.1)

Nu cred că trebuie să spun foarte multe despre QT. Este unul dintre cele mai utilizate instrumente de GUI în proiectele Open Source. Pentru mine cel mai important punct de utilizare a Qt este designerul Qt și posibilitatea de a încărca toate casetele dialog ca resursă (XML) și care încorporează widget-uri specializate. Într-o aplicație CAX interacțiunea cu utilizatorul și casetele de dialog sunt de departe cea mai mare parte a codului și o bună proiectarea a dialogului ester foarte importantă pentru extinderea freeCAD cu noi funcționalități. Informații suplimentare și foarte bună documentație on line o veți găsi pe http://www.qtsoftware.com.

Coin3D

Version: 2.0 or higher

License: GPL v2.0 or Commercial

Coin is a high-level 3D graphics library with a C++ Application Programming Interface. Coin uses scenegraph data structures to render real-time graphics suitable for mostly all kinds of scientific and engineering visualization applications.

Coin is portable over a wide range of platforms: any UNIX / Linux / *BSD platform, all Microsoft Windows operating system, and Mac OS X.

Coin is built on the industry-standard OpenGL immediate mode rendering library, and adds abstractions for higher-level primitives, provides 3D interactivity, immensely increases programmer convenience and productivity, and contains many complex optimization features for fast rendering that are transparent for the application programmer.

Coin is based on the SGI Open Inventor API. Open Inventor, for those who are not familiar with it, has long since become the de facto standard graphics library for 3D visualization and visual simulation software in the scientific and engineering community. It has proved it's worth over a period of more than 10 years, its maturity contributing to its success as a major building block in thousands of large-scale engineering applications around the world.

We will use OpenInventor as 3D viewer in FreeCAD because the OpenCasCade viewer (AIS and Graphics3D) has serios limitations and performace bottlenecks, especially when it goes in large-scale engineering rendering. Other things like textures or volumetric rendering are not really supported, and so on ....

Since Version 2.0 Coin uses a different licence model. It's not longer LGPL. They use GPL for open source and a commercial licence for closed source. That means if you want to sell your work based on FreeCAD (extension modules) you need to purchase a Coin licence!

SoQt

Version: 1.2.0 or higher

License: GPL v2.0 or Commercial

SoQt is the 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 Coin. And you have to compile it with your version of Qt.

Xerces-C++

Version: 2.7.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 many associated standards (see Features below).

The parser provides high performance, modularity, and scalability. Source code, samples and API documentation are provided with the parser. For portability, care has been taken to make minimal use of templates, no RTTI, and minimal use of #ifdefs.

The parser is used for saving and restoring parameters in FreeCAD.

Zlib

Version: 1.x.x

License: zlib License

zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system. The zlib data format is itself portable across platforms. Unlike the LZW compression method used in Unix compress(1) and in the GIF image format, the compression method currently used in zlib essentially never expands the data. (LZW can double or triple the file size in extreme cases.) zlib's memory footprint is also independent of the input data and can be reduced, if necessary, at some cost in compression.

Boost

Version: 1.33.x

License: Boost Software License - Version 1.0

The Boost C++ libraries are a collection of peer-reviewed, open source libraries that extend the functionality of C++. The libraries are licensed under the Boost Software License, designed to allow Boost to be used with both open and closed source projects. Many of Boost's founders are on the C++ standard committee and several Boost libraries have been accepted for incorporation into the Technical Report 1 of C++0x.

The libraries are aimed at a wide range of C++ users and application domains. They range from general-purpose libraries like SmartPtr, to OS Abstractions like FileSystem, to libraries primarily aimed at other library developers and advanced C++ users, like MPL.

In order to ensure efficiency and flexibility, Boost makes extensive use of templates. Boost has been a source of extensive work and research into generic programming and meta-programming in C++.

See: http://www.boost.org/ for details.

libarea

Version: N/A

License: New BSD (BSD 3-Clause)

Area is a piece of software created by Dan Heeks for HeeksCNC. It is employed as a library for generation of CAM related operations in the Path Workbench.

LibPack

LibPack is a convenient package with all the above libraries packed together. It is currently available for the Windows platform on the Download page! If you're working under Linux you don't need a LibPack, instead of you should make use of the package repositories of your Linux distribution.

FreeCADLibs7.x Changelog

  • Using QT 4.5.x and Coin 3.1.x
  • Eigen template lib for Robot added
  • SMESH experimental


Compiling (Speeding up)
Third Party Tools