PDF, print, EPS and DXF exports now check the art of each placed symbol
instance after its effects are baked. The objects it holds, including
the copies a Transform effect makes, opacity mask art and the art of
instances placed inside it (counted once), count against the export's
16,000,000-object budget. An instance whose baked art passes the budget,
or would draw deeper than the 128 levels a document may draw, stays an
instance.
- doc: DrawnHeights measures how deep an object outside the layers
draws, symbols and patterns it uses included.
- effects: the bake tracks how deep each baked object sits, and a
rejected candidate releases what it and the instances in it charged.
Czech now translates almost every message, so the untranslated report lists the same 1,814 missing messages for Danish as for Spanish and French only. The row count includes the Danish row main added.
- addon.arrange.randomizeOpacity, type.orientation.vertical and .horizontal,
type.opticalMarginAlignment, type.systemLayout and type.fractionalWidths
run through edit_if_changed (the Edit Colors helper) and record an undo step
only when an opacity, a direction or a setting changes.
- A test for each command; the params text says so, and docs/mcp.md for the
commands it describes.
Remove Breaks, Break Text, Combine Point Text, Join Point Text, Set
Alignment, Keep Position and Reset Text Transform skipped locked and
hidden type even when `ids` named it, or named the group or layer
holding it, while other commands such as text.convertListToText act on
named locked or hidden objects.
- With `ids`, the type they name is taken locked or hidden too (not
type on a locked artboard); from the selection, only type that can
be edited, as before.
- Remove Breaks reads a named threaded story with a locked frame as one
text.
- Objects made from locked or hidden type are not selected.
Docs: docs/mcp.md (Text tools), docs/target-app-parity.md.
A freeform gradient's image was sampled, encoded and written inline at
every fill, outside the reuse placed images have. Fields now go through
the same codes and placements: a fill whose encoded image (color setup,
image dictionary, filter, operator and samples) matches one already
kept draws from it, so its samples are written once in the setup as
VCim<i>. A field drawn once is still written where it is drawn.
A fill whose placement can't be drawn, or that arrives when the page is
already at the 256 MB limit, is no longer sampled first, and a field
image taken back with art that passed the limit is forgotten.
Revolve sorted its faces by the depth of each face's middle only, so a
tilted profile with long edges, or a profile of several contours, could
draw a nearer face under a farther one where the two overlap.
- A revolved face carries its view-space plane (none when its corners lie
off one plane or reach the eye), and Revolve (Classic)'s facets keep it.
- Revolve and Revolve (Classic) put each surface's faces through the local
depth order Extrude & Bevel uses for its fill and strokes: when two
overlapping faces are drawn the wrong way round, every pair of
overlapping faces goes in the order of their depths at the middle of the
overlap, within the same 4,000,000-comparison limit. A surface already
in the right order keeps it.
- A group's members, sorted together by depth, go through the same order
across members.
Docs: docs/revolve.md, docs/effects-parity.md, docs/target-app-parity.md.