Root cause: the DXF reader never reads group code 340 (block_record
handle) inside LAYOUT objects, so layout.block_record stays Handle::NULL
after opening any DXF file. This caused current_layout_block_handle()
to return NULL, which made belongs_to_visible_block() return true for
every entity — all entities appeared in all layouts simultaneously.
Fix in current_layout_block_handle() — three-tier lookup:
1. Layout.block_record (non-null) — works for DWG files.
2. Conventional DXF name ("*Model_Space", "*Paper_Space", …) derived
from the layout's tab_order — works for standard DXF exporters.
3. Position-based fallback: sort paper-space block records and paper
layouts independently, then match by index — handles exporters that
set tab_order = 0 for all layouts.
Apply the same two-tier lookup to model_space_block_handle().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>