mycnc:mycnc_screen_configuration
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
mycnc:mycnc_screen_configuration [2019/10/31 09:21] – ivan | mycnc:mycnc_screen_configuration [2023/07/25 11:26] (current) – ivan | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== MyCNC Screen Configuration ====== | + | ===== Screen |
- | Examples | + | //The default preset GUI for myCNC profiles is described in the following manual: [[mycnc: |
+ | |||
+ | In this manual, we will be going through all the different elements that can be used to display (and interact with) the necessary information on the myCNC screen. Sample examples | ||
+ | |||
+ | Video tutorial for screen editing: | ||
+ | |||
+ | {{youtube> | ||
+ | |||
+ | ==== Getting Started with editing the myCNC screen==== | ||
+ | |||
+ | By default, myCNC comes with a number of profiles, each with slight visual differences which are designed to best suit the workflow of a particular system, be it a plasma cutting machine, a mill, or a tangential knife setup. However, sometimes it is necessary to edit the software screen to better suit the particular workflow of the operator. Luckily, the myCNC software is almost endlessly customizable since it comes with the ability to edit the .xml files which are responsible for displaying the on-screen content. | ||
+ | |||
+ | These .xml files are stored in your profile folder. On Ubuntu systems, go to your home folder, and then navigate to '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Upon opening the necessary profile folder (we will be using X1366M in this example, for the simple 3-axis mill profile), you are presented with a list of all the .xml files which will populate your screen: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | However, merely being in the profile folder does not mean that the .xml file's contents will be displayed on the myCNC screen. In order for the .xml file to be used, it must be included in the cnc-screen.xml file that is located within that profile' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Upon opening the cnc-screen.xml file and scrolling down to the bottom, you are presented with a list of all the files from within the same folder which will be included when building the myCNC screen: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | These files are named according to the different elements they put up on the screen ('' | ||
+ | |||
+ | In general, the order the files are loaded into myCNC (including .xml configuration files and your settings) is explained here: | ||
+ | |||
+ | {{youtube> | ||
==== MyCNC GUI elements ==== | ==== MyCNC GUI elements ==== | ||
- | === Label === | + | Below is a list of the main elements that can be utilized to create or edit a myCNC profile screen. Some of the functions of these elements overlap (such as BDisplay and KDisplay) - it is left to the user to decide which element best suits their workflow. |
+ | |||
+ | ^ Element ^ Use ^ | ||
+ | | **Label** | Unchanging text element | | ||
+ | | **Display** | Changing value | | ||
+ | | **BDisplay** | Changing value - can be clicked by the user to enter a new value | | ||
+ | | **KDisplay** | Changing value - can be clicked by the user to enter a new value | | ||
+ | | **RadioDisplay** | Changing value - preset from a list of choices | | ||
+ | | **Radio2Display** | Changing value - preset from a list of choices (update of RadioDisplay) | | ||
+ | | **KSpinBox** | Changing value - changed by pressing the arrows to increase/ | ||
+ | | **KSpinBox2** | Changing value - changed by pressing the arrows to increase/ | ||
+ | | **LED** | LED display to show some status (can be on/off) | | ||
+ | | **SVG Display** | Set of images to change depending on input | | ||
+ | | **MyItems** | Container element which can contain other elements | | ||
+ | | **Border** | Frame element which can contain other elements | | ||
+ | | **Button** | Button | | ||
+ | | **XButton** | Button with an LED indicator | | ||
+ | | **GLView** | 3D Visualization | | ||
+ | | **NCView** | 2D Visualization | | ||
+ | | **Logview** | Program log window | | ||
+ | | **Statusbar** | Progress and status bar | | ||
+ | | **NCList** | Program G-code commands list | | ||
+ | | **Myscope** | Time graphs | | ||
+ | | **CentringView** | Centering widget (built-in) | | ||
+ | | **Rotation2View** | Full program rotation widget (built-in) | | ||
+ | | **timeview** | Time (clock) display | | ||
+ | | **time-display** | View a global variable (such as #6120) in a 00:00:00 format | | ||
+ | | **splitview** | An element with two horizontal sections where each section will automatically fill all available space when the other is closed | | ||
+ | |||
+ | The following table outlines the parameters that define the on-screen elements within myCNC: | ||
+ | |||
+ | ^ Parameter ^ Example ^ Use ^ | ||
+ | | **type** | type=" | ||
+ | | **skin** | skin=" | ||
+ | | **where** | where=" | ||
+ | | **position** | position=" | ||
+ | | **width** | width=" | ||
+ | | **height** | height=" | ||
+ | | **labelWidth** | labelWidth=" | ||
+ | | **displayWidth** | displayWidth=" | ||
+ | | **labelFgColor** | labelFgColor="## | ||
+ | | **labelBgColor** | labelBgColor="## | ||
+ | | **labelFontSize** | labelFontSize=" | ||
+ | | **labelFontStyle** | labelFontStyle=" | ||
+ | | **message** | < | ||
+ | | **name** | name=" | ||
+ | | **bgColor** | bgColor="## | ||
+ | | **fgColor** | fgColor="## | ||
+ | | **fontStyle** | fontStyle=" | ||
+ | | **format** | format=" | ||
+ | | **displayAlignment** | displayAlignment=" | ||
+ | | **fontFamily** | fontFamily=" | ||
+ | | **deviation** | deviation=" | ||
+ | | **action** | action=" | ||
+ | | **orientation** | orientation=" | ||
+ | | **train-list** | train-list=" | ||
+ | | **cnc-password-widget** | action=" | ||
+ | |||
+ | |||
+ | ++++Label| | ||
Labels are static text elements which are displayed as a text box (typically simple text headings/ | Labels are static text elements which are displayed as a text box (typically simple text headings/ | ||
Line 31: | Line 122: | ||
* **message** can be written in the required languages (which must be specified). The program will automatically display the correct message for each selected program language. | * **message** can be written in the required languages (which must be specified). The program will automatically display the correct message for each selected program language. | ||
- | + | ++++ | |
- | === Display | + | ++++ Display| |
**Display** allows to show dynamic info (such as a changing value), and often works in conjunction with a Label (a label will create some title, and the dynamic changing value will be placed on the screen next to the Label as a Display). An example of a Display is the Trip Counter from the User Settings window in the 1336M4 profile: | **Display** allows to show dynamic info (such as a changing value), and often works in conjunction with a Label (a label will create some title, and the dynamic changing value will be placed on the screen next to the Label as a Display). An example of a Display is the Trip Counter from the User Settings window in the 1336M4 profile: | ||
Line 57: | Line 148: | ||
* **format** specifies how the values are presented. The first number specifies the overall digits that the value will display, while the second number specifies the amount of digits after the dot. F stands for float, while d stands for integer. For example, in this case, %6.3f specifies a float number with six total digits maximum and which allows the number to display up to the third decimal place (degree of accuracy). | * **format** specifies how the values are presented. The first number specifies the overall digits that the value will display, while the second number specifies the amount of digits after the dot. F stands for float, while d stands for integer. For example, in this case, %6.3f specifies a float number with six total digits maximum and which allows the number to display up to the third decimal place (degree of accuracy). | ||
* **deviation** can be specified to indicate the minimum absolute value change that would require the program to display a new value. For example, deviation of 0.01 means that the value needs to change by at lease 0.01 (absolute value) for the new numeric value to be displayed. This allows to eliminate visual changes/ | * **deviation** can be specified to indicate the minimum absolute value change that would require the program to display a new value. For example, deviation of 0.01 means that the value needs to change by at lease 0.01 (absolute value) for the new numeric value to be displayed. This allows to eliminate visual changes/ | ||
+ | ++++ | ||
- | === BDisplay | + | ++++ BDisplay| |
The BDisplay element allows to display a dynamic value, like a typical Display, which can also be clicked. When clicked, a popup element will be brought up on the screen that will allow the user to enter a new value. For example, the program coordinates displayed on the main screen of the software are BDisplay elements which bring up a popup when clicked, allowing to change their values: | The BDisplay element allows to display a dynamic value, like a typical Display, which can also be clicked. When clicked, a popup element will be brought up on the screen that will allow the user to enter a new value. For example, the program coordinates displayed on the main screen of the software are BDisplay elements which bring up a popup when clicked, allowing to change their values: | ||
Line 83: | Line 175: | ||
* **action** allows to perform some sort of action or command after the confirmation checkmark in the popup window is pressed (after the new value is entered). This value is stored as %v and will be used to change the program coordinates to the necessary value in the selected axis. This is extremely useful for changing the values which would require an action to do so (e.g. some kind of machine movement). If no actions are required (i.e., if all that is required is a value/ | * **action** allows to perform some sort of action or command after the confirmation checkmark in the popup window is pressed (after the new value is entered). This value is stored as %v and will be used to change the program coordinates to the necessary value in the selected axis. This is extremely useful for changing the values which would require an action to do so (e.g. some kind of machine movement). If no actions are required (i.e., if all that is required is a value/ | ||
* **name** specifies the global variable or the item that the element will be receiving its value from to display. In this case, it is receiving a value from the work-pos-axis-0 item. A comprehensive [[mycnc: | * **name** specifies the global variable or the item that the element will be receiving its value from to display. In this case, it is receiving a value from the work-pos-axis-0 item. A comprehensive [[mycnc: | ||
+ | ++++ | ||
- | === RadioDisplay | + | ++++RadioDisplay| |
RadioDisplay allows to display some value from a list. For example, the display of the coordinate system in the Diagnostics window of the 1366M4 profile is done by using a RadioDisplay element. This allows the user to select some coordinate system (which is not labeled G54/G55/etc within the software, but rather 1, 2, 3, etc), and then display the selected choice as some sort of a user-facing text string (thus, for example, displaying a software " | RadioDisplay allows to display some value from a list. For example, the display of the coordinate system in the Diagnostics window of the 1366M4 profile is done by using a RadioDisplay element. This allows the user to select some coordinate system (which is not labeled G54/G55/etc within the software, but rather 1, 2, 3, etc), and then display the selected choice as some sort of a user-facing text string (thus, for example, displaying a software " | ||
Line 139: | Line 232: | ||
* **action** is set to " | * **action** is set to " | ||
* **format** is set to " | * **format** is set to " | ||
+ | ++++ | ||
- | === Radio2Display | + | ++++ Radio2Display |
Radio2Display allows for a more granular display configuration than the simpler RadioDisplay. Similar to RadioDisplay, | Radio2Display allows for a more granular display configuration than the simpler RadioDisplay. Similar to RadioDisplay, | ||
Line 171: | Line 265: | ||
The example in RadioDisplay code can also be used to assign actions to Radio2Display if type=" | The example in RadioDisplay code can also be used to assign actions to Radio2Display if type=" | ||
- | === KDisplay | + | ++++ |
+ | |||
+ | ++++ KDisplay | ||
KDisplay is similar to BDisplay, as it allows to display some dynamic changing variable/ | KDisplay is similar to BDisplay, as it allows to display some dynamic changing variable/ | ||
Line 195: | Line 291: | ||
* **name** displays the global variable that will be used in this field (in this example, it's global variable #7525 for the gantry alignment procedure) | * **name** displays the global variable that will be used in this field (in this example, it's global variable #7525 for the gantry alignment procedure) | ||
* **deviation** specifies the minimum value by which the parameter (global variable used in this case) should change for the change to be visually represented on the screen. This cutoff allows to disregard some small changes. | * **deviation** specifies the minimum value by which the parameter (global variable used in this case) should change for the change to be visually represented on the screen. This cutoff allows to disregard some small changes. | ||
+ | ++++ | ||
- | === KSpinBox | + | ++++ KSpinBox |
KSpinBox shows a certain value with an arrow on either side, allowing the user to change the value upon pressing (or pressing and holding) the arrow buttons. The PWM outputs section of the Diagnostics window is done using KSpinBoxes: | KSpinBox shows a certain value with an arrow on either side, allowing the user to change the value upon pressing (or pressing and holding) the arrow buttons. The PWM outputs section of the Diagnostics window is done using KSpinBoxes: | ||
Line 224: | Line 321: | ||
* **number** specifies the particular hardware port that the on-screen element will be monitoring. Here, it is the number of the PWM output, as specified in the address. It is counted from 0, not from 1, so PWM output 1's number is 0, PWM Output 2 is number 1, etc. | * **number** specifies the particular hardware port that the on-screen element will be monitoring. Here, it is the number of the PWM output, as specified in the address. It is counted from 0, not from 1, so PWM output 1's number is 0, PWM Output 2 is number 1, etc. | ||
* **type** is set to " | * **type** is set to " | ||
+ | ++++ | ||
- | === KSpinBox2 | + | ++++ KSpinBox2 |
- | KSpinBox2 allows the user to add an element similar to a regular KSpinBox, displaying a value between two arrows, which also allows the user to click on the current value and change it using a popup screen in addition to changing the value by pressing the respective arrows. This element is used, for example, on the main screen of myCNC software' | + | KSpinBox2 allows the user to add an element similar to a regular KSpinBox, displaying a value between two arrows, which also allows the user to click on the current value and change it using a popup screen in addition to changing the value by pressing the respective arrows. This element is used, for example, on the main screen of myCNC software' |
{{: | {{: | ||
Line 257: | Line 355: | ||
* **orientation** can be set to be horizontal or vertical | * **orientation** can be set to be horizontal or vertical | ||
* the message can be listed in different languages, the system will automatically display the correct message depending on the user language settings for myCNC | * the message can be listed in different languages, the system will automatically display the correct message depending on the user language settings for myCNC | ||
+ | ++++ | ||
- | === LED Display | + | ++++ LED Display |
LED Display allows the user to display an LED element on the screen. This light can be on or off, and each LED element can have a different colour set for its ON configuration. This is useful to show the state of system items which have a binary state (on or off), such as input ports which can be viewed from the Diagnostics page: | LED Display allows the user to display an LED element on the screen. This light can be on or off, and each LED element can have a different colour set for its ON configuration. This is useful to show the state of system items which have a binary state (on or off), such as input ports which can be viewed from the Diagnostics page: | ||
Line 281: | Line 380: | ||
* **number** specifies the particular hardware port in the specified hardware section (inputs in this example) that will be monitored. Here, the state of port 0 will be monitored. | * **number** specifies the particular hardware port in the specified hardware section (inputs in this example) that will be monitored. Here, the state of port 0 will be monitored. | ||
* **type** is set to " | * **type** is set to " | ||
+ | ++++ | ||
- | === SVG Display | + | ++++ SVG Display |
SVG Display allows to display a set of images that will be changing depending on the user input (cycling through the available images). This allows for more granular control than an LED Display element which can only show two states of a system. | SVG Display allows to display a set of images that will be changing depending on the user input (cycling through the available images). This allows for more granular control than an LED Display element which can only show two states of a system. | ||
Line 303: | Line 403: | ||
* **K** is the coefficient by which the value will be multiplied by before it is used by the element | * **K** is the coefficient by which the value will be multiplied by before it is used by the element | ||
* **min** and **max** values specify the bounds for the values which are used. Anything lower than the min value is assumed to be equal to min (displays the first image on the list), everything higher than the max value is assumed to be equal to max (displays the last image on the list). | * **min** and **max** values specify the bounds for the values which are used. Anything lower than the min value is assumed to be equal to min (displays the first image on the list), everything higher than the max value is assumed to be equal to max (displays the last image on the list). | ||
+ | ++++ | ||
- | === Myitems Widget | + | ++++ Myitems Widget |
The Myitems widget allows the user to create a section or a window within the main myCNC screen which can later be filled with buttons/ | The Myitems widget allows the user to create a section or a window within the main myCNC screen which can later be filled with buttons/ | ||
Line 323: | Line 424: | ||
* it is necessary to **include** the actual code for the widget that will be inserted (oil-change.xml). That file contains all the necessary information about what's inside the widget, however it is not necessary to edit it if the entire widget needs to be moved or removed from the screen. | * it is necessary to **include** the actual code for the widget that will be inserted (oil-change.xml). That file contains all the necessary information about what's inside the widget, however it is not necessary to edit it if the entire widget needs to be moved or removed from the screen. | ||
- | Note that the widget within which the oil-change | + | |
+ | ++++ | ||
+ | |||
+ | ++++ Border | | ||
+ | |||
+ | Note that while the myitems | ||
+ | |||
+ | As mentioned, an example | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Sample border code is available here: | ||
<code c> < | <code c> < | ||
Line 336: | Line 448: | ||
* **basewidth** and **baseheight** are specified to serve as reference width and height during the window resizing process. The system will look at the basewidth/ | * **basewidth** and **baseheight** are specified to serve as reference width and height during the window resizing process. The system will look at the basewidth/ | ||
- | === Button | + | ++++ |
+ | |||
+ | ++++ Skin | | ||
+ | |||
+ | A skin is a parameter which effectively serves as a background for the element within which it is embedded. | ||
+ | |||
+ | Example of a skin can be seen in the Gantry Alignment widget: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The background of the widget consists of a diagram of the machine. This diagram is embedded using the '' | ||
+ | |||
+ | Example code: | ||
+ | |||
+ | < | ||
+ | skin=" | ||
+ | position=" | ||
+ | |||
+ | * **where** specifies the element within which the new element is embedded | ||
+ | * **name** should be chosen to be unique | ||
+ | * **bgColor** specifies the background colour of the element | ||
+ | * **type** is set to '' | ||
+ | * **skin** is set to the image path within the art/ | ||
+ | * **position** specifies the position in the element within which the item is located | ||
+ | * **width** and **height** specify the size | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++Button| | ||
A PushButton screen item can be used on myCNC screen to serve as as a button which will trigger some command when pressed. For example, the refresh button can be seen on the main screen of the myCNC software: | A PushButton screen item can be used on myCNC screen to serve as as a button which will trigger some command when pressed. For example, the refresh button can be seen on the main screen of the myCNC software: | ||
Line 349: | Line 489: | ||
| | ||
</ | </ | ||
+ | |||
+ | A text element can serve as a button as well as an icon, with the following code being an example of such a layout: | ||
+ | |||
+ | <code XML>< | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | The button in the case of the example above will look the following way: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | In here, the overlay element is the '' | ||
Line 357: | Line 510: | ||
* **height** - button height in pixels | * **height** - button height in pixels | ||
* **type** - type definition of the item (should be type=" | * **type** - type definition of the item (should be type=" | ||
+ | * **title** - text element overlay on the button | ||
* **image** - a image (icon) file for the button in the SVG format | * **image** - a image (icon) file for the button in the SVG format | ||
* **action** - action for the button (which procedure will be executed if the button is pressed) | * **action** - action for the button (which procedure will be executed if the button is pressed) | ||
Line 364: | Line 518: | ||
* **both** - there are separate actions (";" | * **both** - there are separate actions (";" | ||
* **skinbase** - besides the Image file for each button there is a common **skin** SVG file for all the buttons. For selected buttons skin file can be redefined with **skinbase** attribute which specifies the border/mask which the button will be used with. This SVG file will be used as a bottom layer for the button image. | * **skinbase** - besides the Image file for each button there is a common **skin** SVG file for all the buttons. For selected buttons skin file can be redefined with **skinbase** attribute which specifies the border/mask which the button will be used with. This SVG file will be used as a bottom layer for the button image. | ||
+ | * A skinbase set equal to " | ||
+ | ++++ | ||
- | === XButton | + | ++++ XButton |
XButton is a Push button (similar to a typical button described above) with a built-in light indicator. The light is typically used to show the current state of some CNC controller input, output pin, or CNC global variable register value. Effectively, | XButton is a Push button (similar to a typical button described above) with a built-in light indicator. The light is typically used to show the current state of some CNC controller input, output pin, or CNC global variable register value. Effectively, | ||
Line 376: | Line 532: | ||
<gitem where=" | <gitem where=" | ||
| | ||
- | | + | |
| | ||
| | ||
Line 406: | Line 562: | ||
* " | * " | ||
- | === GLView | + | Another example of an xbutton realized with a **ref** value for reference to switch (toggle) a variable between two states: |
+ | |||
+ | < | ||
+ | image=" | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | * **data** specifies which values the switch is occuring (the cnc-gvariable-switch-5701 action in this case) | ||
+ | * **ref** specifies the reference value to monitor for | ||
+ | |||
+ | Similarly, a '' | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++ GLView (3D Visualization)| | ||
GLView allows to display a 3D visualization window which will show a visualization of the imported program (such as the window on the main screen of myCNC software' | GLView allows to display a 3D visualization window which will show a visualization of the imported program (such as the window on the main screen of myCNC software' | ||
Line 429: | Line 602: | ||
* **ColorT0, T1, etc** describe the visualization colours for different tools in the G-code | * **ColorT0, T1, etc** describe the visualization colours for different tools in the G-code | ||
* **HColorT0, T1, etc** describes the highlight colour for the selected tool | * **HColorT0, T1, etc** describes the highlight colour for the selected tool | ||
+ | ++++ | ||
- | === NCView | + | ++++ NCView |
{{: | {{: | ||
Line 452: | Line 626: | ||
* **ColorT0, T1, etc** signify the tool colours in the visualization (light blue in this case) | * **ColorT0, T1, etc** signify the tool colours in the visualization (light blue in this case) | ||
* **HColor** signifies the highlight colour for each tool (colour of the tool visualization when selected - yellow in this case) | * **HColor** signifies the highlight colour for each tool (colour of the tool visualization when selected - yellow in this case) | ||
+ | ++++ | ||
- | === X-log and Logview | + | ++++ X-log and Logview |
Logview is the log window tab at the bottom of the main screen of myCNC software (within the x-log widget). It contains information on program start and end times, error messages, etc. | Logview is the log window tab at the bottom of the main screen of myCNC software (within the x-log widget). It contains information on program start and end times, error messages, etc. | ||
Line 485: | Line 660: | ||
* **where** points out that the status bar is inserted into the x-log widget, same as the Logview element. | * **where** points out that the status bar is inserted into the x-log widget, same as the Logview element. | ||
* **name** and **type** are set to " | * **name** and **type** are set to " | ||
- | + | ++++ | |
- | === NCList | + | ++++ NCList |
The NCList widget is used to display the G-code commands window to the user, as can be seen in the G-code tab on the main screen of the 1366M4 profile, as well as the nesting, rotation and Run From Here buttons: | The NCList widget is used to display the G-code commands window to the user, as can be seen in the G-code tab on the main screen of the 1366M4 profile, as well as the nesting, rotation and Run From Here buttons: | ||
Line 503: | Line 678: | ||
* **type=" | * **type=" | ||
* **hide-list** serves as an option to hide the x-log and x-mill windows when the NCList window is active (as they are all situated in the same area). The **exclusive** flag signifies that only the NCList widget will be up on the screen if it is selected, thus allowing to not interfere with x-log and x-mill windows (the same setting is present in both other respective windows). | * **hide-list** serves as an option to hide the x-log and x-mill windows when the NCList window is active (as they are all situated in the same area). The **exclusive** flag signifies that only the NCList widget will be up on the screen if it is selected, thus allowing to not interfere with x-log and x-mill windows (the same setting is present in both other respective windows). | ||
+ | ++++ | ||
- | === CentringView | + | ++++ Myscope (graphs and plots) | |
+ | |||
+ | The '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Sample code to add a '' | ||
+ | |||
+ | < | ||
+ | width=" | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | <gitem where=" | ||
+ | | ||
+ | | ||
+ | |||
+ | * **where** indicated into which screen element the myscope graph will be inserted (in this example, it will be inserted into a border called '' | ||
+ | * **position** indicates the XY position within the element into which it is inserted | ||
+ | * **width** and **height** indicate the size of the graph | ||
+ | * **name** should be a unique name | ||
+ | * **type** should be set to '' | ||
+ | * **yrange** will specify the Y-axis range of the graph | ||
+ | * **K** will specify the coefficient by which the necessary information will be multiplied by before being displayed | ||
+ | * **source** is the name of the port or the variable which will be monitored. A list of possible sources is provided below. | ||
+ | * **sampling** specifies the rate at which the information will be retrieved (in this example, the graph will be updated every 50 milliseconds) | ||
+ | |||
+ | ^ Source ^ Description ^ | ||
+ | | adc0 | ADC #0. '' | ||
+ | | pwm0 | PWM #0. '' | ||
+ | | multidev-adc0 | ADC #0 of the slave controller (if multiple devices are used). multidev-adc0 through multidev-adc7 are available | | ||
+ | | speed-xyz | Movement speed of the machine | | ||
+ | | speed-abc | Rotation movement speed of the machine | | ||
+ | | thc-control | THC system speed | | ||
+ | | thc-reference | THC Reference voltage | | ||
+ | | thc-sensor | THC Arc Voltage | | ||
+ | | data-counter | Reserved for future implementation | | ||
+ | | time-counter | Reserved for future implementation | | ||
+ | | cnc-gvariable- | Monitor a myCNC [[mycnc: | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++CentringView| | ||
CentringView consists of the probe tools which allow to center the machine tool with regards to some obstacles. The window is brought up by clicking the Probe Sensor Window button: | CentringView consists of the probe tools which allow to center the machine tool with regards to some obstacles. The window is brought up by clicking the Probe Sensor Window button: | ||
Line 524: | Line 744: | ||
* **action** specifies the command which will be perform when the button is pressed (in this case, the button toggles the visibility of the x-centring widget (found in the x-centring.xml file) | * **action** specifies the command which will be perform when the button is pressed (in this case, the button toggles the visibility of the x-centring widget (found in the x-centring.xml file) | ||
* type is set to " | * type is set to " | ||
+ | ++++ | ||
- | === Rotation2View | + | ++++Rotation2View| |
Rotation2View is the window which allows to rotate the program part by some degree. It is brought up by clicking the Rotate button in the G-code tab on the main screen of myCNC software: | Rotation2View is the window which allows to rotate the program part by some degree. It is brought up by clicking the Rotate button in the G-code tab on the main screen of myCNC software: | ||
Line 546: | Line 767: | ||
* **action** specifies that pressing this button will toggle the x-rotate window visibility | * **action** specifies that pressing this button will toggle the x-rotate window visibility | ||
* **type** is set to " | * **type** is set to " | ||
+ | |||
+ | Sample code for the rotation2view element: | ||
+ | |||
+ | <gitem where=" | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | * **position** describes the XY location within the **where** element | ||
+ | * **width** and **height** describe the element' | ||
+ | * **table-rotation** sets the orientation of the table. //-90// and //90// are the typical values to rotate the orientation | ||
+ | * **type** is set to // | ||
+ | ++++ | ||
+ | |||
+ | ++++Timeview| | ||
+ | Timeview allows the user to add a clock within their myCNC software, for easy time monitoring (useful when program is in full-screen mode, for example). | ||
+ | |||
+ | Sample XML code: | ||
+ | |||
+ | <code XML> | ||
+ | <gitem where=" | ||
+ | height=" | ||
+ | </ | ||
+ | |||
+ | The following image provides an example of the '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //NOTE: The timeview functionality is a remnant of older builds of myCNC software, and does not support font and background colour selection.// | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++time-display| | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <code XML>< | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | <gitem where=" | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | The time-display UI element allows the system to display a global variable (in case of this example, #6120 and #6130 for the working time of ATC Pots #1 and #2) in a 00:00:00 format. | ||
+ | ++++ | ||
+ | |||
+ | |||
+ | ++++ Password widget| | ||
+ | |||
+ | A password widget allows the user to create a hidden locked GUI element that is displayed after entering the correct password. This is similar to the [[mycnc: | ||
+ | |||
+ | When the element is clicked/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | A code example of such an element is displayed below. Note how there are two elements - the bdisplay element (for password entry) with a // | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | <gitem where=" | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | In the example above, the password is set to be **123**, and both the UI elements are located in the same " | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++ splitview | | ||
+ | |||
+ | <code XML>< | ||
+ | position=" | ||
+ | |||
+ | < | ||
+ | | ||
+ | ColorT0=" | ||
+ | ColorT4="# | ||
+ | HColorT0=" | ||
+ | | ||
+ | HColorT4="# | ||
+ | |||
+ | <gitem where=" | ||
+ | | ||
+ | | ||
+ | |||
+ | The '' | ||
+ | |||
+ | The main feature of this GUI element is that if one of the windows is hidden, the second one will automatically occupy the entire area. | ||
+ | |||
+ | ++++ | ||
==== MyCNC Actions ==== | ==== MyCNC Actions ==== | ||
Line 551: | Line 875: | ||
All button-like screen components (button, xbutton, bdisplay, kspinbox2) run a **Handler** procedure when pressed or released event is activated by a mouse click or a touch screen tap. The Handler is defined in the " | All button-like screen components (button, xbutton, bdisplay, kspinbox2) run a **Handler** procedure when pressed or released event is activated by a mouse click or a touch screen tap. The Handler is defined in the " | ||
- | List of actions | + | ++++ List of general |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 565: | Line 889: | ||
| toggle-item: | | toggle-item: | ||
| laser-marker- | Special purpose action reserved for laser marker machines. This action perform a test run in anticipation of the actual cutting process. | | | laser-marker- | Special purpose action reserved for laser marker machines. This action perform a test run in anticipation of the actual cutting process. | | ||
+ | | generate-pierce-array | EXPERIMENTAL FEATURE. This action goes through the control program and removes the cutting sections, leaving only the pierce points and idle movements between those points. Commisioned for a client' | ||
+ | | system-process | This is a command to the OS (rather than an internal myCNC command). | ||
+ | |||
+ | ++++ | ||
- | ===Items=== | + | ++++Items| |
Items are a subset of actions, and are written in the following form - item: | Items are a subset of actions, and are written in the following form - item: | ||
Line 575: | Line 903: | ||
A list of commonly used items can be found in the [[mycnc: | A list of commonly used items can be found in the [[mycnc: | ||
+ | ++++ | ||
- | === Player actions | + | ++++ Player actions| |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 597: | Line 926: | ||
| player-back-to-path-confirm | Goes back to path, requires confirmation before the machine goes back to path | | | player-back-to-path-confirm | Goes back to path, requires confirmation before the machine goes back to path | | ||
| player-play-back | Runs the program backwards | | | player-play-back | Runs the program backwards | | ||
+ | | player-simulate-forward | Simulate the program running forward in a simulation/ | ||
+ | | player-simulate-backward | Simulate the program running backward in a simulation/ | ||
| player-nc-tie | Allows to tie a certain position to the reference zero program coordinate position. This allows to move the entire program around the cutting sheet. Useful when, for example, a single part needs to be cut out from a program made up from many different parts at a different location on the working material from that used originally (for example, if the first run was faulty). This calculates the difference of the current selected point and the zero program coordinate, and then interpolates the same difference between the new selected point and the new zero program coordinate, moving the whole program over. | | | player-nc-tie | Allows to tie a certain position to the reference zero program coordinate position. This allows to move the entire program around the cutting sheet. Useful when, for example, a single part needs to be cut out from a program made up from many different parts at a different location on the working material from that used originally (for example, if the first run was faulty). This calculates the difference of the current selected point and the zero program coordinate, and then interpolates the same difference between the new selected point and the new zero program coordinate, moving the whole program over. | | ||
| player-play-step | Run through a single line of code (next line) | | | player-play-step | Run through a single line of code (next line) | | ||
Line 603: | Line 934: | ||
| mdi-open | Opens the Manual Data Input window | | | mdi-open | Opens the Manual Data Input window | | ||
+ | ++++ | ||
- | === Jog actions | + | ++++ Jog actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
| jog-0-plus, jog-1-plus, \\ jog-2-plus, jog-3-plus, \\ jog-4-plus, jog-5-plus, \\ jog-6-plus, jog-7-plus \\ jog-8-plus | Positive direction jog in the in the X, Y, Z, A, B, C, U, V, W axes | | | jog-0-plus, jog-1-plus, \\ jog-2-plus, jog-3-plus, \\ jog-4-plus, jog-5-plus, \\ jog-6-plus, jog-7-plus \\ jog-8-plus | Positive direction jog in the in the X, Y, Z, A, B, C, U, V, W axes | | ||
| jog-0-minus, | | jog-0-minus, | ||
- | | jog-0-plus-1-plus | Simultaneous two-axes Jog, X+ Y+ | | + | | jog-0-plus-1-plus | Two-axes Jog, X+ Y+ | |
- | | jog-0-plus-1-minus | Simultaneous two-axes Jog, X+ Y- | | + | | jog-0-plus-1-minus | Two-axes Jog, X+ Y- | |
- | | jog-0-minus-1-plus | Simultaneous two-axes Jog, X- Y+ | | + | | jog-0-minus-1-plus | Two-axes Jog, X- Y+ | |
- | | jog-0-minus-1-minus | Simultaneous two-axes Jog, X- Y- | | + | | jog-0-minus-1-minus | Two-axes Jog, X- Y- | |
- | | jog-overspeed-inc \\ jog-overspeed-dec | Increment/ | + | | jog-overspeed-inc \\ jog-overspeed-dec | Increment/ |
- | | jog-overspeed-set: | + | | jog-overspeed-set: |
+ | ++++ | ||
- | + | ++++ Motion Settings Actions | |
- | === Motion Settings Actions=== | + | |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 632: | Line 964: | ||
| spindle-overspeed-inc \\ spindle-overspeed-dec \\ spindle-overspeed | Increase/ | | spindle-overspeed-inc \\ spindle-overspeed-dec \\ spindle-overspeed | Increase/ | ||
- | === Built-in Editor Actions | + | ++++ |
+ | |||
+ | ++++ Built-in Editor Actions | ||
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 650: | Line 984: | ||
| editor-save-as | Save File As | | | editor-save-as | Save File As | | ||
| editor-save | Save the editor file | | | editor-save | Save the editor file | | ||
+ | ++++ | ||
- | === File Manipulation Actions | + | ++++ File Manipulation Actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 662: | Line 997: | ||
| image-import | Import an image into myCNC | | | image-import | Import an image into myCNC | | ||
+ | ++++ | ||
- | === Visualization Actions | + | ++++ Visualization Actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 675: | Line 1011: | ||
| 3dview-custom: | | 3dview-custom: | ||
+ | ++++ | ||
- | === Widget Manipulations Actions | + | ++++ Widget Manipulations Actions |
These actions allow to display widgets on the screen which are then used to change certain machine values/ | These actions allow to display widgets on the screen which are then used to change certain machine values/ | ||
Line 702: | Line 1039: | ||
| mywidget: | Older version of the syntax for mywidget commands (still functional, but no longer developed further). The name of the widget would be set after the colon, and then, after a doubleslash, | | mywidget: | Older version of the syntax for mywidget commands (still functional, but no longer developed further). The name of the widget would be set after the colon, and then, after a doubleslash, | ||
+ | ++++ | ||
- | + | ++++ Application Actions | |
- | === Application Actions | + | |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
| close-application | Close myCNC control software | | | close-application | Close myCNC control software | | ||
| cnc-config-save | Save myCNC configuration files to disk | | | cnc-config-save | Save myCNC configuration files to disk | | ||
+ | | system-process | Launch a system process / program by clicking a button within myCNC | | ||
+ | ++++ | ||
- | === Hardware Manipulation actions | + | ++++ Hardware Manipulation actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 742: | Line 1081: | ||
| toggle-button-mist | Toggles the mist state on/off | | | toggle-button-mist | Toggles the mist state on/off | | ||
| < | | < | ||
+ | ++++ | ||
- | === PLC Actions | + | ++++ PLC Actions |
Line 756: | Line 1096: | ||
| cnc-gvariable-switch | Newer syntax for a global variable switch between values from a data set. Data points will be written separated by a comma, and the next value in the list will be taken on every switch command | | | cnc-gvariable-switch | Newer syntax for a global variable switch between values from a data set. Data points will be written separated by a comma, and the next value in the list will be taken on every switch command | | ||
| cnc-gvariable-toggle | Toggles a global variable (writes 0 or 1 into the global variable, depending on the previous value) | | | cnc-gvariable-toggle | Toggles a global variable (writes 0 or 1 into the global variable, depending on the previous value) | | ||
+ | | cnc-gvariable-set | Set a variable (write a " | ||
+ | | cnc-gvariable-vset | Value set (write some value to a variable) | | ||
| cnc-gvariable-clear | Clears the value of a global variable | | | cnc-gvariable-clear | Clears the value of a global variable | | ||
+ | | cnc-gvariable-clr | Clears the value of a global variable | | ||
+ | ++++ | ||
- | === Job Actions | + | ++++ Job Actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 775: | Line 1119: | ||
| mode-show-workarea | Shows a box around the program visualization which will denote the work area (useful to see the minimum material dimensions necessary to fit the entire program file in) | | | mode-show-workarea | Shows a box around the program visualization which will denote the work area (useful to see the minimum material dimensions necessary to fit the entire program file in) | | ||
+ | ++++ | ||
- | === OS/System Actions | + | ++++ OS/System Actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 784: | Line 1129: | ||
| application-minimize | Minimize MyCNC Application | | | application-minimize | Minimize MyCNC Application | | ||
+ | ++++ | ||
- | === CNC Variables manupulation Actions | + | ++++ CNC Variables manupulation Actions |
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
| < | | < | ||
| < | | < | ||
- | | <del>cnc-gvariable-dec, | + | | cnc-gvariable-dec, |
- | | <del>cnc-variable-dec, | + | | < |
| < | | < | ||
| < | | < | ||
Line 799: | Line 1145: | ||
| item: | See [[mycnc: | | item: | See [[mycnc: | ||
- | | fake | Empty Handler Action. Nothing happens when you run this action | | + | | fake | Empty Handler Action. Nothing happens when you run this action. | |
| myitem-value-inc, | | myitem-value-inc, | ||
- | === HMI Actions | + | ++++ |
+ | |||
+ | ++++ HMI Actions | ||
^ Action Name ^ Description ^ | ^ Action Name ^ Description ^ | ||
Line 820: | Line 1168: | ||
| run-from-here | **Run From Here** command - start job from the selected line | | | run-from-here | **Run From Here** command - start job from the selected line | | ||
+ | ++++ | ||
+ | |||
+ | === Actions Examples === | ||
+ | |||
+ | ++++ system-process | | ||
+ | |||
+ | <code XML>< | ||
+ | | ||
+ | | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | The '' | ||
+ | |||
+ | The example above sends a '' | ||
+ | |||
+ | |||
+ | <code XML> action=" | ||
+ | |||
+ | For the program launch (system-process) command listed above, '' | ||
+ | |||
+ | For the example above, make sure to enable the " | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ====Style==== | ||
+ | |||
+ | The stylesheet specifies the fundamentals of the myCNC Graphical User Interface, and can be changed in //Settings > Config > Screen//: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The " | ||
+ | |||
+ | // | ||
+ | |||
+ | An example of the x.style file is shown below: | ||
+ | |||
+ | ++++ Expand code | | ||
+ | < | ||
+ | { | ||
+ | border: 4px solid ## | ||
+ | border-radius: | ||
+ | // | ||
+ | padding: 0px 0px 0px 0px; | ||
+ | } | ||
+ | |||
+ | |||
+ | QHeaderView, | ||
+ | { | ||
+ | border: 1px solid ## | ||
+ | border-radius: | ||
+ | border-style: | ||
+ | padding: 0px 0px 0px 0px; | ||
+ | |||
+ | font: bold 14px; | ||
+ | font-family: | ||
+ | |||
+ | } | ||
+ | |||
+ | QComboBox { | ||
+ | |||
+ | font: bold 14px; | ||
+ | font-family: | ||
+ | height: | ||
+ | selection-background-color: | ||
+ | selection-color: | ||
+ | border: 1px solid ##b-border; | ||
+ | border-radius: | ||
+ | |||
+ | |||
+ | |||
+ | QLineEdit, QSpinBox | ||
+ | { | ||
+ | font-size: bold 16px; | ||
+ | font-family: | ||
+ | height: | ||
+ | selection-background-color: | ||
+ | selection-color: | ||
+ | border: 1px solid ##b-border; | ||
+ | border-radius: | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | StatusBar, SLabel | ||
+ | { | ||
+ | font-size: 14px; | ||
+ | font-family: | ||
+ | background: ## | ||
+ | color: ## | ||
+ | } | ||
+ | |||
+ | S2Label | ||
+ | { | ||
+ | background: ## | ||
+ | color: ## | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | QHeaderView:: | ||
+ | QListView, QTreeView, KSvgToggleSwitch, | ||
+ | K45SideSelection, | ||
+ | QTableView, MyTabWidget, | ||
+ | NWidget, SWidget, QListWidget | ||
+ | { | ||
+ | background: ## | ||
+ | color: ## | ||
+ | } | ||
+ | |||
+ | |||
+ | // | ||
+ | // | ||
+ | |||
+ | KWidget | ||
+ | { | ||
+ | font: bold 14px; | ||
+ | font-family: | ||
+ | |||
+ | background: ## | ||
+ | color: ## | ||
+ | } | ||
+ | |||
+ | MessageLabel | ||
+ | { | ||
+ | font: bold 16px; | ||
+ | font-family: | ||
+ | |||
+ | background: ## | ||
+ | color: ## | ||
+ | } | ||
+ | |||
+ | NCListView | ||
+ | { | ||
+ | background: transparent; | ||
+ | color: blue; | ||
+ | selection-color: | ||
+ | selection0background-color: | ||
+ | } | ||
+ | |||
+ | NCListView:: | ||
+ | { | ||
+ | background: blue; | ||
+ | color: blue; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | QTableView {gridline-color: | ||
+ | |||
+ | QRadioButton | ||
+ | { | ||
+ | height: | ||
+ | color: ## | ||
+ | selection-background-color: | ||
+ | selection-color: | ||
+ | //border: 2px solid ##b-border; border-radius: | ||
+ | } | ||
+ | |||
+ | QRadioButton:: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | QSpinBox:: | ||
+ | QSpinBox:: | ||
+ | |||
+ | |||
+ | |||
+ | QComboBox QListView:: | ||
+ | QComboBox:: | ||
+ | |||
+ | |||
+ | QTreeView, QComboBox { | ||
+ | alternate-background-color: | ||
+ | } | ||
+ | |||
+ | QListView:: | ||
+ | QTreeView:: | ||
+ | QTreeView:: | ||
+ | { | ||
+ | selection-color: | ||
+ | selection-background-color: | ||
+ | } | ||
+ | |||
+ | |||
+ | QCheckBox {padding: 0px 0px 0px 0px; spacing: 5px; } | ||
+ | QCheckBox:: | ||
+ | QCheckBox:: | ||
+ | QCheckBox:: | ||
+ | |||
+ | QPushButton | ||
+ | {color: ## | ||
+ | border-color: | ||
+ | QPushButton: | ||
+ | QPushButton: | ||
+ | |||
+ | |||
+ | QTabWidget:: | ||
+ | |||
+ | QTabWidget:: | ||
+ | |||
+ | QTabBar:: | ||
+ | color: ## | ||
+ | background: ## | ||
+ | border: 2px solid ##b-border; border-bottom-color: | ||
+ | |||
+ | //MyTabBar { font: bold 14px; } | ||
+ | |||
+ | QTabBar:: | ||
+ | QTabBar:: | ||
+ | | ||
+ | | ||
+ | QTabBar:: | ||
+ | |||
+ | Notice that in the example above, the NCListView (the window that displays the G-code for the loaded control program) has been customized to feature a transparent background. In a similar way, other low-level GUI elements can be edited with custom colours that cannot othewise be accessed via the user-facing settings panel in myCNC Settings > Config > Screen > Colors. | ||
+ | |||
+ | |||
+ | ====Fonts==== | ||
+ | |||
+ | For the default profiles to align the text properly, Google' | ||
==== MyCNC screen configuration examples ==== | ==== MyCNC screen configuration examples ==== | ||
The examples for the screen configuration can be found here: [[mycnc: | The examples for the screen configuration can be found here: [[mycnc: | ||
mycnc/mycnc_screen_configuration.1572528097.txt.gz · Last modified: 2019/10/31 09:21 by ivan