
Tue, 02/18/2025 - 13:56
Forums:
Open Cascade is delighted to announce the release of Open CASCADE Technology version 7.9.0 to the public.
Overview
Version 7.9.0 is a minor release incorporating over 250 improvements and bug fixes compared to version 7.8.0.
What's New in OCCT 7.9.0
Core
- Improved code quality through static analysis and consistent code formatting with Clang-Format.
- Enhanced
Standard_Type
implementation for better RTTI support and optimizedIsKind
operations. - Reorganized foundation classes for improved performance, including inlining
Standard_Type
instances. - Deprecated the old aliasing for Handle types (e.g.,
Handle_<Type>
). - Improved memory management and container optimization, including refactoring
ShapeHealingMap
toNCollection
. - Updated map operations with the new
NCollection_MapAlgo
for union, intersection, and other set operations. - Updated the
RemoveAll
method inAsciiString
to correctly truncate the string.
Build System
- Added VCPKG manifest mode support (beta) for managing third-party dependencies.
- Improved handling of third-party dependencies, including Draco, VTK, and OpenVR from Ubuntu packages.
- Updated the minimum CMake version requirement to 3.10.
- Added an option to enable/disable Git hash extraction in the version string.
- Introduced a warning message regarding LGPL 2.1 licensing limitations for static linking.
- Fixed an issue where
custom.bat/sh
was not regenerated in the build directory. - Added compiler version checks for C++17 support.
- Removed Genproj.
- Fixed static linking failures.
- Implemented new PCH for faster compilation.
- Added MinGW default third-party package support.
Modeling
- Fixed multiple issues in the
UnifySameDomain
algorithm, including cases withSurfaceOfRevolution
orSurfaceOfLinearExtrusion
based onTrimmedCurve
. - Improved
BRepOffset
andBRepFill
algorithms, including skipping degenerated curves inBRepOffset_Tool::TryProject
and adding boundary checks inBRepFill_Filling
. - Enhanced shape processing and transformation handling, including the removal of surfaces after transformation.
- Fixed various geometric computation issues, including resetting Plane YVector and enhancing intersection handling for closed curves in
IntPatch_Intersection
. - Improved the robustness of boolean operations.
- Added a warning for incomplete wire detection in
WireFromList
. - Fixed NURB conversion for degenerated cases.
- Disabled exception with scaling transformation.
- Fixed degenerated curves in offset operations.
- Corrected intersection curves handling.
- Resolved BRepOffset_Tool segmentation fault.
- Fixed sphere cutting and Boolean operations.
Visualization
- Enhanced
AIS_Manipulator
functionality, including flat skin support and transformation depending on camera rotation. - Improved selection handling and transformation persistence.
- Added support for flat skin in
AIS_Manipulator
presentation. - Enhanced Z-layer handling in
V3d_View
, including an option to dump only a selection of z-layers. - Improved transparency handling in various rendering modes.
- Implemented an interface to change
myToFlipOutput
ofOpenGl_View
. - Fixed direction calculation for
Select3D_SensitiveCylinder
created fromGeom_CylindricalSurface
. - Added support for vertical mouse movement zooming.
- Enhanced transparency handling for capping in 'Graphic3d_RTM_BLEND_OIT' mode.
- Fixed selection for simple shapes.
- Resolved manipulator interaction issues.
- Fixed transform persistence and view transformation.
- Addressed transparency and rendering issues.
Data Exchange
- Migrated shape healing settings to a single object,
DE_ShapeFixParameters
. - STEP:
- Added metadata support for products, including product attributes.
- Enhanced tessellated geometry handling.
- Improved thread safety.
- Fixed multiple crash issues, including those related to null curves and out-of-range indices.
- Added support for
GENERAL_PROPERTY
. - Implemented common logic for scaling during the write procedure.
- GLTF:
- Added vertex and edge support.
- Improved material handling, including fixing material color space and edge colors.
- Enhanced import/export functionality.
- Added metadata support.
- Implemented
XCAFDoc
filter tree functionality. - Improved handling of IGES imports, including fixing a resource leak when parsing an invalid file and addressing a crash with degenerated BSplines.
- Moved
StepData_ConfParameters
to theDESTEP
package. - Reorganized DE Wrapper classes to have a single style and logic:
DE<FORMAT>_Parameters
,DE<FORMAT>_Provider
, andDE<FORMAT>_ConfigurationNode
.
Testing
- Implemented comprehensive GitHub Actions workflows for build validation (Ubuntu, Windows, MacOS), code formatting, and documentation building.
- Added automated documentation building.
- Enhanced test result comparison systems.
- Improved cross-platform testing support.
- Added WebAssembly build validation.
- Added a new TCL command to clear the test folder of skipped tests.
Documentation
- Updated code documentation and fixed various typos.
- Enhanced API documentation.
- Improved contributing guidelines.
- Updated issue templates and release notes.
- Updated links in the README.
How to Upgrade
For details on upgrading to the new version check Upgrade 790
Windows packages and 3rd-party
The release delivers x64 and x32 binaries in both Release and Debug configurations and third-party libraries, check GitHub Release
Full Changelog: https://github.com/Open-Cascade-SAS/OCCT/compare/V7_8_0...V7_9_0
This discussion was created from the release Open CASCADE Technology 7.9.0 Released.
Fri, 02/28/2025 - 14:35
Download page updated: Download - Open CASCADE Technology
Tue, 03/04/2025 - 01:19
Official VCPKG registry updated to 7.9: vcpkg/ports/opencascade at master · microsoft/vcpkg
vcpkg package - opencascade
Mon, 03/31/2025 - 17:35
Just letting you know the search functionality is missing in the reference manual (which also happened with the 7.8 release if I'm not mistaking)
Mon, 03/31/2025 - 18:03
Dear Luc, yes. Thank you for report. 7.8 and 7.9 doc will be updated soon.
Wed, 04/09/2025 - 18:35
Search was added to refman and overview. please check:
Open CASCADE Technology: Open CASCADE Technology
Open CASCADE Technology: Introduction
Fri, 04/04/2025 - 17:13
The release config is linked against tbb12 debug version. Is that indented or a mistake? TBB-CMake release config target does not provide tbb12_debug.dll in TBB_BINARIES which broke our build process. We are not compiling opencascade by ourself, we are only using the binary release provided.
Tried it with this release from dev.opencascade.org and with github release, same problem.
Fri, 04/04/2025 - 17:37
In that case it is an issue with internal configuration. On 3rd-party provided with OCCT in GH have TBB debug.
Thank you for investigation. 7.9.1 (May) and 8.0.0rc1 (next week), will be checked with correct TBB lib.
Best regards, Dmitrii.
Tue, 04/08/2025 - 23:55
Bug Report: Incorrect TBB Library Selection in Release Mode
Description:
When building OpenCASCADE 7.9.0 in Release mode on Windows, TKernel.dll and other components incorrectly link against TBB12_Debug.dll instead of TBB12.dll, causing link errors if debug libraries are not available.
Root Cause:
The issue is in adm/cmake/tbb.cmake where the TBB configuration is selected using:
get_target_property (TARGET_TBB_IMPORT_CONFS TBB::tbb IMPORTED_CONFIGURATIONS)
list (GET TARGET_TBB_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
This code always uses the first configuration in the imported configurations list (typically DEBUG) regardless of the actual build configuration selected. This causes Release builds to incorrectly use debug TBB libraries.
Impact:
Release builds fail with linker errors unless debug TBB libraries are available
Even when builds complete, they link with debug libraries instead of optimized ones
This affects all components that depend on TBB
Reproduction Steps:
Configure OpenCASCADE 7.9.0 build with CMake
Build in Release mode
Observe that TKernel.dll and other components link to TBB12_Debug.dll
Solution:
Replace the problematic code in adm/cmake/tbb.cmake with:
cmakeif(CMAKE_BUILD_TYPE)
string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE)
set(CHOSEN_IMPORT_CONF ${UPPER_BUILD_TYPE})
else()
# For multi-config generators like Visual Studio
set(CHOSEN_IMPORT_CONF RELEASE)
endif()
This properly selects the TBB configuration based on the active build type.
System Information:
OpenCASCADE Version: 7.9.0
Operating System: Windows
CMake Version: Cmake 3.28.0-c3
Visual Studio Version: 2019
TBB Version: 2021.13.0