Commit Graph
2349 Commits
Author SHA1 Message Date
Sebastian 2e29f6c59e fix(tests): repair solid_model tri_count helper after upstream merge
mesh_from_solid was removed in the upstream merge; use tessellation(body).mesh.triangles directly.
2026-08-24 19:01:19 +02:00
Sebastian 3d35919656 feat(plugin): gate marketplace and load on acadrust source
- Add host_acadrust_source and source-hash comparison helpers to ocs_plugin_api.

- Track acadrust_source and acadrust_declared in ExternalPlugin/ReleaseInfo.

- Apply repo-level policy: if any release in a repo declares acadrust_source, undeclared v4+ releases from that repo are incompatible.

- Preserve API v2/v3 backwards compatibility: legacy undeclared releases stay installable.

- Update Plugin Manager UI to only offer compatible releases and show 'acadrust mismatch' status.

- Drop acadrust_version from gate logic; only acadrust_source is required.
2026-08-24 19:01:06 +02:00
Hakan Seven 1fb770fb15 Merge pull request #865 from schoeller/panel-xdata
feat(properties): show XDATA records in Properties panel
2026-08-24 16:09:31 +03:00
Hakan Seven 8bceb3ecd3 fix(properties): preserve XDATA details 2026-08-24 16:09:03 +03:00
Karim Jerbi 7215faae44 feat(properties): make inherited properties editable, align dropdowns, and switch transparency to EditChoice
Enable in-place editing of inherited properties in the Properties panel:
- Transparency: Switch to PropValue::EditChoice with ByLayer and ByBlock presets to allow direct typing of any numeric percentage value (0..90%) without combo_box autocomplete interference.
- Select-all-on-click: Integrate EditChoice text inputs into build_field_key_map with dedicated widget IDs, preserving click-to-select-all across editable fields.
- Material: Provide bounded preset choices (ByLayer, ByBlock, Global, and active custom material) to avoid scanning large drawing dictionaries.
- Plot style: Implement mode-aware behavior with interactive Choice in STB mode and ReadOnlyWithTooltip in CTB mode.
- Read-only tooltips: Introduce PropValue::ReadOnlyWithTooltip to provide contextual explanations for locked fields while preserving mouse text selection and clipboard copying.
- Dropdown alignment & unified borders: Fix EditChoice internal input/caret background clipping so the container's 1px neutral/active border surrounds the entire control identically to Lineweight and text inputs.
- Document defaults & aggregation: Synchronize document header defaults when editing with No selection, and aggregate heterogeneous multi-selections (*VARIES*).
2026-08-23 23:20:34 +01:00
Hakan Seven 7794736271 fix(model): repair solid selection flows 2026-08-23 23:44:03 +03:00
Hakan Seven 06cd0ec6a9 feat(model): add exact solid modelling tools 2026-08-23 22:53:31 +03:00
Sebastian 86a29b4b97 feat(properties): show XDATA records in Properties panel 2026-08-23 21:27:30 +02:00
Karim Jerbi fb2ea1e831 test(draworder): large-drawing latency benchmark 2026-08-23 18:56:05 +01:00
Karim Jerbi 7c14c31f25 fix(draworder): distinct ordered sort keys for multi-select and send-to-back groups 2026-08-23 18:56:05 +01:00
Karim Jerbi 236b7756f8 feat(draworder): HATCHTOBACK command and interactive DRAWORDER workflows
Implement the AutoCAD compatible HATCHTOBACK (HB) command and enhance the interactive DRAWORDER command pipeline with comprehensive verb selection and viewport entity picking.

Key implementations and architectural details:

1. HATCHTOBACK command execution
   * Isolates entities belonging to the active layout block record or global space.
   * Filters out entities residing on locked layers using an efficient hash set lookup.
   * Records targeted delta undo operations on SortEntitiesTable objects (~100 bytes) rather than snapshotting full document structures.
   * Performs granular draw depth cache invalidation via Scene::invalidate_draw_depth, preserving existing geometry tessellations and spatial indices.
   * Emits localized user notifications when no qualifying hatch entities are found.

2. Interactive DrawOrderCommand state machine
   * Supports preselected entities as well as interactive on demand selection gathering.
   * Implements subverb selection supporting single character shortcuts (A for Above, U for Under, F for Front, B for Back) and case insensitive keyword parsing.
   * Enables interactive reference object picking directly in the viewport via needs_entity_pick and on_entity_pick callbacks.
   * Supports hexadecimal handle specification directly from the command line interface.

3. Ecosystem and system integration
   * Bumps DEFAULT_ALIASES_VERSION from 2 to 3 to register the HB alias while preserving existing user overrides.
   * Integrates HATCHTOBACK and HB into dynamic autocomplete registries.
   * Adds localized message strings across all 20 Fluent translation catalogs.
   * Corrects hatch boundary serialization flags to ensure outermost boundary rings consistently carry the external attribute.
2026-08-23 18:56:01 +01:00
Hakan Seven 44a40eda0b fix(model): restore saved solid booleans
Reload exact B-reps from solid history or ACIS before model operations and pin the closed-cut kernel fix.
2026-08-23 19:35:48 +03:00
Hakan Seven e94cbedaa2 fix(save): preserve 3D view and thumbnails
Persist camera, render state, and solid fallback geometry across saves. Generate previews from a clean live viewport and refresh recent-file thumbnails immediately.
2026-08-23 17:59:12 +03:00
Hakan Seven c4515cbbc1 fix(save): support autosave recovery files 2026-08-23 14:19:05 +03:00
Hakan Seven 73ba2b92cc fix(view): preserve rotated orientation 2026-08-23 14:19:01 +03:00
Hakan Seven 682e16210f fix(insert): honor preset attributes
Refs #853
2026-08-23 13:49:18 +03:00
Hakan Seven 94f5971fdb docs(ipc): clarify polled response reads 2026-08-23 13:23:26 +03:00
Hakan Seven 77a834800c Merge pull request #862 from schoeller/main
request_with_poll TCP desync fix
2026-08-23 13:21:36 +03:00
Sebastian a67affcb93 fix(ipc): preserve stream shutdown on interrupt during polled reads 2026-08-23 10:46:27 +02:00
Sebastian 4fd94d324a fix(ipc): read response byte-by-byte in request_with_poll to avoid TCP desync 2026-08-23 10:41:03 +02:00
Hakan Seven 52432af928 build(deps): align codec and kernel revisions 2026-08-23 01:45:29 +03:00
Hakan Seven d133fcb42e Merge remote-tracking branch 'origin/main' 2026-08-23 00:31:08 +03:00
Hakan Seven 343b6cda7d feat(mline): align creation and editing 2026-08-23 00:30:41 +03:00
gianlucafiore 43c150199e Merge pull request #861 from gianlucafiore/fix/ltscale-current-value
fix(ltscale): show current value before prompt
2026-08-22 17:24:48 -03:00
gianlucafiore 6ef5d66d9e fix(ltscale): show current value before prompt 2026-08-22 17:14:22 -03:00
Hakan Seven d38f4cbc28 Merge pull request #859 from ramox81/codex/align-rectangle-behavior
Align rectangle command and property behavior
2026-08-22 23:04:02 +03:00
Hakan Seven e74d5d78fc fix(rect): merge current main
Preserve both Point and Rectangle property layouts where the two pull requests changed the same section.
2026-08-22 23:03:26 +03:00
Hakan Seven 339d9afcfe Merge pull request #857 from ramox81/codex/align-point-behavior
Align point command, properties, and display behavior
2026-08-22 22:58:42 +03:00
Hakan Seven 27cae9467a fix(rect): harden rectangle behavior
Reject invalid trim geometry instead of silently changing dimensions.\nRegister XData application IDs so rectangle metadata survives saves.
2026-08-22 22:55:36 +03:00
Hakan Seven 7293bec1b9 fix(point): preserve relative marker sizing
Keep rendering, picking, block transforms, and plotted output on the
same viewport-relative PDSIZE geometry without overloading wire width
fields.
2026-08-22 22:22:01 +03:00
ramox81 fc047b3b38 Add multiline editing workflows 2026-08-22 20:20:35 +03:00
ramox81 2263168a2a Complete multiline command and properties behavior 2026-08-22 20:20:34 +03:00
ramox81 8f3ba6dd40 Use rebuilt multiline geometry core 2026-08-22 20:20:34 +03:00
ramox81 8dc9803c02 Align rectangle property data 2026-08-22 19:26:47 +03:00
ramox81 be40b76922 Complete rectangle command behavior 2026-08-22 19:26:46 +03:00
ramox81 c5fe70627a Honor point display geometry and sizing 2026-08-22 17:18:30 +03:00
ramox81 ba9f36adb2 Align point property layout 2026-08-22 17:18:30 +03:00
ramox81 ac99942519 Align single and continuous point commands 2026-08-22 17:18:29 +03:00
Hakan Seven 7aa19f6869 docs: update workspace screenshot 2026-08-22 15:51:15 +03:00
Hakan Seven e9a3a357ee docs: update modeling screenshot 2026-08-22 15:47:52 +03:00
Hakan Seven e5b84ab8de fix(plot): honor wipeout draw order 2026-08-22 15:33:43 +03:00
Hakan Seven cfbf3233be docs: add Bulgarian README 2026-08-22 13:17:00 +03:00
Hakan Seven 0c49403186 fix(web): preserve image aspect ratio 2026-08-22 11:17:56 +03:00
Hakan Seven f5de75da6a fix(web): prevent image overflow 2026-08-22 10:44:35 +03:00
Hakan Seven 7e5b218dd7 fix(web): stack landing visuals 2026-08-22 10:12:25 +03:00
Hakan Seven c465bcf624 feat(web): add SEO landing page 2026-08-22 09:33:38 +03:00
Hakan Seven c22f6cde60 fix(trim): preserve source handle in fence pass
Temporary fence pieces used a sentinel handle, so the source spline was included as its own cutting boundary and kernel intersection recursed indefinitely.

Refs #830
2026-08-22 01:11:37 +03:00
Hakan Seven ab71c2956b fix(dwg): integrate AC1015 save fix
Refs #828
2026-08-22 00:15:48 +03:00
Hakan Seven d9aead3fbc Merge pull request #856 from ramox81/codex/align-circle-behavior 2026-08-21 23:29:57 +03:00
Hakan Seven a87ca09fa4 Merge pull request #854 from ramox81/codex/align-arc-behavior 2026-08-21 21:41:24 +03:00