draw.Drawing.expand
draw.Drawing: D = expand (D)
Replace every insert with the geometry it refers to.
The result holds no blocks and no inserts, only the entities they stood
for, each transformed to where its reference put it. This is what a
backend with no block of its own needs, and what draw.Drawing.plot
and
draw.Drawing.tikz do before rendering.
Blocks may contain inserts of other blocks and are expanded through. A block keeps its own definitions and inherits the enclosing drawing’s only for names it does not define itself.
A block cannot come to refer to itself: its drawing is captured by value when the block is defined, so redefining a name later cannot reach back into a definition already taken. The hundred-level limit is therefore a backstop against a construction this class does not permit, not a rule a caller can meet by accident.
See also: block, insert, draw.Drawing.entities
Source Code: draw.Drawing