Open Cascade Technology#Object libraries
{{Short description|Open-source 3D modelling software}}
{{Use dmy dates|date=August 2017}}
{{Primary sources|date=April 2007}}
{{Infobox software
| name = Open Cascade Technology
| logo = Occtecht01sm wiki.jpg
| screenshot = Opencascadedemo.jpg
| caption = OpenCASCADE Screenshot
| author =
| developer = Open Cascade S.A.S.U.
| released = {{Start date and age|1999|df=yes}}
| latest release version = {{wikidata|property|edit|reference|Q1760165|P548=Q2804309|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|Q1760165|P548=Q2804309|P348|P577}}}}
| latest preview version =
| latest preview date =
| programming language = C++
| operating system = Linux, FreeBSD, macOS, Windows, Android, iOS, WebAssembly
| platform = IA-32, x86-64, ARM
| license = LGPL 2.1 only{{cite web |url=https://git.dev.opencascade.org/gitweb/?p=occt.git;a=blob;f=README.txt |title=README.txt}} with exception
| website = {{URL|dev.opencascade.org}}
}}
Open Cascade Technology (OCCT, formerly named CAS.CADE) is an object-oriented C++ class library for 3D computer-aided design (CAD), computer-aided manufacturing (CAM), computer-aided engineering (CAE), etc.{{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}} 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 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{{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}} to Dassault Systèmes, developer of competing CATIA.
class="wikitable"
|+ !Product name !Release date !Latest update version !Latest update date !Highlights |
Open CASCADE Technology 7.6
|{{nowrap|2021-11-03}} |7.6.2 |{{nowrap|2022-04-29}} |
|
---|
Open CASCADE Technology 7.5
|2020-11-05 |7.5.3 |2021-08-06 |
|
Open CASCADE Technology 7.4
|{{nowrap|2019-10-01}} | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 7.3
|2018-05-29 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 7.2
|2017-08-31 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 7.1
|2016-11-25 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 7.0
|2016-04-05 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 6.9
|2015-05-12 |6.9.1 |2015-09-28 |
|
Open CASCADE Technology 6.8
|2014-11-10 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 6.7
|2013-12-18 |6.7.1 |2014-04-30 |
|
Open CASCADE Technology 6.6
|2013-04-22 | {{n/a}} | {{n/a}} | |
Open CASCADE Technology 6.5
|2011-04-04 |6.5.5 |2013-03-29 | |
Open CASCADE Technology 6.4
|2010-09-30 | {{n/a}} | {{n/a}} |
|
Open CASCADE Technology 6.3
|2008-09-03 |6.3.1 |2009-06-19 | |
Open CASCADE Technology 6.2
|? |6.2.1 |2007-12-06 | |
Open CASCADE Technology 6.1
|2006-03-24 |6.1.1 |2006-10-16 | |
Open CASCADE Technology 5.2
|? |5.2.4 |2005-07-29 | |
Open CASCADE Technology 5.1
|? |5.1.3 |2004-04-23 |"Open CASCADE" has been renamed to "Open CASCADE Technology". |
Open CASCADE 4.0
|2001-12-11 | {{n/a}} | {{n/a}} | |
Open CASCADE 3.0
|2000-04-24 | {{n/a}} | {{n/a}} | |
Open CASCADE 2.0
|? | {{n/a}} | {{n/a}} | |
Open CASCADE 1.0
|1999 | {{n/a}} | {{n/a}} | |
=Open sourcing=
In 1999 Matra Datavision decided to publish its CAS.CADE infrastructure under an open-source model under the Open CASCADE Technology Public License{{cite web|url=http://www.opencascade.org/getocc/license/license_old/|title=Open CASCADE Technology Public License}} and renamed it Open Cascade.{{Cite web|date=2012-04-09|title=Downloading Of Source Code For Open Cascade Gains Momentum | Market Wire | Find Articles|url=http://findarticles.com/p/articles/mi_pwwi/is_20050229/ai_mark01000244/|access-date=2021-11-22|archive-url=https://web.archive.org/web/20120409094949/http://findarticles.com/p/articles/mi_pwwi/is_20050229/ai_mark01000244/|archive-date=9 April 2012}}
In 2000, a separate company, Open Cascade SAS, was created to make business around Open Cascade.[http://www.ebusiness-watch.org/studies/case_studies/documents/Case%20Studies%202005/CS_SR10_IT-services_4-Open_Cascade.pdf European e-Business Market Watch Case Study: Open source-based services by Open Cascade S.A.] {{webarchive|url=https://web.archive.org/web/20110726012648/http://www.ebusiness-watch.org/studies/case_studies/documents/Case%20Studies%202005/CS_SR10_IT-services_4-Open_Cascade.pdf |date=26 July 2011}} Open Cascade SAS was sold in 2003 to Principia, a French service provider corporation, and then in 2006 it was acquired by Euriware Group, a subsidiary of Areva.
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.{{cite web|url=https://dev.opencascade.org/release/previous/|title=OCCT Previous Releases}} 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.{{cite web|url=http://www.opencascade.org/about/news/issue173/|title=Becoming more and more open!}}
=Community fork=
In March 2011, Thomas Paviot initiated a fork of the then most recent publicly available version 6.5.0 of Open Cascade library. The initiative is named Open Cascade Community Edition. The project aims to establish a separate community-based release and bug-report process for the library.{{cite web|url=http://www.opencascade.org/org/forum/thread_20111/|title=Thinkings about the 6.5.0 release, OCCT status, and the relationship with the Community|access-date=15 April 2011|archive-date=16 April 2011|archive-url=https://web.archive.org/web/20110416225420/http://www.opencascade.org/org/forum/thread_20111|url-status=dead}}
=Collaborative development portal=
In December 2011, Open Cascade installed a web portal for external contributors{{cite web|url=http://www.opencascade.org/about/news/issue178/|title=Opening the Development of Open CASCADE Technology}} and made its Mantis Bug Tracker{{cite web|url=http://tracker.dev.opencascade.org|title=Mantis Bug Tracker for OCCT project}} and further Git repository{{cite web|url=http://git.dev.opencascade.org/gitweb/?p=occt.git|title=GitWeb interface to main OCCT git repository}} publicly available (read-only GitHub mirror{{cite web|url=https://github.com/Open-Cascade-SAS/OCCT|title=Passive mirror of OCCT git repository on GitHub|website=GitHub}} 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,{{cite web|url=https://dev.opencascade.org/?q=home/get_involved/cla_processing_rules|title=Signing the Contributor License Agreement}} etc.
= License change =
Since 18 December 2013, with version 6.7.0, Open Cascade Technology is available under the LGPL-2.1-only with added exception.{{cite web|url=https://dev.opencascade.org/resources/licensing/|title=OCCT license}}{{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}} Versions before that were licensed under the "Open Cascade Technology Public License" which was not compatible with the GPL{{cite web|title=OCCT FAQ|url=https://dev.opencascade.org/resources/faq/|work=dev.opencascade.org|publisher=Open Cascade|access-date=25 June 2021}} and was considered non-free by the Fedora project.{{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}}
Functions
=Object libraries=
OCCT's functionality is split into several large modules. Each module defines a list of toolkits (libraries). Key modules:
- Foundation Classes – defines basic classes, memory allocators, OS abstraction layer, collections (data maps, arrays, etc.), acceleration data structures (BVH trees) and vector/matrix math used by other Modules.
- Modeling Data – supplies data structures to represent 2D and 3D geometric primitives (analytical curves: Line, circle, ellipse, hyperbola, parabola, Bézier, B-spline, offset; analytical surfaces: plane, cylinder, cone, sphere, torus, Bézier, B-spline, revolution, extrusion, offset) and their compositions into boundary representation (B-rep) models.
- Modeling Algorithms – contains a vast range of geometrical and topological algorithms (intersection, Boolean operations, surface meshing, fillets, shape healing).
- Visualization (rendering) – provides interactive services for displaying geometry in 3D Viewer; implements a compact OpenGL–OpenGL ES renderer, supporting conventional Phong, real-time PBR metal-roughness shading models and interactive ray tracing – path tracing engine.
- Data Exchange – provides possibility to import–export various CAD formats.
STEP, IGES, glTF, OBJ, STL, and VRML are supported natively.{{Cite web|title=Data Exchange | Open CASCADE Technology|url=https://dev.opencascade.org/about/data_exchange|access-date=2021-11-22|website=dev.opencascade.org}} Other formats can be imported by using plug-ins.{{Cite web |title=Datakit |url=https://www.opencascade.com/customers-and-partners/datakit/ |access-date=2021-11-22 |website=Open Cascade.com |language=en}} 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.
=Workshop Organization Kit=
Workshop Organization Kit (WOK) is Open Cascade development environment, which has been designed to allow many developers to work on a product, exploiting one common reference version shared over a local area network (LAN).
Until OCCT 7.0.0 release, substantial modifications in the source code were not possible without using WOK, since it is the only tool that provides support for CDL (CAS.CADE definition language), used for declaration of most of OCCT classes and also serving to define logical structure of OCCT libraries. WOK has been included in previous OCCT distributions; since OCCT version 6.4 it is made an independent tool.
Within 7.0.0 release, all CDL files have been dropped from OCCT source code making WOK no longer necessary for OCCT development.
=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.{{cite web|url=https://www.opencascade.com/components/ifc-import-component/|title=Open CASCADE: IFC Import Component|access-date=2022-11-15}}
This allows visualizing and manipulating building geometries and CAD designs.
External tools are available to convert from Open CASCADE to IFC also.{{cite web|url=https://cadexchanger.com/brep-to-ifc/|title=CAD Exchanger: How to convert Open CASCADE to IFC?|access-date=2022-11-15}}
CAD programs based on Open Cascade Technology
Several CAD programs rely on Open CASCADE Technology including:Open Cascade SAS.[https://dev.opencascade.org/about/projects_and_products "Projects and products"].
- FreeCAD an open source, 3D parametric modeler, with support for building information modeling, finite element method (FEM), and Python scripting.{{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}}{{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}}
- SALOME an open source platform for pre- and post-processing for numerical simulation.
- KiCad an open source suite for electronic design automation (EDA).KiCad [https://dev-docs.kicad.org/en/build/getting-started/ "Library Dependencies"].
- Gmsh an open source finite-element mesh (FEM) generator. Since version 3.0, Gmsh supports full constructive solid geometry features, based on OCCT.
- 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{{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}} for working with analytical surfaces.
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
{{CAD software}}
{{CAM software}}
{{CAE software}}
{{DEFAULTSORT:Open Cascade}}
Category:Free computer-aided design software
Category:Free software programmed in C++
Category:Computer-aided design software for Linux
Category:Computer-aided manufacturing software for Linux