5150 Commits
Author SHA1 Message Date
1b-agent 62babcb71e [ADD] OneCAD Draft Odoo integration: Rust odoo_bridge (File>Open via Documents explorer, PollWebControl drain), web/odoo glue trio (save air-gap via openCadStudioSaveFile hook, deep-link via ocs_web_drop_file), CustomEvent web-sys features, BUILD-WASM.md build guide; sandbox-constrained opt-level=0 note in release profile 2026-10-19 00:04:16 +00:00
Z User 193f2ae9ab [IMP] OneBSpace rebrand of OpenCADStudio -> OneCAD Draft (wordmark, about, crash banner, 23 locales; strip SW/manifest; air-gap: update check, donations, discussions, external help links) 2026-10-18 21:25:27 +00:00
Karim Jerbi c9e763006e fix(block-editor): clear authoring selection on blank pick 2026-10-18 19:57:22 +01:00
Karim Jerbi 9d2f4e592a fix(bpt): compare rotation rows across angle wrap 2026-10-18 19:56:01 +01:00
Karim Jerbi f74e1e8bd3 fix(block-editor): preserve legacy basepoint preview 2026-10-18 19:54:14 +01:00
Karim Jerbi 80366d411f feat(block-editor): use gray viewport with blue grid 2026-10-18 19:49:38 +01:00
Karim Jerbi 29d903d5d2 feat(ui): render BPT popup and authoring selection state 2026-10-18 19:07:20 +01:00
Karim Jerbi 286bdf6426 fix(block-editor): manage parameter and basepoint graph items 2026-10-18 19:07:10 +01:00
Karim Jerbi 4fdf357a7e fix(block-editor): edit and preview authoring parameters 2026-10-18 19:07:06 +01:00
Karim Jerbi 2797b5b9e1 feat(bpt): add reference-side row selection 2026-10-18 19:06:36 +01:00
Karim Jerbi d3e64800f6 feat(bpt): author native table grips and must-match 2026-10-18 19:05:17 +01:00
github-actions[bot] b6fbac39ff Release v2026.42 v2026.42 2026-10-18 15:38:19 +00:00
Karim Jerbi b97e67b533 refactor(ui): finish dialog form helper adoption 2026-10-18 12:56:33 +01:00
Karim Jerbi c80a1d1703 refactor(layer-state-manager): reuse shared form scaffolding 2026-10-18 12:47:02 +01:00
Karim Jerbi 5ac8cc7c03 refactor(ui): finish modal and property cleanup 2026-10-18 12:40:47 +01:00
Karim Jerbi cc947e77d3 refactor(modal): share duplicate row analysis 2026-10-18 12:27:43 +01:00
Karim Jerbi b89689cd03 refactor(statusbar): bundle view inputs 2026-10-18 12:25:29 +01:00
Karim Jerbi f0479a5fc6 perf(ribbon): build only selected density after measuring 2026-10-18 11:46:11 +01:00
Karim Jerbi 140303217f perf(ribbon): cache natural panel measurements 2026-10-18 11:25:39 +01:00
Karim Jerbi 42ba7f12a0 fix(form): unify style manager field styling 2026-10-18 11:03:54 +01:00
Karim Jerbi ddbfb8f72b fix(command_line): preserve argument casing 2026-10-18 10:54:24 +01:00
Karim Jerbi 43bdd18061 fix(style): block edits to xref-dependent dimstyles 2026-10-18 10:40:14 +01:00
Karim Jerbi c0baeda6a6 fix(pointstyle): stage dialog edits until accepted
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
2026-10-18 09:21:43 +01:00
Karim Jerbi 248c9aec7b fix(plotstyle): validate and stage table edits
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
2026-10-18 09:08:08 +01:00
Karim Jerbi 8db77b2398 fix(blocks): give the Polar Stretch palette row its own widget id
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.
2026-10-18 08:52:48 +01:00
Karim Jerbi a1de7e4ecd feat(blocks): author Block Properties Table from the block editor
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.
2026-10-18 08:11:41 +01:00
Karim Jerbi 2b0c1a6b58 Cargo: codec 5d4f11a, kernel a60f18f, graph d9f2aee 2026-10-18 06:17:35 +01:00
Hakan SevenandClaude Opus 5.5 d389aaa75c Cargo: kernel 6f986ae, graph 5f217e4
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>
2026-10-18 06:11:17 +03:00
Hakan SevenandClaude Opus 5.5 3b13fa5b64 Build: follow the codec's Block Properties Table types
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>
2026-10-18 06:11:17 +03:00
Karim Jerbi 0d625bbe56 feat: pin Block Properties Table dependency chain
Synchronize codec, kernel and graph revisions so BPT data types remain unified across the workspace.
2026-10-18 00:51:04 +01:00
Karim Jerbi 5c931e926b feat: evaluate polar Lookup angle inputs
Map UpdatedAngle columns to polar parameter endpoints and verify row-driven geometry materialization.
2026-10-18 00:13:33 +01:00
Karim Jerbi 68f98ef720 feat: evaluate Lookup choices in Test Block
Verify disposable reference geometry follows selected table rows while the editor definition remains unchanged.
2026-10-18 00:05:43 +01:00
Karim Jerbi 09cb28e5b0 feat: validate reverse Lookup inputs
Restrict geometry updates to finite UpdatedDistance columns and reject unsupported mappings atomically.
2026-10-17 23:59:32 +01:00
Karim Jerbi 86c0e05878 feat: apply Lookup rows to block references
Expose writable Lookup outputs as reference choices and materialize each selected row's parameter geometry.
2026-10-17 23:57:58 +01:00
Karim Jerbi ba457d693c feat: verify Polar Stretch target editing
Exercise frame replacement and vertex rebinding across native DWG and DXF round trips.
2026-10-17 23:48:17 +01:00
Karim Jerbi 5a1d87c2af feat: evaluate Polar Stretch actions
Apply Polar Stretch bindings during Test Block and saved-reference evaluation, preserving source geometry.
2026-10-17 23:44:13 +01:00
Karim Jerbi bbf5afe53d feat:(BEDIT) : add Polar Stretch block action authoring and evaluation
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.
2026-10-17 23:24:20 +01:00
Hakan SevenandClaude Opus 5.5 4aa4b72d17 TRIM / EXTEND: a large cutting-edge selection no longer stalls each pick
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>
2026-10-17 22:22:19 +03:00
Hakan SevenandClaude Opus 5.5 15a9051bb2 Cargo: codec a01df94, kernel 0574444, graph 15bfbda
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>
2026-10-17 20:14:11 +03:00
Hakan SevenandClaude Opus 5.5 76afd7eabb XCLIP: a copy taken before the clip was set still finds its filter
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>
2026-10-17 20:08:47 +03:00
Hakan SevenandClaude Opus 5.5 4158fda45c NEW: open the template picker in the default template's folder
Refs #1836

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:03:15 +03:00
Hakan SevenandClaude Opus 5.5 0a968a0509 REPORT: keep the description from turning into a heading
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>
2026-10-17 20:03:15 +03:00
Hakan SevenandClaude Opus 5.5 629cdd2834 Text: TrueType fonts in the Fonts folder resolve like installed ones
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>
2026-10-17 20:03:15 +03:00
Hakan SevenandClaude Opus 5.5 6ef399d83b ARC: a number typed at the end point is the arc length
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>
2026-10-17 20:03:14 +03:00
Hakan SevenandClaude Opus 5.5 3a3d2e4a84 Viewport block caches no longer scan every object per entity
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>
2026-10-17 19:46:43 +03:00
Hakan SevenandClaude Opus 5.5 5f5b64ef70 Properties: a dynamic block's visibility state as a dropdown
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>
2026-10-17 19:21:59 +03:00
Hakan SevenandClaude Opus 5.5 20fb6a66b0 explode test: describe the body transform without naming a vendor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 19:21:59 +03:00
sclMAX 758ab28636 feat(explode): support exploding ACIS and wire Region entities 2026-10-17 19:21:59 +03:00
Karim Jerbi 26071f2021 feat(blocks): implement native Array action authoring and dynamic evaluation
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.
2026-10-17 12:49:51 +01:00
Karim Jerbi 5a6a7fab93 feat(blocks): synchronize definition geometry changes to evaluated references
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.
2026-10-17 11:35:26 +01:00