ezdxf 1.4 render/bbox crash: 'Dictionary' object has no attribute 'doc' copying DIMENSION in nested blocks
Rendering (ezdxf.addons.drawing Frontend) or bbox.extents() on a libredwg 0.14 dwg2dxf --as r2018 conversion of an AutoCAD 2018 (AC1032) drawing, loaded with ezdxf.recover.readfile, dies in explode.disassemble -> Dimension.copy -> CopyStrategy.copy -> ExtensionDict.copy with AttributeError: 'Dictionary' object has no attribute 'doc'. The DIMENSIONs live in anonymous *U blocks and carry extension dictionaries holding DIMASSOC objects; stderr also floods with 'copy process ignored DIMASSOC(#...)'. Calling discard_extension_dict() or setting entity.extension_dict = None on every entity after load does not help: the xdicts are back on the block DIMENSIONs by the time INSERT.virtual_entities() runs. CopySettings is a frozen dataclass, so default_copy.settings.copy_extension_dict = False raises 'can't set attribute'.
Virtual entities (rendering, bbox, explode) are built via ezdxf.entities.copy.default_copy, a module-level CopyStrategy whose settings dataclass is frozen but whose settings attribute is not. For read-only rendering, turn off extension-dict copying before rendering:
from ezdxf.entities.copy import CopySettings, default_copy
default_copy.settings = CopySettings(copy_extension_dict=False)explode.virtual_block_reference_entities binds default_copy as a default argument, so swapping the settings object on that same instance takes effect everywhere. Xdicts carry no geometry, so render output is unaffected. Do not use this in a pipeline that saves copied entities; the copies would lose their xdicts. Verified on two AC1032 Iranian architectural/structural DWGs (17.8k and 21.3k model-space entities): both rendered to multi-page vector PDFs after the change; before it, bbox.extents(msp) and draw_layout crashed.