Estas son bibliotecas que no se han cambiado en el proyecto de FreeCAD. Son utilizadas básicamente sin cambios como bibliotecas de vínculos dinámicos (*.so o *.dll). Si se necesita un cambio o una clase que las envuelva, entonces el código del envoltorio o la biblioteca modificada tienen que moverse al paquete base de FreeCAD. Las bibliotecas utilizadas son:
Considera el uso de LibPack en lugar de descargar e instalar todo por tu cuenta.
Nombre biblioteca | Versión necesitada | Enlace para conseguirla |
---|---|---|
Python | >= 2.5.x | http://www.python.org/ |
OpenCasCade | >= 5.2 | http://www.opencascade.org |
Qt | >= 4.1.x | http://www.qtsoftware.com |
Coin3D | >= 2.x | http://www.coin3d.org |
ODE | >= 0.10.x | http://www.ode.org |
SoQt | >= 1.2 | http://www.coin3d.org |
Xerces-C++ | >= 2.7.x < 3.0 | http://xml.apache.org/xerces-c/ |
GTS | >= 0.7.x | http://gts.sourceforge.net/ |
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 |
Versión: 2.5 o superior
Licencia: Python 2.5 licencia
Puedes utilizar el código fuente o los binarios de http://www.python.org/ o utilizar alternativamente ActiveState Python de http://www.activestate.com/ aunque es algo difícil conseguir las bibliotecas depuradas de ActiveState.
Python es el principal lenguaje de escritura y es utilizado a través de la aplicación. Por ejemplo:
Especialmente la carga dinámica de paquetes de Python se utiliza para cargar en tiempo de ejecución funcionalidades adicionales y entornos necesitados para las tareas. Para una visión más detallada mira: www.python.org Por qué Python? podrías preguntar. Existen varias razones: He utilizado diferentes lenguajes en mi vida profesional:
Python está más orientado a objetos que Perl y Tcl, el código no está tan liado como en Perl y VB. Java no es un lenguaje de escritura en primer lugar y difícil (o imposible) de embeber. Python está bien documentado y extendido. Está también bien comprobado y tiene un fuerte soporte en la comunidad de software libre.
Van para Guido van Rossum y un montón de gente que hace de Python un éxito!
Versión: 5.2 o superior
Licencia: OCTPL
OCC es un kernel de CAD completo. Originalmente, fue desarrollado por Matra Datavision en Francia para las aplicaciones Strim y Euclid Quantum y después lo pasaron a código libre. Es una enorme biblioteca y hace que sea posible una aplicación de CAD libre en primer lugar, proporcionando algunos paquetes que serían complicados o imposibles de implementar en un proyecto de código libre:
Para conocer más sobre OpenCasCade echa un vistazo a la página de OpenCasCade o http://www.opencascade.org.
Versión: 4.1.x o superior
Licencia: GPL v2.0/v3.0 o Comercial (desde la versión 4.5 también en LPGL v2.1)
No creo que necesite decir mucho sobre Qt. Es uno de las utilidades para interfaces gráficas de usuario GUI más utilizadas en los proyectos de código libre. Para mi el punto más importante para utilizar Qt es Qt Designer y la posibilidad de cargar letreros de diálogo completos como recursos (XML) e incorporar complementos (widgets) especializados. En una aplicación de CAX la interacción con el usuario y los letreros de diálogo son de lejos la parte más importante del código y un buen diseñador de letreros de diálogo es muy importante para extender FreeCAD fácilmente con nuevas funcionalidades. Puedes encontrar información complementaria y una muy buena documentación de ayuda en línea en http://www.qtsoftware.com.
Versión: 2.0 o superior
Licencia: GPL v2.0 o Comercial
Coin es una biblioteca de gráficos 3D de alto nivel con una interfaz de programación para aplicaciones en C++. Coin utiliza estructuras de datos de la escena gráfica para renderizar gráficos en tiempo real adecuados para la mayoría de aplicaciones de visualización para ingeniería y científicos.
Coin es portable sobre un amplio rango de plataformas: Cualquier plataforma UNIX / Linux / *BSD, todos los sistemas operativos de Microsoft Windows, y Mac OS X.
Coin está construido sobre el estándar de la industria OpenGL bibloteca de modo de renderizado inmediato, y añade abstracción para primitivas de nivel superior, proporciona interactividad 3D, aumenta enormemente la conveniencia y productividad de los programadores, y contiene muchas características de optimización complejas para un renderizado rápido que son transparentes para el programador de la aplicación.
Coin está basado en el SGI de la API de Open Inventor. Open Inventor, para aquellos que no están familiarizados con él, hace tiempo que se ha convertido en el estándar de las bibliotecas gráficas para software de visualización y simulación en la comunidad de ingeniería y científica. Se ha probado sobre un periodo de más de 10 años, su madurez contribuye a su éxito como un bloque de construcción principal en miles de aplicaciones de ingeniería de larga escala alrededor del mundo.
Utilizaremos OpenInventor como visor 3D porque el visor de OpenCasCade (AIS y Graphics3D) tiene serias limitaciones cuellos de botella de rendimiento, especialmente cuando se trata de renderizado de ingeniería de larga escala. Otras cosas como texturas o renderizado volumétrico no están soportados realmente, etc.
Desde la versión 2.0 Coin utiliza un modelo de licencia diferente. Ya no es LGPL. Utilizan GPL para el código libre y licencias comerciales para aplicaciones de código cerrado. Eso significa que si quieres vender tu trabajo basado en FreeCAD (módulos de extensión) tienes que comprar una licencia de Coin!
Versión: 1.2.0 o superior
Licencia: GPL v2.0 o Comercial
SoQt es la cubierta de Inventor para Qt Gui Toolkit. Por desgracia, ya no es LGPL así que tenemos que eliminarlo del código base de FreeCAD y vincularlo como una biblioteca. Tiene el mismo modelo de licencia que Coin. Y tienes que compilarlo con tu versión de Qt.
Versión: 2.7.0 o superior
Licencia: Apache Software License Versión 2.0
Xerces-C++ es un analizador de validación XML escrito en C++. Xerces-C++ hace sencillo darle a tu aplicación la capacidad de leer y escribir datos XML. Una biblioteca compartida se proprciona para analizar, generar, manipular, y validar documentos XML.
Xerces-C++ es fiel a la recomendación de XML 1.0 y muchos estándares asociados (mira las características abajo).
El analizador proporciona alto rendimiento, modularidad, y escalabilidad. El código fuente, los ejemplos y la documentación de la API se proporcionan con el analizador. Para la portabilidad, se ha tenido cuidado de hacer un mínimo uso de plantillas, no RTTI, y un mínimo uso de #ifdefs.
El analizador es utilizado para guardar y restaurar parámetros en FreeCAD.
Versión: 1.x.x
Licencia: zlib
zlib está diseñado para ser libre, de propósito general, legalmente sin estorbos, eso es, no está cubierto por ningún tipo de patentes. Es una biblioteca de compresión de datos con mínimas perdidas para utilizarse en virtualmente cualquier hardware y sistema operativo. El formato de datos zlib es portable a través de las plataformas. A diferencia del método de compresión utilizada en la compresión de Unix y en el formato de imágenes GIF, el método de compresión utilizado en zlib esencialmente nunca expande los datos. (LZW puede duplicar o triplicar el tamaño del archivo en casos extremos.) La huella de memoria de zlib también es independiente de las entradas de datos y se puede reducir, si es necesario, con algunas perdidas en la compresión.
Versión: 1.33.x
Licencia: Boost Software License - Versión 1.0
Las bibliotecas C++ Boost son una colección de evaluación de pares, bibliotecas de código libre que extienden la funcionalidad de C++. Las bibliotecas se licencian bajo la licencia de software de Boost, diseñada para permitir que Boost sea utilizado con proyectos de código abierto o cerrado. Muchos de los fundadores de Boost están en el comité del estándar C++ y diversas bibliotecas de Boost han sido aceptadas para incorporarse al informe técnico 1 de C++0x.
Las bibliotecas apuntan a un amplio rango de usuarios y dominios de aplicaciones C++. Desde bibliotecas de propósito general como SmartPtr, a abstracciones de OS como FileSystem, para bibliotecas principalmente apuntando a otros desarrolladores de bibliotecas y usuarios avanzados de C++, como MPL.
En orden de asegurar la eficiencia y flexibilidad, Boost hace un uso extensivo de las plantillas. Boost ha sido una fuente de trabajo extensivo e investigación en programación general y meta-programación en C++.
Mira: http://www.boost.org/ para más detalles.
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 es un paquete conveniente con todas las bibliotecas de arriba empaquetadas juntas. Está disponible actualmente para la plataforma Windows en la página de Descargas! Si trabajas en Linux no necesitas LibPack, en su lugar asegúrate de utilizar los repositorios de paquetes de tu distribución Linux.