Skip to content

Commit 5a2cce7

Browse files
3D Picking & Stability
1 parent 6aed51a commit 5a2cce7

27 files changed

Lines changed: 4845 additions & 4307 deletions

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 2.3.0 - 2026-10-14
4+
5+
- Unify flat/3D picking with rendered segment geometry and playback visibility. Preserve keyboard context menus, isolate Measure from picking, cancel mouse gestures on focus loss and validate rotary drafts before applying unrelated Options changes. Update the capability comparison and record the stabilization audit.
6+
7+
- Add depth-aware milling 3D toolpath picking through Shift+left-click, preserving the selected execution occurrence when synchronizing the editor and playback slider. Add the optional Cimco Like Picking mode in General: left-click selects, right-button dragging pans and a right-click without dragging opens the context menu. Keep the option off by default and retain turning controls. Group General controls by type with all checkboxes below combo boxes and numeric fields.
8+
39
## 2.2.3 - 2026-10-14
410

511
- Add optional paired Min/Max angular travel limits to user rotary profiles and their Options editor. Warn on changed axes outside the inclusive range without stopping execution, blocking export, wrapping angles or altering TWP/TCP branch selection. Preserve limits in execution snapshots and fingerprints; leave all installed profiles unrestricted.

‎FAQ.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,9 @@ Playback tracks execution occurrence and source ownership separately.
18171817

18181818
### How do I locate a plotted move in the editor?
18191819

1820-
Use Shift+Click near the trajectory. The application selects the owning source block and moves the logical-motion slider to the corresponding motion.
1820+
Use Shift+left-click near a trajectory line or arc, including in the milling 3D view. The application selects the owning source block and moves the playback slider to the corresponding executed movement. Overlapping 3D segments are selected by camera depth; hidden rapid moves are excluded.
1821+
1822+
**Options → General → Cimco Like Picking** is off by default. Enable it to select with a left-click and pan by dragging the right mouse button in milling views. A right-click without dragging opens the context menu; dragging does not. With the option off, left-button dragging pans and Shift+left-click selects. Middle-button rotation and wheel zoom remain available. The setting takes effect on OK; Cancel discards the change. Turning controls are unchanged.
18211823

18221824
### Does automatic refresh move the editor caret?
18231825

‎FAQ_RU.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1820,7 +1820,9 @@ Top, Front и Left — ортогональные виды. Обычный 3D-в
18201820

18211821
### Как найти отображённое движение в редакторе?
18221822

1823-
Используйте Shift+Click рядом с траекторией. Приложение выбирает соответствующий исходный блок и перемещает ползунок к нужному движению.
1823+
Используйте Shift+ЛКМ рядом с линией или дугой траектории, в том числе во фрезерном 3D-виде. Приложение выбирает исходный кадр и перемещает ползунок к соответствующему исполненному движению. При наложении сегментов в 3D учитывается глубина относительно камеры; скрытые ускоренные перемещения не выбираются.
1824+
1825+
**Options → General → Cimco Like Picking** по умолчанию выключен. Включите его для выбора обычным кликом ЛКМ и перемещения сцены перетаскиванием ПКМ во фрезерных видах. Клик ПКМ без перетаскивания открывает контекстное меню; после перетаскивания меню не появляется. При выключенной настройке перетаскивание ЛКМ перемещает сцену, Shift+ЛКМ выбирает движение. Вращение средней кнопкой и масштабирование колёсиком сохраняются. Настройка применяется по OK, Отмена отбрасывает изменение. Управление токарным видом не меняется.
18241826

18251827
### Перемещает ли автоматическое обновление курсор редактора?
18261828

‎README.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
Desktop G-code editor, analyzer, backplotter and NC/DXF exporter for FANUC turning/milling and SINUMERIK 840D milling (native and ISO-M), including supported native 3+2 and continuous five-axis CAM toolpaths.
44

5-
**New in 2.0.0: [3D milling stock removal on the GPU](#3d-milling-stock-removal).** Follow the remaining material through a three-axis program, inspect the machined surface and save the current stock as STL. Turning stock removal remains available separately.
5+
**New in 2.3.0: 3D toolpath picking and optional Cimco Like Picking controls.** Click a milling trajectory line or arc to locate its executed movement in the editor and playback slider.
6+
7+
The default controls remain **Shift+left-click to select** and **left-button dragging to pan**. Enable **Options → General → Cimco Like Picking** for **left-click to select** and **right-button dragging to pan**. A right-click without dragging opens the context menu; dragging does not. Middle-button rotation and wheel zoom are available in both modes. The option is off by default, applies on OK and affects milling views; turning controls stay the same.
8+
9+
[3D milling stock removal on the GPU](#3d-milling-stock-removal) follows the remaining material through a three-axis program, lets you inspect the machined surface and saves the current stock as STL. Turning stock removal remains available separately.
610

711
Checked CAM examples include programs generated in Autodesk Fusion 360 and Siemens NX 2312 with SINUMERIK 840D and FANUC postprocessors. Coverage follows the supported commands and configured kinematics documented below.
812

‎ROADMAP.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Current direction
44

5-
Current development baseline: **2.2.3 extended**, **not released**. Validation continues for stock simulation and the rotary profile workflow. Completed features are recorded in CHANGELOG; the remaining rotary geometry extensions are listed at the end of this roadmap.
5+
Current development baseline: **2.3.0**, **not released**. Validation continues for stock simulation and the rotary profile workflow. Completed features are recorded in CHANGELOG; the remaining rotary geometry extensions are listed at the end of this roadmap.
66

77
The 1.9.x stabilization phase is complete; its delivered changes are recorded under versions 1.9.5–1.9.8 in [CHANGELOG](CHANGELOG.md). This roadmap tracks current validation and future work rather than repeating completed stabilization tasks.
88

‎app/main_window.py‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,12 @@ def __init__(self):
9797
self.ui.setupUi(self)
9898
self._configure_runtime_ui()
9999
self._configure_playback_speed_slider()
100-
self._plot_navigation = PlotNavigation(self.ui.graphicsView, self._plot_camera_changed, self._pick_trace_at)
100+
self._plot_navigation = PlotNavigation(
101+
self.ui.graphicsView,
102+
self._plot_camera_changed,
103+
self._pick_trace_at,
104+
cimco_like=lambda: getattr(self, "cimcoLikePicking", False) and not self.latheMode,
105+
)
101106
self.ui.graphicsView.installEventFilter(self._plot_navigation)
102107

103108
icon = QIcon()
@@ -169,11 +174,7 @@ def _refresh_rotary_kinematics_menu(self, catalog=None):
169174
key=lambda item: item[0].casefold(),
170175
),
171176
):
172-
text = (
173-
QCoreApplication.translate("MainWindow", "None")
174-
if profile_id is None
175-
else profile.name
176-
)
177+
text = QCoreApplication.translate("MainWindow", "None") if profile_id is None else profile.name
177178
action = menu.addAction(text)
178179
action.setCheckable(True)
179180
action.setChecked(profile_id == self.rotaryKinematics)

0 commit comments

Comments
 (0)