Movement buttons/features managed by configuration (UI mod)
-
I'm doing some hacking around in the UI, curious if others would be interested...
Being able to change the button values in the movement panel was always an "almost" handy feature to me, particularly on larger CNC machine. Setting up a job uses coarser movements, so I set the buttons to larger numbers, but then getting in close up on something fiddly, I end up setting them to smaller measurements... which means the buttons are no longer handy for initial setting up of the job. a cycle that repeats. Not to mention that often used macros would be nice to have closer and super convenient (like a button to navigate to a fixture exactly, or over a fixture, etc).
Synopsis: multiple movement panels set to different scenarios in easy reach, totally configurable by json file.
At work, one of my favorite things to build are user interfaces that are assembled by configuration, so I wanted to get me some of that in the DWC!
Screenshot walkthrough...
Removed the title (it's pretty obvious that it's the movement panel ), and added buttons for N amount of alternate panels (it's just whatever you have configured; default, one extra, two, whatever) along with a reload button (the config is something I'm likely to tweak regularly as I please and don't want to restart the machine. If I have an idea, I can jump into the config file, add it, reload it, voila).
Here I've configured two extra panels, one for finer moves and a dedicated macro pad, as well as adding an extra row of macro buttons to the default panel (a re-configured default panel shown)...
Here is a new panel that's fixed to fine movements (button color also configurable), macro row above (macros can go anywhere, any amount of rows)...
Even a full panel of macros...
Without any config file it just works like normal...
...I originally wrote it just to make more handy buttons to get to fixtures and parking the machine before turning it off... this satisfies that and a bunch of other nice-to-haves that I was after.
Code isn't crazy sexy at the moment, but I'll tidy it up and push to a repo somewhere if people want to play with it.
_
"I want a horn here, here and here. You can never find a horn when you're mad" ~ Homer Simpson -
@thekm Looks good!
-
@deckingman thanks!
I'm clearly having too much fun with it... a few more tweaks and I have a new option for default axis movement: Buttons below with values set the value in the middle of the compass buttons, uses that value to move whatever axis.
Made this because on smaller screens (I usually use my phone to drive), the previous default buttons get stacked in a way that's not quick to use, whereas this stays tight and easy to use.
-
@thekm Is it possible for the Z to have its own value separate from the X and Y axes? My Duet runs a CNC and z travel is way smaller than X and Y. And a mistake with Z movement can cause a bit to crash into the spoilerboard or workpiece.
Great work by the way -
@thekm Now that you are getting the hang of it and having fun, how about making the panels so that they can be docked / un-docked and when un-docked, moved, resized or minimised. If you could that, then I'd be really impressed
-
@thekm said in Movement buttons/features managed by configuration (UI mod):
Code isn't crazy sexy at the moment, but I'll tidy it up and push to a repo somewhere if people want to play with it.
package as a plugin perhaps?
https://github.com/Duet3D/DuetSoftwareFramework/wiki/Third-Party-Plugins
-
@chimaeragh , yup, it would just need its own set of value setting buttons... with a tweaking of the config, it can produce the following, would this work for ya?...
-
@deckingman this is a replacement of the movement panel... if the movement panel does those things, then yes?
As most people, just scratching itches; the default movement panel was OK, but an itch to scratch to make it more handy. Not sure needing to dock panels is all that itchy for me
-
@phaedrux ...it's an update to the movement panel, without the config it literally just leaves it to its default behavior (and you can call on the default behavior also in the config).
But of course a plugin would lower the barrier to entry of trying it out I guess, I'll have a look into it.
-
@thekm Looks good to me
-
@thekm said in Movement buttons/features managed by configuration (UI mod):
................Not sure needing to dock panels is all that itchy for me
Pity. If you had 10 tools defined and/or 7 axes (as I do), you'd feel differently. The GUI with such a machine is pretty awful. Oh well......
-
@deckingman ...would you like to sponsor the effort?
The framework DWC uses itself (VueJS and Veutify) doesn't support such things out of the box, but there are window-like JS libraries out there... would take some fanagling, but it's "possible" (everything's possible, just a matter of how much code it takes)
-
@deckingman ...do a search for "BtnCmd DWC Plugin" here on the forums... looks like it might do what you're after, a pretty capable plugin if your screen is fixed.
-
-
I'll take a gander at that plug in (might have to blow the dust and cobwebs off my RPi because I run my machine in stand alone mode).
-
Unfortunately, the state pension that I'm supposed to be able to live on won't allow me to sponsor your efforts.
-
I use something called "home assistant" to run all my home automation stuff (it's another Open Source project). But if you google something like "home assistant lovelace dashboard" you'll see their awesome interface which allows users to create their own dashboards. Even a 68 year old retired mechanical engineer can quickly and easily create some pretty neat dashboard views using that. Something like that for DWC would be awesome. Or if not, something like my video editing software (Magix Vegas) which at least allows panels to be un-docked, moved around and re-sized would do. DWC is looking decidedly old and clunky IMO and hasn't change all that much since back in the days of Duet 06.
-
-
@deckingman the plugin works in standalone mode too
-
@jay_s_uk Thanks. That's good to know. I'll take a gander at it when I get time.