Third Party Libraries/sv

Översikt
Detta är bibliotek som inte har förändrats i FreeCAD projektet. De används som de är som ett dynamiskt länkbibliotek (*.so or *.dll). Om en ändring är nödvändig eller om en wrapper klass behövs, så måste wrapperns kod eller den förändrade bibliotekskoden flyttas till FreeCADs baspaket.

De använda biblioteken är:

Överväg att använda LibPack istället för att ladda ned och installera alla saker själv.

Python
Version: 2.5 eller högre

License: Python 2.5 licens

Du kan använda käll- eller binärkod från http://www.python.org/ eller alternativt använda ActiveState Python från http://www.activestate.com/ fast det kan vara svårt att få avbuggningsbiblioteken från ActiveState.

Python 2 became obsolete in 2019. Further development of FreeCAD will use exclusively Python 3; compatibility with Python 2 won't be explicitly added, so old workbenches and macros that use that version will have to be migrated or they may stop working.

Beskrivning
Python är det huvudsakliga skriptspråket och används på många ställen i applikationen.

Till exempel:


 * Implementation av testskript för att testa:
 * minnesläckor
 * försäkra funktionalitet efter ändringar
 * efterbyggningskontroller
 * testa täckningstester
 * Makron och makro inspelning
 * Implementation av applikationslogik för standardpaket
 * Implementation av hela arbetsbänkar
 * Dynamisk laddning av paket
 * Implementering av regler för design (Knowledge engineering)
 * Göra häftiga internetsaker som arbetsgrupper och PDM
 * Och så vidare ...

Speciellt Pythons dynamiska paketladdning används under körning för att ladda ytterligare funktionalitet och arbetsbänkar som behövs för de aktuella uppgifterna. För en närmare titt på Python se: www.python.org Varför Python kanske du frågar dig? Det finns några skäl: Hittills så har Jag använt följande olika skriptspråk i mitt professionella liv:


 * Perl
 * Tcl/Tk
 * VB
 * Java

Python är mer OO än Perl och Tcl, koden är inte lika stökig som i Perl och VB. Java är för det första inte ett skriptspråk och är svårt (eller omöjligt) att bädda in. Python är väldokumenterat och lätt att bädda in och bygga ut. Det är också vältestat och har en stark uppbackning i öppen-källkods samhället.

Krediter
Går till Guido van Rossum och en massa andra människor som gjorde Python till en sådan framgång!

OpenCasCade
Version: 5.2 eller högre

Licens: OCTPL

OCC är en fullödig CAD Kärna. Från början utvecklades den av Matra Datavision i Frankrike för Strim (Styler) och Euclid Quantum applikationerna och ändrades senare till öppen källkod. Det är verkligen ett stort bibliotek, och gör en fri cad applikation möjlig, genom att erbjuda några paket som skulle vara svåra eller omöjliga att implementera i ett öppen källkodsprojekt:


 * En komplett STEP kompliant geometrikärna
 * En topologisk datamodell och alla nödvändiga funktioner att arbeta med (klipp, förena, extrudera, och så vidare. . . )
 * Standard Import- / Export processorer som STEP, IGES, VRML
 * 3D och 2D visare med markeringssupport
 * En dokument och projektdatastruktur med support för spara och återställa, extern länkning av dokument, omberäkning av designhistoria (parametrisk modellering) och en facilitet för att ladda nya datatyper dynamiskt som ett utökningspaket

För att lära dig mer om OpenCasCade, ta en titt på OpenCasCade sidan eller http://www.opencascade.org.

Qt
Version: 4.1.x eller högre

Licens: GPL v2.0/v3.0 eller Kommersiell (från version 4.5 och framåt även v2.1)

Jag tror inte jag behöver berätta så mycket om Qt. Det är en av de mest använda verktygsseten för grafiskt gränssnitt i öppen källkodsprojekt. För mig är den viktigaste anledningen att använda Qt är Designer och möjligheten att ladda hela dialogrutor som en (XML) resurs och integrera specialiserade widgets. I en CAX applikation så är användarinteraktionen och dialogrutorna den absolut största delen av koden och för en bra dialogkonstruktör är dett mycket viktigt att lätt kunna utöka FreeCAD med ny funktionalitet. Ytterligare information och en mycket bra online dokumentation hittar du på http://www.qtsoftware.com.

Shiboken and Pyside
Shiboken (Shi bō ken, 死某剣) is the Python binding generator that Qt for Python uses to create the PySide module, in other words, is the system we use to expose the Qt C++ API to Python.

The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since the previous versions (without the 2) refer to Qt 4. Read more about Shiboken and Pyside on Qt for Python wiki page

Coin3D
Version: 2.0 eller högre

Licens: GPL v2.0 eller Kommersiell

Coin är ett högnivå 3D grafikbibliotek med ett C++ Applikationsprogrammeringsgränssnitt. Coin använder scengraf datastrukturer för att rendera realtidsgrafik som passar för de flesta vetenskapliga och konstruktions visualiserings applikationer.

Coin kan portas över många plattformar: alla UNIX / Linux / *BSD plattformar, alla Microsoft Windows operativsystem, och Mac OS X.

Coin är byggt på industristandard OpenGL direktrenderingsbiblioteket, och adderar abstraktioner för högnivåprimitiver, erbjuder 3D interaktivitet, ökar bekvämligheten och produktiviteten för programmeraren, och innehåller många komplexa optimeringsfunktioner för snabb rendering som är transparent för programmeraren.

Coin är baserat på SGI Open Inventor API. Open Inventor, för de som inte vet vad det är, har sedan länge varit de facto standard grafikbibliotek för 3D visualisering och visuell simuleringsmjukvara i vetenskapliga och konstruktörssammanhang. Det har bevisat sitt värde i mer än 10 år, dess mogenhet bidrar till dess framgång som ett huvudsakligt byggblock i tusentals storskaliga ingenjörsapplikationer världen runt.

Vi kommer att använda OpenInventor som 3D visare i FreeCAD eftersom OpenCasCade visaren (AIS och Graphics3D) har allvarliga begränsningar och prestandaflaskhalsar, speciellt när det gäller storskalig konstruktionsrendering. Andra saker som texturer eller volymetrisk rendering är inte väl stödda, och så vidare ....

Sedan Version 2.0 så använder Coin en annan licensmodell. Den är inte längre LGPL. De använder GPL för öppen källkod och en kommersiell licens för stängd källkod. Det innebär att om du vill sälja ditt arbete som är baserat på FreeCAD (utökningsmoduler) så måste du köpa en Coin licens!

SoQt
Version: 1.2.0 eller högre

Licens: GPL v2.0 eller Kommersiell

SoQt är Inventor bindningen till Qt gränssnittsverktygsset. Olyckligtvis så är det inte längre LGPL så vi måste ta bort det från FreeCADs kodbas och länka den som ett bibliotek. Den har samma licensmodell som Coin. Och du måste kompilera den med din Qt version.

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

Quarter
Version: 1.0 or higher

Quarter is a new Coin3d binding to the Qt toolkit. A version of it is included in the source code of FreeCAD.

Xerces-C++
Version: 2.7.0 eller högre

Licens: Apache Software License Version 2.0

Xerces-C++ är en validerande XML läsare som är skriven i C++ portabla delset. Xerces-C++ gör det lätt att ge din applikation möjligheten att läsa och skriva XML data. Ett delat bibliotek erbjuds för läsning, generering, manipulering, och validering av XML dokument.

Xerces-C++ är trogen till XML 1.0 rekommendationen och många associerade standarder (se Egenskaper nedan).

Läsaren erbjuder hög prestanda, modularitet, och skalbarhet. Källkod, exempel och API dokumentation är medskickade med läsaren. För portabilitet så har det tagits hänsyn till att använda så lite mallar som möjligt, ingen RTTI, och minimalt bruk av #ifdefs.

Läsaren används för att spara och återkalla parametrar i FreeCAD.

Zlib
Version: 1.x.x

Licens: zlib Licens

zlib är designat att vara ett fritt, allmänt, juridiskt obegränsat -- vilket innebär, ej begränsat av några patent -- förlustfritt datakompressionsbibliotek som kan användas på i stort sett all datorhårdvara och operativsystem. zlib dataformat är i sig själv portabelt över olika plattformar. Till skillnad från kompressionsmetoden LZW som används i Unix compress(1) och i bildformatet GIF, så expanderar aldrig den kompressionsmetod som för närvarande används i zlib datan. (LZW kan dubblera eller tredubbla filstorleken i extrema fall.) zlib's storlek i minnet är också oberoende av inmatningsdatan och kan om nödvändigt reduceras, till en kostnad av kompressionsgrad.

Boost
Version: 1.33.x

Licens: Boost Software License - Version 1.0

Boost C++ biblioteken är en samling av granskade, öppen källkodsbibliotek som utökar C++ funktionalitet. Biblioteken är licensierade under Boost Software License, som är anpassad för att Boost ska tillåtas att användas med både sluten och öppen källkodsprojekt. Många av Boosts grundare är med i C++ standardkommiten och flera Boost bibliotek har accepterats for integrering i Teknisk Rapport 1 av C++0x.

Biblioteken är riktade till ett stort område av C++ användare och applikationsområden. De sträcker sig från allmäna bibliotek som SmartPtr, till OS Abstraktioner som FileSystem, till bibliotek som huvdsakligen riktar sig till andra biblioteksutvecklare och avancerade C++ användare, som MPL.

För att försäkra effektivitet och flexibilitet, så använder Boost en hel del mallar. Boost har varit en källa för extensivt arbete och forskning i allmän programmering och meta-programmering i C++.

Se: http://www.boost.org/ för detaljer.

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 är ett smidigt paket med alla ovanstående bibliotek ihoppackade. Det är för närvarande tillgängligt för

Windows plattformen på Nedladdningssidan! Om du arbetar under Linux så behöver du inte LibPack, istället ska du använda paketförråden för din Linux distribution.

FreeCADLibs7.x Ändringslogg

 * Använder QT 4.5.x och Coin 3.1.x
 * Eigen exempelbibliotek fär robot tillagt
 * SMESH experimentell