From 59651052f802a3f43060b16a4f5a0887ed8b083f Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Thu, 1 Oct 2026 00:14:13 +0300 Subject: [PATCH] fix(dimension): oblique and architectural-tick arrow blocks fit as ticks Only DIMTSZ > 0 counted as ticks, so a style drawing its strokes with the _OBLIQUE / _ARCHTICK arrow block gave each stroke a full arrow's room: an 18-long dimension with 4.8 arrows moved its strokes outside and ran the dim line past the extension lines once it was drawn live (after any edit, #898). Tick arrow blocks now count as ticks for fit and DIMDLE, like the file's own baked block shows them. Co-Authored-By: Claude Opus 5.5 --- src/entities/dimension.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/entities/dimension.rs b/src/entities/dimension.rs index b2b3b0a45..c8e2bf621 100644 --- a/src/entities/dimension.rs +++ b/src/entities/dimension.rs @@ -3842,7 +3842,13 @@ fn tessellate_dimension_inner( dimfxlon, dimsoxd, dimcen, - ticks: dimtsz_raw > 1e-9, + // Oblique-stroke and architectural-tick arrow blocks are ticks + // too: they sit on the extension line and need no room of their + // own, and DIMDLE applies to them. Given arrow-sized room, an + // 18-long dimension flipped its strokes outside (#898). + ticks: dimtsz_raw > 1e-9 + || (matches!(arrow1, ArrowKind::Tick { .. }) + && matches!(arrow2, ArrowKind::Tick { .. })), arrow_len: dimasz, text_width: text_layout.width, text_height: dim_txt as f32,