LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
- Becksvill
- Offline
- Elite Member
-
Less
More
- Posts: 220
- Thank you received: 113
05 Feb 2026 21:38 #342516
by Becksvill
Replied by Becksvill on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
this looks awesome
and yes i agree its massively missing in linuxcnc
i have been trying for ages to get native cam running and can't
i find on semiens and fagor controls i use the contour cycle about 90 percent of the time
everything else like facing and shamfers etc i don't use as i can just do it in the contour cycle.
and of course threading is usefull
though the built in threading cycles are not too bad for that
cheers
Andrew
and yes i agree its massively missing in linuxcnc
i have been trying for ages to get native cam running and can't
i find on semiens and fagor controls i use the contour cycle about 90 percent of the time
everything else like facing and shamfers etc i don't use as i can just do it in the contour cycle.
and of course threading is usefull
though the built in threading cycles are not too bad for that
cheers
Andrew
Please Log in or Create an account to join the conversation.
- aDm1N
-
Topic Author
- Offline
- Senior Member
-
Less
More
- Posts: 52
- Thank you received: 24
01 Mar 2026 18:20 #343694
by aDm1N
Replied by aDm1N on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
Hi all,
here is a short update on the latest changes in LatheEasyStep:
Step list loading issue fixed
In some embedded QtVCP scenarios, the operation list stayed empty after loading a single step or a full program. The operation list binding is now more robust.
Safer retract/free-travel logic (lathe-specific)
Retracts are now context-aware per operation:
simultaneous X/Z where safe
groove/keyway: retract X out of material first, then Z
drilling/threading: retract Z clear first, then X
Current tool position relative to stock/chuck is now considered.
Extended chuck / no-go safety model
The program header now supports chuck-related parameters (size, workpiece type, clamping mode, profile) with automatic no-go zone calculation.
New machine/workshop profiles
Quick presets apply typical parameter combinations automatically (e.g. chuck + clamping mode + profile).
Preview improvements
The chuck safety area is now shown in the preview as a dedicated colored zone, including a legend entry.
Save/load extended
New header fields (chuck/profile/no-go/machine profile) are now properly persisted and restored.
here is a short update on the latest changes in LatheEasyStep:
Step list loading issue fixed
In some embedded QtVCP scenarios, the operation list stayed empty after loading a single step or a full program. The operation list binding is now more robust.
Safer retract/free-travel logic (lathe-specific)
Retracts are now context-aware per operation:
simultaneous X/Z where safe
groove/keyway: retract X out of material first, then Z
drilling/threading: retract Z clear first, then X
Current tool position relative to stock/chuck is now considered.
Extended chuck / no-go safety model
The program header now supports chuck-related parameters (size, workpiece type, clamping mode, profile) with automatic no-go zone calculation.
New machine/workshop profiles
Quick presets apply typical parameter combinations automatically (e.g. chuck + clamping mode + profile).
Preview improvements
The chuck safety area is now shown in the preview as a dedicated colored zone, including a legend entry.
Save/load extended
New header fields (chuck/profile/no-go/machine profile) are now properly persisted and restored.
The following user(s) said Thank You: Surmetall
Please Log in or Create an account to join the conversation.
- aDm1N
-
Topic Author
- Offline
- Senior Member
-
Less
More
- Posts: 52
- Thank you received: 24
01 Mar 2026 20:02 - 01 Mar 2026 20:04 #343695
by aDm1N
Replied by aDm1N on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
As a bit of background on the chuck/no-go safety model:At work I requested a machine with a control that includes an integrated safety zone around the chuck (something I had seen on Heidenhain controls).
In the end, I was assigned a lathe with a Siemens control, and I’ve been very satisfied with it — it works well in practice and I can program effectively on it.However, the concept of having the chuck geometry considered in the motion/safety logic stayed in the back of my mind.
Since that idea seemed useful for safe at-the-machine programming, it eventually found its way into LatheEasyStep’s design.
In the end, I was assigned a lathe with a Siemens control, and I’ve been very satisfied with it — it works well in practice and I can program effectively on it.However, the concept of having the chuck geometry considered in the motion/safety logic stayed in the back of my mind.
Since that idea seemed useful for safe at-the-machine programming, it eventually found its way into LatheEasyStep’s design.
Last edit: 01 Mar 2026 20:04 by aDm1N.
The following user(s) said Thank You: tommylight, Surmetall
Please Log in or Create an account to join the conversation.
- aDm1N
-
Topic Author
- Offline
- Senior Member
-
Less
More
- Posts: 52
- Thank you received: 24
05 Jul 2026 12:35 #347529
by aDm1N
Replied by aDm1N on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
Hi all,
another short update on LatheEasyStep:
I continued working on the embedded QtVCP startup behavior and focused on the panel initialization path.
On my machine, the startup time with the panel embedded in LinuxCNC was reduced from about 49 seconds down to about 11 seconds.
The main work was cleaning up the widget lookup/initialization path, removing expensive startup overhead, and limiting panel-related searches strictly to the panel itself instead of doing broader lookups.
The panel is now usable again immediately after startup on my system, which is a big improvement compared to the previous state.
I will continue cleaning up the code step by step, but this was an important milestone because the panel is now much more practical to use in everyday work.
Regards
another short update on LatheEasyStep:
I continued working on the embedded QtVCP startup behavior and focused on the panel initialization path.
On my machine, the startup time with the panel embedded in LinuxCNC was reduced from about 49 seconds down to about 11 seconds.
The main work was cleaning up the widget lookup/initialization path, removing expensive startup overhead, and limiting panel-related searches strictly to the panel itself instead of doing broader lookups.
The panel is now usable again immediately after startup on my system, which is a big improvement compared to the previous state.
I will continue cleaning up the code step by step, but this was an important milestone because the panel is now much more practical to use in everyday work.
Regards
The following user(s) said Thank You: Surmetall
Please Log in or Create an account to join the conversation.
- Surmetall
-
- Offline
- Senior Member
-
Less
More
- Posts: 54
- Thank you received: 36
05 Jul 2026 13:18 #347530
by Surmetall
Replied by Surmetall on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
Thanks for the update! We'd love to see how things are looking now. Maybe you could share a short video or a screen recording someday.
all the best
tom
all the best
tom
Please Log in or Create an account to join the conversation.
- aDm1N
-
Topic Author
- Offline
- Senior Member
-
Less
More
- Posts: 52
- Thank you received: 24
09 Jul 2026 04:34 #347621
by aDm1N
Replied by aDm1N on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
Hello everyone,I wanted to give a small update on the current state of Lathe EasyStep.A lot has changed internally since my last post. While the panel may look similar at first glance, a large part of the project has been refactored and modularized. The original large Python files have been split into many smaller modules (G-code generation, preview, contour handling, persistence, tool logic, UI, etc.), making the codebase much easier to maintain and extend.At this point I consider the project to be at Version 0.7.0.Development is still ongoing, but over the last weeks the focus has been less on adding new features and more on improving the internal architecture, modularizing the code and refining the overall workflow. The goal was to build a solid foundation that will make future development easier and improve long-term maintainability.General workflowThe user interface is intentionally based on the workflow of conversational turning systems. Anyone who has worked with ShopTurn or similar conversational programming systems should feel familiar with the basic workflow.The Program tab is where all global settings are defined, for example:
- stock dimensions
- safety distances
- retract positions
- tool change and safety settings
- other program-wide parameters
- the individual Step files,
- the complete program,
- and any previously generated G-code.
- Facing (roughing, finishing or both)
- Roughing using user-defined contours
- Thread cutting
- Grooving / Parting
- Drilling with different drilling strategies
- Keyway shaping (currently experimental)
The following user(s) said Thank You: cmorley, COFHAL, MikkelRS
Please Log in or Create an account to join the conversation.
- aDm1N
-
Topic Author
- Offline
- Senior Member
-
Less
More
- Posts: 52
- Thank you received: 24
22 Aug 2026 21:28 #348924
by aDm1N
Replied by aDm1N on topic LatheEasyStep – experimental QtVCP macro for step-by-step lathe programming
Quick development update
Over the past few weeks I've mainly been working on two areas that weren't reliable yet: internal machining and automatic thread reliefs.
Fixed internal roughing: The internal roughing cycle was in some cases producing a single, way-too-coarse cut instead of properly staged passes ("not really a cutting strategy"). Found the root cause and fixed it – now it produces even, multi-pass stepping just like external turning does.
Reworked DIN 76 thread reliefs: Previously only a simple rectangular pocket was generated. Now the actual DIN 76 profile is output (30° lead-in, tangential arcs, relief bottom, shoulder radius), using real values from the DIN 76-1 table instead of estimated widths. The relief is now correctly anchored to the end of the thread (not the end of the contour), and it now also works in the middle of a longer contour, not just at the very start or end.
Safer internal approach moves: When feeding into a bore, the tool now always moves axially to the clear retract plane first and only then feeds in radially – no more diagonal rapid moves straight through the bore.
Also fixed a few real LinuxCNC crashes along the way (e.g. tool nose compensation at the inside relief corner, a "Not monotonic" error with G71/G72 when a relief is spliced into the contour).
Important: All of this is currently only on the dev branch, not yet in the stable release. Not everything has been verified with a real dry run on the machine yet, but preview and generated code now look correct for the cases tested so far. As always: feedback, test cases, and criticism are welcome.
Over the past few weeks I've mainly been working on two areas that weren't reliable yet: internal machining and automatic thread reliefs.
Fixed internal roughing: The internal roughing cycle was in some cases producing a single, way-too-coarse cut instead of properly staged passes ("not really a cutting strategy"). Found the root cause and fixed it – now it produces even, multi-pass stepping just like external turning does.
Reworked DIN 76 thread reliefs: Previously only a simple rectangular pocket was generated. Now the actual DIN 76 profile is output (30° lead-in, tangential arcs, relief bottom, shoulder radius), using real values from the DIN 76-1 table instead of estimated widths. The relief is now correctly anchored to the end of the thread (not the end of the contour), and it now also works in the middle of a longer contour, not just at the very start or end.
Safer internal approach moves: When feeding into a bore, the tool now always moves axially to the clear retract plane first and only then feeds in radially – no more diagonal rapid moves straight through the bore.
Also fixed a few real LinuxCNC crashes along the way (e.g. tool nose compensation at the inside relief corner, a "Not monotonic" error with G71/G72 when a relief is spliced into the contour).
Important: All of this is currently only on the dev branch, not yet in the stable release. Not everything has been verified with a real dry run on the machine yet, but preview and generated code now look correct for the cases tested so far. As always: feedback, test cases, and criticism are welcome.
The following user(s) said Thank You: cmorley, COFHAL
Please Log in or Create an account to join the conversation.
Moderators: cmorley
Time to create page: 0.105 seconds