Software de modelado 3D de código abierto
Open Cascade Technology (OCCT), anteriormente llamada CAS.CADE , es una plataforma de desarrollo de software de código abierto para CAD 3D , CAM , CAE , etc., desarrollada y respaldada por la empresa Open Cascade SAS .
OCCT es un conjunto de herramientas de modelado de representación de límites (B-Rep) a gran escala . OCCT está disponible bajo la licencia LGPL-2.1 únicamente , que permite su uso en aplicaciones de código abierto y de propiedad exclusiva.
Historia
CAS.CADE (abreviado de Computer Aided Software for Computer Aided Design and Engineering) fue desarrollado originalmente a principios de los años 1990 por Matra Datavision, desarrollador del software CAD Euclid como la infraestructura subyacente para su futura versión Euclid Quantum. En 1998, la empresa abandonó el desarrollo de software para concentrarse en los servicios, y la mayoría de las instalaciones de desarrollo de software se vendieron [4] a Dassault Systèmes , desarrollador del competidor CATIA .
Código abierto
En 1999, Matra Datavision decidió publicar su infraestructura CAS.CADE bajo un modelo de código abierto bajo la Licencia Pública de Tecnología Open CASCADE [10] y la renombró Open Cascade. [11]
En 2000, se creó una empresa independiente, Open Cascade SAS, para realizar negocios en torno a Open Cascade. [12] Open Cascade SAS se vendió en 2003 a Principia, una corporación francesa proveedora de servicios, y luego en 2006 fue adquirida por Euriware Group, una subsidiaria de Areva .
En 2004, el software pasó a llamarse Open Cascade Technology para distinguirlo del nombre de la propia empresa.
Open Cascade SAS proporciona una versión certificada de la biblioteca, que se publica esporádicamente, normalmente 1 o 2 versiones por año. [13] Hasta la versión 6.5.0 (2011), solo las versiones menores y mayores estaban disponibles públicamente, mientras que las versiones intermedias (de mantenimiento) solo eran accesibles para los clientes de Open Cascade SAS. Por ejemplo, la versión 6.3.0 se publicó en 2008, y la siguiente versión pública 6.5.0 se publicó a principios de 2011. Todas las versiones recientes a partir de la versión 6.5.0 son públicas. [14]
Bifurcación comunitaria
En marzo de 2011, Thomas Paviot inició una bifurcación de la versión 6.5.0 de la biblioteca Open Cascade, que en ese momento estaba disponible públicamente. La iniciativa se llama Open Cascade Community Edition. El proyecto tiene como objetivo establecer un proceso de publicación y notificación de errores independiente para la biblioteca, basado en la comunidad. [15]
Portal de desarrollo colaborativo
En diciembre de 2011, Open Cascade instaló un portal web para colaboradores externos [16] y puso a disposición del público su Mantis Bug Tracker [17] y otros repositorios Git [18] (en 2020 se creó un espejo de GitHub de solo lectura [19] ). Según las declaraciones del nuevo sitio web, se anima a los colaboradores externos de la comunidad de código abierto a participar en el desarrollo de la tecnología Open Cascade, es decir, registrar errores directamente en el rastreador de errores , realizar contribuciones al código después de firmar un Acuerdo de licencia de colaborador , [20] etc.
Cambio de licencia
Desde el 18 de diciembre de 2013, con la versión 6.7.0, Open Cascade Technology está disponible solo bajo la licencia LGPL-2.1 con excepciones adicionales. [3] [21] Las versiones anteriores a esta estaban licenciadas bajo la "Licencia pública de Open Cascade Technology", que no era compatible con la GPL [22] y el proyecto Fedora consideraba que no era libre . [23]
Funcionalidad
Bibliotecas de objetos
La funcionalidad de OCCT se divide en varios módulos grandes. Cada módulo define una lista de conjuntos de herramientas (bibliotecas). Módulos clave:
- Clases fundamentales : define clases básicas, asignadores de memoria, capa de abstracción del sistema operativo, colecciones (mapas de datos, matrices, etc.), estructuras de datos de aceleración ( árboles BVH ) y matemáticas vectoriales/matriciales utilizadas por otros módulos.
- Datos de modelado : proporciona estructuras de datos para representar primitivas geométricas 2D y 3D (curvas analíticas: línea, círculo , elipse , hipérbola, parábola , Bézier , B-spline , desplazamiento; superficies analíticas: plano, cilindro , cono , esfera , toro , Bézier , B-spline , revolución , extrusión, desplazamiento) y sus composiciones en modelos B-Rep .
- Algoritmos de modelado : contiene una amplia gama de algoritmos geométricos y topológicos (intersección, operaciones booleanas, mallado de superficies , filetes , curación de formas).
- Visualización (renderizado) : proporciona servicios interactivos para mostrar geometría en el visor 3D; implementa un renderizador OpenGL / OpenGL ES compacto , compatible con Phong convencional, modelos de sombreado de rugosidad de metal PBR en tiempo real , así como un motor interactivo de trazado de rayos / trazado de trayectoria .
- Intercambio de datos : ofrece la posibilidad de importar/exportar varios formatos CAD.
STEP , IGES , glTF , OBJ , STL y VRML son compatibles de forma nativa. [24] Se pueden importar otros formatos mediante complementos. [25] Los componentes de intercambio de datos extendidos ( XDE ) se basan en una definición de documento XCAF unificada , que incluye una estructura de ensamblaje de formas CAD, atributos de color/nombre/material/metadatos/capa, así como otra información complementaria como PMI . - Marco de aplicación : ofrece soluciones [ palabra de moda ] para gestionar datos específicos de la aplicación.
- DRAW Test Harness : implementa una interfaz de scripting para algoritmos OCCT basados en el intérprete Tcl para uso interactivo, automatización de procesos, creación de prototipos de aplicaciones y propósitos de prueba.
Kit de organización de talleres
Workshop Organization Kit (WOK) es un entorno de desarrollo Open Cascade, que ha sido diseñado para permitir que un gran número de desarrolladores trabajen en un producto aprovechando la versión de referencia común compartida a través de la red local.
Hasta la versión 7.0.0 de OCCT no era posible realizar modificaciones sustanciales en el código fuente sin utilizar WOK, ya que es la única herramienta que proporciona soporte para CDL (lenguaje de definición CAS.CADE), utilizado para la declaración de la mayoría de las clases de OCCT y que también sirve para definir la estructura lógica de las bibliotecas de OCCT. WOK se ha incluido en distribuciones anteriores de OCCT; desde la versión 6.4 de OCCT se ha convertido en una herramienta independiente.
En la versión 7.0.0, se eliminaron todos los archivos CDL del código fuente de OCCT, lo que hace que WOK ya no sea necesario para el desarrollo de OCCT.
Trabajar con archivos IFC
El SDK de importación IFC de Open CASCADE ofrece a las aplicaciones la capacidad de leer datos BIM desde archivos en formato IFC . Es compatible con las versiones IFC2×3 e IFC4 que utilizan la mayoría de las aplicaciones modernas. [26]
Esto permite la visualización y manipulación de geometrías de edificios y diseños CAD.
También hay herramientas externas disponibles para convertir de Open CASCADE a IFC. [27]
Programas CAD basados en tecnología Open Cascade
Varios programas CAD se basan en la tecnología Open CASCADE, incluidos: [28]
- FreeCAD es un modelador paramétrico 3D de código abierto, compatible con modelado de información de construcción , método de elementos finitos (FEM) y secuencias de comandos Python . [29] [30]
- SALOME una plataforma de código abierto para pre y posprocesamiento para simulación numérica.
- KiCad es una suite de código abierto para la automatización del diseño electrónico (EDA). [31]
- Gmsh es un generador de mallas de elementos finitos (FEM) de código abierto. Desde la versión 3.0, Gmsh admite funciones de geometría sólida constructiva completas, basadas en OCCT.
- FORAN es un sistema integrado CAD/CAM/CAE desarrollado por SENER para el diseño y producción de prácticamente cualquier buque de guerra y unidad offshore. FORAN utiliza OCCT desde la versión V80R2.0 [32] para trabajar con superficies analíticas.
Véase también
Referencias
- ^ "Versión de mantenimiento de Open CASCADE Technology 7.8.1" . Consultado el 15 de abril de 2024 .
- ^ "README.txt".
- ^ abc "Licencia OCCT".
- ^ "Dassault Systemes firma un acuerdo para adquirir la filial de Matra Datavision". 27 de enero de 2020.
- ^ "Opciones de pegado en componentes booleanos - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 18 de agosto de 2021 .
- ^ "Operaciones booleanas difusas - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 18 de agosto de 2021 .
- ^ "Servicios de integración de VTK en OCCT - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 18 de agosto de 2021 .
- ^ "Representación estereoscópica en Open CASCADE Technology - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 18 de agosto de 2021 .
- ^ "Trazado de rayos como método de renderizado alternativo para el componente de visualización OCCT - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 18 de agosto de 2021 .
- ^ "Licencia pública de tecnología Open CASCADE".
- ^ "La descarga del código fuente de Open Cascade cobra impulso | Market Wire | Buscar artículos". 9 de abril de 2012. Archivado desde el original el 9 de abril de 2012. Consultado el 22 de noviembre de 2021 .
- ^ Estudio de caso de European e-Business Market Watch: Servicios basados en código abierto de Open Cascade SA Archivado el 26 de julio de 2011 en Wayback Machine.
- ^ "Lanzamientos anteriores de OCCT".
- ^ "¡Cada vez más abiertos!".
- ^ "Reflexiones sobre la versión 6.5.0, el estado de la OCCT y la relación con la comunidad". Archivado desde el original el 16 de abril de 2011 . Consultado el 15 de abril de 2011 .
- ^ "Abriendo el desarrollo de la tecnología Open CASCADE".
- ^ "Mantis Bug Tracker para el proyecto OCCT".
- ^ "Interfaz GitWeb para el repositorio Git principal de OCCT".
- ^ "Espejo pasivo del repositorio git de OCCT en GitHub". GitHub .
- ^ "Firma del acuerdo de licencia de colaborador".
- ^ "Relicenciamiento de OCCT - Foro Open Cascade Technology". dev.opencascade.org . Consultado el 22 de noviembre de 2021 .
- ^ "Preguntas frecuentes sobre OCCT". dev.opencascade.org . Open Cascade . Consultado el 25 de junio de 2021 .
- ^ Callaway, Tom. "Licensing:Main – Bad Licenses". fedoraproject.org . Red Hat, Inc. y otros . Consultado el 18 de mayo de 2013 .
- ^ "Intercambio de datos | Tecnología Open CASCADE". dev.opencascade.org . Consultado el 22 de noviembre de 2021 .
- ^ "Datakit - Open Cascade". opencascade.com . Consultado el 22 de noviembre de 2021 .
- ^ "Abrir CASCADE: componente de importación IFC" . Consultado el 15 de noviembre de 2022 .
- ^ "CAD Exchanger: ¿Cómo convertir Open CASCADE a IFC?" . Consultado el 15 de noviembre de 2022 .
- ^
Open Cascade SAS. "Proyectos y productos".
- ^ Okoi, Martins (1 de diciembre de 2017). «FreeCAD: un software de diseño y modelado 3D para Linux». FOSSMint . Consultado el 2 de mayo de 2019 .
- ^ Lee, Hawk (22 de junio de 2018). «FreeCAD FEM Workbench (Calculix 2.14)». Archivado desde el original el 3 de mayo de 2019. Consultado el 2 de mayo de 2019 .
- ^
"Dependencias de la biblioteca" de KiCad.
- ^ «La última versión de FORAN V80R2.0 de SENER permite gestionar series de buques». 19 de julio de 2016. Archivado desde el original el 21 de agosto de 2018. Consultado el 4 de agosto de 2020 .