Third Party Libraries/es

Resumen
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.

Python
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.

Descripción
Python es el principal lenguaje de escritura y es utilizado a través de la aplicación. Por ejemplo:


 * Implementar archivos de guión para hacer pruebas sobre:
 * perdidas de memoria
 * asegurar la presencia de funcionalidad después de hacer cambios
 * comprobaciones tras la construcción
 * comprobar la cobertura de las pruebas
 * Macros y grabación de macros
 * Implementar la lógica de la aplicación para paquetes estándar
 * Implementación de entornos completos
 * Carga dinámica de paquetes
 * Implementación de reglas para el diseño (ingeniería del conocimiento)
 * Haciendo algo en Internet como grupos de trabajo y PDM
 * Y más ...

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.
 * Perl
 * Tcl/Tk
 * VB
 * Java

Créditos
Van para Guido van Rossum y un montón de gente que hace de Python un éxito!

OpenCasCade
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:
 * Un kernel de geometría que admite STEP
 * Un modelo topológico de datos y todas las funciones necesarias para trabajar con (cortar, fusionar, extruir, etc.)
 * Procesadores estándar de importación / Exportación como STEP, IGES, VRML
 * Visores 3D y 2D con soporte para la selección
 * Un documento y estructura de datos de proyecto con soporte para guardar y restaurar, vinculación externa de documentos, recalculo del historial de diseño (modelado paramétrico) y una facilidad de cargar nuevos tipos de datos como un paquete de extensión dinámicamente

Para conocer más sobre OpenCasCade echa un vistazo a la página de OpenCasCade o http://www.opencascade.org.

Qt
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.

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
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!

SoQt
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.

Xerces-C++
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.

Zlib
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.

Boost
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.

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 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.

FreeCADLibs7.x Registro de cambios

 * Utilizando QT 4.5.x y Coin 3.1.x
 * Biblioteca de plantilla Eigen añadida para Robot
 * SMESH experimental