Commit Graph
942 Commits
Author SHA1 Message Date
Hakan Seven 28f51ce270 Merge pull request #1839 from MarcelP102/Graphic-Attributes-fix
FIX: Hide pallet title bar menu button until the bar is hovered
2026-10-16 22:39:56 +03:00
gianlucafiore 590ca17f94 Merge pull request #1853 from gianlucafiore/fix/extension-guide-visual-anchor
fix(osnap): keep Extension guides anchored when moving the cursor
2026-10-16 16:16:29 -03:00
gianlucafiore 002cdd0685 chore(visual): remove temporary Extension guide markers 2026-10-16 14:07:22 -03:00
gianlucafiore 363534bb5c fix(visual): exclude Extension and intersection guides from SNAPMARKERSIZE transform 2026-10-16 13:57:47 -03:00
gianlucafiore 903501d7b6 diagnostic: show Extension base and solid guide on demand 2026-10-16 13:35:02 -03:00
Karim Jerbi f69aefc3df feat(block-editor): author Move and Scale actions with Test Block evaluation
Add BACTION/BACTIONTOOL workflows for compatible parameter endpoints, selected geometry and native action markers. Persist Move/Scale records, target handles and evaluation graph bindings; reuse shared adjacency editing with Lookup and the existing palette, tooltips and selection UI.

Evaluate endpoint changes in the disposable Test Block document from immutable starting geometry, with geometry/grip undo, source isolation and transformed-reference support. Preserve visibility representations and their native Basepoint anchor. Refuse unsupported options, value constraints and shared test references.

This milestone supports default Move and uniform Scale on basic drawing entities. Other actions, custom options, live preview and ordinary drawing-reference evaluation remain pending.

Validation: self-contained synthetic DWG/DXF roundtrips, graph adjacency, command cancellation/history, Test Block isolation/undo, transformed references, visibility/Basepoint and real-view palette/viewport input checks; broader block and dock suites.

Keep action object selection active across mouse picks/removals and advance only on Enter. Cover empty selection, multiple targets, Shift removal, marker placement and Move/Scale Test Block evaluation using viewport mouse events. Verified 10 focused, 320 block and 39 dock tests (6 existing opt-in block checks ignored).
2026-10-16 17:05:18 +01:00
gianlucafiore 93abccc6ed fix(visual): anchor Extension marker to captured ray even without OTRACK 2026-10-16 11:46:29 -03:00
Karim Jerbi 10c5a9d382 feat(block-editor): author Lookup tables and wire Basepoint insertion
Add native Basepoint placement and relocation, shared insertion and Test Block anchor behavior, and attribute-safe coordinate reframing. Wire native Lookup parameter placement and the Property Lookup Table editor through the existing palettes and BLOOKUPTABLE.

Stage input columns, rows, reverse lookup and audit across multiple tables; apply all drafts atomically as one undo entry. Persist native Lookup actions and graph dependencies while preserving unrelated objects and IDs. New inputs cover Linear and Polar distances; reference Lookup evaluation and geometry actions remain separate work.

Pin codec c418d92, kernel 0f6f225 and graph dcb9eda for correct R2010 inline constraint-group decoding. The codec regression uses a checked-in synthetic DWG and reproducible generator, with normal self-contained loading and edited DWG/DXF tests. Keep dock control tests independent of scene adapter warning dialogs in software snapshots.

Validation covers native round trips, all 17 research fixtures, graph preservation, insertion and attributes, staged editing, undo/cancel, and real palette/dialog controls.
2026-10-16 15:29:08 +01:00
gianlucafiore 4ad00fad33 fix(visual): keep Extension snap guide on acquired OTRACK ray 2026-10-16 11:24:28 -03:00
Hakan SevenandClaude Opus 5.5 04b2c07a38 Use the codec audit and repair in place of OCS's corruption guard
Opening a drawing no longer drops entities with its own sanity checks or
rewrites knotless splines; recovery runs the codec's repair and records
its actions and unresolved issues in the drawing's notifications. Xref
merges keep every entity. The dropped-entity counts, their command-line
warnings, recovery report rows and the automation "purged" field go with
the guard.

AUDIT now reports the codec's audit (counts plus the first 50 issues) and
asks whether to fix; Yes applies the codec repair as one undo step.

Cargo: codec 325fa98, kernel dfca391, graph 5d4e713.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 12:02:39 +03:00
Claude 0acf039161 Hide pallet title bar menu button until the bar is hovered
The Graphic Attributes hamburger now shows and hides with the pin and
close buttons, staying up while its menu is open.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01GMeyMxW5iedqAKWfY7MeJB
2026-10-16 08:44:44 +00:00
Hakan SevenandClaude Opus 5.5 e4d04ef132 Cargo: codec e023bc3 (acadrust sync), kernel abca4e8, graph c63556f
The codec now holds wide EntityType variants boxed (MText, Helix,
Dimension, Hatch, Viewport, MultiLeader, Surface, Table, Ole2Frame,
Light, Extended). Constructors box their entity; nested patterns reach
a dimension through entities::dimension::as_dimension(_mut). Also
follows BlockAction::action_ids, LineTypeComplexData::source_flags and
the decimal tab stop with an explicit character.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 09:17:01 +03:00
Hakan Seven 012ccc7b65 Merge pull request #1831 from manuvarkey/system-ui-font-face 2026-10-16 01:11:11 +03:00
Hakan Seven 57d80654be Merge pull request #1827 from MarcelP102/auto-hide-fixes 2026-10-16 01:09:10 +03:00
Hakan SevenandClaude Opus 5.5 0126ea212f feat(layout): copy a layout from its tab menu (#1822)
The layout tab's right-click menu gains New Layout, Copy, Page Setup
and Plot beside Rename and Delete. Copy makes "<name> (2)" with the
source's page setup, sheet view and every paper-space object,
viewports included, and opens it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 01:08:07 +03:00
Hakan SevenandClaude Opus 5.5 38d81bf838 feat(selection): highlight opacity and extra width (#1823)
Options > Selection gains "Selection highlight opacity" and "Selection
highlight extra width". Below full opacity the object's own colour
shows through the highlight. The selection overlay draws with its own
copy of the frame uniforms: transparency on, and every line widened by
the extra width. Drawings opened at startup now get the selection
colour settings too; they used to keep the defaults until a setting
changed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 01:07:23 +03:00
Hakan SevenandClaude Opus 5.5 977135fbbd feat(grid): the coloured grid axis lines can be turned off (#1815)
Drafting Settings > Snap and Grid gains "Display grid axis lines",
kept with the other grid settings; the grid itself stays as it is.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 00:42:03 +03:00
Manu VarkeyandClaude Opus 5.5 62175f4ed5 Follow the system UI font face
Detect the desktop's configured interface font and use its family for all
application UI text, instead of iced's generic sans-serif.

- sys::ui_font reads the setting per platform: GNOME/Cinnamon/MATE
  gsettings, KDE kdeglobals, Xfce xfconf, the XDG Settings portal, GTK
  settings.ini and a Fontconfig fallback on Linux; the non-client message
  font (SystemParametersInfoForDpi at 96 DPI) on Windows; the AppKit system
  font on macOS.
- ui_font::apply remaps generic sans-serif in iced's shared font database
  to that family. iced's Font::DEFAULT is sans-serif, so every widget,
  canvas text, bold/italic variant and ribbon measurement follows it with
  no call-site changes. A family that is not installed (or a generic alias)
  keeps iced's own choice. The font's weight and style are ignored.
- Live updates: portal SettingChanged on Linux, a 2 s poll on Windows. A
  change bumps the font-system version so laid-out text reshapes, and
  iced::font::set_defaults relays out every window; ribbon large-button
  widths re-measure. Without a portal, Linux needs a restart; macOS has no
  user-adjustable UI font.
- Monospaced text, drawing text (own cosmic-text font systems) and the web
  build's font loading are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 01:59:17 +05:30
Hakan SevenandClaude Opus 5.5 bec9e63679 feat(dimension): the standard arrowheads in every arrowhead picker
The dimension style, multileader style and Properties pickers listed
every block of the drawing as an arrowhead, and nothing else. They now
list the 19 standard arrowheads (Closed filled, Open, Dot, Architectural
tick, Oblique, Right angle, Datum triangle, …), followed by any user
arrow block the dimension or style already uses. Picking one creates
its block (`_Open`, `_ArchTick`, …) with the geometry the reference
program writes, so other programs draw the same arrow; ODA reads the
saved file cleanly.

`_Small` now draws as the reference's "Dot small blank", a hollow circle
half the arrow size, instead of a small filled triangle.

Also drops a duplicated "DGN Import" catalog entry left by #1810/#1812.
(#1820, #1821)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 22:18:35 +03:00
Claude 2ff93f479b fix(ui): open drop_down_below lists right under their field in pallets
iced_aw's DropDown keeps its list on screen by testing it against the
viewport's width and height only, as if the viewport started at the
window corner. Inside a scrollable the viewport is the visible area in
window coordinates, so a field in a dock pallet saw its list overflow
and the list jumped left by its own width (or up over the field); the
Properties Transparency dropdown showed it. Hand the drop-down a
viewport reaching from the corner to the visible area's far edges.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014ihuqzxdUhd9UbioPn5MGu
2026-10-15 19:09:51 +00:00
Hakan SevenandClaude Opus 5.5 43cca2094b fix(plot): the new page setup name has room to be read
The name field shared the 160 px sidebar row with Save and the close
button, so it was squeezed until no text showed. It now takes the full
width with the buttons below it, and the close button is the SVG icon
instead of a "×" glyph. (#1817)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 21:59:18 +03:00
Claude f17dc11e33 fix(dock): hold the hover state while the pointer is on a dropdown
At this iced revision the layer under an overlay that wants the pointer
gets an unavailable cursor, not a levitating one, so hover_zone still
read a pointer on an open linetype list as leaving the edge. Keep the
last state on an unavailable cursor and exit only on a position outside
the bounds or the pointer leaving the window. A test drives a real open
dropdown through iced's UserInterface for both mouse_area and the zone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014ihuqzxdUhd9UbioPn5MGu
2026-10-15 18:54:40 +00:00
Claude e69b1bc207 fix(dock): drop hover_zone's children method, gone from iced's Widget trait
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014ihuqzxdUhd9UbioPn5MGu
2026-10-15 18:40:58 +00:00
Hakan Seven 1efc82bad2 Merge pull request #1814 from ramox81/codex/pdf-shx-text
PDFSHXTEXT: recognise SHX text geometry as MText

# Conflicts:
#	locales/en-US/opencadstudio.ftl
#	locales/tr-TR/opencadstudio.ftl
#	src/app/commands/blocks.rs
#	src/app/control/actions.rs
#	src/modules/draw/select.rs
2026-10-15 21:39:53 +03:00
Claude c74dca4f32 fix(dock): keep auto-hiding panels shown while the pointer is on their dropdowns
iced gives the layer under an overlay a levitating cursor, so the dock
edge's mouse_area read the pointer on any dropdown or combo list in a
pallet as leaving, and auto-hide collapsed the panel mid-pick. Track
enter/leave with a small hover_zone wrapper that lands the cursor before
its bounds test, on docked edges and floating pallets alike.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014ihuqzxdUhd9UbioPn5MGu
2026-10-15 18:30:37 +00:00
Karim Jerbi 72c762e944 feat(block-editor): wire Rotation, Alignment and Flip parameter placement
Enable the existing palette rows and BPARAMETER choices. Rotation accepts a
center, picked or numeric radius, and picked or numeric default angle.
Alignment places a tangent direction from its base point. Flip places a
reflection line and state label, with native grip and state expressions.

Extend shared graph append/capacity checks for Flip's additional state node
while preserving existing subgraphs. Keep Polar/Rotation angle labels unique
in either placement order. Add editor graphics, extents and definition
reframing through the existing overlay/history/save paths.

This milestone implements native parameter placement and persistence.
Rotate/Flip action association, reference alignment/grip editing, parameter
property editing and parameter sets remain separate work.

Validation covers command and palette placement, cancellation, local/parent
undo, save/discard, native DWG/DXF objects, existing graph preservation and
the 17 research fixtures. Broader block/dock regressions and editor renders
are also checked.
2026-10-15 16:50:47 +01:00
Karim Jerbi 6dab5a7229 feat(block-editor): wire Linear, Polar and XY parameter placement
Enable the three existing palette rows and BPARAMETER choices. Pick a base,
endpoint and label location to create the appropriate native parameter, one
end grip and its location expressions in the shared authoring graph.

Render editor dimensions and labels, preserve them when reframing the block,
and include them in editor extents. Reuse local undo/redo, save/discard and
native DWG/DXF persistence. Reject incomplete or invalid placement without
changing document data or history.

This milestone implements parameter placement. Action association/evaluation,
parameter property editing, alternate grip counts and parameter sets remain
separate work.

Validation: focused placement and palette interaction checks; Block Editor and
dock regressions; native append and DWG/DXF round trips in all 17 research
fixtures, preserving existing graph data and source files; app-view renders.
2026-10-15 16:00:15 +01:00
Karim Jerbi cdfb4ed632 feat(block-editor): add native Point parameter placement
Enable Point in Authoring Palettes and BPARAMETER. Pick parameter and label
positions, then create the native Point, XY grip and position expressions in
one undo transaction. Draw editor-only markers and clear placement previews.

Share graph append construction with Visibility so both types coexist in
either order. Allocate node, expression and edge IDs independently; preserve
existing objects, nodes and relationships and reject malformed/opaque graphs.

Reframe parameter, label and grip with the edited definition. Include authoring
positions in editor framing while keeping reference geometry extents unchanged.
Retain save/discard and parent saved-edit undo. Action association/evaluation
and parameter property editing remain separate milestones.

Validation: 10 targeted, 286 block and 60 dock checks passed (overlapping
filters). Appending a Point to an existing native graph passed DWG/DXF
roundtrips in all 17 local fixtures; old objects and original checksums stayed
unchanged. Real-view palette interaction and rendered marker/label verified.
2026-10-15 15:33:27 +01:00
Karim Jerbi daa26007f9 feat(block-editor): add functional Visibility ribbon controls
Add the current-state selector, Visibility States dialog and mode/show/hide
controls to the contextual ribbon, using shared icons, tooltips, modal UI
and adaptive flyouts. Disable the controls until a Visibility parameter exists.

Stage state creation, rename, deletion, current-state changes and reordering
until OK. Support copied, show-all and hide-all new states in one undo step,
preserve native graph metadata, and restore current-state identity on undo/redo.

Implement nonsaved BVMODE and display-only reveal during BVSHOW selection.
Cancelling selection leaves saved visibility flags and history unchanged.
Keep the existing command-line state workflows available.

Validation: 6 targeted tests; 277 block, 31 app dock, 35 ribbon and 12 history
checks passed (overlapping filters). All 17 local DWG fixtures passed in-memory
DWG/DXF preservation checks with unchanged original checksums.
2026-10-15 15:08:21 +01:00
Karim Jerbi 308990e672 feat(block-editor): wire Visibility parameter placement
Milestone 1: enable Parameters > Visibility and add interactive
BPARAMETER VISIBILITY placement using the existing native visibility
parameter, grip and state engine. Bare BPARAMETER currently offers only
Visibility; other parameter, action and set entries remain unavailable.

Show the placed parameter in the editor and support cancel, local undo/
redo, save/discard and saved-edit undo. Bind placement to its document
and definition, reject duplicates and invalid points, and protect existing
authoring graphs from replacement.

Keep visibility parameters and their grips aligned with geometry when a
BEDIT UCS change reframes the definition, including parameter-only blocks.

Validation: 9 targeted tests, 272 block checks and 58 dock checks passed
(overlapping groups). All 17 local DWG fixtures passed in-memory DWG/DXF
placement roundtrips and graph-preservation checks; originals unchanged.
2026-10-15 15:08:21 +01:00
Hakan Seven 443d3ec13d Merge pull request #1810 from ramox81/codex/insert-import-panel
Insert ribbon: Import panel

# Conflicts:
#	locales/ar-SA/opencadstudio.ftl
#	locales/bg-BG/opencadstudio.ftl
#	locales/cs-CZ/opencadstudio.ftl
#	locales/de-DE/opencadstudio.ftl
#	locales/el-GR/opencadstudio.ftl
#	locales/en-US/opencadstudio.ftl
#	locales/es-ES/opencadstudio.ftl
#	locales/fi-FI/opencadstudio.ftl
#	locales/fr-FR/opencadstudio.ftl
#	locales/hi-IN/opencadstudio.ftl
#	locales/hu-HU/opencadstudio.ftl
#	locales/it-IT/opencadstudio.ftl
#	locales/ja-JP/opencadstudio.ftl
#	locales/ko-KR/opencadstudio.ftl
#	locales/lo-LA/opencadstudio.ftl
#	locales/nl-NL/opencadstudio.ftl
#	locales/pl-PL/opencadstudio.ftl
#	locales/pt-BR/opencadstudio.ftl
#	locales/ru-RU/opencadstudio.ftl
#	locales/tr-TR/opencadstudio.ftl
#	locales/zh-CN/opencadstudio.ftl
#	locales/zh-TW/opencadstudio.ftl
#	src/modules/insert/mod.rs
#	src/ui/ribbon/draw_panel.rs
2026-10-15 16:47:38 +03:00
Hakan Seven 2b4c4bfdc6 Merge pull request #1812 from ramox81/codex/import-dgnimport
IMPORT window and DGNIMPORT / -DGNIMPORT

# Conflicts:
#	locales/ar-SA/opencadstudio.ftl
#	locales/bg-BG/opencadstudio.ftl
#	locales/cs-CZ/opencadstudio.ftl
#	locales/de-DE/opencadstudio.ftl
#	locales/el-GR/opencadstudio.ftl
#	locales/en-US/opencadstudio.ftl
#	locales/es-ES/opencadstudio.ftl
#	locales/fi-FI/opencadstudio.ftl
#	locales/fr-FR/opencadstudio.ftl
#	locales/hi-IN/opencadstudio.ftl
#	locales/hu-HU/opencadstudio.ftl
#	locales/it-IT/opencadstudio.ftl
#	locales/ja-JP/opencadstudio.ftl
#	locales/ko-KR/opencadstudio.ftl
#	locales/lo-LA/opencadstudio.ftl
#	locales/nl-NL/opencadstudio.ftl
#	locales/pl-PL/opencadstudio.ftl
#	locales/pt-BR/opencadstudio.ftl
#	locales/ru-RU/opencadstudio.ftl
#	locales/tr-TR/opencadstudio.ftl
#	locales/zh-CN/opencadstudio.ftl
#	locales/zh-TW/opencadstudio.ftl
2026-10-15 16:47:21 +03:00
Hakan Seven aa618b8327 Merge pull request #1811 from ramox81/codex/txt2mtxt
TXT2MTXT: combine text into MText with a settings dialog

# Conflicts:
#	locales/ar-SA/opencadstudio.ftl
#	locales/bg-BG/opencadstudio.ftl
#	locales/cs-CZ/opencadstudio.ftl
#	locales/de-DE/opencadstudio.ftl
#	locales/el-GR/opencadstudio.ftl
#	locales/en-US/opencadstudio.ftl
#	locales/es-ES/opencadstudio.ftl
#	locales/fi-FI/opencadstudio.ftl
#	locales/fr-FR/opencadstudio.ftl
#	locales/hi-IN/opencadstudio.ftl
#	locales/hu-HU/opencadstudio.ftl
#	locales/it-IT/opencadstudio.ftl
#	locales/ja-JP/opencadstudio.ftl
#	locales/ko-KR/opencadstudio.ftl
#	locales/lo-LA/opencadstudio.ftl
#	locales/nl-NL/opencadstudio.ftl
#	locales/pl-PL/opencadstudio.ftl
#	locales/pt-BR/opencadstudio.ftl
#	locales/ru-RU/opencadstudio.ftl
#	locales/tr-TR/opencadstudio.ftl
#	locales/zh-CN/opencadstudio.ftl
#	locales/zh-TW/opencadstudio.ftl
2026-10-15 16:47:19 +03:00
ramox81andClaude Opus 5.5 907e501765 PDFSHXTEXT: recognise SHX text geometry as MText
Adds PDFSHXTEXT with the PDF Text Recognition Settings dialog, its
command-line form, the PDFSHXLAYER / PDFSHXBESTFONT / PDFSHXTEXTSETTINGS
variables and the profile settings they are kept in.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:40:19 +03:00
Hakan SevenandClaude Opus 5.5 1f99338018 fix(open): the cursor shows over the opening progress card
The viewport hides the system cursor for its crosshair, and the progress
card's backdrop claimed no cursor of its own, so while a drawing opened
the pointer vanished over the viewport and Cancel could not be aimed at.
The backdrop now shows the arrow. (#1727)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:35:21 +03:00
ramox81andClaude Opus 5.5 f29f386148 import: IMPORT window and DGNIMPORT converting DGN models to drawing objects
The DGN V7/V8 readers expose each element (level, symbology, geometry,
complex chains, text nodes, shared cells). DGNIMPORT / -DGNIMPORT convert a
model with the Standard mapping into a new drawing; IMPORT opens the
Import File window and routes PDF and DGN files to their importers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:09:12 +03:00
ramox81andClaude Opus 5.5 4e4dc86908 TXT2MTXT: combine text into MText, with its settings dialog
TEXT and MTEXT objects are merged into one MTEXT (top-down or in
selection order, word-wrapped or one paragraph per object, with the
original pitch kept as line spacing) or each TEXT and MTEXT line becomes
an MTEXT of its own. The SEttings option opens the Combine Text settings
dialog; the settings persist as profile values and are exposed as the
TXT2MTXT* variables and the txt2mtxt_settings automation action.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 15:50:28 +03:00
ramox81andClaude Opus 5.5 8a87a09e30 Insert ribbon: Import panel
Import File split button (PDF Import / DGN Import / Import), Recognize
SHX Text, Recognition Settings and Combine Text; Land XML moves to the
panel slide-out and Open leaves the panel. Ribbon commands may be menu
macros (`;` answers the running command's prompt). KeyTips IF, PI, DI,
OI, PS, PT, TM; labels in every locale.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 14:53:08 +03:00
Hakan SevenandClaude Opus 5.5 aa3b667110 Follow-ups to #1803, #1805 and #1806
- Block Attribute Manager: the error band's dismiss button is the close
  icon, not a "×" glyph the web build may not have.
- Two signatures wrapped to the 100-column limit.
- MCP tool schema digest updated for the new `block_def_dialog` and
  `attman_dialog` actions.
- Measurement docs: MEASUREGEOM's Quick mode.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 14:51:47 +03:00
Hakan Seven 7de32c91c2 Merge pull request #1806 from ramox81/codex/block-attribute-manager-window
Block Attribute Manager window (BATTMAN / ATTMAN)
2026-10-15 14:51:47 +03:00
Hakan Seven cf6c50f2c0 Merge pull request #1805 from ramox81/codex/block-dialog-additions
Block Definition dialog: preview, empty-block band, open in block editor
2026-10-15 14:51:26 +03:00
Hakan Seven d358204646 Merge pull request #1804 from ramox81/codex/block-definition-ribbon
Insert ribbon: Block Definition panel split button and labels
2026-10-15 14:51:25 +03:00
Karim Jerbi 16d3fd80f8 feat(block-editor): add authoring palette UI
Add a dockable Block Editor palette with selectable Parameters, Actions,
Parameter Sets and Constraints pages, reusing shared dock controls, icons
and ribbon-style hover bubbles.

Parameters, Actions, Parameter Sets and Block Properties Table are UI
catalogs only. Their entries remain disabled; this commit does not add
parameter placement, dynamic action behavior, parameter-set authoring or
block properties table functionality.

The Constraints page connects its geometric and dimensional entries to
existing ribbon commands. It reuses their implementations and adds no new
constraint behavior.

Keep the palette specific to BEDIT and retain its placement and selected
page across closing/reopening and Test Block. Opening, closing, switching
pages and clicking disabled entries preserve the document, undo history
and any running command.

Validation: 7 palette tests, 57 dock checks and 46 ribbon checks passed
(overlapping groups); rendered pages inspected and native debug build passed.
2026-10-15 12:45:16 +01:00
Karim Jerbi c48fac7ae9 feat(block-editor): edit definition properties in the Properties panel
Add the no-selection Block section with annotation, orientation, scaling, exploding, units, description and hyperlink controls. Integrate definition edits with editor history, save checkpoints and discard, and keep staged text tied to its definition.

Persist annotation and hyperlink metadata on the block record, migrate legacy marker values on edit, and honor orientation and hyperlink descriptions during block creation. Cover native DWG/DXF roundtrips and replacement after reopening.
2026-10-15 09:45:58 +01:00
Hakan SevenandClaude Opus 5.5 19ecf78bd9 navigation: selectable mouse navigation style
Options → User Preferences → Navigation style picks which mouse
gestures pan and orbit the model view (#1480):

- CAD (default): middle button pans, Shift + middle button orbits.
- Blender: middle button orbits, Shift + middle button pans.
- CATIA: middle button pans; pressing the left button during it orbits,
  so 3D navigation needs only the mouse.

An armed orbit tool always orbits. The choice is saved with the user
settings.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 11:17:13 +03:00
ramox81andClaude Opus 5.5 367c89a2c8 Block Definition dialog: preview references, amber band
A selected block reference is previewed from its definition placed by
the reference's transform; the no-objects band is amber.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 10:49:59 +03:00
ramox81andClaude Opus 5.5 3bd828d0f5 Block Attribute Manager: one undo step per Apply
Live changes are taken back quietly before Apply, OK or Sync write the
list again, so each leaves exactly one undo step even when something
closed the open live step in between; Cancel takes them back without a
command-line notice. References keep their values through renames made
live.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 10:34:58 +03:00
ramox81andClaude Opus 5.5 4726c775bf Block Attribute Manager window (BATTMAN / ATTMAN)
BATTMAN and ATTMAN open a manager for the attribute definitions of one
attributed block: block chips with reference counts and a pick button,
a table whose columns are chosen with chips, move up/down, remove, and
an edit card (Attribute / Text / Properties) for the selected row. Apply,
OK and Sync write the list back to the block definition and, when asked,
rebuild the existing references keeping values through tag renames;
each is one undo step. Live changes are taken back on Cancel. Automation
gains attman_dialog.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 10:10:54 +03:00
ramox81andClaude Opus 5.5 d69a5f0ac4 Block Definition dialog: preview, empty-block band, open in editor
The name card draws the selected objects, or the existing definition the
name picks. OK with no objects shows an in-window band offering to select
objects or to define an empty block. A switch opens the new block in the
block editor once it is defined; it is remembered with the other dialog
choices. Automation gains block_def_dialog.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 09:50:35 +03:00
ramox81andClaude Opus 5.5 5cd87ac24b Insert ribbon: Block Definition panel split button and labels
The Block Definition panel's Create Block is a split button listing
Create Block and Write Block; its face runs the last one chosen. The
slide-out lists Set Base Point and Synchronize with their labels, and
the large buttons read Manage Attributes and Block Editor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 09:48:09 +03:00