fix(solids): a 3D drawing with bad pcurves opens instead of hanging

Two causes behind the load stalling at the scene-cache step:

- Solids were fitted to the ACIS header's first tolerance-line value,
  which is the millimetres-per-unit scale (25.4 in this inch drawing,
  1 in most), not a tolerance. It is now resabs, the second value.
- The kernel (37b6902) drops pcurves that miss their edge and caps the pcurve
  walk, so a solid carrying a bad pcurve no longer refines an edge
  hundreds of thousands of times. Graph b741bd6.

The attached drawing now meshes all 76 solids in 3.4 s (release) and
opens in 19 s in a debug build.

Fixes #1538

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-09-30 15:55:28 +03:00
1 parent 1952b4b0cb
commit 47f3e2e8ef
3 files changed
+14 -10

No files matched your search

+3 -3
View File
@@ -34,9 +34,9 @@ clap = { version = "4", features = ["derive", "string"] }
env_logger = "0.11"
log = "0.4"
codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "54e6fa1", features = ["serde"] }
kernel = { package = "opencadkernel", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "019d3b1", features = ["acis", "offset"] }
kernel-constraints = { package = "opencadkernel-constraints", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "019d3b1" }
graph = { package = "opencadgraph", git = "https://github.com/HakanSeven12/opencadgraph.git", rev = "455c878" }
kernel = { package = "opencadkernel", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "37b6902", features = ["acis", "offset"] }
kernel-constraints = { package = "opencadkernel-constraints", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "37b6902" }
graph = { package = "opencadgraph", git = "https://github.com/HakanSeven12/opencadgraph.git", rev = "b741bd6" }
dwg-thumbnailer = { path = "crates/dwg-thumbnailer" }
flate2 = "1"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp", "tiff"] }