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.

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.

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!

ODE (Open dynamic engine)
Version: 0.10.0 eller högre

Licens: LGPL v2.1 eller senare eller BSD

ODE är ett öppen källkod, högpresterande bibliotek för simulering av dynamiken i fasta kroppar. Det är fullt funktionellt, stabilt, moget och plattformsoberoende med ett lättanvänt C/C++ API. Det har avancerade ledtyper och integrerad kollisionsdetektior med friktion. ODE är användbart för simulering av fordon och objekt i virtuella miljöer. Det används för närvarande i många datorspel, 3D ritprogram och simuleringsprogram.

Krediter
Russell Smith är ODEs primära författare.

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.

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.

GTS
Version: 0.7.x

Licens: LGPL v2.0 eller senare

GTS står för GNU Triangulated Surface Library. Det är ett fritt, öppen källkodsbibliotek avsett att ge ett set med användbara funktioner för att hantera 3D ytor som består av ihopkopplade trianglar (nät). Källkoden är tillgänglig fritt under Free Software LGPL licensen.

Behövs egentligen inte för att kompilera FreeCAD. Du kan stänga på användandet med en proprocessor växel i FCConfig.h.

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

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.

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