1. Einführung

GMOCCAPY is a GUI for LinuxCNC, designed to be used with a touch screen, but can also be used on normal screens with a mouse or hardware buttons and MPG wheels, as it presents HAL Pins for the most common needs. Please find more information in the following.

It offers the possibility to display up to 9 axes, support a lathe mode for normal and back tool lathe and can be adapted to nearly every need, because GMOCCAPY supports embedded tabs and side panels. As a good example for that see gmoccapy_plasma.

GMOCCAPY 3 does support up to 9 axes and 9 joints. As GMOCCAPY 3 has been changed in code to support the joint / axis changes in LinuxCNC it does not work on 2.7 or 2.6 branch!

It has support for integrated virtual keyboard (onboard or matchbox-keyboard), so there is no need for a hardware keyboard or mouse, but it can also be used with that hardware. GMOCCAPY offers a separate settings page to configure most settings of the GUI without editing files.

GMOCCAPY can be localized very easy, because the corresponding files are separated from the linuxcnc.po files, so there is no need to translate unneeded stuff. The files are placed in /src/po/gmoccapy. You could just copy the gmoccapy.pot file to something like it.po and translate that file with gtranslator or poedit. After rebuilding, you’d get the GUI in your preference language. To facilitate the sharing of the translation, GMOCCAPY is available on the Weblate web interface. GMOCCAPY is currently available in English, German, Spanish, Polish, Serbian and Hungarian. Feel free to help me to introduce more languages, be it locally or via the web. If you need help, don’t hesitate to contact me on nieson@web.de.

2. Anforderungen

GMOCCAPY 3 has been tested on Debian Jessie, Debian Stretch and MINT 18 with LinuxCNC master and 2.8 release. It fully support joint / axis changes of LinuxCNC, making it suitable as GUI for Scara, Robots or any other config with more joints than axes. So it supports also gantry configs. If you use other versions, please inform about problems and / or solutions on the LinuxCNC forum or the German CNC Ecke Forum or LinuxCNC users mailing list.

The minimum screen resolution for GMOCCAPY for the normal layout (without side panels) is 980 x 750 Pixel, so it should fit to every standard screen. It is recommended to use screens with minimum resolution of 1024x768. There is also a configuration which fits for 800x600 screens (introduced in GMOCCAPY 3.4.8).

3. How to get GMOCCAPY

GMOCCAPY 3 is included in the standard distribution of LinuxCNC since release 2.7. So the easiest way to get GMOCCAPY on your controlling PC is just to download the ISO and install it from the CD/DVD/USB-stick. This allows you to receive updates with the regular Debian packages.

In the release notes aka changelist you can track the latest bugfixes and features.

Sie erhalten einen ähnlichen Bildschirm wie den folgenden (das Design kann je nach Ihrer Konfiguration variieren):

4. Basiseinstellung

GMOCCAPY 3 unterstützt die folgenden Befehlszeilenoptionen:

  • -user_mode: If set, the setup button will be disabled, so normal machine operators are not able to edit the settings of the machine.

  • -logo <path to logo file>: If given, the logo will hide the jog button tab in manual mode, this is only useful for machines with hardware buttons for jogging and increment selection.

Es gibt eigentlich nicht viel zu konfigurieren, um GMOCCAPY auszuführen, aber es gibt einige Punkte, die Sie beachten sollten, wenn Sie alle Funktionen der GUI nutzen wollen.

Sie werden eine Reihe von Simulationskonfigurationen (INI-Dateien) finden, die nur die Grundlagen zeigen:

  • gmoccapy.ini

  • gmoccapy_4_axis.ini

  • lathe_configs/gmoccapy_lathe.ini

  • lathe_configs/gmoccapy_lathe_imperial.ini

  • gmoccapy_left_panel.ini

  • gmoccapy_right_panel.ini

  • gmoccapy_messages.ini

  • gmoccapy_pendant.ini

  • gmoccapy_sim_hardware_button.ini

  • gmoccapy_tool_sensor.ini

  • gmoccapy_with_user_tabs.ini

  • gmoccapy_XYZAB.ini

  • gmoccapy_XYZAC.ini

  • gmoccapy_XYZCW.ini

  • gmoccapy-JA/Gantry/gantry_mm.ini

  • gmoccapy-JA/scara/scara.ini

  • gmoccapy-JA/table-rotary-tilting/xyzac-trt.ini

  • und vieles mehr …

Die Namen sollten den Hauptzweck der verschiedenen INI-Dateien erklären.

Wenn Sie eine bestehende Konfiguration Ihres Rechners verwenden, bearbeiten Sie einfach Ihre INI-Datei entsprechend diesem Dokument.

Schauen wir uns also die INI-Datei genauer an und was Sie einfügen müssen, um GMOCCAPY auf Ihrem Rechner zu verwenden:

4.1. Die DISPLAY-Sektion

[DISPLAY]
DISPLAY = gmoccapy
PREFERENCE_FILE_PATH = gmoccapy_preferences
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
DEFAULT_SPINDLE_SPEED = 500
LATHE = 1
BACK_TOOL_LATHE = 1
PROGRAM_PREFIX = ../../nc_files/
  • DISPLAY = gmoccapy - Damit wird LinuxCNC angewiesen, GMOCCAPY zu verwenden.

  • PREFERENCE_FILE_PATH - Gives the location and name of the preferences file to be used. In most cases this line will not be needed, it is used by GMOCCAPY to store your settings of the GUI, like themes, DRO units, colors, and keyboard settings, etc., see settings page for more details.

    Anmerkung
    If no path or file is given, GMOCCAPY will use as default <your_machinename>.pref, if no machine name is given in your INI File it will use gmoccapy.pref. The file will be stored in your config directory, so the settings will not be mixed if you use several configs. If you only want to use one file for several machines, you need to include PREFERENCE_FILE_PATH in your INI.
  • MAX_FEED_OVERRIDE = 1.5 - Sets the maximum feed override, in the example given, you will be allowed to override the feed by 150%.

    Anmerkung
    Wenn kein Wert angegeben wird, so wird er auf 1,0 gesetzt.
  • MIN_SPINDLE_OVERRIDE = 0.5 and MAX_SPINDLE_OVERRIDE = 1.2 - Will allow you to change the spindle override within a limit from 50% to 120%.

    Anmerkung
    If no values are given, MIN will be set to 0.1 and MAX to 1.0.
  • LATHE = 1 - Set the screen layout to control a lathe.

  • BACK_TOOL_LATHE = 1 - Is optional and will switch the X axis in a way you need for a back tool lathe. Also the keyboard shortcuts will react in a different way. It is allowed with GMOCCAPY to configure a lathe also with additional axes, so you may use also a XZCW config for a lathe.

    Tipp
    Siehe auch den Abschnitt speziell zu Drehmaschinen.
  • PROGRAM_PREFIX = ../../nc_files/ - Is the entry to tell LinuxCNC/GMOCCAPY where to look for the NGC files.

    Anmerkung
    If not specified, GMOCCAPY will look in the following order for NGC files: First linuxcnc/nc_files and then the users home directory.
  • DEFAULT_SPINDLE_SPEED - Start value for "Starting RPM" if value not present in preferences file or file is not present. Will have no effect with valid preferences file.

  • MIN_ANGULAR_VELOCITY - Sets the minimal jog velocity of the machine for rotary axes.

  • MAX_ANGULAR_VELOCITY - Sets the maximal jog velocity of the machine for rotary axes.

  • DEFAULT_ANGULAR_VELOCITY - Sets the default jog velocity of the machine for rotary axes.

4.2. Der TRAJ Abschnitt

  • DEFAULT_LINEAR_VELOCITY = 85.0 - Sets the default jog velocity of the machine.

    Anmerkung
    If not set, half of MAX_LINEAR_VELOCITY will be used. If that value is also not given, it will default to 180.
  • MAX_LINEAR_VELOCITY = 230.0 - Sets the maximal velocity of the machine. This value will also be the maximum linear jog velocity.

    Anmerkung
    Der Standardwert ist 600, falls nicht festgelegt.

4.3. Makro-Buttons

You can add macros to GMOCCAPY, similar to Touchy’s way. A macro is nothing else than a NGC file. You are able to execute complete CNC programs in MDI mode by just pushing one button. To do so, you first have to specify the search path for macros:

[RS274NGC]
SUBROUTINE_PATH = macros

This sets the path to search for macros and other subroutines. Several subroutine paths can be separated ":".

Dann müssen Sie nur noch einen Abschnitt wie diesen hinzufügen:

Configuration of Five Macros to be Shown in the MDI Button List
[MACROS]
MACRO = i_am_lost
MACRO = hello_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

Dann müssen Sie die entsprechenden NGC-Dateien bereitstellen, die diesen Regeln entsprechen müssen:

  • Der Name der Datei muss genau dem in der Makrozeile angegebenen Namen entsprechen, nur mit der Erweiterung ".ngc" (Groß- und Kleinschreibung beachten).

  • Die Datei muss ein Unterprogramm enthalten: O<i_am_lost> sub, der Name des Unterprogramms muss genau (Groß-/Kleinschreibung beachten) mit dem Namen des Makros übereinstimmen.

  • Die Datei muss mit einem endsub O<i_am_lost> endsub gefolgt von einem M2-Befehl enden.

  • Die Dateien müssen in einem Ordner abgelegt werden, der in Ihrer INI-Datei durch SUBROUTINE_PATH im Abschnitt RS274NGC angegeben ist

Der Code zwischen sub und endsub wird durch Betätigen der entsprechenden Makrotaste ausgeführt.

Anmerkung
A maximum of 16 macros will be shown in the GUI. Due to space reasons you may need to click on an arrow to switch the page and display hidden macro buttons. The macro buttons will be displayed in the order of the INI entries. It is no error placing more than 16 macros in your INI file, they will just not be shown.
Anmerkung
You will find the sample macros in a folder named macros placed in the GMOCCAPY sim folder. If you have given several subroutine paths, they will be searched in the order of the given paths. The first file found will be used.

GMOCCAPY akzeptiert auch Makros, die nach Parametern wie den folgenden fragen:

[MACROS]
MACRO = go_to_position X-pos Y-pos Z-pos

Die Parameter müssen durch Leerzeichen getrennt werden. Dieses Beiaspiel ruft eine Datei "go_to_position.ngc" mit dem folgenden Inhalt auf:

; Testdatei "go to position" (engl. für geh' zur Position)
; fährt die Maschine zu einer bestimmten Position

O<go_to_position> sub

G17
G21
G54
G61
G40
G49
G80
G90

;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>

(DBG, wird jetzt die Maschine zu X = #1 , Y = #2 , Z = #3 bewegen)
G0 X #1 Y #2 Z #3

O<go_to_position> endsub
M2

Nach dem Drücken der Taste Makro ausführen werden Sie aufgefordert, die Werte für X-pos Y-pos Z-pos einzugeben, und das Makro wird nur ausgeführt, wenn alle Werte angegeben wurden.

Anmerkung
Wenn Sie ein Makro ohne Bewegung verwenden möchten, beachten Sie auch die Hinweise in bekannte Probleme.
Makrobeispiel mit dem "Gehe zu Position"-Makro

images/gmoccapy_getting_macro_info_mid.png

4.4. Embedded Tabs and Panels

You can add embedded programs to GMOCCAPY like you can do in AXIS, Touchy and Gscreen. All is done by GMOCCAPY automatically if you include a few lines in your INI file in the DISPLAY section.

If you have never used a Glade panel, I recommend to read the excellent documentation on Glade VCP.

Beispiel für eingebettete Registerkarten
EMBED_TAB_NAME = DRO
EMBED_TAB_LOCATION = ntb_user_tabs
EMBED_TAB_COMMAND = gladevcp -x {XID} dro.glade

EMBED_TAB_NAME = Second user tab
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade

Alles, was Sie beachten müssen, ist, dass Sie für jede Registerkarte oder jedes Seitenfeld die genannten drei Zeilen einfügen:

  • EMBED_TAB_NAME = Stellt den Namen der Registerkarte oder des Seitenfensters dar, es ist Ihnen überlassen, welchen Namen Sie verwenden, aber er muss vorhanden sein!

  • EMBED_TAB_LOCATION = Der Ort, an dem Ihr Programm in der GUI platziert wird, siehe Abbildung Embedded tab locations. Gültige Werte sind:

    • ntb_user_tabs (as main tab, covering the complete screen)

    • ntb_preview (as tab on the preview side (1))

    • hbox_jog (will hide the jog buttons and introduce your glade file here (2))

    • box_left (on the left, complete high of the screen)

    • box_right (on the right, in between the normal screen and the button list)

    • box_tool_and_code_info (will hide the Tool information and G-code frames and introduce your glade file here (3))

    • box_tool_info (will hide the Tool information frame and introduce your glade file here)

    • box_code_info (will hide the G-code information frame and introduce your glade file here)

    • box_vel_info (will hide the velocity frames and introduce your glade file (4))

    • box_coolant_and_spindle (will hide the coolant and spindle frames and introduce your glade file here (5)+(6))

    • box_cooling (will hide the cooling frame and introduce your glade file (5))

    • box_spindle (will hide the spindle frame and introduce your glade file (6))

    • box_custom_1 (will introduce your glade file left of vel_frame)

    • box_custom_2 (will introduce your glade file left of cooling_frame)

    • box_custom_3 (will introduce your glade file left of spindle_frame)

    • box_custom_4 (will introduce your glade file right of spindle_frame)

    • box_dro_side (will introduce your glade file right of the DRO)

Anmerkung
Siehe auch die mitgelieferten INI-Beispieldateien, um die Unterschiede zu sehen.
  • EMBED_TAB_COMMAND = Der auszuführende Befehl, d. h.

    gladevcp -x {XID} dro.glade

    includes a custom glade file called dro.glade in the mentioned location. The file must be placed in the config folder of your machine.

    gladevcp h_buttonlist.glade

    will just open a new user window called h_buttonlist.glade note the difference. This one is stand alone, and can be moved around independent from GMOCCAPY window.

    gladevcp -c gladevcp -u hitcounter.py -H manual-example.hal manual-example.ui

    fügt das Panel manual-example.ui hinzu, fügt einen benutzerdefinierten Python-Handler, hitcounter.py, ein und stellt alle Verbindungen her, nachdem das Panel gemäß manual-example.hal realisiert wurde.

    hide (engl. für ausblenden)

    blendet das gewählte Kästchen aus.

images/gmoccapy_embedded_tabs.png
Abbildung 1. Eingebettete Registerkartenpositionen
Anmerkung
If you make any HAL connections to your custom glade panel, you need to do that in the HAL file specified in the EMBED_TAB_COMMAND line, otherwise you may get an error that the HAL pin does not exist — this is because of race conditions loading the HAL files. Connections to GMOCCAPY HAL pins need to be made in the postgui HAL file specified in your INI file, because these pins do not exist prior of realizing the GUI.

Hier sind einige Beispiele:

ntb_preview

images/gmoccapy_ntb_preview_small.png

box_right - and GMOCCAPY in MDI mode

images/gmoccapy_with_right_panel_in_MDI_mode_small.png

4.5. User Created Messages

GMOCCAPY has the ability to create HAL driven user messages. To use them you need to introduce some lines in the [DISPLAY] section of the INI file.

Diese drei Zeilen werden benötigt, um einen Popup-Meldungsdialog für den Benutzer zu definieren:

MESSAGE_TEXT = Der anzuzeigende Text, kann mit Tango-Markup formatiert sein
MESSAGE_TYPE = "status" , "okdialog" , "yesnodialog"
MESSAGE_PINNAME = ist der Name der zu erstellenden HAL-Pin-Gruppe

Die Nachrichten unterstützen die Auszeichnungssprache Pango. Detaillierte Informationen über die Auszeichnungssprache finden Sie unter Pango Markup.

Die folgenden drei Dialogtypen sind verfügbar:

  • status - Will just display a message as pop up window, using the messaging system of GMOCCAPY.

  • okdialog - Will hold focus on the message dialog and will activate a -waiting HAL pin.

  • yesnodialog - Will hold focus on the message dialog and will activate a -waiting HAL pin and provide a -response HAL pin.

For more detailed information of the pins see User Created Message HAL Pins.

Beispiel für die Konfiguration von Benutzernachrichten
MESSAGE_TEXT = This is a <span background="#ff0000" foreground="#ffffff">info-message</span> test
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest

MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yesnodialog

MESSAGE_TEXT = Text can be <small>small</small>, <big>big</big>, <b>bold</b <i>italic</i>, and even be <span color="red">colored</span>.
MESSAGE_TYPE = okdialog
MESSAGE_PINNAME = okdialog
Anmerkung
Derzeit funktioniert die Formatierung nicht.

4.6. Vorschau Kontrolle

Magic comments can be used to control the G-code preview. On very large programs the preview can take a long time to load. You can control what is shown and what is hidden on the graphics screen by adding the appropriate comments from this list into your G-code:

(PREVIEW,hide)
<G-code to be hidden>
(PREVIEW,show)

4.7. User Command File

If a file ~/.gmoccapyrc exists, its contents are executed as Python source code just after the GUI is displayed. The details of what may be written in the ~/.gmoccapyrc are subject to change during the development cycle.

A configuration-specific Python file may be specified with an INI file setting

[DISPLAY]
USER_COMMAND_FILE=filename.py

If this file is specified, this file is sourced just after the GMOCCAPY GUI is displayed instead of ~/.gmoccapyrc.

The following example changes the size of the vertical buttons: .Example of .gmoccapyrc file

self.widgets.vbtb_main.set_size_request(85,-1)
BB_SIZE = (70, 70) # default = (90, 56)
self.widgets.tbtn_estop.set_size_request(*BB_SIZE)
self.widgets.tbtn_on.set_size_request(*BB_SIZE)
self.widgets.rbt_manual.set_size_request(*BB_SIZE)
self.widgets.rbt_mdi.set_size_request(*BB_SIZE)
self.widgets.rbt_auto.set_size_request(*BB_SIZE)
self.widgets.tbtn_setup.set_size_request(*BB_SIZE)
self.widgets.tbtn_user_tabs.set_size_request(*BB_SIZE)
self.widgets.btn_exit.set_size_request(*BB_SIZE)

The widget names can the looked up in the /usr/share/gmoccapy.glade file

4.8. User CSS File

Similar to the User command file it’s possible to influence the appearance by cascading style sheets (CSS). If a file ~/.gmoccapy_css exists, its contents are loaded into the stylesheet provider and are so being applied to the GUI.

A configuration-specific CSS file may be specified with an INI file setting

[DISPLAY]
USER_CSS_FILE=filename.css

If this file is specified, this file is used instead of ~/.gmoccapy_css.

Information what can be controlled by CSS can be found here: Overview of CSS in GTK

Here an example how the color of checked buttons can be set to yellow: .Example Yellow color for checked buttons

button:checked {
    background: rgba(250,230,0,0.8);
}

4.9. Protokollierung (engl. logging)

GMOCCAPY supports specifying the level of information (log level) that will be printed to the console and to the log file.

The order is VERBOSE, DEBUG, INFO, WARNING, ERROR, CRITICAL. Default is WARNING, that means WARNING, ERROR and CRITICAL are printed.

You can specify the log level in the INI file like this:

[DISPLAY]
DISPLAY = gmoccapy <log_level_param>

using these parameters:

Log level   <log_level_param>
DEBUG       -d
INFO        -i
VERBOSE     -v
ERROR       -q
Example: Configure logging to print only errors
[DISPLAY]
DISPLAY = gmoccapy -q

You can specify where to save the log file:

[DISPLAY]
LOG_FILE = gmoccapy.log

If LOG_FILE is not set, logging happens to $HOME/<base_log_name>.log.

5. HAL-Pins

GMOCCAPY exports several HAL pins to be able to react to hardware devices. The goal is to get a GUI that may be operated in a tool shop, completely/mostly without mouse or keyboard.

Anmerkung

Sie müssen alle Verbindungen zu GMOCCAPY-Pins in Ihrer postgui.hal-Datei herstellen. Wenn GMOCCAPY gestartet wird, erstellt es die HAL-Pins für die GUI und führt dann die in der INI-Datei genannte post-GUI-HAL-Datei aus:

[HAL]
POSTGUI_HALFILE=<Dateiname>

Typischerweise wäre <Dateiname> der Basisname der Konfiguration + _postgui.hal, z.B. lathe_postgui.hal, aber es kann jeder legale Dateiname sein.
Diese Befehle werden nach der Erstellung des Bildschirms ausgeführt und garantieren, dass die HAL-Pins des Widgets verfügbar sind.
Sie können mehrere Zeilen mit POSTGUI_HALFILE=<Dateiname> in der INI-Datei haben. Sie werden nacheinander in der Reihenfolge ausgeführt, in der sie erscheinen.

5.1. Right and Bottom Button Lists

The screen has two main button lists, one on the right side an one on the bottom. The right handed buttons will not change during operation, but the bottom button list will change very often. The buttons are count from up to down and from left to right beginning with 0.

Anmerkung
The pin names have changed in GMOCCAPY 2 to order them in a better way.

The pins for the right (vertical) buttons are:

  • gmoccapy.v-button.button-0 (bit IN)

  • gmoccapy.v-button.button-1 (bit IN)

  • gmoccapy.v-button.button-2 (bit IN)

  • gmoccapy.v-button.button-3 (bit IN)

  • gmoccapy.v-button.button-4 (bit IN)

  • gmoccapy.v-button.button-5 (bit IN)

  • gmoccapy.v-button.button-6 (bit IN)

For the bottom (horizontal) buttons they are:

  • gmoccapy.h-button.button-0 (bit IN)

  • gmoccapy.h-button.button-1 (bit IN)

  • gmoccapy.h-button.button-2 (bit IN)

  • gmoccapy.h-button.button-3 (bit IN)

  • gmoccapy.h-button.button-4 (bit IN)

  • gmoccapy.h-button.button-5 (bit IN)

  • gmoccapy.h-button.button-6 (bit IN)

  • gmoccapy.h-button.button-7 (bit IN)

  • gmoccapy.h-button.button-8 (bit IN)

  • gmoccapy.h-button.button-9 (bit IN)

As the buttons in the bottom list will change according to the mode and other influences, the hardware buttons will activate the displayed functions. So you don’t have to take care about switching functions around in HAL, because that is done completely by GMOCCAPY!

Bei einer dreiachsigen XYZ-Maschine reagieren die HAL-Pins wie in den folgenden drei Tabellen dargestellt:

Tabelle 1. Funktionelle Zuordnung der horizontalen Buttons (1)
Pin Manual Mode MDI Mode Auto Mode

gmoccapy.h-button.button-0

open homing button

macro_0 oder nichts

open file

gmoccapy.h-button.button-1

Offenes Touch-Off-Krims

macro_1 oder nichts

reload program

gmoccapy.h-button.button-2

macro_2 oder nichts

run

gmoccapy.h-button.button-3

open tool dialogs

macro_3 oder nichts

stop

gmoccapy.h-button.button-4

macro_4 oder nichts

pause

gmoccapy.h-button.button-5

macro_5 oder nichts

step by step

gmoccapy.h-button.button-6

macro_6 oder nichts

run from line if enabled in settings, otherwise Nothing

gmoccapy.h-button.button-7

macro_7 oder nichts

optional blocks

gmoccapy.h-button.button-8

full-size preview

macro_8 or switch page to additional macros

full-size preview

gmoccapy.h-button.button-9

exit if machine is off, otherwise no reaction

open keyboard or abort if macro is running

Code bearbeiten

Tabelle 2. Funktionszuweisung der horizontalen Buttons (2)
Pin Settings Mode Homing Mode Touch-Off-Modus

gmoccapy.h-button.button-0

delete MDI history

edit offsets

gmoccapy.h-button.button-1

home all

touch X

gmoccapy.h-button.button-2

touch Y

gmoccapy.h-button.button-3

home x

touch Z

gmoccapy.h-button.button-4

open classic ladder

home y

gmoccapy.h-button.button-5

öffnen von HAL-scope

home z

gmoccapy.h-button.button-6

HAL-Status öffnen

zero G92

gmoccapy.h-button.button-7

open HAL meter

gmoccapy.h-button.button-8

HAL-Kalibrierung öffnen

unhome all

set selected

gmoccapy.h-button.button-9

öffnen von HAL-show

back

back

Tabelle 3. Funktionelle Zuordnung der horizontalen Buttons (3)
Pin Tool Mode Edit Mode Select File

gmoccapy.h-button.button-0

delete tool(s)

go to home directory

gmoccapy.h-button.button-1

new tool

reload file

one directory level up

gmoccapy.h-button.button-2

Werkzeugtabelle neu laden

speichern

gmoccapy.h-button.button-3

Änderungen übernehmen

speichern unter

move selection left

gmoccapy.h-button.button-4

change tool by number T? M6

move selection right

gmoccapy.h-button.button-5

set tool by number without change M61 Q?

jump to directory as set in settings

gmoccapy.h-button.button-6

change tool to the selected one

new file

gmoccapy.h-button.button-7

select / ENTER

gmoccapy.h-button.button-8

Werkzeugberührung in Z

show keyboard

gmoccapy.h-button.button-9

back

back

back

Wir haben also 67 Reaktionen mit nur 10 HAL-Pins!

These pins are made available to be able to use the screen without a touch panel, or protect it from excessive use by placing hardware buttons around the panel. They are available in a sample configuration like shown in the image below.

Sample configuration "gmoccapy_sim_hardware_button" showing the side buttons

images/gmoccapy_sim_hardware_button_mid.png

5.2. Velocities and Overrides

All sliders from GMOCCAPY can be connected to hardware encoders or hardware potentiometers.

Anmerkung
For GMOCCAPY 3 some HAL pin names have changed when new controls have been implemented. Max velocity does not exist any more, it was replaced by rapid override due to the demand of many users.

To connect encoders, the following pins are exported:

  • gmoccapy.jog.jog-velocity.counts (s32 IN) - Jog velocity

  • gmoccapy.jog.jog-velocity.count-enable (bit IN) - Must be True, to enable counts

  • gmoccapy.feed.feed-override.counts (s32 IN) - feed override

  • gmoccapy.feed.feed-override.count-enable (bit IN) - Must be True, to enable counts

  • gmoccapy.feed.reset-feed-override (bit IN) - reset the feed override to *0%

  • gmoccapy.spindle.spindle-override.counts (s32 IN) - spindle override

  • gmoccapy.spindle.spindle-override.count-enable (bit IN) - Must be True, to enable counts

  • gmoccapy.spindle.reset-spindle-override (bit IN) - reset the spindle override to *0%

  • gmoccapy.rapid.rapid-override.counts (s32 IN) - Maximal Velocity of the *chine

  • gmoccapy.rapid.rapid-override.count-enable (bit IN) - Must be True, to enable counts

To connect potentiometers, use the following pins:

  • gmoccapy.jog.jog-velocity.direct-value (float IN) - To adjust the jog velocity slider

  • gmoccapy.jog.jog-velocity.analog-enable (bit IN) - Must be True, to allow analog inputs

  • gmoccapy.feed.feed-override.direct-value (float IN) - To adjust the feed override slider

  • gmoccapy.feed.feed-override.analog-enable (bit IN) - Must be True, to allow analog inputs

  • gmoccapy.spindle.spindle-override.direct-value (float IN) - To adjust the spindle override slider

  • gmoccapy.spindle.spindle-override.analog-enable (bit IN) - Must be True, to allow analog inputs

  • gmoccapy.rapid.rapid-override.direct-value (float) - To adjust the max velocity slider

  • gmoccapy.rapid.rapid-override.analog-enable (bit IN) - Must be True, to allow analog inputs

In addition, GMOCCAPY 3 offers additional HAL pins to control the new slider widgets with momentary switches. The values how fast the increase or decrease will be, must be set in the glade file. In a future release it will be integrated in the settings page.

GESCHWINDIGKEIT
  • gmoccapy.spc_jog_vel.increase (bit IN) - As long as True the value of the slider will increase

  • gmoccapy.spc_jog_vel.decrease (bit IN) - As long as True the value of the slider will decrease

  • gmoccapy.spc_jog_vel.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec)

  • gmoccapy.spc_jog_vel.value (float OUT) - Value of the widget

  • gmoccapy.spc_jog_vel.scaled-value (float OUT) - Scaled value of the widget .FEED

  • gmoccapy.spc_feed.increase (bit IN) - As long as True the value of the slider will increase

  • gmoccapy.spc_feed.decrease (bit IN) - As long as True the value of the slider will decrease

  • gmoccapy.spc_feed.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec)

  • gmoccapy.spc_feed.value (float OUT) - Value of the widget

  • gmoccapy.spc_feed.scaled-value (float OUT) - Scaled value of the widget .SPINDLE

  • gmoccapy.spc_spindle.increase (bit IN) - As long as True the value of the slider will increase

  • gmoccapy.spc_spindle.decrease (bit IN) - As long as True the value of the slider will decrease

  • gmoccapy.spc_spindle.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec)

  • gmoccapy.spc_spindle.value (float OUT) - Value of the widget

  • gmoccapy.spc_spindle.scaled-value (float OUT) - Scaled value of the widget .RAPIDS

  • gmoccapy.spc_rapid.increase (bit IN) - As long as True the value of the slider will increase

  • gmoccapy.spc_rapid.decrease (bit IN) - As long as True the value of the slider will decrease

  • gmoccapy.spc_rapid.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec)

  • gmoccapy.spc_rapid.value (float OUT) - Value of the widget

  • gmoccapy.spc_rapid.scaled-value (float OUT) - Scaled value of the widget

The float pins do accept values from 0.0 to 1.0, being the percentage value you want to set the slider value.

Warnung
If you use both connection types, do not connect the same slider to both pin as the influences between the two has not been tested! Different sliders may be connected to the one or other HAL connection type.
Wichtig
Please be aware that the jog velocity depends on the turtle button state. It will lead to different slider scales depending on the mode (turtle or rabbit). Please take also a look at jog velocities and turtle-jog HAL pin for more details.
Beispiel 1. Setting a slider value

Spindle Override Min Value = 20 %
Spindle Override Max Value = 120 %
gmoccapy.analog-enable = 1
gmoccapy.spindle-override-value = 0.25

value to set = Min Value + (Max Value - Min Value) * gmoccapy.spindle-override-value
value to set = 20 + (120 - 20) * 0.25
value to set = 45 %

5.3. Jog HAL Pins

Alle Achsen, die in der INI-Datei angegeben sind, haben einen Jog-Plus- und einen Jog-Minus-Pin, so dass Hardware-Taster verwendet werden können, um die Achse zu joggen.

Anmerkung
Die Benennung dieser HAL-Pins hat sich in GMOCCAPY 2 geändert.

For the standard XYZ config following HAL pins will be available:

  • gmoccapy.jog.axis.jog-x-plus (bit IN)

  • gmoccapy.jog.axis.jog-x-minus (bit IN)

  • gmoccapy.jog.axis.jog-y-plus (bit IN)

  • gmoccapy.jog.axis.jog-y-minus (bit IN)

  • gmoccapy.jog.axis.jog-z-plus (bit IN)

  • gmoccapy.jog.axis.jog-z-minus (bit IN)

Wenn Sie eine 4-Achsen-Konfiguration verwenden, gibt es zwei zusätzliche Pins:

  • gmoccapy.jog.jog-<your fourth axis letter >-plus (bit IN)

  • gmoccapy.jog.jog-<your fourth axis letter >-minus (bit IN)

For a C-axis you will see:

  • gmoccapy.jog.axis.jog-c-plus (bit IN)

  • gmoccapy.jog.axis.jog-c-minus (bit IN)

5.4. Jog Velocities and Turtle-Jog HAL Pin

The jog velocity can be selected with the corresponding slider. The scale of the slider will be modified if the turtle button (the one showing a rabbit or a turtle) has been toggled. If the button is not visible, it might have been disabled on the settings page. If the button shows the rabbit-icon, the scale is from min to max machine velocity. If it shows the turtle, the scale will reach only 1/20 of max velocity by default. The used divider can be set on the settings page.

Mit einem Touchscreen ist es also viel einfacher, kleinere Geschwindigkeiten auszuwählen.

GMOCCAPY bietet diesen HAL-Pin an, um zwischen Hasen- und Igel-Joggen zu wechseln:

  • gmoccapy.jog.turtle-jog (bit IN)

5.5. Jog Increment HALPins

The jog increments given in the INI file like

[DISPLAY]
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm

are selectable through HAL pins, so a selection hardware switch can be used to select the increment to use. There will be a maximum of 10 HAL pins for the increments given in the INI file. If you give more increments in your INI file, they will be not reachable from the GUI as they will not be displayed.

Wenn Sie 6 Inkremente in Ihrer INI-Datei haben, wie im obigen Beispiel, erhalten Sie 7 Pins:

  • gmoccapy.jog.jog-inc-0 (bit IN) - This one is fixed and will represent continuous jogging.

  • gmoccapy.jog.jog-inc-1 (bit IN) - First increment given in the INI file.

  • gmoccapy.jog.jog-inc-2 (bit IN)

  • gmoccapy.jog.jog-inc-3 (bit IN)

  • gmoccapy.jog.jog-inc-4 (bit IN)

  • gmoccapy.jog.jog-inc-5 (bit IN)

  • gmoccapy.jog.jog-inc-6 (bit IN)

GMOCCAPY bietet auch einen HAL-Pin zur Ausgabe der gewählten Jog-Schrittweite:

  • gmoccapy.jog.jog-increment (float OUT)

5.6. Hardware-Entsperr-Pin

Um einen Schlüsselschalter zum Entsperren der Einstellungsseite verwenden zu können, wird der folgende Pin exportiert:

  • gmoccapy.unlock-settings (bit IN) - The settings page is unlocked if the pin is high. To use this pin, you need to activate it on the settings page.

5.7. Fehler/Warnung Pins

  • gmoccapy.error (bit OUT) - Indicates an error, so a light can lit or even the machine may be stopped. It will be reset with the pin gmoccapy.delete-message.

  • gmoccapy.delete-message (bit IN) - Will delete the first error and reset the gmoccapy.error pin to false after the last error has been cleared.

  • gmoccapy.warning-confirm (bit IN) - Confirms warning dialog like click on OK

Anmerkung

Messages or user infos will not affect the gmoccapy.error pin, but the gmoccapy.delete-message pin will delete the last message if no error is shown!

5.8. Vom Benutzer erstellte HAL-Pins für Nachrichten

GMOCCAPY may be configured to react to external errors, using 3 different user messages:

status
  • gmoccapy.messages.status (bit IN) - Triggers the dialog.

okdialog
  • gmoccapy.messages.okdialog (bit IN) - Triggers the dialog.

  • gmoccapy.messages.okdialog-waiting (bit OUT) - Will be 1 as long as the dialog is open. Closing the message will reset the this pin.

yesnodialog
  • gmoccapy.messages.yesnodialog (bit IN) - Triggers the dialog.

  • gmoccapy.messages.yesnodialog-waiting (bit OUT) - Will be 1 as long as the dialog is open. Closing the message will reset the this pin.

  • gmoccapy.messages.yesnodialog-response (bit OUT) - This pin will change to 1 if the user clicks OK and in all other cases it will be 0. This pin will remain 1 until the dialog is called again.

To add a user created message you need to add the message to the INI file in the DISPLAY section. See Configuration of User Created Messages.

Beispiel für eine Benutzermeldung (INI-Datei)
MESSAGE_TEXT = LUBE FAULT
MESSAGE_TYPE = okdialog
MESSAGE_PINNAME = lube-fault

MESSAGE_TEXT = X SHEAR PIN BROKEN
MESSAGE_TYPE = status
MESSAGE_PINNAME = pin

Um diese neuen Pins zu verbinden, müssen Sie dies in der postgui-HAL-Datei tun. Hier sind einige Beispielverbindungen zum Verbinden der Nachrichtensignale mit anderen Stellen in der HAL-Datei.

Beispiel für den Anschluss von Benutzernachrichten (HAL-Datei)
net gmoccapy-lube-fault gmoccapy.messages.lube-fault
net gmoccapy-lube-fault-waiting gmoccapy.messages.lube-fault-waiting
net gmoccapy-pin gmoccapy.messages.pin

Für weitere Informationen über HAL-Dateien und den net-Befehl siehe HAL Basics.

5.9. Spindel-Feedback-Pins

Es gibt zwei Pins für das Spindelfeedback:

  • gmoccapy.spindle_feedback_bar (float IN) - Pin to show the spindle speed on the spindle bar.

  • gmoccapy.spindle_at_speed_led (bit IN) - Pin to lit the is-at-speed-led.

5.10. Pins to Indicate Program Progress Information

There are three pins giving information about the program progress:

  • gmoccapy.program.length (s32 OUT) - Shows the total number of lines of the program.

  • gmoccapy.program.current-line (s32 OUT) - Indicates the current working line of the program.

  • gmoccapy.program.progress (float OUT) - Gives the program progress in percentage.

The values may not be very accurate if you are working with subroutines or large remap procedures. Also loops will cause different values.

Werkzeugwechsel-Pins

These pins are provided to use GMOCCAPY’s internal tool change dialog, similar to the one known from AXIS, but with several modifications. So you will not only get the message to change to tool number 3, but also the description of that tool like 7.5 mm 3 flute cutter. The information is taken from the tool table, so it is up to you what to display.

Manueller Werkzeugwechsel
Abbildung 2. GMOCCAPY tool change dialog
  • gmoccapy.toolchange-number (s32 IN) - The number of the tool to be changed

  • gmoccapy.toolchange-change (bit IN) - Indicates that a tool has to be changed

  • gmoccapy.toolchange-changed (bit OUT) - Indicates tool has been changed

  • gmoccapy.toolchange-confirm (bit IN) - Confirms tool change

Normalerweise werden sie für einen manuellen Werkzeugwechsel so angeschlossen:

net tool-change gmoccapy.toolchange-change <= iocontrol.0.tool-change
net tool-changed gmoccapy.toolchange-changed <= iocontrol.0.tool-changed
net tool-prep-number gmoccapy.toolchange-number <= iocontrol.0.tool-prep-number
net tool-prep-loop iocontrol.0.tool-prepare <= iocontrol.0.tool-prepared
Anmerkung
Bitte beachten Sie, dass diese Verbindungen in der postgui HAL Datei vorgenommen werden müssen.
Werkzeug-Offset Pins

These pins allow you to show the active tool offset values for X and Z in the tool information frame. You should know that they are only active after G43 has been sent.

Werkzeuginformationen
Abbildung 3. Tool information area
  • gmoccapy.tooloffset-x (float IN)

  • gmoccapy.tooloffset-z (float IN)

Anmerkung
Die Zeile "tooloffset-x" wird bei einer Fräsmaschine nicht benötigt und wird bei einer Fräsmaschine mit trivialer Kinematik nicht angezeigt.

Um die aktuellen Offsets anzuzeigen, müssen die Pins in der postgui-HAL-Datei wie folgt verbunden werden:

net tooloffset-x gmoccapy.tooloffset-x <= motion.tooloffset.x
net tooloffset-z gmoccapy.tooloffset-z <= motion.tooloffset.z
Wichtig
Bitte beachten Sie, dass GMOCCAPY selbst dafür sorgt, die Offsets zu aktualisieren, indem es nach jedem Werkzeugwechsel ein G43 sendet, aber nicht im Auto-Modus!
Wenn Sie also ein Programm schreiben, sind Sie dafür verantwortlich, nach jedem Werkzeugwechsel ein G43 zu senden!

6. Automatische Werkzeugmessung

GMOCCAPY offers an integrated auto tool measurement. To use this feature, you will need to do some additional settings and you may want to use the offered HAL pin to get values in your own NGC remap procedure.

Wichtig
Before starting the first test, do not forget to enter the probe height and probe velocities on the settings page! See Settings Page Tool Measurement.

It might be also a good idea to take a look at the tool measurement video, see tool measurement related videos.

Tool Measurement in GMOCCAPY is done a little bit different to many other GUIs. You should follow these steps:

  1. Touch off your workpiece in X and Y.

  2. Messen Sie die Höhe Ihres Blocks von der Basis, an der sich Ihr Werkzeugschalter befindet, bis zur Oberseite des Blocks (einschließlich Spannfutter usw.).

  3. Drücken Sie die Taste Blockhöhe und geben Sie den Messwert ein.

  4. Gehen Sie in den Automatikmodus und starten Sie Ihr Programm.

Hier ist eine kleine Skizze:

images/sketch_auto_tool_measurement.png
Abbildung 4. Werkzeugmessung Daten

With the first given tool change the tool will be measured and the offset will be set automatically to fit the block height. The advantage of the GMOCCAPY way is, that you do not need a reference tool.

Anmerkung

Your program must contain a tool change at the beginning! The tool will be measured, even it has been used before, so there is no danger, if the block height has changed. There are several videos showing the way to do that on YouTube.

6.1. Provided Pins

GMOCCAPY offers five pins for tool measurement purposes. These pins are mostly used to be read from a G-code subroutine, so the code can react to different values.

  • gmoccapy.toolmeasurement (bit OUT) - Enable or not tool measurement

  • gmoccapy.blockheight (float OUT) - The measured value of the top face of the workpiece

  • gmoccapy.probeheight (float OUT) - The probe switch height

  • gmoccapy.searchvel (float OUT) - The velocity to search for the tool probe switch

  • gmoccapy.probevel (float OUT) - The velocity to probe tool length

6.2. INI File Modifications

Ändern Sie Ihre INI-Datei so, dass sie die folgenden Abschnitte enthält.

Der RS274NGC-Abschnitt
[RS274NGC]
# Unterfunktion wird aufgerufen, wenn ein Fehler beim Werkzeugwechsel auftritt, wird nicht bei jeder Maschinenkonfiguration benötigt
ON_ABORT_COMMAND=O <on_abort> call

# The remap code
REMAP=M6  modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog
Anmerkung
Stellen Sie sicher, dass INI_VARS und HAL_PIN_VARS nicht auf 0 gesetzt sind, sondern standardmäßig auf 1.
Der Abschnitt Werkzeugsensor (engl. tool sensor)

The position of the tool sensor and the start position of the probing movement, all values are absolute coordinates, except MAXPROBE, which must be given in relative movement.

[TOOLSENSOR]
X = 10
Y = 10
Z = -20
MAXPROBE = -20
Der Abschnitt "Position ändern"

Die Position wird nicht absichtlich TOOL_CHANGE_POSITION genannt - canon verwendet diesen Namen und stört sonst. Die Position, an welche die Maschine bewegt werden soll, bevor der Befehl zum Werkzeugwechsel gegeben wird. Alle Werte sind in absoluten Koordinaten.

[CHANGE_POSITION]
X = 10
Y = 10
Z = -2
Die Python-Sektion

Das Python-Plug-in dient als Interpreter und Task.

[PYTHON]
# The path to start a search for user modules
PATH_PREPEND = python
# The start point for all.
TOPLEVEL = python/toplevel.py

6.3. Benötigte Dateien

Erstellen Sie zunächst ein Verzeichnis "python" in Ihrem Konfigurationsverzeichnis. Kopieren Sie von <Ihr_linuxcnc-dev_verzeichnis>/configs/sim/gmoccapy/python die folgenden Dateien in den gerade erstellten Ordner config_dir/python:

  • toplevel.py

  • remap.py

  • stdglue.py

Von <Ihr_linuxcnc-dev_Verzeichnis>/configs/sim/gmoccapy/macros kopieren

  • on_abort.ngc

  • change.ngc

to the directory specified as SUBROUTINE_PATH, see RS274NGC Section.

Open change.ngc with a editor and uncomment the following lines (49 and 50):

F #<_hal[gmoccapy.probevel]>
G38.2 Z-4

Möglicherweise möchten Sie diese Datei an Ihre Bedürfnisse anpassen.

6.4. Benötigte HAL-Verbindungen

Schließen Sie die Werkzeugsonde in Ihrer HAL-Datei wie folgt an:

net probe motion.probe-input <= <Ihr_input_pin>

Die Zeile könnte so aussehen:

net probe  motion.probe-input <= parport.0.pin-15-in

In your postgui.hal file add the following lines:

# Die nächsten Zeilen werden nur benötigt, wenn die Pins vorher angeschlossen waren.
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.werkzeug-gewechselt
unlinkp iocontrol.0.werkzeug-vorbereitung-nummer
unlinkp iocontrol.0.werkzeug-vorbereitet

# Verknüpfung mit GMOCCAPY toolchange, damit Sie den Vorteil der Werkzeugbeschreibung im Änderungsdialog nutzen können
net tool-change gmoccapy.toolchange-change <= iocontrol.0.tool-change
net tool-changed gmoccapy.toolchange-changed <= iocontrol.0.tool-changed
net tool-prep-number gmoccapy.toolchange-number <= iocontrol.0.tool-prep-number
net tool-prep-loop iocontrol.0.tool-prepare <= iocontrol.0.tool-prepared

7. Die Einstellungsseite

To enter the page you will have to click on images/gmoccapy_settings_button.png and give an unlock code, which is 123 by default. If you want to change it at this time you will have to edit the hidden preference file, see the display section for details.

Die Seite ist in drei Hauptregisterkarten unterteilt:

7.1. Erscheinungsbild

Konfigurationsseite
Abbildung 5. GMOCCAPY Einstellungsseite Erscheinungsbild

Auf dieser Registerkarte finden Sie die folgenden Optionen:

Hauptfenster

Here you can select how you wish the GUI to start. The main reason for this was the wish to get an easy way for the user to set the starting options without the need to touch code. You have three options:

  • Start as full screen

  • Start maximized

  • Start als Fenster - Wenn Sie "Start als Fenster" wählen, werden die Spinboxen zum Einstellen der Position und Größe aktiv. Einmal eingestellt, startet die GUI jedes Mal an der gewählten Stelle und mit der gewählten Größe. Dennoch kann der Benutzer die Größe und Position mit der Maus verändern, was aber keinen Einfluss auf die Einstellungen hat.

  • hide title bar - Allows the title bar to be hidden. (default: title bar visible).

  • hide cursor - Does allow to hide the cursor, what is very useful if you use a touch screen.

  • hide tooltips - Hides the tool tips.

Virtuelle Tastatur

The checkboxes allow the user to select if he wants the on board keyboard to be shown immediately when entering the MDI Mode, the offset page, the tooledit widget or when open a program in the EDIT mode. The keyboard button on the bottom button list will not be affected by these settings, so you are able to show or hide the keyboard by pressing the button.

The default setting is:

  • Show keyboard on offset = False

  • Show keyboard on tooledit = False

  • Show keyboard on MDI = True

  • Show keyboard on EDIT = True

  • Show keyboard on load file = False

Anmerkung
If this section is not sensitive, you have not installed a virtual keyboard, supported ones are onboard and matchbox-keyboard.
Anmerkung

If the keyboard layout is not correct, i.e. clicking Y gives Z, than the layout has not been set properly, related to your locale settings. For onboard it can be solved with a small batch file with the following content:

#!/bin/bash
setxkbmap -model pc105 -layout de -variant basic

The letters "de" are for German, you will have to set them according to your locale settings. Just execute this file before starting LinuxCNC, it can be done also adding a starter to your local folder.

./config/autostart

Damit das Layout beim Start automatisch eingestellt wird.

Für matchbox-keyboard müssen Sie Ihr eigenes Layout erstellen, für ein deutsches Layout fragen Sie im Forum.

GMOCCAPY with Onboard keyboard in edit mode

Onboard keyboard

On Touch Off

This gives the option whether to show the preview tab or the offset page tab when you enter the touch off mode by clicking the corresponding bottom button.

  • show preview

  • show offsets

DRO-Optionen

Sie haben die Möglichkeit, die Hintergrundfarben für die verschiedenen DRO-Zustände auszuwählen. So können Benutzer, die an Protanopie (Rot/Grün-Schwäche) leiden, die richtigen Farben auswählen.

By default, the background colors are:

  • Relative Color = black

  • Absolute Color = blue

  • DTG Color = yellow

Die Vordergrundfarbe der DRO kann ausgewählt werden mit:

  • Homed Color = green

  • Unhomed Color = red

Anmerkung
Sie können durch die DRO-Modi (absolut, relativ, Entfernung zu gehen) wechseln, indem Sie auf die Zahl auf dem DRO klicken! Wenn Sie auf den linken Seitenbuchstaben des DRO klicken, können Sie in einem Popup-Fenster den Wert der Achsen festlegen, was das Einstellen des Werts erleichtert, da Sie nicht über die untere Touch-Off-Taste gehen müssen.
  • size - Allows to set the size of the DRO font, default is 28, if you use a bigger screen you may want to increase the size up to 56. If you do use 4 axes, the DRO font size will be 3/4 of the value, because of space reason.

  • digits - Sets the number of digits of the DRO from 1 to 5.

    Anmerkung

    Imperiale Einheiten zeigen eine Ziffer mehr an als metrische. Wenn Sie also imperiale Maschineneinheiten verwenden und den Ziffernwert auf 1 setzen, erhalten Sie im metrischen System überhaupt keine Ziffer.

  • toggle DRO mode - If not active, a mouse click on the DRO will not take any action.
    By default this checkbox is active, so every click on any DRO will toggle the DRO readout from actual to relative to DTG (distance to go).
    Neverthereless a click on the axis letter will open the popup dialog to set the axis value.

Vorschau
  • Grid Size - Sets the grid size of the preview window. Unfortunately the size has to be set in inches, even if your machine units are metric. We do hope to fix that in a future release.

    Anmerkung
    Das Gitter wird in der perspektivischen Ansicht nicht angezeigt.
  • Show DRO - Zeigt die DRO auch im Vorschaufenster an, sie wird immer in der Vollbildvorschau angezeigt.

  • Show DTG - Will show the DTG (direct distance to end point) in the preview pane if Show DRO is active. Otherwise only in full size preview.

  • Show Offsets - Will show the offsets in the preview pane when Show DRO is active. Otherwise only in full size preview.

  • Mouse Button Mode - This combobox allows you to select the button behavior of the mouse to rotate, move or zoom within the preview:

    • Links drehen, Mitte verschieben, rechts zoomen

    • Links zoomen, Mitte verschieben, rechts rotieren

    • links bewegen, mitte drehen, rechts zoomen

    • Links zoomen, Mitte drehen, rechts bewegen

    • Links verschieben, Mitte zoomen, rechts rotieren

    • Links drehen, Mitte zoomen, rechts bewegen

Default is left move, middle zoom, right rotate.
The mouse wheel will still zoom the preview in every mode.

Tipp

Wenn Sie ein Element in der Vorschau auswählen, wird das ausgewählte Element als Rotationsmittelpunkt genommen und im Automodus wird die entsprechende Codezeile hervorgehoben.

Gmoccapy Messages

This will display small pop up windows displaying a message or error text, similar to the ones known from AXIS. You can delete a specific message by clicking on its close button. If you want to delete the last one, just hit the WINDOWS key on your keyboard, or delete all messages at once with Control + Space.

Sie haben die Möglichkeit, einige Optionen einzustellen:

  • X Pos - The position of the top left corner of the message in X counted in pixel from the top left corner of the screen.

  • Y Pos - The position of the top left corner of the message in Y counted in pixel from the top left corner of the screen.

  • Width - Die Breite des Meldungsfelds.

  • Max. messages - The maximum number of messages you want to see at once. If you set this to 10, the 11th message will delete the first one, so you will only see the last 10.

  • Font - The font and size you want to use to display the messages.

  • Use frames - If you activate the checkbox, each message will be displayed in a frame, so it is much easier to distinguish the messages. But you will need a little bit more space.

  • Launch test message-button - It will show a message, so you can see the changes of your settings without the need to generate an error.

Themen und Klänge

This lets the user select what desktop theme to apply and what error and messages sounds should be played.

By default "Follow System Theme" is set.

Es ermöglicht weiterhin, das Symbolthema zu ändern. Derzeit stehen drei Themen zur Verfügung:

  • classic

  • material

  • material light

To create custom icon themes, see section Icon Theme for details.

7.2. Hardware

Hardware-Einstellungen
Hardware MPG Scale

For the different HAL pins to connect MPG wheels to, you may select individual scales to be applied. The main reason for this was my own test to solve this through HAL connections, resulting in a very complex HAL file. Imagine a user having an MPG Wheel with 100 ppr and he wants to slow down the max. vel. from 14000 to 2000 mm/min, that needs 12000 pulses, resulting in 120 turns of the wheel! Or an other user having a MPG Wheel with 500 ipr and he wants to set the spindle override which has limits from 50 to 120 % so he goes from min to max within 70 pulses, meaning not even 1/4 turn.

Standardmäßig werden alle Skalen anhand der Berechnung festgelegt:

(MAX - MIN)/100
Spindel
  • Starting RPM - Sets the rpm to be used if the spindle is started and no S value has been set.

    Anmerkung
    This value will be presetted according to your settings in [DISPLAY] DEFAULT_SPINDLE_SPEED of your INI file. If you change the settings on the settings page, that value will be default from that moment, your INI file will not be modified.
  • Spindelstange min und Spindelstange max - Legt die Grenzen der Spindelstange fest, die im INFO-Rahmen auf dem Hauptbildschirm angezeigt werden.

    Standardwerte sind
    MIN = 0
    MAX = 6000

    Anmerkung
    It is no error giving wrong values. If you give a maximum of 2000 and your spindle makes 4000 RPM, only the bar level will be wrong on higher speeds than 2000 RPM.
Optionen freischalten

Es gibt drei Optionen zum Entsperren der Einstellungsseite:

  • Use unlock code - The user must give a code to get in.

  • Do not use unlock code - There will be no security check.

  • Use HAL pin to unlock - Hardware pin must be high to unlock the settings, see hardware unlock pin.

Default is use unlock code (default code is 123).

Schildkröten Jog

This settings will have influence on the jog velocities.

  • Hide turtle jog button - Will hide the button right of the jog velocity slider. If you hide this button, please take care that the "rabbit mode" is activated, otherwise you will not be able to jog faster than the turtle jog velocity, which is calculated using the turtle jog factor.

  • Turtle jog factor - Sets the scale to apply for turtle jog mode (button pressed, showing the turtle). If you set a factor of 20, the turtle max. jog velocity will be 1/20 of the max. velocity of the machine.

Anmerkung
This button can be controlled using the Turtle-Jog HAL Pin.

7.3. Erweiterte Einstellungen

Erweiterte Einstellungen
Werkzeugmessung

Bitte prüfen Sie Auto Tool Measurement

Anmerkung
Wenn dieser Teil nicht empfindlich ist, haben Sie keine gültige INI-Datei-Konfiguration für die Verwendung der Werkzeugmessung.
  • Use auto tool measurement - If checked, after each tool change, a tool measurement will be done, the result will be stored in the tool table and a G43 will be executed after the change.

    Sonden-Informationen

    The following information are taken from your INI file and must be given in absolute coordinates:

    • X Pos. - Die X-Position des Werkzeugschalters.

    • Y Pos. - Die Y-Position des Werkzeugschalters.

    • Z Pos. - Die Z-Position des Werkzeugschalters, wir fahren im Eilgang zu dieser Koordinate.

    • Max. Probe - The distance to search for contact, an error will be launched, if no contact is given in this range. The distance has to be given in relative coordinates, beginning the move from Z Pos., so you have to give a negative value to go down!

    • Probe Height - The height of your probe switch, you can measure it. Just touch off the base where the probe switch is located and set that to zero. Then make a tool change and watch the tool_offset_z value, that is the height you must enter here.

    Geschwindigkeiten der Sonde
    • Search Vel. - The velocity to search for the tool switch. After contact the tool will go up again and then goes towards the probe again with probe vel, so you will get better results.

    • Probe Vel. - The velocity for the second movement to the switch. It should be slower to get better touch results. In simulation mode, this is commented out in macros/change.ngc, otherwise the user would have to click twice on the probe button.

Reload Tool::
  • Reload Tool on Start - Lädt das letzte Werkzeug beim Start nach der Referenzfahrt.

Wenn diese Option aktiviert ist, wird das Werkzeug in der Spindel bei jeder Änderung der Voreinstellungsdatei gespeichert, so dass das zuletzt montierte Werkzeug beim Start wieder geladen werden kann. Das Werkzeug wird geladen, nachdem alle Achsen referenziert wurden, da es vorher nicht erlaubt ist, MDI-Befehle auszuführen. Wenn Sie NO_FORCE_HOMING verwenden, können Sie diese Funktion nicht nutzen, da das benötigte all_homed_signal nie ausgegeben wird.

Beim Starten zu ladende Datei

Select the file you want to be loaded on start up. If a file is loaded, it can be set by pressing the current button. To avoid that any program is loaded at start up, just press the None button.

The file selection screen will use the filters you have set in the INI file, if there aren’t any filters given, you will only see NGC files. The path will be set according to the INI settings in [DISPLAY] PROGRAM_PREFIX.

Zum Verzeichnis springen

Sie können hier das Verzeichnis einstellen, in das gesprungen werden soll, wenn Sie im Dateiauswahldialog auf die entsprechende Schaltfläche klicken.

Ausführen von gegebener Zeile

You can allow or disallow the run from line. This will set the corresponding button insensitive (grayed out), so the user will not be able to use this option. The default is disable run from line.

Warnung
It is not recommend to use run from line, as LinuxCNC will not take care of any previous lines in the code before the starting line. So errors or crashes are fairly likely.
Tastatürkürzel

Some users want to jog their machine using the keyboard buttons and there are others that will never allow this. So everybody can select whether to use them or not.
Keyboard shortcuts are disabled by default. They can be activated by the checkbox

  • Use keyboard shortcuts

Warnung
Es wird nicht empfohlen, Tastatur-Jogging zu verwenden, da dies ein ernsthaftes Risiko für Bediener und Maschine darstellt.

Please take care if you use a lathe, then the shortcuts will be different, see the Lathe Specific Section.

Allgemeines
  • F1 - Trigger Estop (will work even if keyboard shortcuts are disabled)

  • F2 - Toggle machine on/off

  • F3 - Manual mode

  • F5 - MDI mode

  • ESC - Abort

Im manuellen Modus
  • Arrow_Left or NumPad_Left - Jog X minus

  • Arrow_Right or NumPad_Right - Jog X plus

  • Arrow_up or NumPad_Up - Jog Y plus

  • Arrow_Down or NumPad_Down - Jog Y minus

  • Page_Up or NumPad_Page_Up - Jog Z plus

  • Page_Down or NumPad_Page_Down - Jog Z minus

Im Auto-Modus
  • R or r - Run program

  • P or p - Pause program

  • S or s - Resume program

  • Control + R or Control + r - Reload the loaded file

Message handling (see Message behavior and appearance)
  • WINDOWS - Delete last message

  • Control + Space - Delete all messages

8. Icon Themen

Icon-Themen werden verwendet, um das Aussehen der Icons von GMOCCAPY anzupassen.

GMOCCAPY wird mit drei verschiedenen Symbolthemen geliefert:

  • classic - The classic GMOCCAPY icons.

  • material - A modern icon theme inspired by Google’s Material Icons that automatically adopts its coloring from the selected desktop theme.

  • material-light - Derived from material but optimized for light desktop themes.

Das in GMOCCAPY verwendete Icon-Theme ist ein reguläres GTK Icon-Theme, das der Spezifikation des freedestktop Icon-Theme folgt. Somit kann jedes gültige GTK-Icon-Theme als GMOCCAPY-Icon-Theme verwendet werden, solange es die erforderlichen Icons enthält.

GMOCCAPY durchsucht die folgenden Verzeichnisse nach Icon-Themes:

  • linuxcnc/share/gmoccapy/icons

  • ~/.icons

8.1. Benutzerdefiniertes Symboldesign (eigentlich engl. icon theme)

Creating a custom icon theme is pretty easy. All you need is a text editor and of course the desired icons as pixel or vector graphics. Details about how exactly an icon theme is built can be found at the Freedesktop Icon Theme Specification.

Start by creating an empty directory with the name of the icon theme. Place the directory in one of GMOCCAPY’s icon theme directories. Then we need a file called index.theme in the root folder of our icon theme which contains the required metadata for the theme. That’s a simple text file with at least the following sections:

  • [Icon Theme]

     [Icon Theme]
     Name=Ihr_Theme-Name
     Comment=Eine Beschreibung des Themes
     Inherits=hicolor
     Directories=16x16/actions,24x24/actions,32x32/actions,48x48/actions,scalable/actions
    • Name: Der Name Ihres Icon-Designs.

    • Comment: Eine Beschreibung des Themas Ihres Symbols.

    • Inherits: Ein Icon-Thema kann von einem anderen Icon-Thema abgeleitet werden, der Standard ist hicolor.

    • Verzeichnisse: Eine durch Kommata getrennte Liste aller Verzeichnisse Ihres Icon-Themas.
      Jedes Verzeichnis enthält in der Regel alle Icons des Themas in einer bestimmten Größe, z.B. 16x16/actions sollte alle Icons mit der Kategorie "actions" in der Größe 16x16 Pixel als Pixelgrafiken (z.B. png-Dateien) enthalten. Ein Sonderfall ist das Verzeichnis "scalable/actions", dieses enthält skalierbare Icons, die nicht an eine bestimmte Größe gebunden sind (z.B. svg-Dateien).
      Durch die Bereitstellung unterschiedlich großer Versionen der Icons können wir ein schön aussehendes Icon in verschiedenen Größen garantieren, und wir haben auch die Möglichkeit, das Icon entsprechend seiner Größe zu verändern, zum Beispiel kann ein 64x64 px großes Icon mehr Details enthalten als seine 16x16 px Version.

  • Für jedes Verzeichnis müssen wir auch einen Abschnitt in die Datei index.theme schreiben:

     [16x16/actions]
     Size=16
     Type=Fixed
     Context=Actions
    
     [scalable/actions]
     Size=48
     Type=Scalable
     Context=Actions
    • SIze: Nominale Symbolgröße in diesem Verzeichnis

    • Type: Fixed (engl. für festgelegt), Threshold (engl. für Schwellwert) or Scalable (engl. für skalierbar)

    • Context: Beabsichtigte "Kategorie" von Icons

Das ist im Grunde alles, was man braucht, um ein eigenes Icon Theme zu erstellen.

8.2. Symbolische Icons

Symbolic icons are a special type of icon, usually a monochrome image. The special feature of symbolic icons is that the icons are automatically colored at runtime to match the desktop theme. That way, icon themes can be created that work well with dark and also light desktop themes (in fact, that’s not always the best option, that’s why a dedicated "material-light" theme exists).

images/gmoccapy_icon_theme_symbolic.png

Um die symbolische Funktion zu nutzen, muss eine Symboldatei die Endung .symbolic.$ext haben (wobei $ext die reguläre Dateierweiterung wie png ist), zum Beispiel "power_on.symbolic.png".

Mit diesem Namen behandelt GTK dieses Bild als symbolisches Icon und wendet beim Laden des Icons eine Umfärbung an. Es gibt nur vier Farben, die verwendet werden dürfen:

Farbe Hexadezimale RGB-Anteile Beschreibung

black (engl. für schwarz)

#000000

Primäre Farbe, wird an die Primärfarbe des Desktop-Themas angepasst.

red (engl. für rot)

#ff0000

Success: this color indicates "success" (usually something green’ish).

green (engl. für grün)

#00ff00

Warning: this color indicates "warning" (usually something yellow/orange’ish).

blue (engl. für blau)

#0000ff

Error: this color indicates "error" (usually something red’ish).

Tipp
Examples of symbolic icons can be found at linuxcnc/share/gmoccapy/icons/material.

9. Drehmaschinen-spezifischer Abschnitt

If in the INI file LATHE = 1 is given, the GUI will change its appearance to the special needs for a lathe. Mainly the Y axis will be hidden and the jog buttons will be arranged in a different order.

images/gmoccapy_lathe.png
Abbildung 6. Normale Drehmaschine
images/gmoccapy_back_tool_lathe.png
Abbildung 7. Back Tool Lathe

As you see the R DRO has a black background and the D DRO is gray. This will change according to the active G-code G7 or G8. The active mode is visible by the black background, meaning in the shown images G8 is active.

The next difference to the standard screen is the location of the jog buttons. X and Z have changed places and Y is gone. You will note that the X+ and X- buttons changes there places according to normal or back tool lathe.

Auch das Verhalten der Tastatur wird sich ändern:

Normale Drehmaschine:

  • Arrow_Left or NumPad_Left - Jog Z minus

  • Arrow_Right or NumPad_Right - Jog Z plus

  • Arrow_up or NumPad_Up - Jog X minus

  • Arrow_Down or NumPad_Down - Jog X plus

Back Tool Lathe:

  • Arrow_Left or NumPad_Left - Jog Z minus

  • Arrow_Right or NumPad_Right - Jog Z plus

  • Arrow_up or NumPad_Up - Jog X plus

  • Arrow_Down or NumPad_Down - Jog X minus

Der Werkzeuginformationsrahmen zeigt nicht nur die Z-Korrektur, sondern auch die X-Korrektur und die Werkzeugtabelle zeigt alle drehbankrelevanten Informationen an.

10. Plasmaspezifischer Abschnitt

Plasma-GUI

There is a very good WIKI, which is actually growing, maintained by Marius, see Plasma wiki page.

11. Videos on YouTube

Below is a series of videos that show GMOCCAPY in action. Unfortunately, these videos don’t show the latest version of GMOCCAPY, but the way to use it will still be the same as in the current version. I will update the videos as soon as possible.

11.1. Grundlegende Verwendung

11.2. Simulierte Jog-Wheels

11.3. Einstellungen Seite

11.4. Simulierte Hardware-Taste

11.5. Benutzer-Registerkarten

11.6. Videos zur Werkzeugvermessung

Auto Tool Measurement Simulation: https://youtu.be/rrkMw6rUFdk

Auto Tool Measurement Screen: https://youtu.be/Z2ULDj9dzvk

Auto Tool Measurement Machine: https://youtu.be/1arucCaDdX4

12. Known Problems

12.1. Seltsame Zahlen im Infobereich

Wenn Sie im Infobereich von GMOCCAPY seltsame Zahlen erhalten wie:

Seltsame Zahlen

You have made your config file using an older version of StepConfWizard. It has made a wrong entry in the INI file under the [TRAJ] named MAX_LINEAR_VELOCITY = xxx. Change that entry to MAX_VELOCITY = xxx.

12.2. Nicht endendes Makro

Wenn Sie ein Makro ohne Bewegung verwenden, wie dieses hier:

 o<zeroxy> sub

G92.1
G92.2
G40

G10 L20 P0 X0 Y0

o<zeroxy> endsub
m2

GMOCCAPY will not see the end of the macro, because the interpreter needs to change its state to IDLE, but the macro does not even set the interpreter to a new state. To avoid that just add a G4 P0.1 line to get the needed signal. The correct macro would be:

 o<zeroxy> sub

G92.1
G92.2
G40

G10 L20 P0 X0 Y0

G4 P0.1

o<zeroxy> endsub
m2