From 5862fe7824b70b39df8eee71df821bdf06815288 Mon Sep 17 00:00:00 2001 From: ramox81 <184937705+ramox81@users.noreply.github.com> Date: Thu, 8 Oct 2026 14:49:43 +0300 Subject: [PATCH 1/2] fix(extrude): history records give the profile frame (group 295) The reference cannot open a drawing whose extrusion history has a taper and leaves the profile frame to be computed (ErrorStatus 53). Extrusion and press-pull records now set group 295, as the reference writes them. Co-Authored-By: Claude Opus 5.5 --- src/app/presspull_ops.rs | 2 ++ src/scene/model/sweep_model.rs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/app/presspull_ops.rs b/src/app/presspull_ops.rs index 18eacfe20..866cbde85 100644 --- a/src/app/presspull_ops.rs +++ b/src/app/presspull_ops.rs @@ -33,6 +33,8 @@ fn extrusion_history(entity: &EntityType, direction: DVec3, anchor: DVec3) -> Op sweep_entity_transform: glam::DMat4::IDENTITY.to_cols_array(), path_entity_transform: glam::DMat4::IDENTITY.to_cols_array(), reference_point: Vector3::new(anchor.x, anchor.y, anchor.z), + // Group 295: the profile frame is given (see extrusion_history). + flags_294_296: [false, true, false], ..SolidHistorySweep::default() })); } diff --git a/src/scene/model/sweep_model.rs b/src/scene/model/sweep_model.rs index 3a3e3f15e..3c12024f7 100644 --- a/src/scene/model/sweep_model.rs +++ b/src/scene/model/sweep_model.rs @@ -719,6 +719,10 @@ pub fn extrusion_history( reference_point[1], reference_point[2], ), + // Group 295: the profile frame is given, as the reference records + // it. Left to be computed, the reference cannot open a drawing with + // a tapered extrusion (ErrorStatus 53). + flags_294_296: [false, true, false], ..SolidHistorySweep::default() })) } From 40235de218ceea4b6b3d718120a04a869adaca54 Mon Sep 17 00:00:00 2001 From: ramox81 <184937705+ramox81@users.noreply.github.com> Date: Thu, 8 Oct 2026 15:19:02 +0300 Subject: [PATCH 2/2] build: kernel with extrusion records rebuilt where they are stored Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 661be0bc6..44647202e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4237,7 +4237,7 @@ dependencies = [ [[package]] name = "opencadkernel" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=99b6b48#99b6b4890704d300596ba502b5a1c8ec1eefa954" +source = "git+https://github.com/ramox81/cadkernel.git?rev=3d0f631#3d0f631075e4d7ab37377ab257dbfdc29583baaa" dependencies = [ "cavalier_contours", "opencadcodec", @@ -4248,7 +4248,7 @@ dependencies = [ [[package]] name = "opencadkernel-constraints" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=99b6b48#99b6b4890704d300596ba502b5a1c8ec1eefa954" +source = "git+https://github.com/ramox81/cadkernel.git?rev=3d0f631#3d0f631075e4d7ab37377ab257dbfdc29583baaa" dependencies = [ "nalgebra", ] diff --git a/Cargo.toml b/Cargo.toml index c9480bb41..8b026f977 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -181,3 +181,7 @@ harness = false [[test]] name = "integration" path = "tests/integration.rs" + +[patch."https://github.com/HakanSeven12/opencadkernel.git"] +opencadkernel = { git = "https://github.com/ramox81/cadkernel.git", rev = "3d0f631" } +opencadkernel-constraints = { git = "https://github.com/ramox81/cadkernel.git", rev = "3d0f631" }