forked from 1b-agent/opencadstudio-upstream
fix(dimension): don't draw a dimension's Defpoints markers
A dimension's definition points are baked into its *D block as POINT entities on the Defpoints layer. AutoCAD treats them as grip markers and never draws them, but OCS rendered them through the baked-block path as PDMODE glyphs (a vertical tick with the drawing's PDMODE 4 / PDSIZE). Two of them sit on the measured geometry at each extension line's foot, so the tick read as the extension line running past the geometry — the lines looked too long. Skip POINT sub-entities when rendering a dimension's baked block; only its lines, arrowhead blocks and text are geometry. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
50f6196594
commit
958c06ffe0
1 file changed
+9
@@ -291,6 +291,15 @@ pub(crate) fn tessellate_entity(
|
||||
let Some(sub) = document.get_entity(eh) else {
|
||||
continue;
|
||||
};
|
||||
// A dimension's definition points are baked into the
|
||||
// block as POINTs on the Defpoints layer. AutoCAD never
|
||||
// draws them as PDMODE glyphs — they're grip markers, not
|
||||
// geometry — so rendering them adds a stray tick at each
|
||||
// measured point that makes the extension lines look like
|
||||
// they run past the geometry. Skip them.
|
||||
if matches!(sub, EntityType::Point(_)) {
|
||||
continue;
|
||||
}
|
||||
// Sub-entities inside *D### / DIMBLOCK## blocks
|
||||
// typically use ByBlock color/linetype/lineweight —
|
||||
// they should inherit from the Dimension entity.
|
||||
|
||||
Reference in new issue
Block a user