Keep PDMODE and PDSIZE changes in the Point Style dialog until OK. Cancel and close discard staged edits. Invalid or non-finite size input reports an error and keeps the dialog open. Commit both values with one undo snapshot.
test: cancel discards staged glyph and size edits
test: invalid point size reports error and stays open
test: OK commits glyph and size in one undo step
test: relative point size keeps its sign
Validate plot-style color, lineweight, and screening fields atomically and report invalid input without changing the table. Keep successful Save and Save As edits as the close baseline; discard edits made after that baseline when the panel closes. CTB files are app-level state, so these changes do not dirty the drawing or create drawing undo entries.
test: invalid screening retains prior value and reports error
test: invalid color retains prior value and reports error
test: invalid lineweight retains prior value and reports error
test: closing panel discards unsaved edits
test: closing panel keeps values from saved baseline
The Actions catalog's id fallback assigned authoring-tool-flip-action
to both Polar Stretch and Flip, so id lookups resolved the disabled
Polar Stretch row and Flip clicks never dispatched.
Add the BPROPERTIESTABLE command, the Block Authoring palette row and
the grid dialog. The row needs an open block edit session with a Linear
or Polar parameter column; OK parses cells to finite numbers, re-checks
the table against the session it was opened from, writes it in one undo
step, and no-op edits close without an undo.
Kernel: every splitting walk of the B-rep mesher spends from a call
budget. Two drawings from a component library (a bus with a six-face
wheel, a teddy bear) never finished opening because a span whose angle
never settled split until the depth cap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0d625bbe5 moved the codec to 12d68e4, which adds
DynamicBlockData::PropertiesTable and BlockPropertiesTableValue. The
plugin API's type registry did not list the new enum, so its build
script stopped the workspace build, and the object data panel had no arm
for the new variant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Enable Polar Stretch actions through the authoring palette and BACTION command. Persist native action data, edit target selections and frames, and evaluate parameter-driven displacement on block references.
In Standard mode the chosen edges sat in a Vec, and every trim rebuilt
the boundary by asking it about each object of the drawing: edges ×
objects per click, seconds once a crossing window picked thousands of
edges. Look them up in a set. TRIM's edge-selection hover also searched
all objects for every picked edge on each mouse move; it uses the
command's handle index like EXTEND.
Refs #1867
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codec: the DXF reader takes an alignment grip's orientation from the
140/141/142 codes the writer now emits, so a round trip keeps it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
insert_spatial_filter reads the INSERT's own dictionary link since
3a3d2e4a8; a caller holding a copy made before XCLIP linked the
dictionary saw none. Fall back to the stored INSERT's link, still O(1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pre-filled issue body put a `---` line right under the description,
which Markdown reads as a setext heading underline whenever text is typed
on the line above it. Use `***` instead.
Refs #1834
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Only system-installed TrueType fonts were searched, so a style naming a
.ttf placed in the Fonts folder fell back to another face, although SHX
fonts there already resolved. The folder is now loaded with the system
fonts.
Refs #925
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After Center and Start, typing a length now draws the arc that long along
the circle, running towards the side of the start point the pointer is on.
A length of a full circle or more keeps the prompt.
Closes#1408
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A drawing with 650k entities and 21k objects stalled for 7 minutes the
first time a layout viewport was drawn (#1746): building that viewport's
block cache asked for each entity's layer viewport overrides, and the
codec found each layer's extension dictionary by scanning every object
whenever the layer had none. Codec 2646725 reads the registered link.
The XCLIP check made the same scan for every nested INSERT without an
extension dictionary; it now reads the INSERT's own link, which the
readers and ensure_extension_dictionary always set.
Cargo: codec 2646725, kernel 4e6334a, graph 2fd1d42.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A reference to a block with a visibility parameter gets a Custom row named
after the parameter, listing its states with the one shown selected.
Picking a state applies it the same way as the reference's visibility
grip, one undo step.
Refs #1862
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the native Array action (\BARRAY\, \BACTION ARRAY\, and Authoring Palettes Actions tab \Array\) supporting Linear, Polar, and XY parameters.
Prompt for column offset (and row offset for XY), constructing native \DynamicBlockData::ArrayAction(BlockArrayAction)\ with class \AcDbBlockArrayAction\ and 4 native connections (\Base\, \End\, \UpdatedBase\, \UpdatedEnd\) bound to the parameter node ID.
Evaluate step displacement along 1D rays and 2D grids, tagging clones with deterministic element IDs to reconcile representations cleanly across incremental grip adjustments without mutating baseline geometry. Validate native DWG/DXF roundtrip, reference independence, COPY isolation, rejections, and dock palette tool state.
Update evaluated references upon saving block definition edits while preserving each reference's independent parameter values, visibility states, and undo history.
Reconcile representation members by native element identity rather than positional index, preserving handles, extension dictionaries, reactors, nested attribute handles, and 3D polyline vertex handles. Prune erased targets from action dependencies, synchronize anonymous block base points, and prevent element ID collisions across undo/redo. Coalesce representation updates into editor undo deltas and composite structure snapshots for symmetric undo/redo.
Add BACTIONSET and the Block Editor Action Selection ribbon entry. Pick or preselect an action, replace/add/remove its drawing targets, or redefine a Stretch frame while preserving the native action and graph identity.
Retain existing Stretch vertex bindings during target edits and bind new targets against the stored frame. Normalize duplicate picks, allow removing invalid bindings, and rebuild them through a replacement frame. Rebuild evaluated references at their independent cached values so removed targets lose old effects, with local undo, discard and one drawing save delta.
Validate synthetic native DWG/DXF roundtrips, shared COPY representations, stale-result guards, reference geometry refresh, frame/cancel/history and the real ribbon flyout. 348 block tests pass (6 existing opt-in ignored), plus 42 dock and 27 viewport tests.
Add BACTIONSET and the Block Editor Action Selection ribbon entry. Pick or preselect an action, replace/add/remove its drawing targets, or redefine a Stretch frame while preserving the native action and graph identity.
Retain existing Stretch vertex bindings during target edits and bind new targets against the stored frame. Allow removing invalid bindings or rebuilding them through a replacement frame. Rebuild evaluated references at their independent cached values so removed targets lose old action effects, with local undo, discard and one drawing save delta.
Validate synthetic native DWG/DXF roundtrips, shared COPY representations, stale-result guards, reference geometry refresh, frame/cancel/history and the real ribbon flyout. 347 block tests pass (6 existing opt-in ignored), plus 42 dock and 27 viewport tests.
Author a native Stretch action from a Linear, Polar or XY parameter, a two-corner stretch frame, an object selection and a marker. Preview and retain its frame in BEDIT, with selectable and movable action markers.
Freeze line and planar lightweight-polyline vertex bindings, preserve curved-segment height, move wholly selected objects, and evaluate independent saved INSERTs from their definition. Retain native DWG/DXF data, copied-reference isolation and undo/redo.
Validate with synthetic frame, topology, parameter, history, Test Block, drawing-reference, COPY and roundtrip regressions: 340 block tests pass (6 existing opt-in ignored), plus 41 dock and 27 viewport tests. Other entity types, Polar Stretch, custom multipliers and chaining remain unsupported.