From 6d60ef45d5e3fc83816364097fedc601fc4503aa Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Thu, 11 Jun 2026 01:01:56 +0300 Subject: [PATCH] =?UTF-8?q?fix(hatch):=20wrong-way=20giant=20boundary=20ar?= =?UTF-8?q?cs=20in=20blocks=20=E2=80=94=20bump=20acadrust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hatches inside blocks (xref_Plan-Sade) drew some boundary arcs as their near-full-circle complement, covering huge areas — in the pattern clip when rendered through the INSERT, and in both pattern and boundary wires after EXPLODE. Root cause (acadrust 64efaf8): the stored sweep of a boundary arc is always forward and AutoCAD encodes a wrap through 0 by writing the end angle ABOVE 2π (5.81 → 6.64 for a 0.83 rad arc). transform_hatch normalized angles into [0, 2π), turning such arcs into their 5.46 rad complement on ANY insert pass-through — even a pure translation, which is why the same hatch looked fine outside the block. The fix transforms only the start angle and carries the stored sweep over unchanged (invariant under rotation and mirror); RAW vs exploded edge angles are now bit-identical on the reporting file. Co-Authored-By: Claude Opus 4.8 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0ade86b5f..50f4f9f67 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,7 +56,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "acadrust" version = "0.3.4" -source = "git+https://github.com/HakanSeven12/acadrust?branch=main#ddd6888b261cb104fcf3acd6e62dc197f5d4e769" +source = "git+https://github.com/HakanSeven12/acadrust?branch=main#64efaf874cc50a27b09648d6a2e281696fe09888" dependencies = [ "ahash", "anyhow", @@ -3178,7 +3178,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b577e2d69827c4740cba2b52efaad1c4cc7c73042860b199710b3575c68438d" dependencies = [ "bytecount", - "memchr 1.0.2", + "memchr 2.8.1", "nom 8.0.0", ]