Open Cascade Technology: Difference between revisions

Content deleted Content added
Rescuing 3 sources and tagging 0 as dead.) #IABot (v2.0.9.5
Rescuing 21 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
Line 18:
| platform = [[IA-32]], [[x86-64]], [[ARM architecture family|ARM]]
| genre = [[Computer-aided design|CAD]], [[Computer-aided manufacturing|CAM]], [[Computer-aided engineering|CAE]]
| license = [[GNU Lesser General Public License|LGPL 2.1 only]]<ref>{{cite web |url=https://git.dev.opencascade.org/gitweb/?p=occt.git;a=blob;f=README.txt |title=README.txt |access-date=11 January 2022 |archive-date=22 August 2021 |archive-url=https://web.archive.org/web/20210822132619/http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blob;f=README.txt |url-status=live }}</ref> with exception<ref name="licensing"/>
| website = {{URL|dev.opencascade.org}}
}}
 
'''Open Cascade Technology''' ('''OCCT''', formerly named '''CAS.CADE''') is an object-oriented C++ class library for [[3D computer graphics|3D]] [[computer-aided design]] (CAD), [[computer-aided manufacturing]] (CAM), [[computer-aided engineering]] (CAE), etc.<ref>{{Cite web |title=Project Overview {{!}} Open CASCADE Technology |url=https://dev.opencascade.org/about/project_overview |access-date=2025-05-11 |website=dev.opencascade.org |archive-date=16 May 2025 |archive-url=https://web.archive.org/web/20250516040001/https://dev.opencascade.org/about/project_overview |url-status=live }}</ref> It is developed and supported by [[Open Cascade]] SAS company. It is [[free and open-source software]] released under the [[GNU Lesser General Public License]] (LGPL), version 2.1 only, which permits open source and proprietary uses.
 
OCCT is a full-scale [[boundary representation]] (B-rep) modeling toolkit.
 
==History==
''CAS.CADE'' (abbreviated from Computer Aided Software for Computer Aided Design and Engineering) was originally developed in the early 1990s by [[Matra]] Datavision, developer of [[Euclid (computer program)|Euclid]] CAD software as the underlying infrastructure for its future version Euclid Quantum. In 1998 the company abandoned software development to concentrate on services, and most of the software development facilities were sold<ref>{{cite web|url=https://www.3ds.com/press-releases/single/dassault-systemes-signs-agreement-to-acquire-matra-datavisions-subsidiary/|title=Dassault Systemes Signs Agreement to Acquire Matra Datavision's Subsidiary|date=27 January 2020|access-date=1 September 2018|archive-date=6 June 2020|archive-url=https://web.archive.org/web/20200606160537/https://www.3ds.com/press-releases/single/dassault-systemes-signs-agreement-to-acquire-matra-datavisions-subsidiary/|url-status=live}}</ref> to [[Dassault Systèmes]], developer of competing [[CATIA]].
 
{| class="wikitable"
Line 86:
|
* Added support of OCAF binary files larger than 2 GiB.
* Added "Glue"<ref>{{Cite web|title=Gluing Options in Boolean Component - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/gluing-options-boolean-component|access-date=2021-08-18|website=dev.opencascade.org|archive-date=18 August 2021|archive-url=https://web.archive.org/web/20210818115912/https://dev.opencascade.org/content/gluing-options-boolean-component|url-status=live}}</ref> option to Boolean algorithms.
* Added support of annotations, saved views and clipping planes to STEP and XDE.
* Added Weighted OIT ([[Order-independent transparency]]) rendering feature.
Line 115:
|2015-09-28
|
* Introduced "Fuzzy"<ref>{{Cite web|title=Fuzzy Boolean Operations - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/fuzzy-boolean-operations|access-date=2021-08-18|website=dev.opencascade.org|archive-date=18 August 2021|archive-url=https://web.archive.org/web/20210818115902/https://dev.opencascade.org/content/fuzzy-boolean-operations|url-status=live}}</ref> Boolean operations with specified global tolerance.
* Introduced built-in multi-threading parallelization tools as alternative to [[Threading Building Blocks]] (TBB) [[Library (computing)|library]].
* Improved robustness of surface-surface intersection and curve on surface projection.
Line 133:
* Introduced limited [[OpenGL ES]] 2.0 support in 3D viewer.
* Added VIS–TKIVtk component<ref>{{Cite web|title=VTK integration services in OCCT - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/vtk-integration-services-occt|access-date=2021-08-18|website=dev.opencascade.org}}</ref> providing a B-Rep shape presentation builder for [[VTK]] viewer.
* Added support of [[Stereo display|stereoscopic displays]]<ref>{{Cite web|title=Stereoscopic rendering in Open CASCADE Technology - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/stereoscopic-rendering-open-cascade-technology|access-date=2021-08-18|website=dev.opencascade.org|archive-date=18 August 2021|archive-url=https://web.archive.org/web/20210818115851/https://dev.opencascade.org/content/stereoscopic-rendering-open-cascade-technology|url-status=live}}</ref> within 3D viewer.
* Added frustum culling feature improving rendering performance.
* Ray-Tracing engine has been switched from [[OpenCL]] to [[OpenGL Shading Language|GLSL]] implementation.
Line 143:
|
* ''License changed to [[GNU Lesser General Public License|LGPL-2.1-only]] with added exception.''<ref name="licensing"/>
* Built-in GPU-accelerated Ray-Tracing rendering engine<ref>{{Cite web|title=Ray tracing as alternative rendering method for OCCT visualization component - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/ray-tracing-alternative-rendering-method-occt-visualization-component|access-date=2021-08-18|website=dev.opencascade.org|archive-date=18 August 2021|archive-url=https://web.archive.org/web/20210818115851/https://dev.opencascade.org/content/ray-tracing-alternative-rendering-method-occt-visualization-component|url-status=live}}</ref> using [[OpenCL]].
|-
!Open CASCADE Technology 6.6
Line 230:
In 2004, software was renamed to Open Cascade Technology in order to distinguish it from the name of the company itself.
 
Open Cascade S.A.S. provides a certified version of the library, which is released sporadically, usually 1–2 releases per year.<ref>{{cite web|url=https://dev.opencascade.org/release/previous/|title=OCCT Previous Releases|access-date=25 June 2021|archive-date=30 June 2021|archive-url=https://web.archive.org/web/20210630132618/https://dev.opencascade.org/release/previous|url-status=live}}</ref> Until version 6.5.0 (2011), only minor and major versions were publicly available, while intermediate (maintenance) releases were accessible only to customers of Open Cascade S.A.S. For example, version 6.3.0 was publicly released in 2008, and the next public version 6.5.0 was released in early 2011. All recent releases starting from version 6.5.0 are public.<ref>{{cite web|url=http://www.opencascade.org/about/news/issue173/|title=Becoming more and more open!|access-date=21 June 2011|archive-date=19 June 2011|archive-url=https://web.archive.org/web/20110619015005/http://www.opencascade.org/about/news/issue173/|url-status=dead}}</ref>
 
===Community fork===
Line 236:
 
===Collaborative development portal===
In December 2011, Open Cascade installed a web portal for external contributors<ref>{{cite web|url=http://www.opencascade.org/about/news/issue178/|title=Opening the Development of Open CASCADE Technology|access-date=7 February 2012|archive-date=23 January 2012|archive-url=https://web.archive.org/web/20120123150033/http://www.opencascade.org/about/news/issue178/|url-status=dead}}</ref> and made its [[Mantis Bug Tracker]]<ref>{{cite web|url=http://tracker.dev.opencascade.org|title=Mantis Bug Tracker for OCCT project}}</ref> and further [[Git (software)|Git]] repository<ref>{{cite web|url=http://git.dev.opencascade.org/gitweb/?p=occt.git|title=GitWeb interface to main OCCT git repository|access-date=28 April 2012|archive-date=29 October 2013|archive-url=https://web.archive.org/web/20131029204555/http://git.dev.opencascade.org/gitweb/?p=occt.git|url-status=live}}</ref> publicly available (read-only GitHub mirror<ref>{{cite web|url=https://github.com/Open-Cascade-SAS/OCCT|title=Passive mirror of OCCT git repository on GitHub|website=[[GitHub]]|access-date=4 August 2020|archive-date=14 September 2020|archive-url=https://web.archive.org/web/20200914234718/https://github.com/Open-Cascade-SAS/OCCT|url-status=live}}</ref> has been established in '2020). According to the statements on the new website, external contributors from the Open Source Community are encouraged to participate in the development of Open Cascade Technology, i.e. register bugs directly in the [[bugtracker]], make contributions to the code after signing a [[Contributor License Agreement]],<ref>{{cite web|url=https://dev.opencascade.org/?q=home/get_involved/cla_processing_rules|title=Signing the Contributor License Agreement|access-date=1 September 2018|archive-date=1 September 2018|archive-url=https://web.archive.org/web/20180901215644/https://dev.opencascade.org/?q=home/get_involved/cla_processing_rules|url-status=live}}</ref> etc.
 
=== License change ===
Since 18 December 2013, with version 6.7.0, Open Cascade Technology is available under the [[GNU Lesser General Public License|LGPL-2.1-only]] with added exception.<ref name="licensing">{{cite web|url=https://dev.opencascade.org/resources/licensing/|title=OCCT license|access-date=25 June 2021|archive-date=1 July 2021|archive-url=https://web.archive.org/web/20210701153532/https://dev.opencascade.org/resources/licensing|url-status=live}}</ref><ref>{{Cite web|title=Relicensing OCCT - Forum Open Cascade Technology|url=https://dev.opencascade.org/content/relicensing-occt|access-date=2021-11-22|website=dev.opencascade.org|archive-date=22 November 2021|archive-url=https://web.archive.org/web/20211122161333/https://dev.opencascade.org/content/relicensing-occt|url-status=live}}</ref> Versions before that were licensed under the "Open Cascade Technology Public License" which was [[License compatibility|not compatible]] with the [[GPL]]<ref>{{cite web|title=OCCT FAQ|url=https://dev.opencascade.org/resources/faq/|work=dev.opencascade.org|publisher=Open Cascade|access-date=25 June 2021|archive-date=29 June 2021|archive-url=https://web.archive.org/web/20210629131755/https://dev.opencascade.org/resources/faq|url-status=live}}</ref> and was considered non-free by the [[Fedora Project|Fedora project]].<ref>{{cite web |last1=Callaway |first1=Tom |title=Licensing:Main – Bad Licenses |url=https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing |work=fedoraproject.org |publisher=Red Hat, Inc. and others |access-date=18 May 2013 |archive-date=6 March 2016 |archive-url=https://web.archive.org/web/20160306055845/https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing |url-status=live }}</ref>
 
== Functions ==
Line 250:
* ''Modeling Algorithms'' – contains a vast range of geometrical and topological algorithms (intersection, Boolean operations, [[Surface triangulation|surface meshing]], [[Fillet (mechanics)|fillets]], shape healing).
* ''Visualization (rendering)'' – provides interactive services for displaying geometry in 3D Viewer; implements a compact [[OpenGL]]–[[OpenGL ES]] renderer, supporting conventional [[Phong shading|Phong]], real-time [[Physically based rendering|PBR]] metal-roughness shading models and interactive [[Ray tracing (graphics)|ray tracing]] – [[path tracing]] engine.
* ''Data Exchange'' – provides possibility to import–export various CAD formats.<br/>[[ISO 10303|STEP]], [[IGES]], [[glTF]], [[Wavefront .obj file|OBJ]], [[STL (file format)|STL]], and [[VRML]] are supported natively.<ref>{{Cite web|title=Data Exchange &#124; Open CASCADE Technology|url=https://dev.opencascade.org/about/data_exchange|access-date=2021-11-22|website=dev.opencascade.org}}</ref> Other formats can be imported by using plug-ins.<ref>{{Cite web |title=Datakit |url=https://www.opencascade.com/customers-and-partners/datakit/ |access-date=2021-11-22 |website=Open Cascade.com |language=en |archive-date=22 November 2021 |archive-url=https://web.archive.org/web/20211122161325/https://www.opencascade.com/customers-and-partners/datakit/ |url-status=live }}</ref> ''Extended Data Exchange'' (XDE) components rely on a unified ''XCAF document'' definition, which includes an assembly structure of CAD shapes, color/name/material/metadata/layer attributes and other supplementary information like [[product and manufacturing information]] (PMI).
* ''Application Framework'' – offers means to handle application-specific data.
* ''DRAW Test Harness'' – implements a scripting interface to OCCT algorithms based on [[Tcl]]-interpreter for interactive use, automating processes, prototyping applications and testing purposes.
Line 263:
===Working with IFC files===
The Open CASCADE IFC Import SDK provides applications with the capability of reading [[building information modeling]] (BIM) data from files in [[Industry Foundation Classes]] (IFC) format.
It supports versions IFC2×3 and IFC4 that used by most modern applications.<ref>{{cite web|url=https://www.opencascade.com/components/ifc-import-component/|title=Open CASCADE: IFC Import Component|access-date=2022-11-15|archive-date=15 November 2022|archive-url=https://web.archive.org/web/20221115163152/https://www.opencascade.com/components/ifc-import-component/|url-status=live}}</ref>
 
This allows visualizing and manipulating building geometries and CAD designs.
 
External tools are available to convert from Open CASCADE to IFC also.<ref>{{cite web|url=https://cadexchanger.com/brep-to-ifc/|title=CAD Exchanger: How to convert Open CASCADE to IFC?|access-date=2022-11-15|archive-date=15 November 2022|archive-url=https://web.archive.org/web/20221115162346/https://cadexchanger.com/brep-to-ifc/|url-status=live}}</ref>
 
== CAD programs based on Open Cascade Technology ==
 
Several CAD programs rely on Open CASCADE Technology including:<ref>Open Cascade SAS.[https://dev.opencascade.org/about/projects_and_products "Projects and products"] {{Webarchive|url=https://web.archive.org/web/20241001230645/https://dev.opencascade.org/about/projects_and_products |date=1 October 2024 }}.</ref>
 
* [[FreeCAD]] an open source, 3D parametric modeler, with support for [[building information modeling]], [[finite element method]] (FEM), and [[Python (programming language)|Python]] scripting.<ref name=fossmint>{{cite news |last1=Okoi |first1=Martins |date=December 1, 2017 |url=https://www.fossmint.com/freecad-3d-modeling-and-design-software-for-linux/ |title=FreeCAD – A 3D Modeling and Design Software for Linux |work=FOSSMint |access-date=May 2, 2019 |archive-date=15 December 2017 |archive-url=https://web.archive.org/web/20171215183052/https://www.fossmint.com/freecad-3d-modeling-and-design-software-for-linux/ |url-status=live }}</ref><ref>{{cite news |last1=Lee |first1=Hawk |date=2018-06-22 |url=https://engineeringdeskstudies.com/?p=365 |title=FreeCAD FEM Workbench (Calculix 2.14) |access-date=2019-05-02 |archive-url=https://web.archive.org/web/20190503003156/https://engineeringdeskstudies.com/?p=365 |archive-date=3 May 2019 |url-status=dead}}</ref>
* [[Salome (software)|SALOME]] an open source platform for pre- and post-processing for numerical simulation.
* [[KiCad]] an open source suite for electronic design automation (EDA).<ref>KiCad [https://dev-docs.kicad.org/en/build/getting-started/ "Library Dependencies"] {{Webarchive|url=https://web.archive.org/web/20240919202917/https://dev-docs.kicad.org/en/build/getting-started/ |date=19 September 2024 }}.</ref>
* [[Gmsh]] an open source finite-element mesh (FEM) generator. Since version 3.0, Gmsh supports full constructive solid geometry features, based on OCCT.
* [[FORAN System|FORAN]] an integrated CAD/CAM/CAE system developed by [[SENER]] for the design and production of practically any naval ship and offshore unit. FORAN uses OCCT since V80R2.0 release<ref>{{cite web |date=2016-07-19 |title=SENER's latest version of FORAN V80R2.0 lets users manage series of ships |url=https://www.marine.sener/press-releases/seners-latest-version-of-foran-v80r20-lets-users-manage-series-of-ships |url-status=dead |archive-url=https://web.archive.org/web/20180821060920/https://www.marine.sener/press-releases/seners-latest-version-of-foran-v80r20-lets-users-manage-series-of-ships |archive-date=2018-08-21 |access-date=4 August 2020}}</ref> for working with analytical surfaces.