Hi,
I will try to answer your questions to the best of my abilities.
1) With Mach4 on my development PC, I have the motion control (ESS) setup, but no ESS actually connected. When I fire up Mach4 I can decline to have the ESS connected and yet Mach4 will load
and display. Then I can write scripts or try various edits as I please. With MachPro however I have the ESS as motion controller but if the motion control is not actually connected and working MachPro
refuses to load and run, and therefore I cannot write scripts or otherwise experiment. It seems that in order to experiment with MachPro I not only have to nominate the motion control, but it has to be present
in order to load and display? This is turn requires I physically dig the ESS out of my machine just to get my new PC/MachPro setup to run. Is this correct?
This is dependent on the motion controller. The popup that you have for ESS will force MachPro to abort the startup process. For testing and configuration, I would recommend the SIM motion controller until you're ready to connect the ESS.
2) 99% of my existing Mach4 experience, and tool paths are three axis, but I do have a small number of four and five axis paths as well. As a consequence I have selected wx6.set, or rather
a personalised copy of wx6.set as my screen set. That screen set has a few personalised tweaks to match my machine.
The visible axis are purely dependent on the axis you have enabled. The more you have enabled, the more DRO's will populate on the GUI. No dev time should be required to show additional axis on your main page.
OK, I tried copying my current Mach4Hobby screen set (Mywx6Copy.set) into the screens folder of MachPro.
In MachPro's Veiw tab I can see and load the imported screen set, and the screen loads with errors, namely a lot of Lua scripts are missing.
The screen does load, and it looks to be identical to that same veiw in Mach4Hobby....BUT......many of the buttons and functions are greyed out,
so the screen set is not usable as is.
The Mach4 screens have a lot of dependencies that have been removed for MachPro. If you were really wanting to go back to the Mach4 screenset, you will need to make sure you have the correct modules in your modules folder to make the screen work properly.
I seem to recall that there was something like an Export function in Mach4 that allowed you to export not only the screen set but also the Lua code snippets
that made it work, but do you think I can find it! If anyone can remember how that is done, I'd appreciate a reminder.
This would be under Help→Support→ Package current profile. This however would not include all of the required dependencies of your screen, This will only move over your PMC, and everything directly in side of your profile folder.
First thing that happened is that MachPro complained and errored out that the machine has violated SoftLimits. I tried turning SoftLimits off and still could not clear the error warning
and therefore could not get the code to run. This rather suggests that SoftLimits MUST be enabled and set up otherwise you cannot run any code? Does this sound correct?
We do push soft limits for safety. If you're running into troubles with soft limits, I would recommend going into your configure → Control page and set your soft limits to -9999 - 9999. Especially for testing.
This brings me to the fact that I cannot manually jog. In Mach4Hobby there was a jog window with the familiar X+, X-, Y+ etc buttons. Pressing said buttons caused the machine to jog.
In that same window you could set jog speed, jog increment, jog mode (absolute/velocity) etc........but there is no such screen or window that I can find in MachPro standard three axis screen set.
Surely it must be possible to jog in MachPro from the screen or keyboard?
What version are you running? I believe current versions have the onscreen keyboard selected by default. If it is not there, you can right click on the right side of the screen, click select configure Dashboards, make sure your Rows is configured to be greater than one, and in the widgets dropdown, select "Jogging". This should give you onscreen jogging. When it is up, you can configure it by right clicking on the widget itself, selecting Configure Widget, and find the best configuration that suits you.
Here is some documentation on our dashboards:
https://support.machmotion.com/books/cnc-software/page/machpro-widgets-dashboard-commands-and-function-buttonsI thought then.......'I know, I'll read the manual'......always a last resort, but guess what the manual is the Mach4 manual, it has nothing about the new MachPro screen set.
WTF?
MachPro is a new version of otherwise familiar software, but the manual describes the PREVIOUS version........not much f******ing help!.
A lot of the core of Mach is the same as it was built off of the bones of Mach4, however all of our MachPro documentation is located here:
https://support.machmotion.com/books/cnc-software/chapter/machpro-26-cnc-software-stackAs far as I can tell ALL the documentation that is included IS the same documentation from Mach4. In the sense that MachPro is an evolution of Mach4 that's OK, but what about documentation
describing those changes that occur in MachPro???
We are trying our best to get out MachPro relevant documentation. We have a team dedicated to making this documentation and to get it out. It is approximately 10 years of constant development and changes added on top of the Mach4 framework.
I have built a manual wired jog pendant and have been using it for several years on my Mach4Hobby machine. It is very much how I touch off and otherwise set the machine up. Each of the wires is hooked
via my breakout board/ESS combo to input signals to Mach4. Each Mach input has an entry in the Signal Library table, and each of those entries calls scripts in the ScreenLoad script that enact
the jogging. I presume there must be a similar functionality in MachPro.......but where is it? Where is the documentation describing it?
We have a preferred method of handling custom scripts, as of right now, if you were to edit the screen load script, if you were to update mach in the future, your script will be blown out of the water.
Recommended custom development path:
- Go to \Profiles\{Your Profile Name}\Macros\Scripts
- Find UserGUIModuleDefault.mcs
- Make a copy of UserGUIModuleDefault.mcs
- Remove "Default - Copy" from the name of the file. This should leave you with UserGUIModule.mcs
- Open this file up in your code editor of choice - Could be ZeroBrane if you desire.
- For the screen load script, uncomment function UserGUIModule.UserScreenLoadScript() and add your custom functionality here.
If you had any other logic, like a PLC script, you could also do function UserGUIModule.UserScreenUnLoadScript()
Other helpful tools will be user commands as well. Lets say you have a button you want to add to the screen, in the same file, you can write your function with the custom logic, then you can use the following functions to make your buttons:
function UserGUIModule.CreateUserCommands()
-- w.CreateCommandActionOption("Example", function(from_opr_panel) w.SetSignalState(mc.OSIG_OUTPUT0, true) end)
-- w.CreateCommandFeedbackOption("Example", function() return w.GetSignalState(mc.OSIG_OUTPUT0) end)
-- w.CreateSimpleCommand("Example")
endCreateSimpleCommand will add the button as a selectable option on your dashboard, you just give it a string as a recognizable name you can select, this will also tie in your logic to your button name.
CreateCommandActionOption will apply the "Action" to your button. The first Arguement is the button string you put in "CreateSimpleCommand". The second arguement is a list of your logic or functions. I recommend leaving function(from_opr_panel) but any function listed out after is the list of functions that will be ran after the button is selected. Lastly, you will need to put "end" at the end since this second arguement is like stating
function(from_opr_panel)
YourCustomFunctionHere()
endLastly we have CreateCommandFeedbackOption. This is looking to return a Boolean value, usually used for more advanced logic. Once again it will be feedback or button name in a string format for the first argument, and the function calls for the second argument.
Let me know if you have any issues or questions and I will try to help when available.