Open CASCADE Technology 7.8.0 released

Forums: 

Open Cascade is delighted to announce the release of Open CASCADE Technology version 7.8.0 to the public.

Overview

Version 7.8.0 is a minor release, encompassing approximately 110 improvements and corrections over the previous minor release 7.7.0.

What's New in OCCT 7.8.0

General

  • Fixed TDataStd_NamedData HasSmth() methods to no longer return true for empty containers.
  • Improved general performance through code updates with static analysis.
  • Implemented "Memory Manager" configurations: Native, TBB, JeMalloc, Flexible. JeMalloc leads to a performance increase of up to 40% for large files.
  • Introduced CMake configuration for optimization profiles: Default and Production. Production activates all available compiler optimizations.
  • Implemented move semantics into NCollection and TCollection containers.
  • Modernized NCollection_Vector(NCollection_DynamicArray), NCollection_Array1, and NCollection_Array2.
  • Updated memory allocation functionality to avoid unnecessary memory cleaning (set 0).
  • Modernized NCollection_IncAllocator (optimized pool for small objects).

Modeling

  • Addressed multiple bug fixes and improvements for various modeling algorithm methods.
  • Increased memory management performance.
  • Improved overall modeling stability.
  • Resolved canonical geoplane detection problems.

Visualization

  • Resolved compilation issues related to vtk 9.2.6.
  • Improved SelectMgr_EntityOwner to process the selection scheme.
  • Modified Image_AlienPixMap::Save() to write into a memory buffer instead of a file.
  • Reduced sensitivity of lines.
  • Extended AIS_AnimationObject with syntax for defining rotation around a specific point.
  • Introduced separate gesture mappings for dragging to AIS_ViewController.
  • Integrated the ability to scale by moving the mouse on the OY axis.

Mesh

  • Fixed BRepMesh_IncrementalMesh issue with overflowing system memory.
  • Unhandled Standard_OutOfRange, BRepMesh_PairOfIndex::Append() no longer prevents triangulation with large deflection values.

Data Exchange

  • Resolved multiple issues regarding DE Wrapper and Step import and export.
  • Increased STEP parser performance.
  • Introduced thread-safety interface to STEP import and export.
  • Reorganized DE ToolKits according to specific CAD formats.
  • Introduced DE plug-in system to load CAD format providers during library loading time.
  • Fixed stability issues with XBF and IGES file formats.
  • Addressed general problems with importing VRML V1.
  • Improved processing of STEP-oriented dimensions.

Draw Test Harness

  • Enabled loading of plugins on Linux OS.
  • Reorganized DRAW DE ToolKits according to specific CAD formats.
  • Resolved environment-related issues with debug tools DrawTrSurf_Set, DrawTrSurf_SetPnt, and DrawTrSurf_SetPnt2d.

How to Upgrade

For details on upgrading to the new version, please refer to OCCT Upgrade Guide.

Prepared packages are available at the following link: Release V7_8_0 · Open-Cascade-SAS/OCCT (github.com)

Feel free to contact us for any additional information.

Thomas Anderson's picture

I noticed that the download page for releases has been updated for 7.8.0. However, there is no link for any testgrid data set like there was for previous releases. Is that something that just hasn't been done yet or ... what? I realize the testing data is probably difficult to deal with as it is split between proprietary and open files, but it would be nice is the open files could be hosted is some kind of public repo.

Dmitrii Pasukhin's picture

thank you for your reminder. Yes, the testgrid files were no attached. We need to check and prepare them and I hope they will be ready during this week.

We already have 2 different bases. But for release we must to check them before public. As for a make it as a public repo it is a little dangerous thing for us. I'm apologies.

Best regards, Dmitrii.

Dmitrii Pasukhin's picture

Hello, Open CASCADE Technology testing dataset published. You can find them on dowload page or Release V7_8_0 · Open-Cascade-SAS/OCCT (github.com)

Best regards, Dmitrii.

Rosendo D'Amore's picture

Hi,

After upgrading Open cascade from 7.7.0 to 7.8.0 I can't compile my library any more.

root@d15cfeadcf30:/converter# make -j
Consolidate compiler generated dependencies of target gc
[ 20%] Building CXX object CMakeFiles/gc.dir/src/main/main.cpp.o
[ 60%] Building CXX object CMakeFiles/gc.dir/src/main/Helpers.cpp.o
[ 80%] Building CXX object CMakeFiles/gc.dir/src/main/StepToObj.cpp.o
[100%] Linking CXX executable gc
/usr/bin/ld: CMakeFiles/gc.dir/src/main/StepToObj.cpp.o: in function `stepToObj(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, double, bool)':
StepToObj.cpp:(.text+0x16e4): undefined reference to `RWObj_CafWriter::RWObj_CafWriter(TCollection_AsciiString const&)'
/usr/bin/ld: StepToObj.cpp:(.text+0x1747): undefined reference to `RWObj_CafWriter::Perform(opencascade::handle<TDocStd_Document> const&, NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString, NCollection_DefaultHasher<TCollection_AsciiString> > const&, Message_ProgressRange const&)'
/usr/bin/ld: StepToObj.cpp:(.text+0x17b4): undefined reference to `RWObj_CafWriter::~RWObj_CafWriter()'
/usr/bin/ld: StepToObj.cpp:(.text+0x1a6f): undefined reference to `RWObj_CafWriter::~RWObj_CafWriter()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/gc.dir/build.make:145: gc] Error 1
make[1]: *** [CMakeFiles/Makefile2:99: CMakeFiles/gc.dir/all] Error 2
make: *** [Makefile:111: all] Error 2

I've changed my CMakeLists.txt with the new .so libraries for STEP from libTKXDESTEP.so to libTKDESTEP.so

If I recompile my code against Open Cascade 7.7.0 everything compiles fine.

Let me know if you need more input.

Kind regards,

Dmitrii Pasukhin's picture

Hello, you need to link TKDEOBJ and clean and then rebuild your solution.

Best  regards, Dmitrii.

Rosendo D&#039;Amore's picture

Thanks, that did the trick!

Luc Wens's picture

Upgrading from 7.5 to 7.8 my STL importer is broken since it can't find XSDRAWSTLVRML_DataSource anymore. With what is it replaced?
I checked in the git log and can see that it was removed on 19/11/23, checked the reworked mfc samples but could not figure out how the import should be done now.

This is my 7.5 code:

bool CView3DFrame::LoadSTL(LPCTSTR iFilePath, AIS_ListOfInteractive&		aShapes)
{
	Standard_CString		theFileName(iFilePath);

	Handle_Poly_Triangulation					m_mesh; 
	//Message_ProgressRange						hMessageProgress;
	Handle(CTrack_Message_ProgressIndicator)	hMessageProgress = new CTrack_Message_ProgressIndicator(GetShortName(iFilePath), false);
	m_mesh = RWStl::ReadFile(theFileName, hMessageProgress->Start());
	if (m_mesh.IsNull())
		return false;

	hMessageProgress->SetText("Transfer CAD file");
	Handle(MeshVS_Mesh) aMesh = new MeshVS_Mesh();
==>	Handle(XSDRAWSTLVRML_DataSource) aDS = new XSDRAWSTLVRML_DataSource(m_mesh);

	aMesh->SetDataSource(aDS);
	aMesh->AddBuilder(new MeshVS_MeshPrsBuilder(aMesh), Standard_True);//False -> No selection

	aMesh->GetDrawer()->SetBoolean(MeshVS_DA_DisplayNodes, Standard_False); //MeshVS_DrawerAttribute
	aMesh->GetDrawer()->SetBoolean(MeshVS_DA_ShowEdges, Standard_False);
	aMesh->GetDrawer()->SetBoolean(MeshVS_DA_SmoothShading, Standard_True);

	Graphic3d_MaterialAspect Material = DEFAULT_MATERIAL;
	aMesh->GetDrawer()->SetMaterial(MeshVS_DA_FrontMaterial, Material);
	aMesh->SetDisplayMode(m_bShadingShaded ? MeshVS_DMF_Shading : MeshVS_DMF_WireFrame); 
 	aMesh->SetHilightMode(MeshVS_DMF_Shading); 
	aMesh->SetMeshSelMethod(MeshVS_MSM_BOX);
	aShapes.Append(aMesh);

	return true;
}

Dmitrii Pasukhin's picture

Hello, the moving was done on 7.8.0 release. The current file was renamed and moved to src/XSDRAWSTL/XSDRAWSTL_DataSource.hxx

You can use this file by linking TKXSDRAWSTL

Best regards, Dmitrii.