Commit Graph
353 Commits
Author SHA1 Message Date
Hakan Seven d10a0cf798 Merge pull request #1301: Add associative viewport dimensions
Refresh associations after complete SpaceMouse camera updates and recognize imported paper-space owners without Layout objects. Use kernel containment, intersection, perpendicular and spline tangent solving; pin cadkernel 7ce27f2 and add regressions.
2026-09-16 09:56:33 +03:00
Hakan Seven af847ad92e Merge pull request #1299: Add Windows SpaceMouse navigation 2026-09-16 09:41:25 +03:00
Hakan Seven 1a7aad8e04 Merge pull request #1293: Fix constraint indicator visibility 2026-09-16 09:28:49 +03:00
Karim Jerbi 019422d220 feat(xref): docked External References panel with previews and translations
Docked External References panel with host row, thumbnail previews, and translated interface strings.
2026-09-15 23:56:31 +01:00
Karim Jerbi d0d946a568 feat(xref): detach, unload, reload, bind, overlay, and path operations
Detach, unload, reload preserving host layer overrides, bind, overlay, and saved-path editing, with per-tab session state and a read-only web list.
2026-09-15 23:56:31 +01:00
Karim Jerbi 42219a4b8c feat(xref): reference list with stale and orphaned status detection
Reference list rows showing stale and orphaned states with handle-based identity.
2026-09-15 23:56:31 +01:00
Karim Jerbi 37e2b50e1c feat(xref): XREF command options and guided XATTACH
XREF command with status, reload, unload, detach, path, pathtype, bind, overlay, and attach options, plus guided XATTACH with unique naming and placement prompts.
2026-09-15 23:56:31 +01:00
Christopher Overbeck 5424a19482 Track mixed paper and viewport dimension references 2026-09-15 16:00:11 -05:00
Christopher Overbeck 369e0c9fc5 Merge remote-tracking branch 'origin/main' into feat/viewport-dimensions
# Conflicts:
#	src/app/command_driver.rs
#	src/scene/mod.rs
2026-09-15 13:53:12 -05:00
Christopher Overbeck 6a63726eff Add Windows SpaceMouse navigation through 3DxWare 2026-09-15 13:20:19 -05:00
Christopher OverbeckandClaude Fable 5.1 dbdddb7dc2 feat(app): record accepted snaps per point step and guard dimension inference
Point input now keeps an `AcceptedSnap` alongside each point a command
collects: the paper point, the model point it came from, the viewport and
frame it was seen through, and the geometry identity the snap engine
attributed. Interactive picks record in the click handler, typed / dynamic /
headless points record in `feed_command`, and the list is cleared whenever a
command starts or the active space changes. Commands that don't care keep
consuming the plain paper point unchanged; PR2 reads the model point and
frame, PR3 the source.

Dimension association inference is suppressed when the dimension's points came
through a viewport. Inference matches geometry against the dimension's own
definition points in whatever space it is handed, so paper definition points
projected from a viewport would associate with unrelated paper-sheet geometry
at those coordinates, or match model geometry using paper coordinates. An
empty source list makes `attach_dimension_association` a no-op. PR3 replaces
this with real viewport-aware associations.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-15 12:27:33 -05:00
ramox81 81d6822104 Fix constraint indicator visibility 2026-09-15 17:22:31 +03:00
Hakan Seven acde01cfc3 Merge pull request #1289 from ramox81/fix/coincident-standard-command
# Conflicts:
#	src/command.rs
#	src/scene/mod.rs
#	src/scene/parametric_solve.rs
2026-09-15 15:08:35 +03:00
ramox81 ba2b371269 Complete Coincident command behavior 2026-09-15 14:00:26 +03:00
Hakan Seven c9eeb6f66e Merge pull request #1284 from ramox81/codex/autoconstrain-parity
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/app/view/mod.rs
#	src/ui/overlay.rs
2026-09-15 12:38:41 +03:00
Hakan Seven dfe8b77cca Merge PR #1280 and expose constraint value visibility 2026-09-15 11:55:05 +03:00
Hakan Seven adc8555394 Merge PR #1279 and complete parametric UI actions 2026-09-15 11:48:35 +03:00
ramox81 66be530655 Complete automatic constraint behavior 2026-09-15 11:47:28 +03:00
Hakan Seven d738ebfcc6 Standardize parametric constraints and interoperability 2026-09-15 03:19:52 +03:00
Felix RiestraandClaude Sonnet 5 0f739b459d Add bounding-box object alignment (ALIGNLEFT/TOP/etc.), ported from Mac2CAM
Six one-shot alignment commands for the current selection —
ALIGNLEFT/ALIGNHCENTER/ALIGNRIGHT/ALIGNTOP/ALIGNVCENTER/ALIGNBOTTOM —
distinct from the existing point-picking ALIGN/ALIGN3D command: each
nudges every selected object (or complete group, via new
Scene::selected_object_units) so its bounding-box edge/center lines up
with the extreme edge/center already present in the selection, closer
to a word processor's "align objects" than AutoCAD's 3-point ALIGN.

Wired as plain one-click Tool entries in the Modify extension panel,
next to the existing ALIGN entry, matching that panel's flat-list
convention (no point prompts, so no dropdown submenu needed).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-15 01:08:41 +02:00
ramox81 a35c996f9f fix(annotate): complete table and data workflows 2026-09-14 14:54:55 +03:00
ramox81 6505b27818 fix(annotate): align annotation ribbon workflows 2026-09-14 11:55:08 +03:00
Hakan Seven 7b4cef41f7 Complete parametric ribbon and constraint tools 2026-09-14 01:05:39 +03:00
PanosandClaude Opus 5 5f161bb037 Show the exact build in About, Copy Info, REPORT and --version
Builds from main reported only the release version (2026.36) even when
HEAD was hundreds of commits past the tag. build.rs now also emits
OCS_TAG_DISTANCE, OCS_COMMIT_DATE, OCS_BUILD_METADATA and
OCS_FULL_VERSION: a clean checkout of the release tag stays "2026.36",
anything else becomes "2026.36+194.gef189d77", with ".dirty" appended
for uncommitted changes and only the hash when no tag can be counted
from (shallow clone, tarball). OCS_APP_VERSION is unchanged so the
update check, donation gate, User-Agents and window title keep working.

The About dialog gains Build / Commit date / Profile cards, Copy Info,
the REPORT issue template and recovery reports carry the full version,
and `-V`/`--version` print it instead of Cargo's 2026.36.0. Release
workflows check out full history so release binaries see the tag.

Also fixes the build being marked dirty when there is no repository:
diff-index exits 128 there, not 1.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-12 16:19:40 +03:00
Karim Jerbi 58c9fcb748 perf(bench): introduce standardized 25-metric CAD and UI benchmark suite
- Add comprehensive performance benchmark harness in benches/performance_benchmarks.rs
  configured with harness = false in Cargo.toml (runs via cargo bench in --release,
  isolated from cargo test).
- Benchmark coverage across 25 distinct CAD & UI operations:
  * Entity Ingestion, GPU Wire Partitioning, Analytical & Wide/Tapered Arc Tessellation
  * 100x Zoom Navigation, Spatial InteractionIndex, Multi-mode Hit-Testing, OSnap Tracking
  * 2D Parametric Dogleg Constraint Solving, DXF Import/Export Throughput
  * UI Ribbon View Construction, Viewport Grid Projection, Grid Cache Evaluation
  * Themed SVG Icon Lookup Caching, Cold Extents AABB Calculation
  * Batch Entity Transformation, Draworder Depth Map Full/Patch, Delta-Undo Recording
- Expose internal calculation hooks with #[doc(hidden)] pub to prevent API leakage.
- Remove 644 lines of legacy, scattered ad-hoc #[test] #[ignore] benchmarks across src/.
- Add developer and regression documentation in benches/README.md.
2026-09-12 13:46:01 +01:00
Hakan Seven cf33455e93 Move parametric tools to their own ribbon tab 2026-09-11 20:58:37 +03:00
Hakan Seven db684019d9 Merge pull request #1207 from Ramox81/codex/parity-setbylayer-settings-20260911 2026-09-11 16:09:55 +03:00
Hakan Seven f0676d35dc Merge pull request #1197 from Ramox81/codex/parity-measure-20260911 2026-09-11 15:44:27 +03:00
ramox81 33429ffa4c Merge current main with measured curve markers 2026-09-11 15:23:10 +03:00
ramox81 f076db6d53 Merge current main with division marker support 2026-09-11 15:23:05 +03:00
Hakan Seven 753fa17b68 Merge pull request #1184 from Ramox81/codex/hatchedit-command-parity 2026-09-11 15:14:43 +03:00
ramox81 65161e82db Add independent layer property settings during selection 2026-09-11 15:10:51 +03:00
Hakan Seven 7d28cc5256 Merge pull request #1188 from Ramox81/pedit-enhancements 2026-09-11 14:32:32 +03:00
Hakan Seven e39906b8b7 Merge latest pull request #1187 from ramox81/codex/complete-splinedit-options
# Conflicts:
#	src/modules/draw/modify/splinedit.rs
2026-09-11 13:23:27 +03:00
Hakan Seven da34032ffc Harden spline editing and source joins 2026-09-11 13:23:00 +03:00
Hakan Seven e11796af29 Merge pull request #1199 from ramox81/codex/join-source-workflow 2026-09-11 13:02:17 +03:00
Hakan Seven 67768a3eca Merge pull request #1187 from ramox81/codex/complete-splinedit-options 2026-09-11 12:52:49 +03:00
ramox81 67f374c853 Apply and persist hatch origin command choices 2026-09-11 12:52:30 +03:00
ramox81 deb9129e91 Convert splines to bounded straight-segment polylines 2026-09-11 12:52:07 +03:00
Hakan Seven 08b184e314 Merge pull request #1186 from ramox81/codex/complete-reverse-command
# Conflicts:
#	src/entities/helix.rs
2026-09-11 12:51:29 +03:00
Hakan Seven 0d45d2f04c Merge pull request #1194 from ramox81/codex/complete-spline-fit-options 2026-09-11 12:42:56 +03:00
Hakan Seven a473d9c291 Merge pull request #1189 from ramox81/codex/complete-draworder-relative 2026-09-11 12:31:18 +03:00
Hakan Seven 50c5e18c75 Merge pull request #1181 from ramox81/codex/complete-region-support
# Conflicts:
#	src/app/commands/draw.rs
2026-09-11 12:26:53 +03:00
ramox81 e84d491f6a Preserve region coplanarity rejection diagnostics 2026-09-11 12:18:50 +03:00
Hakan Seven d99a6d5bdd Merge PR #1181: Create regions from closed profiles and connected edges 2026-09-11 12:18:43 +03:00
Hakan Seven 32952e3eda Merge PR #1179: Add tolerant OVERKILL cleanup options
# Conflicts:
#	src/app/commands/styleprops.rs
2026-09-11 12:16:24 +03:00
Hakan Seven bea874c97f Merge PR #1178: Apply SETBYLAYER choices and property masks
# Conflicts:
#	src/app/commands/styleprops.rs
2026-09-11 12:09:29 +03:00
Hakan Seven bfadf1c04e Merge PR #1177: Copy picked nested objects with placement and array options 2026-09-11 11:55:43 +03:00
ramox81 2486adbb67 Create regions on the shared plane of selected open curves 2026-09-11 11:47:41 +03:00
Hakan Seven 7886ffb973 Merge pull request #1177 from ramox81/codex/ncopy-command-parity
Copy picked nested objects with placement and array options

# Conflicts:
#	src/app/commands/blocks.rs
2026-09-11 11:41:52 +03:00