MachPro Commands, Function Buttons, and Dashboard
Commands
The system has many packaged functions called commands. These commands can perform a variety of actions, such as turning on the spindle or zeroing an axis. All commands have an action associated with them. Some actions also have a feedback associated with them, such as the 'Spindle Forward' command where the feedback is whether the spindle is currently running forward or not.
Commands and User Commands can be assigned to function buttons on the control, in order to customize the experience.
User Commands
Additionally custom commands, called User Commands, can be configured in the 'Screen Configuration' dialog. This is accessible through the 'Screen Config' button on the Service/Maintenance tab.
To make a new User Command, press the 'Add' button. Each User Command should have a unique name. To edit a User Command, select its name from the list. A searchable list of actions for the command is available in the first box. This selects the general type of action to be done. The second box, labeled 'Options', is also part of the action and must be selected.
The 'Feedback Source' and 'Feedback Target' sections are optional. They are relevant if the User Command will be assigned to a function button. Some User Commands won't have a logical feedback source. A reasonable example is for a command that turns soft limits on and off: the feedback would be if soft limits is on or off. The feedback target offers a way to do a simple forwarding of the user command state if desired.
One option for user commands are User Scripts. These are lua functions that will be executed as the command, to get the feedback state, or to forward to the target. This is a way to create completely custom functionality. They should always be done in the UserGUIModule.UserStartUpScript function. The following is an example of how to create these lua function in the UserGUIModule.
function UserGUIModule.UserStartUpScript()
local action_func = function()
local state = w.GetSignalState(mc.OSIG_OUTPUT0)
w.SetSignalState(mc.OSIG_OUTPUT0, not state)
end
w.CreateUserCommandActionOption("Toggle Output #0", action_func)
local feedback_func = function()
return w.GetSignalState(mc.OSIG_OUTPUT0)
end
w.CreateUserCommandFeedbackOption("Output #0", feedback_func)
return true, true, w.FunctionCompleted()
end
Function Buttons
The MachPro operator panels and wireless pendants have a number of function buttons on them, labelled F1, F2, etc. These buttons initially do nothing, but can have commands or user commands mapped to them. This is done through the MachMotion operator panel configuration.
Upon saving and exiting configuration, these commands will be mapped to the function buttons.
On the screen, there are five function buttons underneath the axis DROs. Instructions on how to configure those buttons, as well as how to add more function buttons to the screen, are in the Dashboard section.
Dashboard
The MachPro controls have multiple places to customize the interface to meet the users needs. The operator panel has function buttons that can be assigned operations, and there are two dashboards on the screen for the user to place widgets that they want to see. One dashboard is on the far right of the control and is available from all views. The other dashboard available to customize is on the service page.
Dashboards can be configured by right-clicking on them to access their menu. The user can choose how many and which widgets to show on the dashboard, as well as their layout. There is a wide variety of widgets to select from, and some widgets have additional options within them accessible through the 'Configure Widget' menu option.
One particular widget is the 'Function Buttons' widget. It is configurable in a similar way to the overall dashboard, but instead of selecting widgets, the user can select Commands to run on press and release. The user can also set the labels and colors of the button to suit them.
Aside from running Commands, function buttons can be configured to run an MDI command instead. Setting the MDI command to run, either press or release, is accessible through the right-click menu. Those menu options will only be available if the button does not have a Command set for it already. To create a multiline MDI command add a "\n" between the MDI lines.
For example, to run this command:
M6 T1
M3 S1000
You must program it like this: "M6 T1 \n M3 S1000"
The \n combination is used in many contexts to insert a new line.
| Block Delete Toggle |
| Clear Scheduler 0 |
| Clear Tool Change State |
| Close CNC Software |
| Close GCode |
| Compile Scripts |
| Convert Screen To Multi Instance |
| Cut Recovery |
| Cutter Compensation Type A Toggle |
| Cutter Compensation Type B Toggle |
| Cutter Compensation Type C Toggle |
| Cycle Start |
| Cycle Start 0 |
| Cycle Stop |
| Cycle Stop 0 |
| DeReference All |
| DeReference All Instances |
| DeReference X |
| DeReference Y |
| DeReference Z |
| Disable |
| Dry Run To Line |
| Dry Run Toggle |
| Edit GCode |
| Edit Offsets Off |
| Edit Offsets On |
| Edit Offsets Toggle |
| Edit Scheduler 0 |
| Enable |
| Enable Reset |
| Enable Reset 0 |
| Enable Scheduler 0 |
| Enable Toggle |
| Enable X Axis Toggle |
| Enable Y Axis Toggle |
| Enable Z Axis Toggle |
| Feed Hold |
| Feed Hold 0 |
| Feed Hold Retract |
| Feed Hold Retract 0 |
| Feedrate Override Decrement |
| Feedrate Override Increment |
| Feedrate Override Reset |
| File Resume |
| Find Tool Changes |
| Flood Toggle |
| GCAdapter Adapt Folder |
| GCAdapter Adapt Folder Showing Toolpaths |
| GCAdapter Adapt GCode |
| GCAdapter Settings |
| GCode CNTL 1 MST Toggle |
| GCode File Repeat Off |
| GCode File Repeat On |
| GCode File Repeat Toggle |
| GCode Shortcut1 |
| GCode Shortcut2 |
| GCode Shortcut3 |
| Goto Machine Zero |
| Goto Part Zero |
| Goto Positions Selection |
| Goto Tool Change |
| Home All |
| Home All 0 |
| Home All Dereferenced Axes |
| Home All Selected Instance |
| Home X |
| Home Y |
| Home Z |
| Inhibit Jogging When Not Homed Toggle |
| Inhibit X Jogging Toggle |
| Inhibit Y Jogging Toggle |
| Inhibit Z Jogging Toggle |
| Interrupt |
| Jog Tool Magazine To Next Pocket |
| Jog Tool Magazine To Next Pocket 2 |
| Jog Tool Magazine To Next Pocket 3 |
| Jog Tool Magazine To Next Pocket 4 |
| Jog Tool Magazine To Previous Pocket |
| Jog Tool Magazine To Previous Pocket 2 |
| Jog Tool Magazine To Previous Pocket 3 |
| Jog Tool Magazine To Previous Pocket 4 |
| Laser Pointer Toggle |
| Limit Override Toggle |
| Load GCode |
| Manual Mode Toggle |
| Mist Toggle |
| MST Lock Toggle |
| Next Pocket |
| Next Tool |
| OP Zone App QR Code |
| Open Commands Dialog |
| Open GCode Nesting |
| Open Global Message Config |
| Open Machine Calibration |
| Open Machine Calibration Automatic Config |
| Open Machine Calibration Manual Config |
| Open Machine Calibration Screw Mapping |
| Open MachMotion Config |
| Open MachMotion Modbus Config |
| Open MDI |
| Open Setup Wizard |
| Optional Stop Off |
| Optional Stop On |
| Optional Stop Toggle |
| Park Tool |
| Part Counters |
| Plate Alignment |
| PLC Sequence Diagnostics |
| Power Off |
| Power Off Immediate |
| Previous Pocket |
| Previous Tool |
| Recent GCode |
| Refresh Enabled Buttons |
| Regen ToolPath |
| Register Tools |
| Remote Support |
| Reset |
| Reset 0 |
| Reset GCode CNTL 1 MST |
| Rewind |
| Rewind 0 |
| Run Lua Script |
| Save Fixture Offsets |
| Screen Profiling For 60 Seconds |
| Screen Profiling Toggle |
| Search GCode |
| Selected Spindle 1 |
| Selected Spindle 2 |
| Selected Spindle 3 |
| Selected Spindle 4 |
| Set GCode CNTL 1 MST |
| Set Selected Instance 0 |
| Single Block Off |
| Single Block On |
| Single Block Toggle |
| Skip Spindle Warm Up |
| Soft Limits Off |
| Soft Limits On |
| Soft Limits Toggle |
| Spindle Brake Off |
| Spindle Brake On |
| Spindle Brake Toggle |
| Spindle Forward |
| Spindle Forward Toggle |
| Spindle Orient |
| Spindle Orient Toggle |
| Spindle Override Decrement |
| Spindle Override Increment |
| Spindle Override Reset |
| Spindle Range 00 |
| Spindle Range 01 |
| Spindle Range 02 |
| Spindle Range 03 |
| Spindle Range 04 |
| Spindle Range 05 |
| Spindle Range 06 |
| Spindle Range 07 |
| Spindle Range 08 |
| Spindle Range 09 |
| Spindle Range 10 |
| Spindle Range 11 |
| Spindle Range 12 |
| Spindle Range 13 |
| Spindle Range 14 |
| Spindle Range 15 |
| Spindle Range 16 |
| Spindle Range 17 |
| Spindle Range 18 |
| Spindle Range 19 |
| Spindle Reverse |
| Spindle Reverse Toggle |
| Spindle Speed Variation Toggle |
| Spindle Stop |
| Start Spindle Warm Up |
| Step Into Subs |
| Step Into Subs Toggle |
| Step Over Subs |
| Support |
| Teach Laser Pointer Offsets |
| Teach WorkShift X Offset |
| Teach WorkShift Y Offset |
| Teach WorkShift Z Offset |
| Toggle Coordinates View |
| Tool Group Table |
| Tool Path Large |
| Tool Path Small |
| Tool Path View Bottom |
| Tool Path View ISO |
| Tool Path View Left |
| Tool Path View Right |
| Tool Path View Top |
| Transform: Array |
| Transform: Mirror X |
| Transform: Mirror Y |
| Transform: Rotate 180 |
| Transform: Rotate 90 CCW |
| Transform: Rotate 90 CW |
| UPS Power Off |
| Zero All |
| Zero All Edit Offsets On/Off |
| Zero X |
| Zero X Edit Offsets On/Off |
| Zero Y |
| Zero Y Edit Offsets On/Off |
| Zero Z |
| Zero Z Edit Offsets On/Off |
Usually we only configure the button press, but we can also configure the button release function. Functions that toggle have a similar effect to the press and release functions.
Most controls have at least three dashboards on the screen, the first one is under the Axis Positions (Labeled '1' in the example below) referred to as the Axis Positions Dashboard, and the second on the right side of the screen referred to as the Side Bar Dashboard (Labeled '2' in the example below). The third dashboard is on the Service page.
Axis Positions Dashboard
The Axis Position Dashboard is locked to only allow the Function Button widget with 5 configurable buttons. These buttons configurable in the same manner as the function button widget on the Side Bar Dashboard, through the right-click menu.
Side Bar Dashboard
On the right side of the screen is a large Dashboard with lots of space to add Widgets that will improve productivity. Configure the dashboard through the right-click menu.
Widgets
Widgets are small components that can be added to the dashboards to show data like the last probe position or to add buttons for controlling a chip conveyor. To see the list of available widgets right-click on the edge of a dashboard and select the drop down list.
Many widgets have additional options to configure the way they look or which variables are shown in the widget. So see a list of options right-click inside the widget and select from the menu. The menu is context sensitive and some widgets have additional options, but these three options are always available.
|
Use compact display or specify height of the rows. The default is 22. Compact vs normal display
|
Select Get Info about the entry you right clicked |
If "Set Variable Format String" is an option, right-click on the row you want to change and select "Set Variable Format String." Then enter a string format with the following syntax: %.Xf (where the X represents how many decimal places. For example, if you only want 1 decimal place, enter %.1f. This will display a value 170.2353 as 170.2. You have to re-enter the value on the screen for it to display with the new format. Search for external documentation on operator (c-style string formatting) syntax for a complete list of options.
Many of the widgets allow you to add lists to be displayed: parameters, signals, variables, etc. If your options are displayed in a list, then you have several ways to select multiple values.
- You can add an individual item by selecting it, clicking the Add button at the bottom, and then the Close button.
- You can add a contiguous series of items. Select the first item, hold down the shift key on the keyboard and select the last item in the series. Click the Add button.
- You can repeat this action for other series of item, and click Add after each series is selected.
- You can add separate item. Select the first item. Hold down the control key on the keyboard and select each individual item that you want to add to the widget. Click the Add button.
- When you have finished adding all of the items, click the close button.
Set Widget Label allows you to rename that item to match usage on this system. Your system will be productive more quickly if you carry over the existing machine labeling to this MachMotion control interface.
All Inputs and All Outputs (Digital)
These are two separate widgets, one for digital inputs and one for digital outputs. They have the same function. They are useful for troubleshooting during installation, and it will display all the inputs or outputs (including ones not enabled or used) in a scroll-able window. Alternately, to just see particular I/O information, use these widgets:
- Analog Input and Output Signals (next entry down)
- Enabled Inputs and Outputs are at the hardware level
- Signals are at the software level and are mapped to particular hardware inputs and outputs
- I/O is a select-able list of both physical I/O and other system information.
|
If you add a description to an input in the Controls Inputs tab, that description will be used here. Note the scrollbar on the right side. All inputs are visible when you scroll. |
If you right click and select Run Test Sequence, you will see this popup. There are a large number of inputs and running the sequence 10 times will take some time. |
Analog Input and Output Signals
These are two separate widgets and each allows you to add specific analog input and output signals to your dashboard.
|
To add Analog signals, right click in the widget and select Add Variables.
|
Right click in the widget or directly on one of the signals.
|
Approach Distances
All axes will use this value when doing a probe move for both edges and corners. It is the maximum distance the probe will move while searching for material. If the probe is not activated before this distance is consumed, then an error will occur and the operation will be stopped.
| The Approach Distances widget is incorporated in the Fixtures Tab, and is best used there. |
Axis Compensation
| This is used on grinders to adjust for the grind wheel size changing during dressing or grind cycles. Grinder controls will have these functions configured in their profile, and you will not normally need to add this widget. Refer to the appropriate manual for your type of grinder, and search for compensation. |
Calculator
| This is a simple calculator that is useful if you often need one while working on the control. There are no special features to configure here. If you need a calculator with more advanced features, the Windows calculator is available. |
Current Fixture Offsets
This displays the current offset of each axis from the machine zero location on that axis. It is the same as the opening the Fixtures Offsets table on the Fixtures tab. This is a display widget. If you want to change these values, open the Fixture Offsets table on the fixtures tab.
Cylindrical Grinder Part Offsets
This is used for Cylindrical grinders. The part offset table (Part Correction Offset) which, when multiple features are being ground on the part, can be used in conjunction with an "E" variable in the program to allow adjustments to each feature individually.
DRO Measure
| This provides a digital "tape measure" that can measure axis movement, and be reset at will. It does not change any operating values or parameters. |
Dual Table
| This widget is used on routers with two tables. Setup and use is documented in the 2000 Series Dual Table article. |
Enabled Inputs and Outputs
| These widgets will show only the inputs or outputs that been enabled. Right clicking on the display will bring up a menu. If you click on a particular input or output, you can get information about that entry. |
Feedback
|
|
This provides an on-screen indicator when any of the axes are moving. You select the axes that you want to monitor. |
|
Right click on the border space around the buttons and select Configure Widget to access the display options.
The Grid Configuration, at the top, determines how many rows and columns of axis indicators you will have. |
File Travel Limits
| This displays the extents of movement you will have on each axis for the file that is loaded. Using this along with the yellow soft limit display on the tool path will help you identify fixture problems before you run a file. |
G30 Coordinates
| This is similar to the G28 command. G28 ends at machine zero while G30 allows you to specify different end coordinates than machine zero. |
G54 - G59 fixture Offsets
|
This widget displays the current values of your offsets in individual windows for each offset. You may add a widget for each set of offsets that you want to monitor. If you want to change these values, open the Fixture Offsets table on the fixtures tab. If you only need a single widget that dynamically updates to show the current offsets, use the Current Fixture Offsets (above). The Fixtures Tab on the control also provides easy access to the most used fixture features. |
G92/G50 Offsets
Most operators will use G54–G59 fixture offsets or GOTO positions instead of G92 and G50/G52, which were used before fixture offsets existed. Try these features first. You may also use the Head Shift Offset and Work Shift Offset widgets to make adjustments directly on the screen - without any G-Code changes. The Fixtures Tab on the control also provides easy access to the most used fixture features.
There are cases where G92 and G52 are very useful, and for that you need to refer to the full documentation links above.
|
The widget will display any offsets created with G92 or G52 in your G-Code.
|
You may also change the labels of the offsets to match your naming convention. |
Head Shift and Work Shift Offsets
Head Shift and Work Shift offsets are very similar.
- Head shift is used for permanent offsets related to multiple heads - such as a router with a standard spindle, and a drill bank, or an engraving laser. You need to shift your your cut path to use the other tool while maintaining the same fixture coordinates.
- Work shifts are used for temporary changes. Your stock may have a defect and you need to shift your fixture coordinates by 0.005 inches for this piece. This widget provides an easy way to make those kind of temporary adjustments quickly, without changing your existing fixture offsets. When you are done with this piece you can reset the work offsets to 0.0000 and use unmodified fixture offsets.
The values entered in the on-screen widget update the fixture table for the head or work shift, but they do not change your current fixture offsets (G54, G55, etc). You change the head shift values in the widget, or directly in the Fixture Offsets Table.
The head and work shift values will reset to zero when you restart the software. If you want to set permanent values for the shifts, you can change that option in the MachMotion Plugin. Your options are:
- Reset to Zero
- Restore the last value you entered
- Restore a permanent value
Head and work shift values will not change the standard G54-G59 work offsets, but they do stack on top of those values. You can also have both head shift and work shift values in effect at the same time. The head and work shift values will apply to your current work offsets.
I/O
This shows the electrical status of the input and output ports on the main control panel. The physical I/O ports are mapped to software signals that the control uses. See Signals below.
These examples show how the I/O indicators change when the Goto and MDI features are used. There are sub-menus under each category, and they are shown below.
|
|
||||
IVIS
This is the interface for a software tool used on some grinders. If your system uses IVIS, we will configure this widget for you.
Job File
This widget is used in custom profiles. Please contact MachMotion for configuration.
Jogging
This widget provides both on-screen and keyboard jogging. There are different on-screen axis button configurations to match your system.
|
|
|
|
Lite is used to select the axis on computers that have physical + and - jog buttons on the panel. |
- CONT is continuous movement as long as you press the relevant axis button.
- STEP moves the axis by one increment with each press of the axis button.
- KYB uses keyboard mappings to control different aspects of the jogging function. Select the functions you want to use in the Jogger Configuration window, then map the key combinations in the Keyboard Inputs plugin.
- INC cycles through the jogging distance increments: 0.0001, 0.001, 0.01, 0.1, 1.0
The Jogger Configuration option to link to the physical jogger, allows you to keep the feedrate value synced with other physical pendants.
This is the feedrate slider
|
Opening the Keyboard Plugin to map keys
|
Last Commanded Coordinates
This reports the last position that each axis has been commanded, either by the G-Code file or by MDI.
G0 X1 Y1 Z1
G0 X2 Y2
These G-Codes above resulted in this display. If an axis is not commanded for multiple blocks of code, it will retain the last commanded coordinate.
Mach Parameters
These are the values stored in profile\parameters.ini and are best accessed in the MachMotion Plugin. Pull down the Configure menu | Plugins -> MachMotion parameters. Normally you will not need to monitor or change these values. This widget is primarily used for system customization.
|
|
Right-click in the widget to bring up the menu. This menu is specific to #5130 because I right-clicked that entry.
Machine Coordinates
These are the distances from the machine zero on each axis. You can toggle the DRO to show View Machine, and you can use this widget to display machine values at all times. See also Part Coordinates.
Notepad
This is a simple notepad that retains the text even when the control is fully power cycled. Right-clicking will display the options.
Original Offsets
Please refer to, and use, the Current Fixture Offset widget
Pound Variables
The system variables, or pound variables (# variables) are documented in the Macro B Reference Guide in the System Variables section. They are shared memory between G-Code files, and M-Codes and plugins.
|
From the Macro B section 3.6 System Variables
|
Setting the widget values |
Part Counters
This widget is incorporated into the standard interface, on the GCode tab, and it is best used there.
|
|
Part Counters (internal documentation)
Probe Machine Coordinates and Part Coordinates
Registers
Registers are documented in 4 Registers as part of the core Mach documentation. This widget allows you to display particular registers and their values. You can also browse the entire tree from the main menu. Pull down Diagnostic | Regfile
|
|
Scheduler
This widget is used to customize system operation when a customer's work flow requires it. If you need this functionality, please contact MachMotion support and request a quote for custom configuration.
|
|
Opening the Scheduler will open a new window with the Schedule Editor. The Load button will open a file browser to select the job files you want to schedule. Once the jobs are listed, you can reorder them, and change the quantity of times to run a particular job.
Signals
Also see I/O and the mapping documentation for your motion controller. The signals are mapped to particular input and output ports. In this example, the underlying I/O ports are connected, and the signals have been mapped to report I/O status to the system.
Subspindle Control
|
This widget is used to set the speed and start the spindle. Configuration details and examples are located in these bookstack articles:
|
Tool Wear Offsets
Please enter your tool wear offsets in the Tool Table, or using G10: Fixture and Tool Offset Setting. Refer to the Cutter Compensation portion of the Mach4 G-Code and M-Code Reference for the concepts in cutter compensation.












































































