forked from 1b-agent/opencadstudio-upstream
OCS renders a dimension live from its definition points but exports a baked *D block that other applications draw. An in-place edit (DIMTEDIT, text override, DIMSPACE, any ReplaceEntity/ReplaceMany edit) changed the dimension while leaving the old block, so the export kept the pre-edit graphics — BricsCAD/ODA showed the stale dimension while OCS showed the edit. Add explode::invalidate_dim_block, which drops a dimension's baked *D block (record + owned sub-entities, so no orphan blocks accumulate) and clears block_name; bake_dimension_blocks then rebuilds a fresh block on the next save. Call it from the in-place edit paths. The transform path (MOVE/COPY/PASTE) keeps its own block in sync and is left untouched, so dimensions loaded from other applications and not edited are preserved. Co-Authored-By: Claude Opus 4.8 <[email protected]>