Commit Graph
5049 Commits
Author SHA1 Message Date
Hakan Seven fa7bb9de12 Merge pull request #1841 from ramox81/codex/pdfimport-followups
PDFIMPORT: reference coordinate precision, unreadable file and page messages, picker automation
2026-10-16 22:39:59 +03:00
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
Hakan SevenandClaude Opus 5.5 e5c307c8ae Cargo: codec 0dc8585, kernel d530a52, graph 7dd8cf6
Large DWG sections (over 100 MB) read back instead of opening empty, and
DXF files with very large DGN stroke patterns no longer hang the reader.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 21:54:09 +03:00
gianlucafiore 002cdd0685 chore(visual): remove temporary Extension guide markers 2026-10-16 14:07:22 -03:00
gianlucafiore de990b5a1a chore(visual): remove temporary Extension anchor logging 2026-10-16 14:07:10 -03:00
gianlucafiore 363534bb5c fix(visual): exclude Extension and intersection guides from SNAPMARKERSIZE transform 2026-10-16 13:57:47 -03:00
Karim Jerbi 677ff0e08c feat(block-editor): select and edit native parameter and action grips
Parameters and Move/Scale action markers were drawn as overlays with no selectable authoring objects. Pick their points, labels or graphics in BEDIT to display editable definition, endpoint, reference and label grips using the existing selection overlay and point-input commands. Show the selected object's coordinates in the Properties panel.

Write edits to the native parameter/grip/action records while preserving graph identities and target bindings. Maintain Rotation radii and oriented grip directions, synchronize visibility lookup data, and retain Basepoint attribute relocation with recorded entity history. Escape cancels edits or clears selection; editor undo/redo and save/discard preserve the native changes.

Validate with self-contained viewport-input and native DWG/DXF persistence regressions, all ten parameter types, action bindings, cancellation and Basepoint attribute undo. Checks: 3 focused, 323 block (6 existing opt-in ignored), 39 dock and 23 viewport tests passed; counts overlap.

Ordinary drawing-reference grips and per-instance saved action evaluation follow in the next milestone.
2026-10-16 17:44:09 +01:00
gianlucafiore 903501d7b6 diagnostic: show Extension base and solid guide on demand 2026-10-16 13:35:02 -03:00
gianlucafiore d96476187f diagnostic: trace Extension anchor coordinates on demand 2026-10-16 13:34:50 -03:00
gianlucafiore 6792c7265c fix(visual): anchor Extension at the acquired world endpoint projection 2026-10-16 13:16:45 -03:00
gianlucafiore 3f056ecd9d fix(osnap): offset Extension guide origins into canvas coordinates 2026-10-16 13:13:14 -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
gianlucafiore e5e08a5a12 fix(visual): project acquired Extension rays with a stable screen baseline 2026-10-16 11:45:40 -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
gianlucafiore 54fb20d343 fix(visual): anchor Extension and OTRACK guides to acquired ray direction 2026-10-16 11:13:03 -03:00
ramox81andClaude Opus 5.5 dae01bdb14 fix(pdfimport): reference geometry precision, file and page messages, picker automation
- The page transform is read as 16.16 fixed point held in single precision
  and each user-space coordinate as a single-precision value kept to six
  decimals, so imported coordinates match the reference to the last digit.
- Paths wholly outside the page (crop box) or the current clip are left out.
- The page's /UserUnit scales the import.
- Unreadable files (no trailer, empty, not a PDF) print the "This file
  cannot be opened." block; encrypted files are asked for again silently.
- Page prompt: digits only, "There is no N in <file>." past the last page;
  page list prompt keeps asking with "Please enter page number or *.".
- Automation: pdf_import_pick (the path the next PDF picker returns) and
  pdf_import_dialog (page / on_screen / scale / rotation / ok / cancel).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:37:20 +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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GMeyMxW5iedqAKWfY7MeJB
2026-10-16 08:44:44 +00:00
Hakan SevenandClaude Opus 5.5 3c9404510f Cargo: codec cb3ce6a (acadrust through 3a3098a), kernel 40f59ca, graph a4bd351
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 10:06:14 +03: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 <noreply@anthropic.com>
2026-10-16 09:17:01 +03:00
Hakan SevenandClaude Opus 5.5 218150c76a fix(clipboard): copied XDATA keeps its application in another drawing
EED names its application by APPID handle. Copying between drawings
(paste, COPYTO, block palette insert, REFEDIT) kept the source
drawing's handles, so the saved DWG named APPIDs it did not have and
the reference program refused to open it (xdata.cpp eInvalidInput).
The copy now carries the APPID records its XDATA names, registers the
missing ones, and re-points the EED at them.

COPYTO also skipped every layer the target lacked (the check tested
the source) and filled the target with the whole linetype catalog; it
now copies the missing layers and loads only the linetypes used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 06:37:19 +03:00
Hakan SevenandClaude Opus 5.5 d909bd0787 Cargo: codec 102f04c, kernel 5811296, graph 88cdae0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 06:37:19 +03:00
gianlucafiore 88ffe21636 Merge pull request #1832 from gianlucafiore/fix/extension-otrack-polar-intersection
Fix Extension–OTRACK crossing picks and reduce accidental lasso drags
2026-10-15 23:19:24 -03:00
gianlucafiore ec44bcdd71 cleanup: remove unused generic drag threshold import 2026-10-15 20:31:16 -03:00
gianlucafiore 8ebe3fc89f fix(selection): prevent incidental mouse motion from starting lasso 2026-10-15 20:31:04 -03:00
Karim Jerbi abb84751a2 chore: pin the plugin template to the host's codec 85bb5a2
codec 85bb5a2 fixes the BLOCKVISIBILITYPARAMETER DXF defect: AcDbEvalExpr
ends after 90/98/99 when the eval has no value instead of emitting a stray
70 -9999. Readers rejected that group 70 ('Unexpected DXF group code: 70')
and discarded every visibility-bearing drawing on open.
2026-10-16 00:22:43 +01:00
gianlucafiore 0004113e0a refine(selection): allow 250ms before a small pointer drag starts 2026-10-15 20:22:09 -03:00
Karim Jerbi 1b5f7a19d8 Cargo: codec 85bb5a2, kernel c038693, graph d518926 2026-10-16 00:20:49 +01:00
Hakan SevenandClaude Opus 5.5 09ec41a5e9 packaging(homebrew): cask on v2026.41, install through a local tap (#1825)
Homebrew dropped --no-quarantine and installs casks only from a tap, so
the README's direct-URL install no longer worked, and the cask still
pointed at v0.4.8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 02:12:26 +03:00
Hakan SevenandClaude Opus 5.5 f6455b22eb fix(view): Zoom Extents and All frame a drawing placed at survey coordinates (#1829)
A block whose content is only 3D solids leaves a marker wire carrying
its insertion snap, and that point counted as drawing extent: a
georeferenced block inserted at the origin made ZOOM E frame the
origin and the model together, 860 km wide. Extents now skip those
markers; the solids count through their meshes. The marker's snap also
took the insertion point straight from the OCS, so a mirrored insert's
snap sat on the far side of the origin.

ZOOM All fitted the limits alone. In a 3D view it is now Zoom
Extents, and in plan it frames the limits together with the extents.

Instanced solids summed their rotated point and translation in f32
before meeting the eye, which cost up to half a metre at survey
coordinates; the large terms now cancel first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 02:11:16 +03:00
gianlucafiore 52e8cd1002 fix(otrack): commit Extension intersection at tracked crossing on click 2026-10-15 20:10:08 -03:00
gianlucafiore dd3b18e550 docs: clarify extension exception in OTRACK priority guards 2026-10-15 20:02:39 -03:00
gianlucafiore 6a767390dd fix(otrack): allow Extension tracking intersections while preserving point snap priority 2026-10-15 20:02:21 -03:00
Hakan SevenandClaude Opus 5.5 9a567d4f44 fix(linetype): an opened drawing keeps exactly its own linetypes (#1826)
Opening a drawing added all 50 catalog linetypes to it, so PURGE found
and removed them again after every save and reopen. Opening now only
repairs the catalog linetypes a drawing already has. The linetype
pickers (layers, properties, ribbon, attribute editor, layer states)
offer the missing catalog ones after the drawing's own, and the one
picked, or named in LINETYPE SET, is loaded on first use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:27:50 +03:00
Hakan SevenandClaude Opus 5.5 c499ce97d4 docs(plugin-template): pin the template to the host's codec 357cfed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:18:47 +03:00
Hakan Seven a62598cd63 Merge pull request #1828 from schoeller/xdata_entity_type_labels 2026-10-16 01:12:36 +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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
2026-10-16 00:42:03 +03:00
Hakan SevenandClaude Opus 5.5 091331f3bd fix(blocks): a dynamic block copied to another drawing stays dynamic (#1816)
Only the definition's entities crossed drawings: its record's object
graph (parameters, visibility states, grips) stayed behind, and a
reference showing an evaluated copy lost the link to its definition.
The clipboard now captures the graph and the dynamic definition of an
evaluated reference, and paste and the block palette's insert-from-file
recreate them on the new records, re-pointing members and element tags.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:36:59 +03:00
Hakan SevenandClaude Opus 5.5 ca408f4329 Cargo: codec 357cfed, kernel 3642105, graph c7ce31d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:36:59 +03:00
Hakan SevenandClaude Opus 5.5 c8f67ad35b fix(blocks): block previews leave out members of other visibility states (#1819)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:11:56 +03:00
Hakan SevenandClaude Opus 5.5 98cce048c7 fix(blocks): a copied dynamic reference changes state on its own (#1818)
COPY cloned the reference's AcDbRepData without its handle, owner or
representation index, and both references kept sharing one evaluated *U
block, so a state picked on either changed both. The clone now names
itself and is indexed; a state change gives a reference whose *U other
references share its own copy first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:11:56 +03:00
Karim Jerbi b947f99a87 Cargo: codec 91b0cfd, kernel f45e472, graph 7e1d46e 2026-10-15 22:04:33 +01:00
Hakan SevenandClaude Opus 5.5 d2995ecee1 fix(hatch): pick points stay fast in large drawings, and see off layers
Each picked region matched every edge of its rings against every
boundary source of the drawing, twice: with 65,000 sources a click took
over 30 seconds. Sources are now narrowed to those reaching the rings'
box first, once per hatch and once per ring: the same click takes 9 ms.

Objects on layers that are turned off (not frozen) now bound a hatch, as
in the reference. Drawings switch off the layers that close the regions
to be hatched; without them a click between columns found the outer
frame instead. (#1813)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:51:38 +03:00