cadcraft/docs
codyvogt 767576ec9e
Block Editor: BEDIT, BSAVE, BSAVEAS and BCLOSE for static blocks (#824)
* Block Editor: BEDIT, BSAVE, BSAVEAS and BCLOSE for static blocks

BEDIT opens a block definition in the drawing's own tab with its base point
at the origin, and the block's objects are edited with the ordinary commands.
BSAVE writes them back into the definition, so every reference in the drawing
updates (one undo step in the drawing); BSAVEAS saves under a new name;
BCLOSE goes back to the drawing, asking whether to save unsaved changes.

- The drawing waits untouched while the editor is open (blockedit.rs): its
  undo history, selection and views come back on BCLOSE. Objects left
  unchanged are saved back exactly, so no coordinate drifts.
- Files save the drawing outside the editor; autosave keeps the editor's
  unsaved changes in the block; the close/quit prompt's Save puts them into
  the block first.
- Right-click a selected block reference: Block Editor. In the editor the
  canvas is tinted, the base point is marked, and a bar offers Save Block,
  Save Block As and Close Block Editor (also in the right-click menu). The
  Block tool set's Block Editor button is now live. BLOCKEDITOR sysvar.
- Layout and paper-space commands are refused while the editor is open; a
  block can't be saved to contain a reference to itself.
- Dynamic blocks: their data is kept; the editor says it can't edit their
  parameters yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* BEDIT: find dynamic block data on the block's BLOCK_RECORD

A dynamic block's ACAD_ENHANCEDBLOCK dictionary hangs off its BLOCK_RECORD
table entry, not the BLOCK entity, so the "parameters are kept" note never
showed for AutoCAD files. Regression test with the data laid out as an
AutoCAD DXF has it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* BEDIT: a dynamic block reference opens its dynamic block

A dynamic block reference with values of its own shows an anonymous block
(`*U12`), so the right-click Block Editor (and BEDIT on a picked or selected
reference) refused it and asked for a name. The anonymous block's record
names its dynamic block in AcDbBlockRepBTag xdata; BEDIT now opens that, as
AutoCAD does. Regression test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Cody Vogt <18035288+codyvogt@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-13 05:58:12 -04:00
..
brand M0: CADCraft skeleton and vertical slice 2026-10-05 23:22:25 -04:00
images README screenshots, alpha/parity assessment in ROADMAP, MLEADER written to DXF as LEADER + MTEXT 2026-10-06 02:12:34 -04:00
architecture.md Add German (de) interface language (#573) 2026-10-11 14:36:40 -04:00
autolisp.md AutoLISP: load and run .lsp routines (fixes #758) (#855) 2026-10-13 05:33:57 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#3) 2026-10-07 21:16:30 -04:00
control-protocol.md Animation effects follow the operating system's setting; View ▸ Accessibility ▸ Animation Effects (#759) 2026-10-13 05:34:56 -04:00
file-format-parity.md Multiline attributes: read, draw and save their text (they were lost on save) (#854) 2026-10-13 05:54:25 -04:00
gaps.md Block Editor: BEDIT, BSAVE, BSAVEAS and BCLOSE for static blocks (#824) 2026-10-13 05:58:12 -04:00
geometry-parity.md Property-based and hostile-input tests for geometry numerics (gaps.md S6) (#733) 2026-10-13 05:16:44 -04:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#205) 2026-10-10 14:13:04 -04:00
localization-parity.md i18n(pt-BR): complete the Brazilian Portuguese catalog (#791) 2026-10-13 04:45:43 -04:00
localization.md i18n(pt-BR): complete the Brazilian Portuguese catalog (#791) 2026-10-13 04:45:43 -04:00
mcp.md MCP: render one area of the drawing, and read its texts (find_text) (#757) 2026-10-13 05:34:34 -04:00
parity-checklist.md MLEADEREDIT, MLEADERALIGN, MLEADERCOLLECT (#816) 2026-10-13 04:37:26 -04:00
plot-styles.md Plot styles: apply line end, join and fill styles (part of #564) (#566) 2026-10-11 13:13:32 -04:00
plotters.md Plotting: honor model-space center and X/Y offsets (#751) 2026-10-13 04:34:04 -04:00
releasing.md Release prep: 0.5.0 and Linux riscv64 release build (#423) 2026-10-10 19:15:06 -04:00
roadmap.md Block Editor: BEDIT, BSAVE, BSAVEAS and BCLOSE for static blocks (#824) 2026-10-13 05:58:12 -04:00
target-app-parity.md Block Editor: BEDIT, BSAVE, BSAVEAS and BCLOSE for static blocks (#824) 2026-10-13 05:58:12 -04:00
ui-parity.md Animation effects follow the operating system's setting; View ▸ Accessibility ▸ Animation Effects (#759) 2026-10-13 05:34:56 -04:00