Open CASCADE Technology 8.0.1 Release #1415
dpasukhi
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Open Cascade is publishing Open CASCADE Technology version 8.0.1, the first regular maintenance release in the 8.0 series.
This release consolidates the fixes, performance work, and build improvements merged after 8.0.0p1. The main focus is modeling reliability, shape healing, periodic geometry, meshing, STEP export, concurrent fillet construction, and Windows/MSYS2 build integration. The C++17 and core library API and ABI baseline established by 8.0.0.p1 remains unchanged.
The previous release notes are available in:
Highlights
Modeling Algorithms
Geom_BSplineCurve::PeriodicNormalization()to shift a parameter by the required number of periods in one operation rather than repeatedly adding or subtracting the period. The implementation preserves the accepted closed-interval behavior at the last parameter and handles floating-point residuals for very large values. This removes the reported infinite loop in Boolean section processing. #1329GeomFill_Gordonconstruction for rational B-spline networks. Rational curves are reparametrized exactly when possible, homogeneous reference-surface weights are preserved, closed-network contacts are selected more reliably, and curve-to-surface deviation validation was strengthened. Approximate fallback construction now uses grid evaluators, with expanded regression coverage for rational, periodic, closed, and dense networks. #1335BRepGProp_EdgeTool::IntegrationOrder()for Bezier and B-spline edges represented only by a curve on surface. The integration order now uses the adaptor's virtualNbPoles()method instead of dereferencing a missing 3D curve, preventing crashes when computing linear properties of degenerate or sewing-generated edges. #1382ShapeUpgrade_UnifySameDomain. Candidate edges without a pcurve are skipped, and cases without a usable current-edge pcurve fall back safely instead of dereferencing a null handle. This is particularly relevant to topology produced from mesh sewing or other partially defined inputs. #1392BRepCheck_Face::ClassifyWires()for faces containing many holes. Wire UV bounding boxes are precomputed so disjoint wire pairs bypass exact containment classification, whileGeomLib_Tool::Parameter()uses closed-form parameter evaluation for elementary curves. The contributor's benchmark for 2,000 holes improved from 9.21 seconds to 1.11 seconds, approximately eight times faster. #1375GeomLib_CheckCurveOnSurface. Coincident elementary curve/surface compositions can now accept the existing sampled result without running PSO, Newton minimization, and fallback PSO; non-elementary cases receive an additional half-step validation before taking the shortcut. Reported Boolean workloads improved by roughly 17–20% in native and WebAssembly builds without changing result shapes or test outcomes. #1373ChFi3d_Builder::StartSol()against invalid faces, edges, vertices, adaptors, and missing pcurves. Oversized or otherwise invalid chamfer construction now terminates withIsDone() == falsewhere possible instead of crashing in curve-on-surface evaluation. #1407thread_local. IndependentBRepFilletAPI_MakeFilletoperations no longer race throughTopOpeBRepBuildstate and silently produce invalid solids. #1374Modeling Data
Geom_TrimmedCurveinBRep_Tool::CurveOnPlane(). Nested trimmed curves are unwrapped for validation, bounded curves reject out-of-domain or zero-length ranges, and periodic curves retain support for shifted full-period ranges. #1402Shape Healing
ShapeFix_Face::FixPeriodicDegenerated()when used without aShapeBuild_ReShapecontext. Healing a periodic conical face bounded by a single closed edge now preserves the result without unconditionally dereferencing a null context. [#1380]ShapeFix_Face::Perform()to detect when an earlier operation has removed a face or replaced it with a non-face shape such as a compound. The existing replacement is returned directly instead of being cast back toTopoDS_Face, preventing heap corruption while healing self-intersecting faces split into multiple results. [#1323]ShapeAnalysis_FreeBoundsreturns an initialized empty wire sequence when no unconsumed edges remain after closed-loop extraction. Multiple disjoint closed components no longer propagate a null sequence intoNCollection_HSequence::Append(). [#1377]ShapeAnalysis_FreeBounds::ConnectEdgesToWires()to forward and reversed boundary edges. Internal and external edges are skipped, while orientation changes are still mapped back to the correct original edge indices. [#1408]Mesh
BRepMesh_BaseMeshAlgo. Only the pcurve corresponding to the current wire occurrence creates mesh links, avoiding duplicate constraints; all other pcurves still receive node indices soPoly_PolygonOnTriangulationdata remains valid. Regression coverage includes trimmed cylinders, Boolean-trimmed tori crossing a seam, and closed-cylinder seam polygons. [#1338]Data Exchange
STEPControl_Writer::Transfer()now initializes missing shape-processing parameters before transfer. The same defaults are applied throughSTEPCAFControl_Writer, including after callers explicitly replace the parameter map with an empty map. [#1334]StepData_StepWriter::AddString()for text that cannot fit in the 72-character STEP output buffer. Oversized raw strings are emitted in chunks, and continuation indentation is dropped when it would leave no room for pending text, eliminating an infinite flush loop. [#1318]Configuration, Documentation And Project Workflow
8.0.1by removing the development suffix. [#1412]New Contributors
Thanks to all contributors who reported, investigated, tested, reviewed, and fixed issues for this maintenance release: @AtheneNoctuaPt, @dpasukhi, @gsdali, @cmoliverio, @bwross, @andymai, and @davidgilkaufman.
Full Changelog: V8_0_0_p1...V8_0_1
This discussion was created from the release V8_0_1.
All reactions