{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.PYBQlstL/b1/linuxcnc_2.9.7-1_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.PYBQlstL/b2/linuxcnc_2.9.7-1_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,9 +1,9 @@\n \n- d753b68212c290762620a4ad890e3f2c 26828256 misc optional linuxcnc-doc-de_2.9.7-1_all.deb\n- d64d5a6a24241552d1a319f160f60cd8 27468524 misc optional linuxcnc-doc-en_2.9.7-1_all.deb\n- 79d9373883207a49cc943a432ca49235 26565824 misc optional linuxcnc-doc-es_2.9.7-1_all.deb\n- ec0a690d44264346aed4dd1b92d47cd8 26476080 misc optional linuxcnc-doc-fr_2.9.7-1_all.deb\n- 3916b816e91f0b600c2f9caf75eb6ced 26524264 misc optional linuxcnc-doc-zh-cn_2.9.7-1_all.deb\n+ db0ae1bfa977a2a1372399c83af12194 26826864 misc optional linuxcnc-doc-de_2.9.7-1_all.deb\n+ d293e3c839b8873166c032a70e99a3af 27466600 misc optional linuxcnc-doc-en_2.9.7-1_all.deb\n+ 6fe9f4a27fb21bbbf8f0ddab2f8be7be 26566056 misc optional linuxcnc-doc-es_2.9.7-1_all.deb\n+ 03fad2bb863d81a4dca30f7b428f6457 26475304 misc optional linuxcnc-doc-fr_2.9.7-1_all.deb\n+ a35f1cf4517f2f0fbe7a6dbae466e790 26521580 misc optional linuxcnc-doc-zh-cn_2.9.7-1_all.deb\n a7152f7108b3d9bda6c48c5de30d5e9c 11450708 debug optional linuxcnc-uspace-dbgsym_2.9.7-1_amd64.deb\n 1a68d1b457eddac8144bf417db040a65 273712 devel optional linuxcnc-uspace-dev_2.9.7-1_amd64.deb\n- 49f02367c5ac6e9828aa5fc34e51bb89 25673224 misc optional linuxcnc-uspace_2.9.7-1_amd64.deb\n+ 77f22dffb31d729ba1e5117c16b2fe73 25673420 misc optional linuxcnc-uspace_2.9.7-1_amd64.deb\n"}, {"source1": "linuxcnc-doc-de_2.9.7-1_all.deb", "source2": "linuxcnc-doc-de_2.9.7-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-10-22 22:43:13.000000 debian-binary\n -rw-r--r-- 0 0 0 1076 2025-10-22 22:43:13.000000 control.tar.xz\n--rw-r--r-- 0 0 0 26826988 2025-10-22 22:43:13.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 26825596 2025-10-22 22:43:13.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -4,16 +4,16 @@\n drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/applications/\n -rw-r--r-- 0 root (0) root (0) 340 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-documentation_de.desktop\n -rw-r--r-- 0 root (0) root (0) 367 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-gcoderef_de.desktop\n -rw-r--r-- 0 root (0) root (0) 381 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-gettingstarted_de.desktop\n -rw-r--r-- 0 root (0) root (0) 370 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-integratorinfo_de.desktop\n drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/\n--rw-r--r-- 0 root (0) root (0) 870099 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf\n--rw-r--r-- 0 root (0) root (0) 26623282 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf\n+-rw-r--r-- 0 root (0) root (0) 870107 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf\n+-rw-r--r-- 0 root (0) root (0) 26623105 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf\n -rw-r--r-- 0 root (0) root (0) 498245 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_de.pdf\n -rw-r--r-- 0 root (0) root (0) 155432 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Integrator_de.pdf\n -rw-r--r-- 0 root (0) root (0) 15158 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/gcode_de.html\n drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc-doc-de/\n -rw-r--r-- 0 root (0) root (0) 20526 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc-doc-de/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 42238 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc-doc-de/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc-base/\n"}, {"source1": "./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf", "source2": "./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf", "unified_diff": null, "details": [{"source1": "./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf", "source2": "./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf", "comments": ["Document info"], "unified_diff": "@@ -1,4 +1,4 @@\n CreationDate: 'D:20251022224313Z'\n Creator: 'DBLaTeX-0.3.12'\n Producer: 'xdvipdfmx (20250410)'\n-Title: 'Entwickler-Handbuch V2.9.7, 22 Oct 2025'\n+Title: 'Entwickler-Handbuch V2.9.7, 23 Oct 2025'\n"}, {"source1": "pdftotext {} -", "source2": "pdftotext {} -", "unified_diff": "@@ -1,10 +1,10 @@\n-Entwickler-Handbuch V2.9.7, 22 Oct 2025\n+Entwickler-Handbuch V2.9.7, 23 Oct 2025\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n ii\n \n Inhaltsverzeichnis\n 1 Einf\u00fchrung\n \n 1\n@@ -115,15 +115,15 @@\n \n 16\n \n 3.8.3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 17\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n iii\n \n 3.8.3.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 17\n \n@@ -277,15 +277,15 @@\n \n 21\n \n 3.8.16.1Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 21\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n iv\n \n 3.8.16.2Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 21\n \n@@ -447,15 +447,15 @@\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 29\n \n 3.21.3Prozesslinie\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n v\n \n 3.21.4Kommentare zur Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 30\n \n@@ -619,15 +619,15 @@\n \n 43\n \n 4.14Andere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 43\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n vi\n \n 5 Quellcode-Stil\n \n 45\n \n@@ -777,15 +777,15 @@\n \n 60\n \n 8.4.1 LinuxCNC offizielles Git Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 60\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n vii\n \n 8.4.2 Verwendung von Git im LinuxCNC-Projekt . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 61\n \n@@ -870,15 +870,15 @@\n \n 10.2GNU Free Documentation License\n \n 72\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 1 / 76\n \n Kapitel 1\n \n Einf\u00fchrung\n \n@@ -901,15 +901,15 @@\n LINUX\u00ae ist das eingetragene Warenzeichen von Linus Torvalds in den USA und anderen L\u00e4ndern.\n Die eingetragene Marke Linux\u00ae wird im Rahmen einer Unterlizenz von LMI, dem exklusiven Lizenznehmer von Linus Torvalds, dem Eigent\u00fcmer der Marke auf weltweiter Basis, verwendet.\n Das LinuxCNC-Projekt ist nicht mit Debian\u00ae verbunden. Debian_ ist ein eingetragenes Warenzeichen\n im Besitz von Software in the Public Interest, Inc.\n Das LinuxCNC-Projekt ist nicht mit UBUNTU\u00ae verbunden. UBUNTU ist eine eingetragene Marke im\n Besitz von Canonical Limited.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 2 / 76\n \n Kapitel 2\n \n HAL General Reference\n 2.1 HAL Entity Names\n@@ -939,15 +939,15 @@\n Halcmd and other low-level HAL utilities treat HAL names as single entities, with no internal structure. However, most modules do have some implicit structure. For example, a board provides several\n functional blocks, each block might have several channels, and each channel has one or more pins.\n This results in a structure that resembles a directory tree. Even though halcmd doesn\u2019t recognize the\n tree structure, proper choice of naming conventions will let it group related items together (since it\n sorts the names). In addition, higher level tools can be designed to recognize such structure, if the\n names provide the necessary information. To do that, all HAL components should follow these rules:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 3 / 76\n \n \u2022 Punkte (\u201d.\u201d) trennen die einzelnen Ebenen der Hierarchie. Dies ist vergleichbar mit dem Schr\u00e4gstrich (\u201d/\u201d) in einem Dateinamen.\n \u2022 Bindestriche (\u201e-\u201c) trennen W\u00f6rter oder Felder auf derselben Hierarchieebene.\n \u2022 HAL-Komponenten sollten keine Unterstriche oder \u201dMixedCase\u201d verwenden. 1\n \u2022 Verwenden Sie in Namen nur Kleinbuchstaben und Zahlen.\n@@ -982,15 +982,15 @@\n Like device numbers, channel numbers start at zero and increment.2 If more than one device is\n installed, the channel numbers on additional devices start over at zero. If it is possible to have a\n 1 Die unterstrichenen Zeichen wurden entfernt, aber es gibt immer noch einige F\u00e4lle, in denen die Mischung nicht stimmt,\n zum Beispiel pid.0.Pgain anstelle von pid.0.p-gain.\n 2 One exception to the \u201dchannel numbers start at zero\u201d rule is the parallel port. Its HAL pins are numbered with the corresponding pin number on the DB-25 connector. This is convenient for wiring, but inconsistent with other drivers. There is some\n debate over whether this is a bug or a feature.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 4 / 76\n \n channel number greater than 9, then channel numbers should be two digits, with a leading zero\n on numbers less than 10 to preserve sort ordering. Some modules have pins and/or parameters\n that affect more than one channel. For example a PWM generator might have four channels\n with four independent \u201dduty-cycle\u201d inputs, but one \u201dfrequency\u201d parameter that controls all four\n@@ -1031,28 +1031,28 @@\n Funktionen darauf zugreifen.\n read|write\n Gibt an, ob die Funktion die Hardware liest (engl. read) oder in sie schreibt (engl. write).\n 3 Note to driver programmers: Do NOT implement separate functions for different I/O types unless they are interruptible\n and can work in independent threads. If interrupting an encoder read, reading digital inputs, and then resuming the encoder\n read will cause problems, then implement a single function that does everything.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 5 / 76\n \n Beispiele\n motenc.0.encoder.read\n Liest alle Encoder auf der ersten Motenc-Platine aus.\n generic8255.0.din.09-15.read\n Liest den zweiten 8-Bit-Port auf der ersten generischen 8255-basierten digitalen E/A-Karte.\n ppmc.0.write\n Schreibt alle Ausg\u00e4nge (Schrittgeneratoren, PWM, DACs und Digital) auf die erste Pico Systems\n ppmc-Karte.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 6 / 76\n \n Kapitel 3\n \n Code Anmerkungen\n 3.1 Zielgruppe\n@@ -1077,15 +1077,15 @@\n und die Linearantriebe eines Hexapods entsprechen jedoch keiner Bewegung entlang einer kartesischen Achse, und im Allgemeinen ist es wichtig, zwischen den kartesischen Achsen und den\n Freiheitsgraden der Maschine zu unterscheiden. In diesem Dokument werden letztere als Gelenke und nicht als Achsen bezeichnet. Die grafischen Benutzeroberfl\u00e4chen und einige andere Teile\n des Quellcodes folgen dieser Unterscheidung vielleicht nicht immer, aber die Interna des \u201dMotion\n Controllers\u201d schon.\n \u2022 GELENK (engl. JOINT)- Ein Gelenk ist eines der beweglichen Teile der Maschine. Gelenke unterscheiden sich von Achsen, obwohl die beiden Begriffe manchmal (f\u00e4lschlicherweise) f\u00fcr dieselbe\n Sache verwendet werden. In LinuxCNC ist ein Gelenk einer physikalischen Sache, die bewegt werden kann, nicht eine Koordinate im Raum. Zum Beispiel sind die Pinole, das Knie, der Sattel und der\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 7 / 76\n \n Tisch einer Bridgeport-Fr\u00e4se alles Gelenke. Die Schulter, der Ellbogen und das Handgelenk eines\n Roboterarms sind Gelenke, ebenso wie die Linearaktuatoren eines Hexapods. Jedem Gelenk ist ein\n Motor oder Aktuator zugeordnet. Gelenke entsprechen nicht unbedingt den X-, Y- und Z-Achsen,\n obwohl dies bei Maschinen mit trivialer Kinematik der Fall sein kann. Selbst bei diesen Maschinen sind die Position des Gelenks und die Position der Achsen grundlegend verschieden. In diesem\n@@ -1116,19 +1116,19 @@\n gedacht.\n \n 3.4 Architektur\u00fcbersicht\n Die LinuxCNC-Architektur besteht aus vier Komponenten: einem Motion-Controller (EMCMOT), einem diskreten IO-Controller (EMCIO), einem Task-Executor, der diese koordiniert (EMCTASK) und\n mehreren textbasierten und grafischen Benutzerschnittstellen. Jede dieser Schnittstellen wird in diesem Dokument beschrieben, sowohl aus der Sicht des Designs als auch aus der Sicht der Entwickler\n (wo findet man ben\u00f6tigte Daten, wie kann man Dinge einfach erweitern/ver\u00e4ndern, usw.).\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 8 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 9 / 76\n \n 3.4.1 LinuxCNC-Softwarearchitektur\n Auf der gr\u00f6bsten Ebene ist LinuxCNC eine Hierarchie von drei Controllern: der Task-Level-Befehlshandler\n und Programminterpreter, der Motion-Controller und der diskrete E/A-Controller (engl. I/O). Der diskrete E/A-Controller ist als eine Hierarchie von Controllern implementiert, in diesem Fall f\u00fcr Spindel, K\u00fchlmittel- und Hilfs-Subsysteme (z. B. Notaus, Schmierung). Der Task-Controller koordiniert die\n Aktionen der Bewegungssteuerung und der diskreten E/A-Steuerung. Deren Aktionen werden in konventionellen numerischen Steuerungs- \u201dG- und M-Code\u201d Programmen programmiert, die von der Aufgabensteuerung in NML-Nachrichten interpretiert und zu den entsprechenden Zeitpunkten entweder\n@@ -1159,19 +1159,19 @@\n durch\n LinuxCNC wird durch das linuxcnc Skript gestartet, welches eine Konfigurations-.ini-Datei liest und\n alle ben\u00f6tigten Prozesse startet. F\u00fcr die Echtzeit-Bewegungssteuerung l\u00e4dt das Skript zun\u00e4chst die\n Standard-Module tpmod und homemod und l\u00e4dt dann die Kinematik- und Bewegungsmodule entsprechend den Einstellungen in halfiles, die in der .ini-Datei angegeben sind.\n Benutzerdefinierte Referenzfahrt- oder Flugbahnplanungsmodule k\u00f6nnen anstelle der Standardmodule \u00fcber .ini-Datei-Einstellungen oder Befehlszeilenoptionen verwendet werden. Benutzerdefinierte\n Module m\u00fcssen alle von den Standardmodulen verwendeten Funktionen implementieren. Das Dienstprogramm halcompile kann verwendet werden, um ein benutzerdefiniertes Modul zu erstellen.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 10 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 11 / 76\n \n 3.6 Blockdiagramme und Datenfluss\n Die folgende Abbildung ist das Blockdiagramm einer Gelenksteuerung. F\u00fcr jedes Gelenk gibt es genau\n eine Gelenksteuerung. Die Gelenksteuerungen arbeiten auf einer niedrigeren Ebene als die Kinematik, einer Ebene, auf der alle Gelenke v\u00f6llig unabh\u00e4ngig sind. Alle Daten f\u00fcr ein Gelenk befinden sich\n in einer einzigen Gelenkstruktur. Einige Elemente dieser Struktur sind im Blockdiagramm sichtbar,\n@@ -1184,15 +1184,15 @@\n wird mit der Traj-Rate aktualisiert, nicht mit der Servo-Rate. Im koordinierten Modus wird sie durch\n den Traj-Planer bestimmt. Im Teleop-Modus wird sie durch den Traj-Planer bestimmt? Im freien\n Modus sie entweder von actualPos kopiert oder durch Anwendung von Vorw\u00e4rtskinematik auf (2)\n oder (3) erzeugt.\n \u2022 emcmotStatus->joints[n].coarse_pos - Dies ist die gew\u00fcnschte Position, in Gelenkkoordinaten, aber\n vor der Interpolation. Sie wird mit der traj rate aktualisiert, nicht mit der servo rate. Im Koordinatenmodus wird sie durch Anwendung von inversen Kinetiken auf (1) erzeugt. Im Teleop-Modus wird\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 12 / 76\n \n sie durch Anwendung von inversen Kinematiken auf (1) erzeugt. Im freien Modus wird sie von (3)\n kopiert, glaube ich.\n \u2022 \u2019emcmotStatus->joints[n].pos_cmd - Dies ist die gew\u00fcnschte Position, in Gelenkkoordinaten, nach\n der Interpolation. Ein neuer Satz dieser Koordinaten wird in jeder Servoperiode erzeugt. Im Koordinatenmodus wird sie vom Interpolator aus (2) generiert. Im Teleop-Modus wird er durch den\n@@ -1215,26 +1215,26 @@\n vorzut\u00e4uschen, oder B) zuzugeben, dass wir die kartesischen Koordinaten nicht wirklich kennen,\n und actualPos einfach nicht zu aktualisieren. Unabh\u00e4ngig davon, welcher Ansatz verwendet wird,\n sehe ich keinen Grund, es nicht auf die gleiche Weise zu tun, unabh\u00e4ngig von der Betriebsart. Ich\n w\u00fcrde das Folgende vorschlagen: Wenn es Vorw\u00e4rts-Kins gibt, verwenden Sie sie, es sei denn, sie\n funktionieren nicht, weil die Achsen nicht beheimatet sind oder andere Probleme auftreten; in diesem Fall machen Sie (B). Wenn es keine Forward Kins gibt, dann mach (A), da sonst actualPos nie\n aktualisiert werden w\u00fcrde.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 13 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 3.7 Referenzfahrt (engl. homing)\n 3.7.1 Zustandsdiagramm der Referenzfahrt\n \n 14 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 15 / 76\n \n 3.7.2 Ein weiteres Homing-Diagramm\n \n 3.8 Befehle\n Die Befehle werden durch eine gro\u00dfe Fallunterscheidung (Switch-Anweisung) in der Funktion emcmotCommandHandler() implementiert, die bei der Servo-Rate aufgerufen wird. Mehr zu dieser Funktion sp\u00e4ter.\n@@ -1247,15 +1247,15 @@\n \n 3.8.1 Abbrechen\n Der Befehl ABORT (engl. f\u00fcr Abbruch) stoppt einfach alle Bewegungen. Er kann jederzeit erteilt werden und wird immer akzeptiert. Er deaktiviert den Motion Controller nicht und \u00e4ndert auch keine\n Zustandsinformationen, sondern bricht lediglich eine laufende Bewegung ab.1\n 1 Es scheint, dass der Code auf h\u00f6herer Ebene (TASK und h\u00f6her) ABORT auch zum L\u00f6schen von Fehlern verwendet. Wann\n immer ein anhaltender Fehler auftritt (z. B. wenn die Hardware-Endschalter \u00fcberschritten werden), sendet der \u00fcbergeordnete\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 16 / 76\n \n 3.8.1.1 Anforderungen\n Keine. Der Befehl wird immer angenommen und sofort ausgef\u00fchrt.\n 3.8.1.2 Ergebnisse\n Im freien Modus sind die Trajektorienplaner f\u00fcr den freien Modus deaktiviert. Das f\u00fchrt dazu, dass\n@@ -1288,15 +1288,15 @@\n Bewegung der Maschine auf kartesischen Koordinaten unter Verwendung der Kinematik und nicht auf\n einzelnen Gelenken wie im freien Modus. Der Trajektorienplaner als solcher wird jedoch nicht verwendet, stattdessen wird die Bewegung durch einen Geschwindigkeitsvektor gesteuert. Die Bewegung im\n Teleop-Modus \u00e4hnelt dem Joggen, mit dem Unterschied, dass sie im kartesischen Raum und nicht im\n Gelenkraum erfolgt. Auf einer Maschine mit trivialer Kinematik gibt es kaum einen Unterschied zwischen dem Teleop-Modus und dem freien Modus, und die grafischen Benutzeroberfl\u00e4chen f\u00fcr diese\n Code einen st\u00e4ndigen Strom von ABORTs an den Bewegungsregler, um den Fehler zu beheben. Tausende von ihnen\u2026. Das\n bedeutet, dass die Bewegungssteuerung anhaltende Fehler vermeiden sollte. Dies muss untersucht werden.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 17 / 76\n \n Maschinen geben diesen Befehl m\u00f6glicherweise nicht einmal aus. Bei nicht-trivialen Maschinen wie\n Robotern und Hexapoden wird der Teleop-Modus jedoch f\u00fcr die meisten vom Benutzer befohlenen\n Jog-Bewegungen verwendet.\n 3.8.3.1 Anforderungen\n@@ -1327,15 +1327,15 @@\n Wenn sich die Maschine bereits im Koordinatenmodus befindet, geschieht nichts. Andernfalls wird die\n Maschine in den Koordinatenmodus versetzt. Der Kinematikcode wird aktiviert, die Interpolatoren\n werden entleert und geleert, und die Warteschlangen des Bahnplaners sind leer. Der Trajektorienplaner ist aktiv und wartet auf einen LINE-, CIRCLE- oder PROBE-Befehl.\n \n 3.8.5 ENABLE (AKTIVIEREN)\n Der Befehl ENABLE aktiviert den Motion Controller.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 18 / 76\n \n 3.8.5.1 Anforderungen\n Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert.\n 3.8.5.2 Ergebnisse\n Wenn der Controller bereits aktiviert ist, passiert nichts. Ansonsten wird der Controller aktiviert. Warteschlangen und Interpolatoren werden geleert. Alle Bewegungs- oder Referenzfahrtvorg\u00e4nge werden\n@@ -1360,15 +1360,15 @@\n Derzeit nichts. (Ein Aufruf der alten extAmpEnable-Funktion ist derzeit auskommentiert.) Eventuell\n wird der Amp-Enable-HAL-Pin auf true gesetzt.\n \n 3.8.8 DISABLE_AMPLIFIER\n Der Befehl DISABLE_AMPLIFIER schaltet den Amp-Enable-Ausgang f\u00fcr einen einzelnen Verst\u00e4rker\n aus, ohne etwas anderes zu \u00e4ndern. Auch dies ist n\u00fctzlich f\u00fcr Spindeldrehzahlregler.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 19 / 76\n \n 3.8.8.1 Anforderungen\n Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert.\n 3.8.8.2 Ergebnisse\n Derzeit nichts. (Ein Aufruf der alten extAmpEnable Funktion ist derzeit auskommentiert.) Eventuell\n@@ -1392,15 +1392,15 @@\n nicht.\n \n 3.8.11 ENABLE_WATCHDOG\n Der Befehl ENABLE_WATCHDOG aktiviert einen hardwarebasierten Watchdog (falls vorhanden).\n 3.8.11.1 Anforderungen\n Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 20 / 76\n \n 3.8.11.2 Ergebnisse\n Derzeit nichts. Der alte Watchdog war ein seltsames Ding, das eine bestimmte Soundkarte verwendete. M\u00f6glicherweise wird in Zukunft eine neue Watchdog-Schnittstelle entwickelt.\n \n 3.8.12 DISABLE_WATCHDOG\n@@ -1423,15 +1423,15 @@\n Der Befehl RESUME startet den Trajektorienplaner neu, wenn er angehalten wurde. Er hat keine\n Auswirkung im freien oder Teleop-Modus, oder wenn der Planer nicht angehalten ist.\n 3.8.14.1 Anforderungen\n Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert.\n 3.8.14.2 Ergebnisse\n Der Trajektorienplaner arbeitet weiter.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 21 / 76\n \n 3.8.15 STEP\n Der STEP-Befehl (engl. f\u00fcr Schritt) startet den Trajektorienplaner neu, wenn er angehalten wurde, und\n weist ihn an, wieder anzuhalten, wenn er einen bestimmten Punkt erreicht. Er hat keine Wirkung im\n freien oder Teleop-Modus. Zu diesem Zeitpunkt wei\u00df ich nicht genau, wie das funktioniert. Ich werde\n@@ -1460,15 +1460,15 @@\n 3.8.17.1 Anforderungen\n Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. (Ich denke, es sollte nur\n im freien Modus funktionieren.)\n 3.8.17.2 Ergebnisse\n Die Begrenzungen f\u00fcr alle Gelenke werden bis zum Ende des n\u00e4chsten JOG-Befehls au\u00dfer Kraft gesetzt. (Dies ist derzeit nicht m\u00f6glich\u2026 sobald ein OVERRIDE_LIMITS-Befehl empfangen wird, werden\n die Begrenzungen ignoriert, bis ein weiterer OVERRIDE_LIMITS-Befehl sie wieder aktiviert.)\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 22 / 76\n \n 3.8.18 HOME\n Der HOME-Befehl leitet eine Referenzfahrt an einem bestimmten Gelenk ein. Die tats\u00e4chliche Referenzierungssequenz wird durch eine Reihe von Konfigurationsparametern bestimmt und kann vom\n einfachen Setzen der aktuellen Position auf Null bis hin zu einer mehrstufigen Suche nach einem\n Referenzschalter und einem Indeximpuls, gefolgt von einer Bewegung zu einer beliebigen Referenzposition, reichen. Weitere Informationen \u00fcber die Referenzfahrt-Sequenz finden Sie im Abschnitt Referenzfahrt des Integrator-Handbuchs.\n@@ -1494,15 +1494,15 @@\n 3.8.20 JOG_INCR\n Der JOG_INCR-Befehl initiiert einen inkrementellen Tippbetrieb f\u00fcr ein einzelnes Gelenk. Inkrementelle Verfahrbewegungen sind kumulativ, d.h. wenn Sie zwei JOG_INCR-Befehle geben, die jeweils\n eine Bewegung von 0,100 Zoll erfordern, ergibt dies eine Bewegung von 0,200 Zoll, auch wenn der\n zweite Befehl gegeben wird, bevor der erste beendet ist. Normalerweise stoppen Inkremental-Jogs,\n wenn sie die gew\u00fcnschte Strecke zur\u00fcckgelegt haben, aber sie stoppen auch, wenn sie an eine Grenze\n sto\u00dfen, oder bei einem ABORT-Befehl.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 23 / 76\n \n 3.8.20.1 Anforderungen\n Der Befehlshandler lehnt den JOG_INCR-Befehl stillschweigend ab, wenn sich die Maschine nicht im\n freien Modus befindet, wenn ein Gelenk in Bewegung ist (GET_MOTION_INPOS_FLAG() == FALSE)\n oder wenn die Bewegung nicht aktiviert ist. Der Befehl wird auch ignoriert, wenn das Gelenk bereits\n@@ -1534,15 +1534,15 @@\n und die Maschine f\u00e4hrt zur befohlenen Endposition. Der Planer im freien Modus beschleunigt zu\n Beginn der Bewegung mit der Gelenkbeschleunigungsgrenze und bremst mit der Gelenkbeschleunigungsgrenze ab, um an der Zielposition anzuhalten.\n \n 3.8.22 SET_LINE\n Der Befehl SET_LINE f\u00fcgt eine gerade Linie in die Warteschlange des Trajektorienplaners ein.\n (Mehr dazu sp\u00e4ter)\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 24 / 76\n \n 3.8.23 SET_CIRCLE\n Der Befehl SET_CIRCLE f\u00fcgt eine kreisf\u00f6rmige Bewegung in die Warteschlange des Trajektorienplaners ein.\n (Mehr dazu sp\u00e4ter)\n \n@@ -1572,15 +1572,15 @@\n + Umkehrspiel- und Schraubenfehlerkompensation\n \n 3.10 Task-Controller (EMCTASK)\n 3.10.1 Zustand\n Die Aufgabe hat drei m\u00f6gliche interne Zust\u00e4nde: Notaus (E-Stop), Notaus-Reset (E-Stop Reset) und\n Maschine Ein (Machine On).\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 25 / 76\n \n 3.11 IO-Controller (EMCIO)\n Die E/A-Steuerung (engl. I/O controller) ist ein separates Modul, das NML-Befehle von TASK annimmt.\n Es interagiert mit externen E/A \u00fcber HAL-Pins. iocontrol.cc wird \u00fcber das linuxcnc-Skript vor TASK\n geladen. Derzeit gibt es zwei Versionen von iocontrol. Die zweite Version behandelt Hardware-Fehler\n@@ -1605,15 +1605,15 @@\n #define EMC_TOOL_PREPARE_TYPE ((NMLTYPE) 1104)\n #define EMC_TOOL_LOAD_TYPE ((NMLTYPE) 1105)\n #define EMC_TOOL_UNLOAD_TYPE ((NMLTYPE) 1106)\n #define EMC_TOOL_LOAD_TOOL_TABLE_TYPE ((NMLTYPE) 1107)\n #define EMC_TOOL_SET_OFFSET_TYPE ((NMLTYPE) 1108)\n #define EMC_TOOL_SET_NUMBER_TYPE ((NMLTYPE) 1109)\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 26 / 76\n \n // die folgende Nachricht wird gleich zu Beginn eines M6 an io gesendet\n // noch bevor emccanon die Bewegung zur Werkzeugwechselposition ausgibt\n #define EMC_TOOL_START_CHANGE_TYPE ((NMLTYPE) 1110)\n \n@@ -1643,15 +1643,15 @@\n Stellt einen Block von gemeinsamem Speicher zusammen mit einer Semaphore (geerbt von der Klasse\n Semaphore) bereit. Die Erstellung und Zerst\u00f6rung der Semaphore wird durch den SharedMemoryKonstruktor und -Destruktor gehandhabt.\n \n 3.17 ShmBuffer\n Klasse zur Weitergabe von NML-Nachrichten zwischen lokalen Prozessen unter Verwendung eines\n gemeinsamen Speicherpuffers. Ein Gro\u00dfteil der internen Arbeitsweise wird von der CMS-Klasse geerbt.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 27 / 76\n \n 3.18 Timer\n Die Klasse Timer bietet einen periodischen Timer, der nur durch die Aufl\u00f6sung der Systemuhr begrenzt ist. Wenn zum Beispiel ein Prozess alle 5 Sekunden ausgef\u00fchrt werden muss, unabh\u00e4ngig von\n der Zeit, die f\u00fcr die Ausf\u00fchrung des Prozesses ben\u00f6tigt wird. Der folgende Codeschnipsel zeigt wie :\n main()\n@@ -1681,15 +1681,15 @@\n NML verwendeten Funktionen enth\u00e4lt. Viele der internen Funktionen sind \u00fcberladen, um spezifische\n hardwareabh\u00e4ngige Methoden der Daten\u00fcbergabe zu erm\u00f6glichen. Letztlich dreht sich alles um einen zentralen Speicherblock (der als Nachrichtenpuffer oder einfach Puffer bezeichnet wird). Dieser\n Puffer kann ein gemeinsam genutzter Speicherblock sein, auf den andere CMS/NML-Prozesse zugreifen, oder ein lokaler und privater Puffer f\u00fcr Daten, die \u00fcber Netzwerk- oder serielle Schnittstellen\n \u00fcbertragen werden.\n Der Puffer wird zur Laufzeit dynamisch zugewiesen, um eine gr\u00f6\u00dfere Flexibilit\u00e4t des CMS/NMLSubsystems zu erm\u00f6glichen. Die Puffergr\u00f6\u00dfe muss gro\u00df genug sein, um die gr\u00f6\u00dfte Nachricht aufzunehmen, eine kleine Menge f\u00fcr den internen Gebrauch und die M\u00f6glichkeit, die Nachricht zu kodieren, wenn diese Option gew\u00e4hlt wird (auf kodierte Daten wird sp\u00e4ter eingegangen). Die folgende\n Abbildung zeigt eine interne Ansicht des Pufferspeichers.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 28 / 76\n \n CMS-Puffer Die CMS-Basisklasse ist in erster Linie f\u00fcr die Erstellung der Kommunikationswege und\n der Schnittstellen zum Betriebssystem verantwortlich.\n \n 3.21 Format der Konfigurationsdatei\n@@ -1707,15 +1707,15 @@\n \u2022 neut - ein boolescher Wert, der angibt, ob die Daten im Puffer in einem maschinenunabh\u00e4ngigen\n Format oder im Rohformat kodiert sind.\n \u2022 RPC# - Obsolet - Platzhalter nur noch aus Gr\u00fcnden der Abw\u00e4rtskompatibilit\u00e4t.\n \u2022 buffer# - Eine eindeutige ID-Nummer, die verwendet wird, wenn ein Server mehrere Puffer kontrolliert.\n \u2022 max_procs - ist die maximale Anzahl von Prozessen, die sich mit diesem Puffer verbinden d\u00fcrfen.\n \u2022 key - ist ein numerischer Bezeichner f\u00fcr einen gemeinsamen Speicherpuffer\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 29 / 76\n \n 3.21.2 Typspezifische Konfigurationen\n Der Puffertyp impliziert zus\u00e4tzliche Konfigurationsoptionen, w\u00e4hrend das Host-Betriebssystem bestimmte Kombinationen ausschlie\u00dft. In dem Bem\u00fchen, die ver\u00f6ffentlichte Dokumentation in ein koh\u00e4rentes Format zu bringen, wird nur der Puffertyp SHMEM behandelt.\n \u2022 mutex=os_sem - Standardmodus f\u00fcr die Bereitstellung von Semaphore-Sperren des Pufferspeichers.\n \u2022 mutex=none - Nicht verwendet\n@@ -1747,15 +1747,15 @@\n \u2022 host - gibt an, wo im Netzwerk dieser Prozess ausgef\u00fchrt wird.\n \u2022 ops - gibt dem Prozess nur Lese-, nur Schreib- oder Lese-/Schreibzugriff auf den Puffer.\n \u2022 server - gibt an, ob dieser Prozess einen Server f\u00fcr diesen Puffer betreiben wird.\n \u2022 timeout - legt die Timeout-Eigenschaften f\u00fcr Zugriffe auf den Puffer fest.\n \u2022 master - gibt an, ob dieser Prozess f\u00fcr die Erstellung und L\u00f6schung des Puffers verantwortlich ist.\n \u2022 c_num - eine Ganzzahl zwischen Null und (max_procs -1)\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 30 / 76\n \n 3.21.4 Kommentare zur Konfiguration\n Einige der Konfigurationskombinationen sind ung\u00fcltig, w\u00e4hrend andere bestimmte Beschr\u00e4nkungen\n mit sich bringen. Auf einem Linux-System ist GLOBMEM \u00fcberfl\u00fcssig, w\u00e4hrend PHANTOM nur in der\n Testphase einer Anwendung wirklich n\u00fctzlich ist, gleiches gilt f\u00fcr FILEMEM. LOCMEM ist f\u00fcr eine\n@@ -1794,15 +1794,15 @@\n 3.22 NML-Basisklasse\n Mehr zu Listen und die Beziehung zwischen NML, NMLmsg und den untergeordneten cms-Klassen.\n Nicht zu verwechseln mit NMLmsg, RCS_STAT_MSG, oder RCS_CMD_MSG.\n NML ist verantwortlich f\u00fcr das Parsen der Konfigurationsdatei, die Konfiguration der cms-Puffer und\n die Weiterleitung von Nachrichten an die richtigen Puffer. Zu diesem Zweck erstellt NML mehrere\n Listen f\u00fcr:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 31 / 76\n \n \u2022 cms-Puffer, die erstellt oder die verbunden wurden.\n \u2022 Prozesse und die Puffer, mit denen sie verbunden sind\n \u2022 eine lange Liste von Formatfunktionen f\u00fcr jeden Nachrichtentyp\n Dieser letzte Punkt ist wahrscheinlich der Kern eines Gro\u00dfteils der schlechten Bewertung von libnml/rcslib und NML im Allgemeinen. Jede Nachricht, die \u00fcber NML weitergegeben wird, erfordert neben\n@@ -1829,15 +1829,15 @@\n \u00fcbergibt. In format_xxx() findet die Arbeit des Aufbaus oder Abbaus der Nachricht statt. Eine Liste\n verschiedener Funktionen wird nacheinander aufgerufen, um verschiedene Teile des NML-Headers\n (nicht zu verwechseln mit dem cms-Header) in die richtige Reihenfolge zu bringen - die letzte aufgerufene Funktion ist emcFormat() in emc.cc.\n 3.22.1.3 NMLmsg und NML-Beziehungen\n NMLmsg ist die Basisklasse, von der alle Nachrichtenklassen abgeleitet sind. F\u00fcr jede Nachrichtenklasse muss eine eindeutige ID definiert (und an den Konstruktor \u00fcbergeben) werden sowie eine\n update(*cms)-Funktion. Die update()-Funktion wird von den NML-Lese-/Schreibfunktionen aufgerufen, wenn der NML-Formatierer aufgerufen wird - der Zeiger auf den Formatierer wird irgendwann\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 32 / 76\n \n im NML-Konstruktor deklariert worden sein. Durch die von NML erstellten verkn\u00fcpften Listen ist es\n m\u00f6glich, den cms-Zeiger auszuw\u00e4hlen, der an den Formatierer \u00fcbergeben wird, und damit den zu\n verwendenden Puffer.\n \n@@ -1869,15 +1869,15 @@\n Beispiele f\u00fcr nicht-zuf\u00e4llige Werkzeugwechsler sind der \u201dmanuelle\u201d Werkzeugwechsler, Drehautomaten und Regalwechsler.\n Wenn f\u00fcr einen nicht-zuf\u00e4lligen Werkzeugwechsler konfiguriert, \u00e4ndert LinuxCNC die Platznummer in\n der Werkzeugtabellen-Datei nicht wenn Werkzeuge geladen bzw. entladen werden. LinuxCNC-intern\n werden bei einem Werkzeugwechsel die Werkzeug-Informationen von der Werkzeugtabelle kopiert\n von der jeweiligen Taschennummer der Quelle (der Ablage) zur Tasche mit der Nummer 0 (welche\n die Spindel darstellt). Dies ersetzt die vorherigen dort abgelegten Werkzeuginformationen.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 33 / 76\n \n Anmerkung\n In LinuxCNC configured for nonrandom toolchanger, tool 0 (T0) has special meaning: \u201dno tool\u201d. T0\n may not appear in the tool table file, and changing to T0 will result in LinuxCNC thinking it has got\n an empty spindle.\n@@ -1909,15 +1909,15 @@\n \u2022 Wenn LinuxCNC f\u00fcr einen zuf\u00e4lligen Werkzeugwechsler konfiguriert ist, muss diese Zahl nichtnegativ sein. T0 ist in der Werkzeugtabelle erlaubt, und wird in der Regel verwendet, um \u201dkein\n Werkzeug\u201d, d.h. die leere Tasche darstellen.\n Taschennummer\n Eine ganze Zahl zur Identifikation der Tasche oder des Steckplatz in der WerkzeugwechslerHardware, in der sich das Werkzeug befindet. Pocket-Nummern werden unterschiedlich von LinuxCNC behandelt, abh\u00e4ngig davon ob f\u00fcr zuf\u00e4llige und nicht-zuf\u00e4llige Werkzeugwechsler konfiguriert:\n \u2022 Wenn LinuxCNC f\u00fcr einen nicht-zuf\u00e4lligen Werkzeugwechsler konfiguriert ist, kann die Platznummer in der Werkzeugdatei jede positive ganze Zahl (Tasche 0 ist nicht erlaubt) sein. LinuxCNC verdichtet die Platznummern stillschweigend, wenn es die Werkzeugdatei l\u00e4dt, so kann es\n einen Unterschied zwischen den Platznummern in der Werkzeugdatei und den internen Platznummern von LinuxCNC geben.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 34 / 76\n \n \u2022 Wenn LinuxCNC f\u00fcr einen zuf\u00e4lligen Werkzeugwechsler konfiguriert ist, m\u00fcssen die Platznummern in der Werkzeugdatei zwischen 0 und 1000, einschlie\u00dflich sein. Pockets 1-1000 sind im\n Werkzeugwechsler, Tasche 0 ist die Spindel.\n Durchmesser\n Durchmesser des Werkzeugs in Maschineneinheiten.\n@@ -1948,15 +1948,15 @@\n \n 3.24.3.2 M6\n Weist den Werkzeugwechsler an, zum aktuell ausgew\u00e4hlten Werkzeug zu wechseln (ausgew\u00e4hlt durch\n den vorherigen Befehl Txxx).\n Wird von Interp::convert_tool_change() behandelt.\n 1. Die Maschine wird aufgefordert, zum ausgew\u00e4hlten Werkzeug zu wechseln, indem die CanonFunktion CHANGE_TOOL() mit settings->selected_pocket (einem Werkzeugdatenindex) aufgerufen wird.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 35 / 76\n \n a. (saicanon) Sets sai\u2019s _active_slot to the passed-in pocket number. Tool information is copied from the selected pocket of of the tool table (ie, from sai\u2019s _tools[_active_slot]) to\n the spindle (aka sai\u2019s _tools[0]).\n b. (emccanon) Sendet eine EMC_TOOL_LOAD Nachricht an Task, die diese an IO sendet. IO setzt\n emcioStatus.tool.toolInSpindle auf die Werkzeugnummer des Werkzeugs in der Tasche,\n@@ -1988,15 +1988,15 @@\n wo sie zum Offset f\u00fcr zuk\u00fcnftige Bewegungen verwendet werden.\n 3. Zur\u00fcck in interp werden die Offsets in settings->tool_offset aufgezeichnet. Die effektive Tasche wird in settings->tool_offset_index aufgezeichnet, obwohl dieser Wert nie verwendet\n wird.\n 3.24.3.4 G10 L1/L10/L11\n \u00c4ndert die Werkzeugtabelle.\n Wird von Interp::convert_setup_tool() behandelt.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 36 / 76\n \n 1. W\u00e4hlt die Werkzeugnummer aus dem P-Wort im Block aus und findet die Tasche f\u00fcr dieses Werkzeug:\n a. Bei einer nicht-zuf\u00e4lligen Werkzeugwechsler-Konfiguration ist dies immer die Platznummer\n im Werkzeugwechsler (auch wenn sich das Werkzeug in der Spindel befindet).\n b. Bei einer zuf\u00e4lligen Werkzeugwechslerkonfiguration wird, wenn das Werkzeug gerade geladen ist, Platz 0 verwendet (Platz 0 bedeutet \u201ddie Spindel\u201d), und wenn das Werkzeug nicht\n@@ -2028,15 +2028,15 @@\n 3.24.3.5 M61\n Setze aktuelle Werkzeugnummer. Dies wechselt LinuxCNC\u2019s interne Darstellung, welches Werkzeug\n in der Spindel ist, ohne tats\u00e4chlich bewegen den Werkzeugwechsler oder Austausch von Werkzeugen.\n Wird von Interp::convert_tool_change() behandelt.\n Canon: CHANGE_TOOL_NUMBER()\n settings->current_pocket wird dem Werkzeugdaten-Index zugewiesen, der das durch das Q-WortArgument angegebene Werkzeug enth\u00e4lt.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 37 / 76\n \n 3.24.3.6 G41/G41.1/G42/G42.1\n Aktiviert die Fr\u00e4serradiuskompensation (engl. kurz cutter comp genannt).\n Wird von Interp::convert_cutter_compensation_on() behandelt.\n Kein Canon-Aufruf, die Fr\u00e4ser Kompensation erfolgt im Interpreter. Verwendet die Werkzeugtabelle\n@@ -2069,15 +2069,15 @@\n settings.selected_pocket\n Tooldatenindex des zuletzt mit Txxx ausgew\u00e4hlten Werkzeugs.\n settings.current_pocket\n Urspr\u00fcnglicher Werkzeugdatenindex des Werkzeugs, das sich gerade in der Spindel befindet.\n Mit anderen Worten: Von welchem Werkzeugdatenindex das Werkzeug geladen wurde, das sich\n gerade in der Spindel befindet.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 38 / 76\n \n settings.tool_table[]\n Ein Array mit Werkzeuginformationen. Der Index im Array ist die \u201dPlatznummer\u201d (auch \u201dSlotnummer\u201d genannt). Platz 0 ist die Spindel, die Pl\u00e4tze 1 bis (CANON_POCKETS_MAX-1) sind die\n Pl\u00e4tze des Werkzeugwechslers.\n settings.tool_offset_index\n@@ -2111,15 +2111,15 @@\n Diese werden \u00fcber INI-Variablen im Abschnitt [EMCIO] gesetzt und bestimmen, wie Werkzeugwechsel durchgef\u00fchrt werden.\n \n 3.25 Parameter-Bestimmung von Gelenken und Achsen\n 3.25.1 Im Statuspuffer\n Der Statuspuffer wird vom Task-Modul und den Benutzeroberfl\u00e4chen verwendet.\n FIXME: axis_mask und axes \u00fcberspezifizieren die Anzahl der Achsen\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 39 / 76\n \n status.motion.traj.axis_mask\n A bitmask with a \u201d1\u201d for the axes that are present and a \u201d0\u201d for the axes that are not present. X is\n bit 0 with value 20 = 1 if set, Y is bit 1 with value 21 = 2, Z is bit 2 with value 4, etc. For example,\n a machine with X and Z axes would have an axis_mask of 0x5, an XYZ machine would have 0x7,\n@@ -2145,15 +2145,15 @@\n Die Echtzeitkomponente des Motion Controllers erh\u00e4lt zun\u00e4chst die Anzahl der Joints aus dem LoadTime-Parameter num_joints. Dieser bestimmt, wie viele Gelenke mit HAL-Pins beim Start erzeugt\n werden.\n Die Anzahl der Gelenke einer Bewegung kann zur Laufzeit mit dem Befehl EMCMOT_SET_NUM_JOINTS\n aus dem Task heraus ge\u00e4ndert werden.\n Der Motion Controller arbeitet immer mit EMCMOT_MAX_AXIS-Achsen. Er erstellt immer neun S\u00e4tze von\n \u201dAchsen..\u201d-Pins.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n Kapitel 4\n \n NML-Nachrichten\n Liste der NML-Nachrichten.\n F\u00fcr Einzelheiten siehe src/emc/nml_intf/emc.hh.\n \n@@ -2185,15 +2185,15 @@\n EMC_JOINT_UNHOME_TYPE\n EMC_JOINT_STAT_TYPE\n \n 4.3 ACHSE\n \n 40 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n EMC_AXIS_STAT_TYPE\n \n 4.4 JOG\n EMC_JOG_CONT_TYPE\n EMC_JOG_INCR_TYPE\n EMC_JOG_ABS_TYPE\n@@ -2239,15 +2239,15 @@\n EMC_TRAJ_RIGID_TAP_TYPE\n EMC_TRAJ_STAT_TYPE\n \n 4.6 MOTION (engl. f\u00fcr Bewegung)\n \n 41 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 42 / 76\n \n EMC_MOTION_INIT_TYPE\n EMC_MOTION_HALT_TYPE\n EMC_MOTION_ABORT_TYPE\n EMC_MOTION_SET_AOUT_TYPE\n@@ -2292,15 +2292,15 @@\n EMC_TOOL_STAT_TYPE\n \n 4.9 AUX (engl. Kurzform f\u00fcr \u201dandere Hilfsfunktionen\u201d)\n EMC_AUX_ESTOP_ON_TYPE\n EMC_AUX_ESTOP_OFF_TYPE\n EMC_AUX_ESTOP_RESET_TYPE\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 43 / 76\n \n EMC_AUX_INPUT_WAIT_TYPE\n EMC_AUX_STAT_TYPE\n \n 4.10 SPINDLE (engl. f\u00fcr Spindel)\n@@ -2335,28 +2335,28 @@\n EMC_IO_ABORT_TYPE\n EMC_IO_SET_CYCLE_TIME_TYPE\n EMC_IO_STAT_TYPE\n EMC_IO_PLUGIN_CALL_TYPE\n \n 4.14 Andere\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n EMC_NULL_TYPE\n EMC_SET_DEBUG_TYPE\n EMC_SYSTEM_CMD_TYPE\n EMC_INIT_TYPE\n EMC_HALT_TYPE\n EMC_ABORT_TYPE\n EMC_STAT_TYPE\n EMC_EXEC_PLUGIN_CALL_TYPE\n \n 44 / 76\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 45 / 76\n \n Kapitel 5\n \n Quellcode-Stil\n Dieses Kapitel beschreibt den vom LinuxCNC-Team bevorzugten Quellcode-Stil.\n@@ -2380,15 +2380,15 @@\n \n 5.4 Setzen von Klammern\n Setzen Sie die \u00f6ffnende Klammer zuletzt auf die Linie, und setzen Sie die schlie\u00dfende Klammer zuerst:\n if (x) {\n // macht irgendetwas der Situation Angepasstes\n }\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 46 / 76\n \n Die schlie\u00dfende Klammer steht in einer eigenen Zeile, es sei denn, es folgt eine Fortsetzung derselben\n Anweisung, z. B. ein while in einer do-Anweisung oder ein else in einer if-Anweisung, wie hier:\n do {\n // etwas Wichtiges\n@@ -2422,15 +2422,15 @@\n 5.6 Funktionen\n Funktionen sollten kurz und knapp sein und nur einen Zweck erf\u00fcllen. Sie sollten auf einen oder zwei\n Bildschirme voller Text passen (die ISO/ANSI-Bildschirmgr\u00f6\u00dfe betr\u00e4gt 80x24, wie wir alle wissen)\n und nur eine Aufgabe erf\u00fcllen, und diese gut.\n Die maximale L\u00e4nge einer Funktion ist umgekehrt proportional zur Komplexit\u00e4t und zum Grad der\n Einr\u00fcckung dieser Funktion. Wenn Sie also eine konzeptionell einfache Funktion haben, die nur aus\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 47 / 76\n \n einer einzigen langen (aber einfachen) Fallanweisung besteht, bei der Sie viele kleine Dinge f\u00fcr viele\n verschiedene F\u00e4lle tun m\u00fcssen, ist es in Ordnung, eine l\u00e4ngere Funktion zu haben.\n Wenn Sie jedoch eine komplexe Funktion haben und Sie vermuten, dass ein weniger begabter Anf\u00e4nger nicht einmal versteht, worum es in der Funktion geht, sollten Sie sich um so mehr an die\n H\u00f6chstgrenzen halten. Verwenden Sie Hilfsfunktionen mit aussagekr\u00e4ftigen Namen (Sie k\u00f6nnen den\n@@ -2466,15 +2466,15 @@\n awk-Aufruf als gawk oder mawk.\n \n 5.9 C++-Konventionen\n C++-Codierungsstile sind wiederholt Anlass f\u00fcr hitzige Debatten (\u00e4hnlich wie der Streit zwischen\n emacs und vi). Eines ist jedoch sicher: Ein gemeinsamer Stil, der von allen an einem Projekt Beteiligten\n verwendet wird, f\u00fchrt zu einheitlichem und lesbarem Code.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 48 / 76\n \n Namenskonventionen: Konstanten entweder aus #defines oder aus Enumerationen sollten durchgehend in Gro\u00dfbuchstaben geschrieben werden. Begr\u00fcndung: Erleichtert das Erkennen von durch den\n Pr\u00e4prozessor substituierten Ausdr\u00fccke im Quellcode, z.B. EMC_MESSAGE_TYPE.\n Klassen und Namensr\u00e4ume (engl. namespace) sollten den ersten Buchstaben eines jeden Wortes\n gro\u00df schreiben und Unterstriche vermeiden. Begr\u00fcndung: Identifiziert Klassen, Konstruktoren und\n@@ -2510,15 +2510,15 @@\n Implizite Tests auf Null sollten mit Ausnahme von booleschen Variablen nicht verwendet werden, z.B.\n if (spindle_speed != 0), NICHT if (spindle_speed).\n In einem for()-Konstrukt d\u00fcrfen nur Anweisungen zur Schleifenkontrolle enthalten sein, z.B. sum = 0;\n for (i = 0; i < 10; i++) { sum += value[i]; } \u0300+ NICHT: \u0300\n for (i=0, sum=0; i<10; i++) sum\n += value[i];.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 49 / 76\n \n Ebenso m\u00fcssen ausf\u00fchrbare Anweisungen in Konditionalen vermieden werden, z.B. ist if (fd =\n open(file_name)) b\u00f6se.\n Komplexe bedingte Anweisungen sollten vermieden werden - f\u00fchren Sie stattdessen tempor\u00e4re boolesche Variablen ein.\n Klammern sollten in mathematischen Ausdr\u00fccken reichlich verwendet werden - Verlassen Sie sich\n@@ -2531,15 +2531,15 @@\n Use the PEP 8 style for Python code.\n \n 5.11 Comp-Codierungs-Standards\n Im Deklarationsteil einer .comp-Datei beginnen Sie jede Deklaration mit der ersten Spalte. F\u00fcgen Sie\n zus\u00e4tzliche Leerzeilen ein, wenn sie zur Gruppierung verwandter Elemente beitragen.\n Im Code-Teil einer .comp-Datei ist der normale C-Codierungsstil zu beachten.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 50 / 76\n \n Kapitel 6\n \n Kompilieren (\u201dbauen\u201d) von LinuxCNC\n 6.1 Einf\u00fchrung\n@@ -2565,15 +2565,15 @@\n 6.2 Downloading source tree\n The LinuxCNC project git repository is at https://github.com/LinuxCNC/linuxcnc. GitHub is a popular\n git hosting service and code sharing website.\n To retrieve the source tree you have two options:\n Download tarball\n On the LinuxCNC project page in GitHub find a reference to the \u201dreleases\u201d or \u201dtags\u201d, click that\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 51 / 76\n \n hyperlink to the archive page and download the latest .tar file. You will find that file compressed\n as a .tar.xz or .tar.gz file. This file, commonly referred to as a \u201dtarball\u201d is an archive very analogous\n to a .zip. Your Linux desktop will know how to treat that file when double-clicking on it.\n Prepare a local copy of the LinuxCNC repository\n@@ -2617,15 +2617,15 @@\n \n 6.3 Unterst\u00fctzte Plattformen\n The LinuxCNC project targets modern Debian-based distributions, including Debian, Ubuntu, and\n Mint. We continuously test on the platforms listed at http://buildbot.linuxcnc.org.\n LinuxCNC builds on most other Linux distributions, though dependency management will be more\n manual and less automatic. Patches to improve portability to new platforms are always welcome.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 52 / 76\n \n 6.3.1 Echtzeit\n LinuxCNC is a machine tool controller, and it requires a realtime platform to do this job. This version\n of LinuxCNC supports the following platforms. The first three listed are realtime operating systems:\n RTAI\n@@ -2658,15 +2658,15 @@\n The src/configure script configures how the source code will be compiled. It takes many optional\n arguments. List all arguments to src/configure by running this:\n $ cd linuxcnc-source-dir/src\n $ ./configure --help\n \n Die am h\u00e4ufigsten verwendeten Argumente sind:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 53 / 76\n \n --with-realtime=uspace\n Build for any realtime platform, or for non-realtime. The resulting LinuxCNC executables will run\n on both a Linux kernel with Preempt-RT patches (providing realtime machine control) and on a\n vanilla (un-patched) Linux kernel (providing G-code simulation but no realtime machine control).\n@@ -2702,15 +2702,15 @@\n in a Debian package, complete with dependency information. This process by default also includes\n the building of the documentation, which takes its time because of all the I/O for many languages, but\n that can be skipped. LinuxCNC is then installed as part of those packages on the same machines or on\n whatever machine of the same architecture that the .deb files are copied to. LinuxCNC cannot be run\n until the Debian packages are installed on a target machine and then the executables are available in\n /usr/bin and /usr/lib just like other regular software of the sytem.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 54 / 76\n \n This build mode is primarily useful when packaging the software for delivery to end users, and when\n building the software for a machine that does not have the build environment installed, or that does\n not have internet access.\n To build packages is primarily useful when packaging the software for delivery to end users. Developers among themselves exchange only the source code, likely supported by the LinuxCNC GitHub repository referenced below. Also, when building the software for a machine that doesn\u2019t have the build\n@@ -2748,15 +2748,15 @@\n 6.4.2.1 LinuxCNC\u2019s debian/configure arguments\n The LinuxCNC source tree has a debian directory with all the info about how the Debian package\n shall be built, but some key files within are only distributed as templates. The debian/configure\n script readies those build instructions for the regular Debian packaging utilities and must thus be run\n prior to dpkg-checkbuilddeps or dpkg-buildpackage.\n The debian/configure script takes a single argument which specifies the underlying realtime or nonrealtime platform to build for. The regular values for this argument are:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 55 / 76\n \n no-docs\n Skip building documentation.\n uspace\n Konfigurieren Sie das Debian-Paket f\u00fcr Preempt-RT-Echtzeit oder f\u00fcr Nicht-Echtzeit (diese beiden sind kompatibel).\n@@ -2791,15 +2791,15 @@\n This will prepare the file debian/control that contains lists of Debian packages to create with the\n runtime dependencies for those packages and for our cause also the build-dependencies for those\n to-be-created packages.\n The most straightforward way to get all build-dependencies installed is to just execute (from the same\n directory):\n sudo apt-get build-dep .\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 56 / 76\n \n which will install all the dependencies required but available. The . is part of the command line, i.e. an\n instruction to retrieve the dependencies for the source tree at hand, not for dependencies of another\n package. This completes the installation of build-dependencies.\n The remainder of this section describes a semi-manual approach. The list of dependencies in debian/control is long and it is tedious to compare the current state of packages already installed with it.\n@@ -2836,15 +2836,15 @@\n introduced above, the command has two extra options passed to it. Like for all good Linux tools, the\n man page has all the details with man dpkg-buildpackage.\n -uc\n Do not sign the resulting binaries. You would want to sign your packages with a GPG key of yours\n only if you would wanted to distribute them to others. Having that option not set and then failing\n to sign the package would not affect the .deb file.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 57 / 76\n \n -b\n Only compiles the architecture-dependent packages (like the linuxcnc binaries and GUIs). This\n is very helpful to avoid compiling what is hardware-independent, which for LinuxCNC is the\n documentation. That documentation is available online anyway.\n@@ -2882,15 +2882,15 @@\n effects on latency. Normally, locking memory into RAM is frowned upon, and the operating system\n places a strict limit on how much memory a user is allowed to have locked.\n Bei Verwendung der Preempt-RT-Echtzeitplattform l\u00e4uft LinuxCNC mit gen\u00fcgend Privilegien, um seine Speichersperrgrenze selbst zu erh\u00f6hen. Bei Verwendung der RTAI-Echtzeit-Plattform hat es nicht\n genug Privilegien, und der Benutzer muss die Speichersperre Grenze zu erh\u00f6hen.\n Wenn LinuxCNC beim Start folgende Meldung zeigt, ist das Problem die f\u00fcr Ihre System konfigurierte\n Grenze des gesperrten Speichers:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 58 / 76\n \n RTAPI: ERROR: failed to map shmem\n RTAPI: Locked memory limit is 32KiB, recommended at least 20480KiB.\n \n Um dieses Problem zu beheben, f\u00fcgen Sie eine Datei namens /etc/security/limits.d/linuxcnc.conf\n@@ -2898,15 +2898,15 @@\n Die Datei sollte die folgende Zeile enthalten:\n * - memlock 20480\n \n Melden Sie sich ab und wieder an, damit die \u00c4nderungen wirksam werden. \u00dcberpr\u00fcfen Sie mit dem\n folgenden Befehl, ob die Speichersperrgrenze angehoben wurde:\n $ ulimit -l\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 59 / 76\n \n Kapitel 7\n \n Hinzuf\u00fcgen von Konfigurationsauswahl\n elementen\n@@ -2917,15 +2917,15 @@\n \n \u2022 Runtime settings \u2014 the configuration selector can also offer configuration subdirectories specified\n at runtime using an exported environamental variable (LINUXCNC_AUX_CONFIGS). This variable\n should be a path list of one or more configuration directories separated by a (:). Typically, this\n variable would be set in a shell starting linuxcnc or in a user\u2019s ~/.profile startup script. Example:\n export LINUXCNC_AUX_CONFIGS=~/myconfigs:/opt/otherconfigs\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 60 / 76\n \n Kapitel 8\n \n Mitwirkung an LinuxCNC\n 8.1 Einf\u00fchrung\n@@ -2946,15 +2946,15 @@\n All of the LinuxCNC source is maintained in the Git revision control system.\n \n 8.4.1 LinuxCNC offizielles Git Repository\n The official LinuxCNC git repo is at https://github.com/linuxcnc/linuxcnc/\n Jeder kann eine schreibgesch\u00fctzte Kopie des LinuxCNC-Quellbaums \u00fcber git erhalten:\n git clone https://github.com/linuxcnc/linuxcnc linuxcnc-dev\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 61 / 76\n \n Wenn Sie ein Entwickler mit Schreibrechten (genannt \u201dpush\u201d in Anlehnung an das git-Kommando)\n sind, folgen Sie den Anweisungen in github, um ein Repository einzurichten, von dem aus Sie pushen\n k\u00f6nnen.\n Beachten Sie, dass der Clone-Befehl das lokale LinuxCNC Repo in ein Verzeichnis namens linuxcnc-dev\n@@ -2987,15 +2987,15 @@\n \u2022 git tutorial 2: https://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html\n \n \u2022 Allt\u00e4gliches Git mit 20 Befehlen oder so: https://www.kernel.org/pub/software/scm/git/docs/giteveryday.ht\n \u2022 Git-Benutzerhandbuch: https://www.kernel.org/pub/software/scm/git/docs/user-manual.html\n For a more thorough documentation of git see the \u201dPro Git\u201d book: https://git-scm.com/book\n Ein weiteres Online-Tutorial, das empfohlen wurde, ist \u201dGit for the Lazy\u201d: https://wiki.spheredev.org/index.php/Git_for_the_lazy\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 62 / 76\n \n 8.5 \u00dcberblick \u00fcber den Prozess\n Ein \u00dcberblick dar\u00fcber, wie man \u00c4nderungen am Quelltext vornimmt, sieht folgenderma\u00dfen aus:\n \u2022 Communicate with the project developers and let us know what you\u2019re hacking on. Explain what\n you are doing, and why.\n@@ -3027,15 +3027,15 @@\n Benutzen Sie Ihren richtigen Namen und eine direkt nutzbare E-Mail Adresse.\n \n 8.7 Effektive Nutzung von Git\n 8.7.1 Commit-Inhalte\n Halten Sie Ihre Commits klein und auf den Punkt. Jeder Commit sollte eine logische \u00c4nderung am\n Projektarchiv bewirken.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 63 / 76\n \n 8.7.2 Schreiben Sie gute Commit-Nachrichten\n Halten Sie die Commit-Meldungen etwa 72 Spalten breit (damit sie in einem Terminalfenster mit\n Standardgr\u00f6\u00dfe nicht umbrechen, wenn sie von git log angezeigt werden).\n Verwenden Sie die erste Zeile als Zusammenfassung der Absicht der \u00c4nderung (fast wie die Betreffzeile einer E-Mail). Danach folgt eine Leerzeile und dann eine l\u00e4ngere Nachricht, in der die \u00c4nderung\n@@ -3067,15 +3067,15 @@\n Entwicklern teilen\n Mit Git ist es m\u00f6glich, jede Bearbeitung und jeden Fehlstart als separaten Commit aufzuzeichnen.\n Dies ist sehr praktisch, um w\u00e4hrend der Entwicklung Kontrollpunkte zu setzen, aber oft m\u00f6chte man\n diese Fehlstarts nicht mit anderen teilen.\n Git bietet zwei M\u00f6glichkeiten, die Historie zu bereinigen, die beide frei durchgef\u00fchrt werden k\u00f6nnen,\n bevor Sie die \u00c4nderung freigeben:\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 64 / 76\n \n Mit git commit --amend k\u00f6nnen Sie zus\u00e4tzliche \u00c4nderungen an dem letzten Commit vornehmen und\n optional auch die Commit-Nachricht \u00e4ndern. Benutzen Sie dies, wenn Sie sofort merken, dass Sie\n etwas in der Commit-Nachricht vergessen haben, oder wenn Sie sich in der Commit-Nachricht vertippt\n haben.\n@@ -3114,30 +3114,30 @@\n Verwenden Sie git pull --rebase anstelle von git pull, um eine sch\u00f6ne lineare Historie zu erhalten. Wenn Sie rebasen, behalten Sie Ihre Arbeit immer als Revisionen, die vor origin/master liegen, so\n dass Sie Dinge wie git format-patch ausf\u00fchren k\u00f6nnen, um Entwicklungen mit anderen zu teilen,\n ohne sie in das zentrale Repository zu pushen.\n \n 8.8 \u00dcbersetzungen\n Das LinuxCNC-Projekt verwendet gettext, um die Software in viele Sprachen zu \u00fcbersetzen. Wir begr\u00fc\u00dfen Beitr\u00e4ge und Hilfe in diesem Bereich! Das Verbessern und Erweitern der \u00dcbersetzungen ist\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 65 / 76\n \n einfach: Sie m\u00fcssen keine Programmierkenntnisse haben und Sie m\u00fcssen keine speziellen \u00dcbersetzungsprogramme oder andere Software installieren.\n Der einfachste Weg, bei \u00dcbersetzungen zu helfen, ist die Nutzung von Weblate, einem Open-SourceWebdienst. Unser \u00dcbersetzungsprojekt finden Sie hier: https://hosted.weblate.org/projects/linuxcnc/\n Die Dokumentation zur Verwendung von Weblate finden Sie hier: https://docs.weblate.org/en/latest/user/basic.html\n Wenn Webdienste nicht Ihr Ding sind, k\u00f6nnen Sie auch mit einer Reihe lokaler Gettext-\u00dcbersetzerApps wie gtranslator, poedit und vielen anderen an \u00dcbersetzungen arbeiten.\n \n 8.9 Andere M\u00f6glichkeiten, einen Beitrag zu leisten\n Es gibt viele M\u00f6glichkeiten, zu LinuxCNC beizutragen, die in diesem Dokument nicht behandelt werden. Diese Wege umfassen:\n \u2022 Beantwortung von Fragen im Forum, auf Mailinglisten und im IRC\n \u2022 Melden von Fehlern im Bug-Tracker, im Forum, auf Mailinglisten oder im IRC\n \u2022 Hilfe beim Testen experimenteller Funktionen\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 66 / 76\n \n Kapitel 9\n \n Glossar\n Eine Auflistung von Begriffen und deren Bedeutung. Einige Begriffe haben eine allgemeine Bedeutung\n@@ -3171,15 +3171,15 @@\n Umkehrspiel-Kompensation\n Any technique that attempts to reduce the effect of backlash without actually removing it from\n the mechanical system. This is typically done in software in the controller. This can correct the\n final resting place of the part in motion but fails to solve problems related to direction changes\n while in motion (think circular interpolation) and motion that is caused when external forces\n (think cutting tool pulling on the work piece) are the source of the motion.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 67 / 76\n \n Kugelumlaufspindel\n A type of lead-screw that uses small hardened steel balls between the nut and screw to reduce\n friction. Ball-screws have very low friction and backlash, but are usually quite expensive.\n Kugelmutter\n@@ -3219,15 +3219,15 @@\n sinking electrode.\n EMC\n The Enhanced Machine Controller. Initially a NIST project. Renamed to LinuxCNC in 2012.\n EMCIO\n The module within LinuxCNC that handles general purpose I/O, unrelated to the actual motion\n of the axes.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 68 / 76\n \n EMCMOT\n The module within LinuxCNC that handles the actual motion of the cutting tool. It runs as a\n real-time program and directly controls the motors.\n Encoder\n@@ -3270,15 +3270,15 @@\n A text file that contains most of the information that configures LinuxCNC for a particular machine.\n Instanz\n One can have an instance of a class or a particular object. The instance is the actual object created\n at runtime. In programmer jargon, the \u201dLassie\u201d object is an instance of the \u201dDog\u201d class.\n Gelenk-Koordinaten\n These specify the angles between the individual joints of the machine. See also Kinematics\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 69 / 76\n \n Jog (manuelle Bewegung)\n Manually moving an axis of a machine. Jogging either moves the axis a fixed amount for each\n key-press, or moves the axis at a constant speed as long as you hold down the key. In manual\n mode, jog speed can be set from the graphical interface.\n@@ -3323,15 +3323,15 @@\n Python\n General-purpose, very high-level programming language. Used in LinuxCNC for the Axis GUI,\n the StepConf configuration tool, and several G-code programming scripts.\n Schnell\n Fast, possibly less precise motion of the tool, commonly used to move between cuts. If the tool\n meets the workpiece or the fixturing during a rapid, it is probably a bad thing!\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 70 / 76\n \n Schnellauf-Geschwindigkeit\n The speed at which a rapid motion occurs. In auto or MDI mode, rapid rate is usually the maximum\n speed of the machine. It is often desirable to limit the rapid rate when testing a G-code program\n for the first time.\n@@ -3373,15 +3373,15 @@\n Schrittmotor\n A type of motor that turns in fixed steps. By counting steps, it is possible to determine how far\n the motor has turned. If the load exceeds the torque capability of the motor, it will skip one or\n more steps, causing position errors.\n TASK (engl. f\u00fcr Aufgabe, auch Name des entsprechenden LinuxCNC Moduls)\n The module within LinuxCNC that coordinates the overall execution and interprets the part program.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 71 / 76\n \n Tcl/Tk\n A scripting language and graphical widget toolkit with which several of LinuxCNCs GUIs and\n selection wizards were written.\n Traverse Bewegung\n@@ -3391,15 +3391,15 @@\n Ganzzahl ohne Vorzeichen\n A whole number that has no sign. In HAL it is known as u32. (An unsigned 32-bit integer has a\n usable range of zero to 4,294,967,296.)\n Weltkoordinaten\n This is the absolute frame of reference. It gives coordinates in terms of a fixed reference frame\n that is attached to some point (generally the base) of the machine tool.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 72 / 76\n \n Kapitel 10\n \n Juristischer Abschnitt\n Die \u00dcbersetzungen dieser Datei im Quellbaum sind nicht rechtsverbindlich.\n@@ -3428,15 +3428,15 @@\n f\u00fcr freie Software ist.\n Wir haben diese Lizenz entworfen, um sie f\u00fcr Handb\u00fccher f\u00fcr freie Software zu verwenden, weil freie\n Software freie Dokumentation braucht: ein freies Programm sollte mit Handb\u00fcchern geliefert werden,\n welche die gleichen Freiheiten bieten wie die Software. Aber diese Lizenz ist nicht auf SoftwareHandb\u00fccher beschr\u00e4nkt; sie kann f\u00fcr jedes textliche Werk verwendet werden, unabh\u00e4ngig vom Thema\n oder ob es als gedrucktes Buch ver\u00f6ffentlicht wird. Wir empfehlen diese Lizenz in erster Linie f\u00fcr\n Werke, deren Zweck die Anleitung oder das Nachschlagen ist.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 73 / 76\n \n 1. APPLICABILITY AND DEFINITIONS\n Diese Lizenz gilt f\u00fcr jedes Handbuch oder andere Werk, das einen Hinweis des Urheberrechtsinhabers\n enth\u00e4lt, der besagt, dass es unter den Bedingungen dieser Lizenz verbreitet werden darf. Das \u201dDokument\u201d, unten, bezieht sich auf ein solches Handbuch oder Werk. Jedes Mitglied der \u00d6ffentlichkeit ist\n ein Lizenznehmer und wird als \u201dSie\u201d angesprochen.\n@@ -3470,15 +3470,15 @@\n oder nicht kommerziell, vorausgesetzt, dass diese Lizenz, die Urheberrechtsvermerke und der Lizenzvermerk, der besagt, dass diese Lizenz f\u00fcr das Dokument gilt, in allen Kopien wiedergegeben\n werden, und dass Sie keine weiteren Bedingungen zu denen dieser Lizenz hinzuf\u00fcgen. Sie d\u00fcrfen keine technischen Ma\u00dfnahmen anwenden, um das Lesen oder weitere Kopieren der von Ihnen erstellten\n oder verbreiteten Kopien zu behindern oder zu kontrollieren. Sie d\u00fcrfen jedoch eine Verg\u00fctung im\n Austausch f\u00fcr Kopien annehmen. Wenn Sie eine ausreichend gro\u00dfe Anzahl von Kopien verbreiten,\n m\u00fcssen Sie auch die Bedingungen in Abschnitt 3 einhalten.\n Sie k\u00f6nnen auch Kopien unter den oben genannten Bedingungen ausleihen und \u00f6ffentlich ausstellen.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 74 / 76\n \n 3. COPYING IN QUANTITY\n Wenn Sie mehr als 100 gedruckte Exemplare des Dokuments ver\u00f6ffentlichen und der Lizenzhinweis\n des Dokuments Umschlagtexte verlangt, m\u00fcssen Sie die Exemplare in Umschl\u00e4ge einlegen, die deutlich und lesbar alle diese Umschlagtexte enthalten: Vorderseitentexte auf dem vorderen Umschlag\n und R\u00fcckseitentexte auf dem hinteren Umschlag. Auf beiden Umschl\u00e4gen m\u00fcssen Sie au\u00dferdem deutlich und leserlich als Verleger dieser Exemplare ausgewiesen sein. Der vordere Umschlag muss den\n@@ -3516,15 +3516,15 @@\n bei. I. Behalten Sie den Abschnitt mit dem Titel Geschichte\u201d und seinen Titel bei und f\u00fcgen Sie\n ihm einen Punkt hinzu, der mindestens den Titel, das Jahr, die neuen Autoren und den Herausgeber der modifizierten Version angibt, wie auf der Titelseite angegeben. Wenn es keinen Abschnitt\n mit dem Titel \u201dGeschichte\u201d in dem Dokument gibt, erstellen Sie einen, der den Titel, das Jahr,\n die Autoren und den Herausgeber des Dokuments angibt, wie auf der Titelseite angegeben, und\n f\u00fcgen Sie dann einen Punkt hinzu, der die ge\u00e4nderte Version beschreibt, wie im vorherigen Satz\n angegeben. J. Bewahren Sie den im Dokument angegebenen Netzwerkstandort, falls vorhanden,\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 75 / 76\n \n f\u00fcr den \u00f6ffentlichen Zugang zu einer transparenten Kopie des Dokuments auf, und ebenso die im\n Dokument angegebenen Netzwerkstandorte f\u00fcr fr\u00fchere Versionen, auf denen es basierte. Diese\n k\u00f6nnen im Abschnitt \u201dHistorie\u201d abgelegt werden. Sie k\u00f6nnen eine Netzwerkadresse f\u00fcr ein Werk\n weglassen, das mindestens vier Jahre vor dem Dokument selbst ver\u00f6ffentlicht wurde, oder wenn\n@@ -3564,15 +3564,15 @@\n You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that\n is included in the collection, provided that you follow the rules of this License for verbatim copying of\n each of the documents in all other respects.\n You may extract a single document from such a collection, and distribute it individually under this\n License, provided you insert a copy of this License into the extracted document, and follow this License\n in all other respects regarding verbatim copying of that document.\n \n-\fEntwickler-Handbuch V2.9.7, 22 Oct 2025\n+\fEntwickler-Handbuch V2.9.7, 23 Oct 2025\n \n 76 / 76\n \n 7. AGGREGATION WITH INDEPENDENT WORKS\n A compilation of the Document or its derivatives with other separate and independent documents or\n works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified\n Version of the Document, provided no compilation copyright is claimed for the compilation. Such a\n"}]}, {"source1": "./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf", "source2": "./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf", "unified_diff": null, "details": [{"source1": "./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf", "source2": "./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf", "comments": ["Document info"], "unified_diff": "@@ -1,4 +1,4 @@\n CreationDate: 'D:20251022224313Z'\n Creator: 'DBLaTeX-0.3.12'\n Producer: 'xdvipdfmx (20250410)'\n-Title: 'LinuxCNC V2.9.7, 22 Oct 2025'\n+Title: 'LinuxCNC V2.9.7, 23 Oct 2025'\n"}, {"source1": "pdftotext {} -", "source2": "pdftotext {} -", "unified_diff": "@@ -1,10 +1,10 @@\n-LinuxCNC V2.9.7, 22 Oct 2025\n+LinuxCNC V2.9.7, 23 Oct 2025\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n ii\n \n Inhaltsverzeichnis\n \n I Erste Schritte & Konfiguration\n \n@@ -114,15 +114,15 @@\n \n 8\n \n 1.3.2.1 Raspberry Pi Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 8\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n iii\n \n 1.3.2.2 AMD-64 (x86-64, PC) Image using GUI tools\n \n . . . . . . . . . . . . . . . . . .\n \n@@ -284,15 +284,15 @@\n \n 23\n \n 1.6.4 Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 23\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n iv\n \n 1.6.5 Module auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 23\n \n@@ -447,15 +447,15 @@\n \n 46\n \n 2.3.2.2 Feed Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 46\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n v\n \n 2.3.2.3 Tool Radius Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 46\n \n@@ -613,15 +613,15 @@\n \n 56\n \n 2.5.3.3 Optionaler Programm-Stopp-Schalter . . . . . . . . . . . . . . . . . . . . . . .\n \n 56\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n vi\n \n 2.5.4 Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 56\n \n@@ -779,15 +779,15 @@\n \n 75\n \n 2.7.13Hole And Small Shape Cutting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 75\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n vii\n \n 2.7.14I/O Pins For Plasma Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 76\n \n@@ -941,15 +941,15 @@\n \n 97\n \n 3.1.8.3 Determining Spindle Calibration . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 97\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n viii\n \n 3.1.9 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n 98\n \n@@ -1014,15 +1014,15 @@\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137\n \n 4.1.4.6 Manuelle Abstimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137\n 4.1.5 RTAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137\n 4.1.5.1 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n ix\n \n 4.1.6 Computer/Machine Interface Hardware Options . . . . . . . . . . . . . . . . . . . . . 138\n 4.1.6.1 litehm2/rv901t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138\n 4.2 Latency Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138\n 4.2.1 What is latency? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138\n@@ -1070,15 +1070,15 @@\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160\n \n 4.4.2.11 [KINS] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163\n 4.4.2.12 [AXIS_] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163\n 4.4.2.13 [JOINT_] Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n x\n \n 4.4.2.14 [SPINDLE_] Section(s)) . . . . . . . . . . . . . . . . . . . . . . . . . . 170\n 4.4.2.15 [EMCIO] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171\n 4.5 Konfiguration der Referenzfahrt (engl. homing)\n \n@@ -1131,15 +1131,15 @@\n 4.8 Stepper Schnellstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n 4.8.1 Latenz-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n 4.8.2 Sherline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n 4.8.3 Xylotex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n 4.8.4 Maschineninformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n 4.8.5 Informationen zur Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xi\n \n 4.8.6 Mechanische Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188\n 4.9 Stepper Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189\n 4.9.1 Einf\u00fchrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189\n 4.9.2 Maximale Schrittgeschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190\n@@ -1177,15 +1177,15 @@\n 5.1.3.2 Interconnection Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205\n 5.1.3.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205\n 5.1.3.4 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205\n 5.1.3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205\n 5.1.4 HAL Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206\n 5.1.5 HAL components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xii\n \n 5.1.6 Timing Issues In HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208\n 5.2 HAL Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209\n 5.2.1 HAL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209\n 5.2.1.1 loadrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210\n@@ -1233,15 +1233,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223\n \n 5.4.2.2 Befehl-Vervollst\u00e4ndigung durch Tabulator-Taste . . . . . . . . . . . . . . . . 223\n 5.4.2.3 Die RTAPI-Umgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223\n 5.4.3 Ein einfaches Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224\n 5.4.3.1 Laden einer Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xiii\n \n 5.4.3.2 Untersuchung der HAL\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224\n \n@@ -1291,15 +1291,15 @@\n 5.6.2.1 Pins) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257\n 5.6.3 Achs- und Gelenkpins und Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259\n 5.6.4 iocontrol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259\n 5.6.4.1 Pins )\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xiv\n \n 5.6.5 INI-Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259\n 5.6.5.1 Pins )\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260\n@@ -1355,15 +1355,15 @@\n 5.8.5.2 Parameter\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286\n \n 5.8.5.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286\n 5.8.6 Debounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xv\n \n 5.8.6.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286\n 5.8.6.2 Parameter\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287\n@@ -1410,15 +1410,15 @@\n 5.9.13.6rand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301\n 5.9.13.7logic (using personality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301\n 5.9.13.8Allgemeine Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302\n 5.9.14Verwendung der Kommandozeile\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xvi\n \n 5.10HALTCL-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303\n 5.10.1Kompatibilit\u00e4t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303\n 5.10.2Haltcl-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303\n 5.10.3Haltcl INI-Datei-Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303\n@@ -1468,15 +1468,15 @@\n Werkzeug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314\n 5.12Halui Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314\n 5.12.1Ferngesteuerter Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315\n 5.12.2Pause & Fortsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315\n 5.13Creating Non-realtime Python Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316\n 5.13.1Basic usage example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xvii\n \n 5.13.2Non-realtime components and delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317\n 5.13.3Pins und Parameter erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317\n 5.13.3.1\u00c4ndern des Pr\u00e4fixes\n \n@@ -1531,15 +1531,15 @@\n 5.15.3Halshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\n 5.15.4Halscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\n 5.15.5Sim-Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\n 5.15.6simulate_probe (Sonde simulieren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327\n 5.15.7HAL Histogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328\n 5.15.8Halreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xviii\n \n 6 Hardware-Treiber\n \n 332\n \n@@ -1599,15 +1599,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354\n \n 6.3.6 Status-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354\n 6.3.6.1 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354\n 6.3.6.2 RS485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355\n 6.3.6.3 EMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xix\n \n 6.3.6.4 Booten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355\n 6.3.6.5 Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355\n 6.3.7 RS485 E/A-Erweiterungsmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355\n 6.3.7.1 Relais-Ausgangsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356\n@@ -1663,15 +1663,15 @@\n 6.7.4 Laden von HostMot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368\n 6.7.5 Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369\n 6.7.5.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369\n 6.7.5.2 Parameter\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xx\n \n 6.7.6 HostMot2-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369\n 6.7.7 Pinbelegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370\n 6.7.8 PIN-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371\n 6.7.9 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371\n@@ -1734,15 +1734,15 @@\n 6.8.5.2 fnct_02_read_discrete_inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389\n 6.8.5.3 fnct_03_read_holding_registers\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . 389\n \n 6.8.5.4 fnct_04_read_input_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxi\n \n 6.8.5.5 fnct_05_write_single_coil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389\n 6.8.5.6 fnct_06_write_single_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389\n 6.8.5.7 fnct_15_write_multiple_coils . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390\n 6.8.5.8 fnct_16_write_multiple_registers . . . . . . . . . . . . . . . . . . . . . . . . . . 390\n@@ -1790,15 +1790,15 @@\n 6.13.1.4LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402\n 6.13.1.5Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402\n 6.13.1.6PC-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402\n 6.13.1.7Neuerstellung der FPGA-Firmware . . . . . . . . . . . . . . . . . . . . . . . . 403\n 6.13.1.8F\u00fcr weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403\n 6.13.2Pluto-Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxii\n \n 6.13.2.1Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403\n 6.13.2.2Input-Latching und Output-Aktualisierung . . . . . . . . . . . . . . . . . . . . 405\n 6.13.2.3HAL-Funktionen, Pins und Parameter . . . . . . . . . . . . . . . . . . . . . . . 406\n 6.13.2.4Kompatible Treiber-Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 406\n@@ -1840,15 +1840,15 @@\n 6.17.8Konfigurieren des VFS11 VFD f\u00fcr die Modbus-Nutzung . . . . . . . . . . . . . . . . . 417\n 6.17.8.1Anschlie\u00dfen der seriellen Schnittstelle . . . . . . . . . . . . . . . . . . . . . . 417\n 6.17.8.2Modbus-Einrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418\n 6.17.9Hinweis zur Programmierung\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxiii\n \n 7 Hardware-Beispiele\n \n 419\n \n@@ -1894,15 +1894,15 @@\n 8.2.5.4 Symbol-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437\n 8.2.5.5 Das Editor-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438\n 8.2.5.6 Konfigurationsfenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439\n 8.2.6 SPS Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441\n 8.2.6.1 KONTAKTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441\n 8.2.6.2 IEC-TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxiv\n \n 8.2.6.3 ZEITGLIEDER (engl. timers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442\n 8.2.6.4 KIPPSTUFEN (engl. monostables) . . . . . . . . . . . . . . . . . . . . . . . . . 442\n 8.2.6.5 Z\u00c4HLER (engl. counters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443\n 8.2.6.6 VERGLEICHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443\n@@ -1946,15 +1946,15 @@\n 9.1.3.2 Inverse Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476\n 9.1.4 Details zur Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476\n 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp . . . . . . . 478\n 9.2 Setting up \u201dmodified\u201d Denavit-Hartenberg (DH) parameters for genserkins . . . . . . . . 478\n 9.2.1 Vorspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478\n 9.2.2 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxv\n \n 9.2.3 Modifizierte DH-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479\n 9.2.4 Modifizierte DH-Parameter, wie sie in Genserkins verwendet werden . . . . . . . . 479\n 9.2.5 Nummerierung der Verbindungen und Parameter . . . . . . . . . . . . . . . . . . . . 480\n 9.2.6 Wie fange ich an? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480\n@@ -1996,15 +1996,15 @@\n 9.4.4.1 HAL-Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520\n 9.4.4.2 G-/M-Code-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521\n 9.4.4.3 INI file limit settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521\n 9.4.4.4 \u00dcberlegungen zum Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523\n 9.4.5 Simulationskonfigurationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523\n 9.4.6 Kinematische Bestimmungen des Benutzers . . . . . . . . . . . . . . . . . . . . . . . . 524\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxvi\n \n 9.4.7 Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524\n 9.4.8 Code Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524\n 9.5 PID Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525\n 9.5.1 PID-Regler (engl. PID controller) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525\n@@ -2041,15 +2041,15 @@\n 9.6.5.8 Fehlerbehandlung: Umgang mit Abbr\u00fcchen . . . . . . . . . . . . . . . . . . . 543\n 9.6.5.9 Fehlerbehandlung: Fehlschlagen einer NGC-Prozedur mit neu zugeordnetem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545\n 9.6.6 Umschl\u00fcsselung anderer bestehender Codes: S, M0, M1, M60 . . . . . . . . . . . . 545\n 9.6.6.1 Automatic gear selection be remapping S (set spindle speed) . . . . . . . . 545\n 9.6.6.2 Anpassen des Verhaltens von M0, M1, M60 . . . . . . . . . . . . . . . . . . . 545\n 9.6.7 Creating new G-code cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxvii\n \n 9.6.8 Embedded Python konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546\n 9.6.8.1 Python plugin : INI file configuration . . . . . . . . . . . . . . . . . . . . . . . 546\n 9.6.8.2 Executing Python statements from the interpreter . . . . . . . . . . . . . . . 547\n 9.6.9 Programming Embedded Python in the RS274NGC Interpreter . . . . . . . . . . . . 547\n@@ -2085,15 +2085,15 @@\n 9.6.15.1Warum sollten Sie die Task-Ausf\u00fchrung \u00e4ndern wollen? . . . . . . . . . . . . 564\n 9.6.15.2Ein Diagramm: task, interp, iocontrol, UI (??) . . . . . . . . . . . . . . . . 564\n 9.6.16Modelle der Aufgaben (engl. task) -Ausf\u00fchrung . . . . . . . . . . . . . . . . . . . . . . 564\n 9.6.16.1Traditionelle Ausf\u00fchrung von iocontrol/iocontrolv2 . . . . . . . . . . . . 564\n 9.6.16.2IO-Verfahren neu definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564\n 9.6.16.3Python-Prozeduren zur Ausf\u00fchrungszeit . . . . . . . . . . . . . . . . . . . . . 564\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxviii\n \n 9.6.17Eine kurze \u00dcbersicht \u00fcber die LinuxCNC-Programmausf\u00fchrung . . . . . . . . . . . 564\n 9.6.17.1Zustand des Interpreters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564\n 9.6.17.2Task and Interpreter interaction, Queuing and Read-Ahead . . . . . . . . . 565\n 9.6.17.3Predicting the machine position . . . . . . . . . . . . . . . . . . . . . . . . . . 565\n@@ -2133,15 +2133,15 @@\n 9.9.4 Related HAL Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578\n 9.9.4.1 eoffset_per_angle.comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578\n 9.9.5 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579\n 9.9.6 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579\n 9.9.6.1 eoffsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579\n 9.9.6.2 jwp_z.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxix\n \n 9.9.6.3 dynamische_offsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580\n 9.9.6.4 opa.ini (eoffset_per_angle)\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580\n@@ -2195,15 +2195,15 @@\n 10.1.8Manueller Werkzeugwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604\n 10.1.9Python modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604\n 10.1.10\n Using AXIS in Lathe Mode\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxx\n \n 10.1.11\n Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam cutting mode) 608\n 10.1.12\n Erweiterte Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609\n@@ -2278,15 +2278,15 @@\n 10.2GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621\n 10.2.1Einf\u00fchrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621\n 10.2.2Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622\n 10.2.3How to get GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622\n 10.2.4Basiseinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623\n 10.2.4.1Die DISPLAY-Sektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxi\n \n 10.2.4.2Der TRAJ Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625\n 10.2.4.3Makro-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626\n 10.2.4.4Embedded Tabs and Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628\n 10.2.4.5User Created Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631\n@@ -2333,15 +2333,15 @@\n 10.2.11.2\n Simulierte Jog-Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663\n 10.2.11.3\n Einstellungen Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663\n 10.2.11.4\n Simulierte Hardware-Taste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxii\n \n 10.2.11.5\n Benutzer-Registerkarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663\n 10.2.11.6\n Videos zur Werkzeugvermessung . . . . . . . . . . . . . . . . . . . . . . . . . 663\n@@ -2387,15 +2387,15 @@\n 10.5.2.2Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686\n 10.5.2.3Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . 686\n 10.5.2.4Override-Kontrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686\n 10.5.2.5Spindelsteuerungen\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxiii\n \n 10.5.2.6Jogging-Inkremente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687\n 10.5.2.7Jog-Geschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687\n 10.5.2.8Dialogsystem f\u00fcr Benutzermeldungen\n \n@@ -2479,15 +2479,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711\n \n 10.5.17.3\n Registerkarte \u201dOffsets\u201d\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxiv\n \n 10.5.17.4\n Registerkarte \u201dWerkzeug\u201d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711\n 10.5.17.5\n Registerkarte \u201dStatus\u201d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711\n@@ -2543,15 +2543,15 @@\n 10.6.8Erstellen eines Unterprogramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735\n 10.7TkLinuxCNC GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736\n 10.7.1Einf\u00fchrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736\n 10.7.2Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736\n 10.7.2.1Eine typische Sitzung mit TkLinuxCNC . . . . . . . . . . . . . . . . . . . . . . 736\n 10.7.3Elemente des TkLinuxCNC-Fensters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxv\n \n 10.7.3.1Die wichtigsten Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737\n 10.7.3.2Statusleiste der Offset-Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . 738\n 10.7.3.3Koordinatenanzeigebereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738\n 10.7.3.4TkLinuxCNC Interpreter / Automatic Program Control . . . . . . . . . . . . 738\n@@ -2594,15 +2594,15 @@\n 10.8.7.2Contact Bounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760\n 10.8.7.3Contact Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760\n 10.8.7.4Desktop-Starthilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761\n 10.8.7.5QtPlasmaC Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762\n 10.8.7.6INI File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763\n 10.8.8QtPlasmaC GUI \u00dcberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxvi\n \n 10.8.8.1Beenden von QtPlasmaC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764\n 10.8.8.2HAUPT (engl. main)-Registerkarte (engl. tab) . . . . . . . . . . . . . . . . . . 765\n 10.8.8.3Preview Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771\n 10.8.8.4CONVERSATIONAL Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771\n@@ -2660,15 +2660,15 @@\n 10.8.9.29\n Mesh Mode (Expanded Metal Cutting) . . . . . . . . . . . . . . . . . . . . . . 805\n 10.8.9.30\n Ignore Arc OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805\n 10.8.9.31\n Cut Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxvii\n \n 10.8.9.32\n Run From Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807\n 10.8.9.33\n Scribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808\n@@ -2743,15 +2743,15 @@\n 10.8.15.8\n Zero Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839\n 10.8.15.9\n Tuning Void Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839\n 10.8.15.10\n Max Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxviii\n \n 10.8.15.11\n Enable Tabs During Automated Motion . . . . . . . . . . . . . . . . . . . . . . 840\n 10.8.15.12\n Override Jog Inhibit Via Z+ Jog . . . . . . . . . . . . . . . . . . . . . . . . . . . 840\n@@ -2810,15 +2810,15 @@\n 11.1.3Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859\n 11.1.4M2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865\n 11.1.4.1Beispielprogramm mit G52-Offsets . . . . . . . . . . . . . . . . . . . . . . . . 865\n 11.2Tool Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865\n 11.2.1Touch-Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865\n 11.2.1.1Verwendung von G10 L1/L10/L11 . . . . . . . . . . . . . . . . . . . . . . . . . 866\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xxxix\n \n 11.2.2Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867\n 11.2.2.1Werkzeugtabellen-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867\n 11.2.2.2Tool IO\n \n@@ -2869,15 +2869,15 @@\n 11.4.13\n Modal Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894\n 11.4.14\n Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896\n 11.4.15\n Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xl\n \n 11.4.16\n Probe Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897\n 11.4.17\n Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897\n@@ -2949,15 +2949,15 @@\n 11.5.21\n G30, G30.1 Go/Set Predefined Position . . . . . . . . . . . . . . . . . . . . . . . . . . . 918\n 11.5.22\n G33 Spindle Synchronized Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918\n 11.5.23\n G33.1 Rigid Tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xli\n \n 11.5.24\n G38.n Straight Probe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921\n 11.5.25\n G40 Compensation Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922\n@@ -3036,15 +3036,15 @@\n G87 Back Boring Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946\n 11.5.52G88 Boring Cycle, Spindle Stop, Manual Out . . . . . . . . . . . . . . . . . . . . . . . 946\n 11.5.53G89 Boring Cycle, Dwell, Feed Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946\n 11.5.54G90, G91 Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947\n 11.5.55\n G90.1, G91.1 Arc Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlii\n \n 11.5.56\n G92 Coordinate System Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947\n 11.5.57G92.1, G92.2 Reset G92 Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948\n 11.5.58\n@@ -3106,15 +3106,15 @@\n \n 11.7O Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963\n 11.7.1Verwendung von O-Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963\n 11.7.2Nummerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964\n 11.7.3Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964\n 11.7.4Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xliii\n \n 11.7.4.1 Fanuc-Style Numbered Programs . . . . . . . . . . . . . . . . . . . . . . . . . 965\n 11.7.5 Looping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967\n 11.7.6 Conditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968\n 11.7.7 Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968\n@@ -3171,15 +3171,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978\n \n 11.10.4.10\n Abtastmuster (engl. scan pattern) . . . . . . . . . . . . . . . . . . . . . . . . . 978\n 11.10.4.11\n Scanrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xliv\n \n 11.10.4.12\n Tiefe (engl. depth) (Einheiten) . . . . . . . . . . . . . . . . . . . . . . . . . . . 979\n 11.10.4.13\n Schrittweite (engl. step over) (Pixel) . . . . . . . . . . . . . . . . . . . . . . . 979\n@@ -3232,15 +3232,15 @@\n 12.2.2Schwebende (engl. floating) Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008\n 12.2.3Beispiel f\u00fcr Jog-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008\n 12.2.3.1Erstellen der Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009\n 12.2.3.2Verbindungen herstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011\n 12.2.4Port-Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012\n 12.2.5GS2-Drehzahlmesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlv\n \n 12.2.5.1Das Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015\n 12.2.5.2Die Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017\n 12.2.6Referenzfahrt im Eilgang Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017\n 12.3GladeVCP: Glade Virtual Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019\n@@ -3293,15 +3293,15 @@\n 12.3.6.16\n Bars (engl. f\u00fcr Balken) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044\n 12.3.6.17\n Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045\n 12.3.6.18\n HAL_Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlvi\n \n 12.3.6.19\n Gremlin tool path preview for NGC files . . . . . . . . . . . . . . . . . . . . . 1047\n 12.3.6.20\n HAL_Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049\n@@ -3361,15 +3361,15 @@\n 12.3.8.13\n Manuelle Bearbeitung von INI-Dateien (.ini) . . . . . . . . . . . . . . . . . . . 1078\n 12.3.8.14\n Hinzuf\u00fcgen von HAL-Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078\n 12.3.8.15\n Hinzuf\u00fcgen von Timern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlvii\n \n 12.3.8.16\n HAL-Widget-Eigenschaften programmatisch einstellen . . . . . . . . . . . . 1079\n 12.3.8.17\n Value-changed callback with hal_glib . . . . . . . . . . . . . . . . . . . . . . . 1079\n@@ -3415,15 +3415,15 @@\n 12.5.5.2IMPORT Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115\n 12.5.5.3Abschnitt INSTANTIATE BIBRARIES . . . . . . . . . . . . . . . . . . . . . . . 1115\n 12.5.5.4HANDLER CLASS Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115\n 12.5.5.5INITIALIZE Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115\n 12.5.5.6Abschnitt zu BESONDEREN FUNKTIONEN . . . . . . . . . . . . . . . . . . . 1116\n Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlviii\n \n 12.5.5.7STATUS CALLBACKS Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . 1117\n 12.5.5.8CALLBACKS FROM FORM Abschnitt . . . . . . . . . . . . . . . . . . . . . . . 1117\n 12.5.5.9GENERAL FUNCTIONS Section . . . . . . . . . . . . . . . . . . . . . . . . . . 1117\n 12.5.5.10\n@@ -3467,15 +3467,15 @@\n \n . . . . . . . . . . . . . . . . . 1138\n \n 12.7QtVCP Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139\n 12.7.1Nur HAL-Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140\n 12.7.1.1XEmbed - Widget zum Einbetten von Programmen . . . . . . . . . . . . . . . 1140\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n xlix\n \n 12.7.1.2Slider - HAL-Pin-Wert-Anpassungs-Widget . . . . . . . . . . . . . . . . . . . 1140\n 12.7.1.3LED - Indicator Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140\n 12.7.1.4CheckBox Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141\n 12.7.1.5RadioButton Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141\n@@ -3541,15 +3541,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . 1174\n \n 12.7.2.21\n MDILine - MDI-Befehlszeileneingabe-Widget . . . . . . . . . . . . . . . . . . . 1176\n 12.7.2.22\n MDIHistory - MDI-Befehlsverlaufs-Widget . . . . . . . . . . . . . . . . . . . . 1177\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n l\n \n 12.7.2.23\n MDITouchy - Touchscreen-MDI-Eingabe-Widget . . . . . . . . . . . . . . . . . 1178\n 12.7.2.24\n OriginOffsetView - Ursprungsansicht und Einstellungs-Widget . . . . . . 1180\n@@ -3608,15 +3608,15 @@\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203\n \n 12.7.6.3Facing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203\n 12.7.6.4Loch-Kreis (engl. hole circle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203\n 12.7.6.5Qt NGCGUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204\n 12.7.6.6Qt PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n li\n \n 12.7.6.7Qt Vismach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205\n 12.8QtVCP Libraries modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205\n 12.8.1Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206\n 12.8.1.1Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206\n@@ -3660,15 +3660,15 @@\n 12.8.12.2\n Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222\n 12.8.12.3\n Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222\n 12.8.13\n Virtuelle Tastatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n lii\n \n 12.8.14\n Toolbar Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223\n 12.8.14.1\n Aktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223\n@@ -3734,15 +3734,15 @@\n 12.10.1.4\n Aufr\u00e4um-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239\n 12.10.2\n Custom HAL Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239\n 12.10.3\n Benutzerdefinierte Controller-Widgets mit STATUS . . . . . . . . . . . . . . . . . . . . 1240\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n liii\n \n 12.10.3.1\n In The Imports Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241\n 12.10.3.2\n Im Abschnitt Bibliotheken instanziieren . . . . . . . . . . . . . . . . . . . . . 1242\n@@ -3823,15 +3823,15 @@\n 12.12.5\n Idiosyncrasies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270\n 12.12.5.1\n Error Code Collecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270\n 12.12.5.2\n Jog Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n liv\n \n 12.12.5.3\n Keybinding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271\n 12.12.5.4\n Preference File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271\n@@ -3880,15 +3880,15 @@\n 13.4.2Beispiel f\u00fcr einen GStat-Code\n \n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300\n \n 13.4.2.1Codemuster f\u00fcr HAL-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 1300\n 13.4.2.2GladeVCP Python-Erweiterung Code-Muster . . . . . . . . . . . . . . . . . . 1300\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n lv\n \n 13.4.2.3QtVCP Python-Erweiterungscode-Muster\n \n . . . . . . . . . . . . . . . . . . . . 1301\n \n@@ -3934,23 +3934,23 @@\n \n 1331\n \n 17.1Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331\n 17.1.1Namens\u00e4nderung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332\n 17.1.2Zus\u00e4tzliche Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 1 / 1332\n \n Teil I\n \n Erste Schritte & Konfiguration\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 2 / 1332\n \n Kapitel 1\n \n Erste Schritte mit LinuxCNC\n 1.1 About LinuxCNC\n@@ -3972,15 +3972,15 @@\n Konfiguration f\u00fcr Ihre Maschine\n \u2013 eine mit Leiterdiagrammen programmierbare Software-SPS\n \u2022 Es bietet keine Zeichnungsfunktionen (CAD - Computer Aided Design) oder G-Code-Generierung\n aus der Zeichnung (CAM - Computer Automated Manufacturing).\n \u2022 Er kann bis zu 9 Achsen gleichzeitig bewegen und unterst\u00fctzt eine Vielzahl von Schnittstellen.\n \u2022 Die Steuerung kann echte Servos (analog oder PWM) mit der Feedback-Schleife durch die LinuxCNCSoftware auf dem Computer, oder Open-Loop mit Schritt-Servos oder Schrittmotoren betreiben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 3 / 1332\n \n \u2022 Zu den Funktionen der Bewegungssteuerung geh\u00f6ren: Fr\u00e4serradius- und L\u00e4ngenkompensation, auf\n eine bestimmte Toleranz begrenzte Bahnabweichung, Gewindedrehen, synchronisierte Achsenbewegung, adaptiver Vorschub, Vorschub\u00fcbersteuerung durch den Bediener und konstante Geschwindigkeitsregelung.\n \u2022 Unterst\u00fctzung f\u00fcr nicht-kartesische Bewegungssysteme wird \u00fcber benutzerdefinierte Kinematikmodule bereitgestellt. Zu den verf\u00fcgbaren Architekturen geh\u00f6ren Hexapoden (Stewart-Plattformen\n und \u00e4hnliche Konzepte) und Systeme mit Drehgelenken f\u00fcr die Bewegung wie PUMA- oder SCARARoboter.\n@@ -4009,15 +4009,15 @@\n f\u00fcr beide Seiten Zeit spart.\n Dateien teilen\n Die g\u00e4ngigste Art, Dateien im IRC auszutauschen, besteht darin, die Datei auf einen der folgenden oder einen \u00e4hnlichen Dienst hochzuladen und den Link einzuf\u00fcgen:\n \u2022 For text: https://pastebin.com/, http://pastie.org/, https://gist.github.com/\n \u2022 For pictures: https://imagebin.org/, https://imgur.com/, https://bayimg.com/\n \u2022 For files: https://filedropper.com/, https://filefactory.com/, https://1fichier.com/\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 4 / 1332\n \n 1.1.3.2 Mailingliste\n Eine Internet-Mailingliste ist eine M\u00f6glichkeit, Fragen zu stellen, die jeder auf dieser Liste sehen und\n nach Belieben beantworten kann. Auf einer Mailingliste k\u00f6nnen Sie Ihre Fragen besser stellen als\n im IRC, aber die Antworten dauern l\u00e4nger. Kurz gesagt: Sie senden eine Nachricht an die Liste und\n@@ -4050,15 +4050,15 @@\n LinuxCNC und Debian Linux sollte einigerma\u00dfen gut auf einem Computer mit den folgenden minimalen Hardware-Spezifikationen laufen. Diese Zahlen sind nicht das absolute Minimum, sondern wird\n eine angemessene Leistung f\u00fcr die meisten Stepper-Systeme geben.\n \u2022 700 MHz x86-Prozessor (1,2 GHz x86-Prozessor empfohlen) oder Raspberry Pi 4 oder besser.\n \u2022 LinuxCNC 2.8 or later from the Live CD expects a 64-bit capable system.\n \u2022 512 MB of RAM, 4 GB with GUI to avoid surprises\n \u2022 No hard disk for Live CD, 8 GB or more for permanent installation\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 5 / 1332\n \n \u2022 Graphics card capable of at least 1024x768 resolution, which is not using the NVidia or ATI fglrx\n proprietary drivers. Modern onboard graphic chipsets seem to generally be OK.\n \u2022 Internet connection (not strictly needed, but very useful for updates and for communicating with\n the LinuxCNC community)\n@@ -4093,15 +4093,15 @@\n RTAI ist seit vielen Jahren die Hauptst\u00fctze der LinuxCNC-Distributionen. Es wird in der Regel die\n beste Echtzeit-Leistung in Bezug auf niedrige Latenz, aber m\u00f6glicherweise schlechtere PeripherieUnterst\u00fctzung und nicht so viele Bildschirmaufl\u00f6sungen haben. Ein RTAI-Kernel ist im LinuxCNCPaket-Repository verf\u00fcgbar. Wenn Sie aus dem Live/Install-Image installiert haben, wird der Wechsel\n zwischen Kernel und LinuxCNC-Flavour in [Installing-RTAI] beschrieben.\n 1.2.2.3 Xenomai mit linuxcnc-uspace Paket\n Xenomai wird auch unterst\u00fctzt, aber Sie m\u00fcssen den Kernel finden oder bauen und LinuxCNC aus\n den Quellen kompilieren, um es zu nutzen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 6 / 1332\n \n 1.2.2.4 RTAI mit linuxcnc-uspace-Paket\n It is also possible to run LinuxCNC with RTAI in user-space mode. As with Xenomai you will need to\n compile from source to do this.\n \n@@ -4133,15 +4133,15 @@\n 2. Schreiben Sie das Image auf ein USB-Speicherger\u00e4t oder eine DVD.\n 3. Booten Sie das Live-System, um LinuxCNC zu testen.\n 4. Booten Sie das Installationsprogramm, um LinuxCNC zu installieren.\n \n 1.3.1 Das Festplattenabbild (engl. kurz image) herunterladen\n This section describes some methods for downloading the Live/Install image.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 7 / 1332\n \n 1.3.1.1 Normales Herunterladen\n Software for LinuxCNC to download is presented on the project\u2019s Downloads page. Most users will aim\n for the disk image for Intel/AMD PCs, the URL will resemble https://www.linuxcnc.org/iso/linuxcnc_2.9.4amd64.hybrid.iso.\n For the Raspberry Pi, multiple images are provided to address differences between the RPi4 and RPi5.\n@@ -4178,15 +4178,15 @@\n md5sum: 4547e8a72433efb033f0a5cf166a5cd2\n sha256sum: ff3ba9b8dfb93baf1e2232746655f8521a606bc0fab91bffc04ba74cc3be6bf0\n \n \u00dcberpr\u00fcfen Sie md5sum auf Windows oder Mac Windows und Mac OS X werden nicht mit einem\n md5sum-Programm ausgeliefert, aber es gibt Alternativen. Weitere Informationen finden Sie unter:\n How To MD5SUM\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 8 / 1332\n \n 1.3.2 Schreiben des Abbilds auf ein bootf\u00e4higes Ger\u00e4t\n The LinuxCNC Live/Install ISO Image is a hybrid ISO image which can be written directly to a USB\n storage device (flash drive) or a DVD and used to boot a computer. The image is too large to fit on a\n CD.\n@@ -4218,15 +4218,15 @@\n \n 4. Transfer the data with dd, as for Linux above. Note that the disk name has an added \u201dr\u201d at the\n begining\n sudo dd if=linuxcnc_2.9.4-amd64.hybrid.iso of=/dev/rdiskN bs=1m\n \n 5. Bitte beachten Sie, dass dieser Vorgang sehr lange dauern kann und dass Sie w\u00e4hrend des Vorgangs keine R\u00fcckmeldung erhalten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 9 / 1332\n \n Schreiben des Abbilds auf eine DVD unter Linux\n 1. Legen Sie einen DVD-Rohling in Ihren Brenner ein. Ein Fenster \u201dCD/DVD Creator\u201d oder \u201dDisc-Typ\n ausw\u00e4hlen\u201d wird angezeigt. Schlie\u00dfen Sie es, da wir es nicht verwenden werden.\n 2. Suchen Sie das heruntergeladene Bild im Dateibrowser.\n@@ -4258,15 +4258,15 @@\n An diesem Punkt ist es nur wirklich sinnvoll, eine \u201dsim\u201d Konfiguration zu w\u00e4hlen. Einige der Beispielkonfigurationen enthalten auf dem Bildschirm 3D simulierte Maschinen, suchen Sie nach \u201dVismach\u201d,\n um diese zu sehen.\n Um festzustellen, ob Ihr Computer f\u00fcr die Erzeugung von Software-Schrittimpulsen geeignet ist, f\u00fchren Sie den Latenztest wie folgt aus: here.\n At the time of writing the Live Image is only available with the preempt-rt kernel and a matching\n LinuxCNC. On some hardware this might not offer good enough latency. There is an experimental\n version available using the RTAI realtime kernel which will often give better latency.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 10 / 1332\n \n 1.3.4 LinuxCNC installieren\n To install LinuxCNC from the Live CD select Install (Graphical) at bootup.\n \n 1.3.5 Updates to LinuxCNC\n@@ -4354,15 +4354,15 @@\n Maschinensteuerung\n und -simulation\n Maschinensteuerung\n und -simulation\n machine control\n simulation ONLY\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 11 / 1332\n \n Preempt-RT-Kernel The Preempt-rt kernels are available for Debian from the regular debian.org\n archive. The package is called linux-image-rt-*. Simply install the package in the same way as any\n other package from the Synaptic Package manager or with apt-get at the command-line.\n RTAI-Kernel Die RTAI-Kernel stehen im linuxcnc.org-Debian-Archiv zum Download bereit. Die aptQuelle ist:\n@@ -4393,15 +4393,15 @@\n 1. Install the Preempt-RT kernel and modules\n sudo apt-get install linux-image-rt-amd64\n \n 2. Re-boot, and select the Linux 6.1.0-10-rt-amd64 kernel. The exact kernel version might be different, look for the \u201d-rt\u201d suffix. This might be hidden in the \u201dAdvanced options for Debian Bookworm\u201d sub-menu in Grub. When you log in, verify that \u0300PREEMPT RT \u0300is reported by the following\n command.\n uname -v\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 12 / 1332\n \n 3. \u00d6ffnen Sie Men\u00fc Anwendungen > System > Synaptic Package Manager, suchen Sie nach linuximage und klicken Sie mit der rechten Maustaste auf das urspr\u00fcngliche Nicht-rt und w\u00e4hlen\n Sie \u201dZur vollst\u00e4ndigen Entfernung markieren\u201d. Neu starten. Damit wird das System gezwungen,\n vom RT-Kernel zu booten. Wenn Sie es vorziehen, beide Kernel beizubehalten, m\u00fcssen die anderen Kernel nicht gel\u00f6scht werden, aber es sind \u00c4nderungen an der Grub-Boot-Konfiguration\n erforderlich, die den Rahmen dieses Dokuments sprengen.\n@@ -4431,15 +4431,15 @@\n \n 1.4 Running LinuxCNC\n 1.4.1 Aufrufen von LinuxCNC\n Nach der Installation startet LinuxCNC wie jedes andere Linux-Programm: F\u00fchren Sie es aus dem\n terminal aus, indem Sie den Befehl linuxcnc eingeben, oder w\u00e4hlen Sie es im Men\u00fc Anwendungen ->\n CNC aus.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 13 / 1332\n \n 1.4.2 Configuration Launcher\n Beim Starten von LinuxCNC (aus dem CNC-Men\u00fc oder von der Kommandozeile ohne Angabe einer\n INI-Datei) startet der Dialog Kofigurations-Auswahl.\n Im Dialogfeld \u201dKonfigurationsauswahl\u201d kann der Benutzer eine seiner vorhandenen Konfigurationen\n@@ -4471,15 +4471,15 @@\n \u2022 tklinuxcnc - Keyboard and Mouse GUI (no longer maintained)\n \u2022 touchy - Touchscreen-GUI\n \u2022 woodpecker - Touch Screen GUI A GUI configuration directory may contain subdirectories with\n configurations that illustrate special situations or the embedding of other applications.\n Die by_interface-Konfigurationen sind um g\u00e4ngige, unterst\u00fctzte Schnittstellen herum organisiert:\n \u2022 allgemeine Mechatronik\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 14 / 1332\n \n \u2022 mesa\n \u2022 parport\n \u2022 pico\n \u2022 pluto\n@@ -4511,15 +4511,15 @@\n \u2022 parport - Anwendungen zum Testen von parport.\n \u2022 pyvcp - Beispiele f\u00fcr pyvcp-Anwendungen.\n \u2022 xhc-hb04 \u2013 Anwendungen zum Testen eines drahtlosen USB-MPG xhc-hb04\n Anmerkung\n Im Verzeichnis Apps werden nur Anwendungen zum Kopieren in das Benutzerverzeichnis angeboten,\n die vom Benutzer sinnvollerweise ge\u00e4ndert werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 15 / 1332\n \n Abbildung 1.1: LinuxCNC-Konfigurationsauswahl\n Klicken Sie auf eine der aufgelisteten Konfigurationen, um spezifische Informationen zu ihr anzuzeigen. Doppelklicken Sie auf eine Konfiguration oder klicken Sie auf OK, um die Konfiguration zu\n starten.\n W\u00e4hlen Sie \u201dDesktop-Verkn\u00fcpfung erstellen\u201d und klicken Sie dann auf \u201dOK\u201d, um ein Symbol auf dem\n@@ -4534,15 +4534,15 @@\n Konfiguration finden Sie im Integrator-Handbuch.\n \n 1.4.4 Simulator-Konfigurationen\n Alle unter Beispielkonfigurationen/Sim aufgef\u00fchrten Konfigurationen k\u00f6nnen auf jedem Computer\n ausgef\u00fchrt werden. Es ist keine spezielle Hardware erforderlich und Echtzeitunterst\u00fctzung ist nicht\n notwendig.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 16 / 1332\n \n Diese Konfigurationen sind n\u00fctzlich, um einzelne F\u00e4higkeiten oder Optionen zu untersuchen. Die\n Sim-Konfigurationen sind nach der in der Demonstration verwendeten grafischen Benutzeroberfl\u00e4che geordnet. Das Verzeichnis f\u00fcr die Achse enth\u00e4lt die meisten Auswahlm\u00f6glichkeiten und Unterverzeichnisse, da es sich um die am h\u00e4ufigsten getestete grafische Benutzeroberfl\u00e4che handelt. Die\n F\u00e4higkeiten, die mit einer bestimmten grafischen Benutzeroberfl\u00e4che demonstriert werden, sind m\u00f6glicherweise auch in anderen grafischen Benutzeroberfl\u00e4chen verf\u00fcgbar.\n \n@@ -4577,15 +4577,15 @@\n To upgrade LinuxCNC from a version older than 2.8, you have to first upgrade your old install to 2.8,\n then follow these instructions to upgrade to the new version.\n Wenn Sie keine alte Version von LinuxCNC zu aktualisieren haben, dann sind Sie am besten aus\n machen eine frische Installation der neuen Version, wie im Abschnitt LinuxCNC erhalten beschrieben.\n Dar\u00fcber hinaus ist es unter Ubuntu Precise oder Debian Wheezy eine \u00dcberlegung wert, ein Backup\n des \u201dlinuxcnc\u201d-Verzeichnisses auf einem Wechselmedium vorzunehmen und eine Neuinstallaion des\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 17 / 1332\n \n neuesn Betriebsystems und der LinuxCNC version durchzuf\u00fchren, da diese Versionen des OS 2017\n bzw. 2018 ausliefen. Wenn Sie Ubuntu Lucid nutzen, dann werden Sie dies tun m\u00fcssen, da Lucid nicht\n mehr von LinuxCNC unterst\u00fctzt wird (es war EOL im Jahr 2013).\n To upgrade major versions like 2.8 to 2.9 when you have a network connection at the machine you need\n@@ -4625,15 +4625,15 @@\n \u2217 Klicken Sie in Synaptic auf das Men\u00fc Einstellungen und dann auf Repositories, um das\n Fenster Softwarequellen zu \u00f6ffnen.\n \u2022 W\u00e4hlen Sie im Fenster \u201dSoftware-Quellen\u201d die Registerkarte \u201dAndere Software\u201d.\n \u2022 L\u00f6schen oder deaktivieren Sie alle alten linuxcnc.org-Eintr\u00e4ge (lassen Sie alle nicht-linuxcnc.orgZeilen unver\u00e4ndert).\n \u2022 Klicken Sie auf die Schaltfl\u00e4che \u201dHinzuf\u00fcgen\u201d und f\u00fcgen Sie eine neue apt-Zeile hinzu. Die Zeile\n wird auf den verschiedenen Plattformen etwas anders aussehen:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 18 / 1332\n \n Tabelle 1.2: Tabular overview on variants of the Operating\n System and the corresponding configuration of the repository. The configuration can be performed in the GUI of\n the package manager or in the file /etc/apt/sources.list.\n OS / Realtime Version\n@@ -4646,29 +4646,29 @@\n Repository\n deb https://linuxcnc.org buster base 2.9-uspace\n deb https://linuxcnc.org buster base 2.9-rt\n deb https://linuxcnc.org bullseye base 2.9-uspace\n deb https://linuxcnc.org bookworm base 2.9-uspace\n deb https://linuxcnc.org bookworm base 2.9-rt\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 19 / 1332\n \n Abbildung 1.2: Figure with a screenshot of the repository configuration of the synaptic package manager.\n \u2022 Klicken Sie im Fenster \u201dSoftwarequellen\u201d auf \u201dQuelle hinzuf\u00fcgen\u201d und dann auf \u201dSchlie\u00dfen\u201d. Wenn\n ein Fenster angezeigt wird, das Sie dar\u00fcber informiert, dass die Informationen \u00fcber die verf\u00fcgbare\n Software veraltet sind, klicken Sie auf die Schaltfl\u00e4che \u201dNeu laden\u201d.\n 1.5.1.2 Upgrade auf die neue Version\n Da Ihr Computer nun wei\u00df, wo er die neue Version der Software erh\u00e4lt, m\u00fcssen wir sie nun installieren.\n Der Prozess unterscheidet sich wiederum je nach Plattform.\n Debian uses the Synaptic Package Manager.\n \u2022 \u00d6ffnen Sie Synaptic gem\u00e4\u00df den Anweisungen in Festlegen der apt sources oben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 20 / 1332\n \n \u2022 Klicken Sie auf die Schaltfl\u00e4che \u201dNeu laden\u201d.\n \u2022 Verwenden Sie die Suchfunktion, um nach linuxcnc zu suchen.\n \u2022 Das Paket hei\u00dft \u201elinuxcnc\u201c f\u00fcr RTAI-Kernel und \u201elinuxcnc-uspace\u201c f\u00fcr preempt-rt.\n \u2022 Click the check box to mark the new linuxcnc and linuxcnc-doc-* packages for upgrade. The package\n@@ -4704,15 +4704,15 @@\n sudo dpkg -i linuxcnc_2.9.2.deb\n \n 1.5.3 Updating Configuration Files for 2.9\n 1.5.3.1 Stricter handling of pluggable interpreters\n If you just run regular G-code and you don\u2019t know what a pluggable interpreter is, then this section\n does not affect you.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 21 / 1332\n \n A seldom-used feature of LinuxCNC is support for pluggable interpreters, controlled by the undocumented [TASK]INTERPRETER INI setting.\n Versions of LinuxCNC before 2.9.0 used to handle an incorrect [TASK]INTERPRETER setting by automatically falling back to using the default G-code interpreter.\n Since 2.9.0, an incorrect [TASK]INTERPRETER value will cause LinuxCNC to refuse to start up. Fix this\n condition by deleting the [TASK]INTERPRETER setting from your INI file, so that LinuxCNC will use\n@@ -4743,15 +4743,15 @@\n 1.5.5.1 Non-Realtime\n \n mdro mqtt-publisher pi500_vfd pmx485-test qtplasmac-cfg2prefs qtplasmac-materials qtplasmac-plasmac2q\n qtplasmac-setup sim-torch svd-ps_vfd\n 1.5.5.2 Echtzeit\n anglejog div2 enum filter_kalman flipflop hal_parport homecomp limit_axis mesa_uart millturn scaled_s32_sums tof ton\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 22 / 1332\n \n 1.5.6 New Drivers\n A framework for controlling ModBus devices using the serial ports on many Mesa cards has been\n introduced. http://linuxcnc.org/docs/2.9/html/drivers/mesa_modbus.html\n A new GPIO driver for any GPIO which is supported by the gpiod library is now included: http://linuxcnc.org/docs/2.9/html/drivers/hal_gpio.html\n@@ -4778,15 +4778,15 @@\n Wenn Sie LinuxCNC mit der Ubuntu LiveCD installieren, ist die Voreinstellung, dass Sie sich jedes Mal\n anmelden m\u00fcssen, wenn Sie den Computer einschalten. Um die automatische Anmeldung zu aktivieren, gehen Sie zu System > Administration > Login Window. Wenn es sich um eine Neuinstallation\n handelt, kann es eine oder drei Sekunden dauern, bis das Anmeldefenster erscheint. Sie ben\u00f6tigen Ihr\n Passwort, das Sie bei der Installation verwendet haben, um Zugang zum Fenster \u201dEinstellungen f\u00fcr\n das Anmeldefenster\u201d zu erhalten. Aktivieren Sie auf der Registerkarte Sicherheit das Kontrollk\u00e4stchen Automatische Anmeldung aktivieren und w\u00e4hlen Sie einen Benutzernamen aus der Liste (das\n w\u00e4ren Sie).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 23 / 1332\n \n 1.6.2 Automatisches Starten\n Um LinuxCNC automatisch mit Ihrer Konfiguration nach dem Einschalten des Computers starten zu\n lassen, gehen Sie zu System > Preferences > Sessions > Startup Applications, klicken Sie auf Add.\n Navigieren Sie zu Ihrer Konfiguration und w\u00e4hlen Sie die .ini-Datei aus. Wenn sich der Dateiauswahldialog schlie\u00dft, f\u00fcgen Sie linuxcnc und ein Leerzeichen vor dem Pfad zu Ihrer .ini-Datei hinzu.\n@@ -4824,15 +4824,15 @@\n Wenn Sie die Ausgabe von lsmod in eine Textdatei in einem Terminalfenster senden wollen, geben Sie\n ein:\n lsmod > mymod.txt\n \n Die resultierende Textdatei befindet sich im Home-Verzeichnis, wenn Sie beim \u00d6ffnen des TerminalFensters das Verzeichnis nicht gewechselt haben, und tr\u00e4gt den Namen mymod.txt oder den von Ihnen\n gew\u00e4hlten Namen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 24 / 1332\n \n 1.6.6 Bearbeiten einer root-Datei\n Wenn Sie den Dateibrowser \u00f6ffnen und sehen, dass der Eigent\u00fcmer der Datei root ist, m\u00fcssen Sie zus\u00e4tzliche Schritte unternehmen, um diese Datei zu bearbeiten. Die Bearbeitung einiger root-Dateien\n kann zu schlechten Ergebnissen f\u00fchren. Seien Sie vorsichtig, wenn Sie root-Dateien bearbeiten. Im\n Allgemeinen k\u00f6nnen Sie die meisten root-Dateien \u00f6ffnen und anzeigen, aber sie bleiben schreibgesch\u00fctzt.\n@@ -4862,15 +4862,15 @@\n Um das Arbeitsverzeichnis in das eine Ebene h\u00f6her liegende Verzeichnis, d.h. das \u00fcbergeordnete\n Verzeichnis, zu wechseln, geben Sie im Terminalfenster ein:\n cd ..\n \n Um im Terminalfenster eine Ebene h\u00f6her zu gehen, geben Sie ein:\n cd ../..\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 25 / 1332\n \n Um direkt in Ihr Heimatverzeichnis zu wechseln, geben Sie im Terminalfenster den Befehl cd ohne\n Argumente ein:\n cd\n \n@@ -4909,15 +4909,15 @@\n \n Dies findet alle Dateien, die den zu suchenden Text enthalten, im aktuellen Verzeichnis und allen Unterverzeichnissen darunter, wobei die Gro\u00df- und Kleinschreibung ignoriert wird. Die Option -i steht\n f\u00fcr Ignorieren der Gro\u00df- und Kleinschreibung und die Option -r f\u00fcr Rekursiv (schlie\u00dft alle Unterverzeichnisse in die Suche ein). Die Option -l gibt eine Liste der Dateinamen zur\u00fcck, wenn Sie die Option\n -l auslassen, erhalten Sie auch den Text, in dem jedes Vorkommen des zu suchenden Textes gefunden\n wird. Der * ist ein Platzhalter f\u00fcr die Suche in allen Dateien. Weitere Informationen finden Sie in der\n Manpage zu grep.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 26 / 1332\n \n 1.6.7.6 Diagnosemeldungen\n Um die Diagnosemeldungen anzuzeigen, verwenden Sie \u201ddmesg\u201d im Befehlsfenster. Um die Diagnosemeldungen in einer Datei zu speichern, verwenden Sie den Umleitungsoperator >, etwa so:\n dmesg > bootmsg.txt\n \n@@ -4948,29 +4948,29 @@\n lspci -v\n \n 1.6.9.2 Monitor-Aufl\u00f6sung\n W\u00e4hrend der Installation versucht Ubuntu, die Monitoreinstellungen zu erkennen. Wenn dies fehlschl\u00e4gt, wird ein allgemeiner Monitor mit einer maximalen Aufl\u00f6sung von 800x600 verwendet.\n Eine Anleitung zur Behebung dieses Problems finden Sie hier:\n https://help.ubuntu.com/community/FixVideoResolutionHowto\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 27 / 1332\n \n 1.6.10 Pfade\n Relative Pfade Relative Pfade basieren auf dem Startverzeichnis, d.h. das Verzeichnis mit der INIDatei. Die Verwendung relativer Pfade kann das Verschieben von Konfigurationen erleichtern, erfordert aber ein gutes Verst\u00e4ndnis der Linux-Pfadangaben.\n ./f0 ist dasselbe wie f0, z. B. eine Datei namens f0 im Startverzeichnis\n ../f1 bezieht sich auf eine Datei f1 im \u00fcbergeordneten Verzeichnis\n ../../f2 bezieht sich auf eine Datei f2 im \u00fcbergeordneten Verzeichnis des\n \u00fcbergeordneten Verzeichnisses\n ../../../f3 usw.\n \n \u2190-\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 28 / 1332\n \n Kapitel 2\n \n Allgemeine Benutzerinformationen\n 2.1 User Foreword\n@@ -5000,15 +5000,15 @@\n by making them connectable. We achieve connectability by setting up standard interfaces to sets of\n modules and following those standards.\n The Separation rule requires that we make distinct parts that do little things. By separating functions\n debugging is much easier and replacement modules can be dropped into the system and comparisons\n easily made.\n 1 Found at link:https://en.wikipedia.org/wiki/Separation_of_mechanism_and_policy, 2022-11-13\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 29 / 1332\n \n What does the Unix way mean for you as a user of LinuxCNC. It means that you are able to make\n choices about how you will use the system. Many of these choices are a part of machine integration,\n but many also affect the way you will use your machine. As you read you will find many places where\n you will need to make comparisons. Eventually you will make choices, \u201dI\u2019ll use this interface rather\n@@ -5046,15 +5046,15 @@\n \u2022 the high level controllers that coordinate the generation and execution of motion control of the CNC\n machine, namely the motion controller (EMCMOT), the discrete input/output controller (EMCIO)\n and the task executor (EMCTASK).\n The below illustration is a simple block diagram showing what a typical 3-axis CNC mill with stepper\n motors might look like:\n 2 Found at link:https://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 30 / 1332\n \n Abbildung 2.1: Simple LinuxCNC Controlled Machine\n A computer running LinuxCNC sends a sequence of pulses via the parallel port to the stepper drives,\n each of which has one stepper motor connected to it. Each drive receives two independent signals;\n one signal to command the drive to move its associated stepper motor in a clockwise or anti-clockwise\n@@ -5076,15 +5076,15 @@\n The INI file contains all the basic hardware information regarding the operation of the CNC mill,\n such as the number of steps each stepper motor must turn to complete one full revolution, the\n maximum rate at which each stepper may operate at, the limits of travel of each axis or the\n configuration and behaviour of limit switches on each axis.\n \u2013 My_CNC.hal\n This HAL file contains information that tells LinuxCNC how to link the internal virtual signals to\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 31 / 1332\n \n physical connections beyond the computer. For example, specifying pin 4 on the parallel port to\n send out the Z axis step direction signal, or directing LinuxCNC to cease driving the X axis motor\n when a limit switch is triggered on parallel port pin 13.\n \u2013 custom.hal\n@@ -5111,85 +5111,85 @@\n 2.2.3 Graphical User Interfaces\n A graphical user interface is the part of the LinuxCNC that the machine tool operator interacts with.\n LinuxCNC comes with several types of user interfaces which may be chosen from by editing certain\n fields contained in the INI file:\n ACHSE\n AXIS, the standard keyboard GUI interface. This is also the default GUI launched when a Configuration Wizard is used to create a desktop icon launcher:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 2.2: AXIS, the standard keyboard GUI interface\n \n Touchy\n Touchy, a touch screens GUI:\n \n 32 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 2.3: Touchy, a touch screen GUI\n \n Gscreen\n Gscreen, a user-configurable touch screen GUI:\n \n 33 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 34 / 1332\n \n Abbildung 2.4: Gscreen, a configurable base touch screen GUI\n \n GMOCCAPY\n GMOCCAPY, a touch screen GUI based on Gscreen. GMOCCAPY is also designed to work equally\n well in applications where a keyboard and mouse are the preferred methods of controlling the\n GUI:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 35 / 1332\n \n Abbildung 2.5: GMOCCAPY, a touch screen GUI based on Gscreen\n \n NGCGUI\n NGCGUI, a subroutine GUI that provides wizard-style programming of G code. NGCGUI may be\n run as a standalone program or embedded into another GUI as a series of tabs. The following\n screenshot shows NGCGUI embedded into AXIS:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 36 / 1332\n \n Abbildung 2.6: NGCGUI, a graphical interface integrated into AXIS\n \n TkLinuxCNC\n TkLinuxCNC, another interface based on Tcl/Tk. Once the most popular interface after AXIS.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 37 / 1332\n \n Abbildung 2.7: TkLinuxCNC graphical interface\n \n QtDragon\n QtDragon, a touch screen GUI based on QtVCP using the PyQt5 library. It comes in two versions\n QtDragon and QtDragon_hd. They are very similar in features but QtDragon_hd is made for larger\n monitors.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 38 / 1332\n \n Abbildung 2.8: QtDragon, a touch screen GUI based on QtVCP\n \n QtPlasmaC\n QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP using the PyQt5 library. It comes\n in three aspect ratios, 16:9, 4:3, and 9:16.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 39 / 1332\n \n Abbildung 2.9: QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP\n \n 2.2.4 Benutzerschnittstellen\n These User interfaces are a way to interact with LinuxCNC outside of the graphical user interfaces.\n@@ -5203,41 +5203,41 @@\n add indicators, readouts, switches or sliders to the basic appearance of one of the GUIs for increased\n flexibility or functionality. Two styles of Virtual Control Panel are offered in LinuxCNC:\n PyVCP\n PyVCP, a Python-based virtual control panel that can be added to the AXIS GUI. PyVCP only\n utilises virtual signals contained within the Hardware Abstraction Layer, such as the spindle-atspeed indicator or the Emergency Stop output signal, and has a simple no-frills appearance. This\n makes it an excellent choice if the user wants to add a Virtual Control Panel with minimal fuss.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 40 / 1332\n \n Abbildung 2.10: PyVCP Example Embedded Into AXIS GUI\n \n GladeVCP\n GladeVCP, a Glade-based virtual control panel that can be added to the AXIS or Touchy GUIs.\n GladeVCP has the advantage over PyVCP in that it is not limited to the display or control of HAL\n virtual signals, but can include other external interfaces outside LinuxCNC such as window or\n network events. GladeVCP is also more flexible in how it may be configured to appear on the\n GUI:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 41 / 1332\n \n Abbildung 2.11: GladeVCP Example Embedded Into AXIS GUI\n \n QtVCP\n QtVCP, a PyQt5-based virtual control panel that can be added to most GUIs or run as a standalone\n panel. QtVCP has the advantage over PyVCP in that it is not limited to the display or control of\n HAL virtual signals, but can include other external interfaces outside LinuxCNC such as window\n or network events by extending with python code. QtVCP is also more flexible in how it may be\n configured to appear on the GUI with many special widgets:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 42 / 1332\n \n Abbildung 2.12: QtVCP Example Embedded Into QtDragon GUI\n \n 2.2.6 Sprachen\n LinuxCNC uses translation files to translate LinuxCNC User Interfaces into many languages including\n@@ -5253,15 +5253,15 @@\n lessons learned. A beautiful finish, tight tolerances and caution during the work are evidence of lessons\n learned. No machine nor program can replace human experience.\n Now that you start working with the LinuxCNC software, you have to put yourself in the shoes of an\n operator. You must be in the role of someone in charge of a machine. It\u2019s a machine that will wait\n for your commands and then execute the orders that you will give it. In these pages, we will give the\n explanations which will help you to become a good CNC operator with LinuxCNC.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 43 / 1332\n \n 2.2.8 Modes of Operation\n When LinuxCNC is running, there are three different major modes used for inputting commands.\n These are Manual, Auto, and Manual Data Input (MDI). Changing from one mode to another makes\n a big difference in the way that the LinuxCNC control behaves. There are specific things that can be\n@@ -5303,15 +5303,15 @@\n in your G-code can cause your machine to slow down and speed up for the longer moves if the naive\n cam detector is not employed with G64 Pn.\n The basic acceleration and deceleration described above is not complex and there is no compromise\n to be made. In the INI file the specified machine constraints, such as maximum axis velocity and axis\n acceleration, must be obeyed by the trajectory planner.\n F\u00fcr weitere Informationen zu den Trajektorie-Panner INI-Optionen siehe den Abschnitt zu Trajektorien im INI Kapitel.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 44 / 1332\n \n 2.3.1.2 Path Following\n A less straightforward problem is that of path following. When you program a corner in G-code, the\n trajectory planner can do several things, all of which are right in some cases:\n \u2022 Es kann genau an den Koordinaten der Kurve bis zum Stillstand abbremsen und dann in die neue\n@@ -5351,15 +5351,15 @@\n that a specification of G64 P0 has the same effect as G64 alone (above), which is necessary for\n backward compatibility for old G-code programs. See the G64 section of the G-code chapter.\n Blending without tolerance\n The controlled point will touch each specified movement at at least one point. The machine will\n never move at such a speed that it cannot come to an exact stop at the end of the current movement (or next movement, if you pause when blending has already started). The distance from\n the end point of the move is as large as it needs to be to keep up the best contouring feed.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 45 / 1332\n \n Naive CAM Detector\n Successive G1 moves that involve only the XYZ axes that deviate less than Q- from a straight\n line are merged into a single straight line. This merged movement replaces the individual G1\n movements for the purposes of blending with tolerance. Between successive movements, the\n@@ -5394,15 +5394,15 @@\n the feed rate in units per second, the acceleration time is ta = F/A and the acceleration distance is\n da = F*ta /2. The deceleration time and distance are the same, making the critical distance d = da +\n dd = 2 * da = F2 /A.\n For example, for a feed rate of 1 inch per second and an acceleration of 10 inches/sec2 , the critical\n distance is 12 /10 = 1/10 = 0.1 inches.\n For a feed rate of 0.5 inch per second, the critical distance is 52 /100 = 25/100 = 0.025 inches.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 46 / 1332\n \n 2.3.2 G-Code\n 2.3.2.1 Defaults\n When LinuxCNC first starts up many G- and M-codes are loaded by default. The current active G- and\n M-codes can be viewed on the MDI tab in the Active G-codes: window in the AXIS interface. These\n@@ -5434,15 +5434,15 @@\n There are several options when doing manual tool changes. See the [EMCIO] section for information\n on configuration of these options. Also see the G28 and G30 section of the G-code chapter.\n \n 2.3.5 Koordinatensysteme\n The Coordinate Systems can be confusing at first. Before running a CNC machine you must understand the basics of the coordinate systems used by LinuxCNC. In depth information on the LinuxCNC\n Coordinate Systems is in the Coordinate System section of this manual.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 47 / 1332\n \n 2.3.5.1 G53 Machine Coordinate\n When you home LinuxCNC you set the G53 Machine Coordinate System to 0 for each axis homed.\n No other coordinate systems or tool offsets are changed by homing.\n The only time you move in the G53 machine coordinate system is when you program a G53 on the\n@@ -5474,22 +5474,22 @@\n in relation to the material.\n Note also the position of the limit switches and the direction of activation of their cams. Several\n combinations are possible, for example it is possible (contrary to the drawing) to place a single fixed\n limit switch in the middle of the table and two mobile cams to activate it. In this case the limits will\n be reversed, +X will be on the right of the table and -X on the left. This inversion does not change\n anything from the point of view of the direction of movement of the tool.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 48 / 1332\n \n Abbildung 2.14: Typical Mill Configuration\n The following diagram shows a typical lathe showing direction of travel of the tool and limit switches.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 2.15: Typical Lathe Configuration\n \n 2.4 Starting LinuxCNC\n 2.4.1 Running LinuxCNC\n LinuxCNC is started with the script file linuxcnc.\n linuxcnc [options] []\n@@ -5504,15 +5504,15 @@\n $ linuxcnc [Options] path/to/your_ini_file\n Name the configuration INI file using its path\n $ linuxcnc [Options] -l\n Use the previously used configuration INI file\n \n 49 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 50 / 1332\n \n Options:\n -d: Turn on \u201ddebug\u201d mode\n -v: Turn on \u201dverbose\u201d mode\n -r: Disable redirection of stdout and stderr to ~/linuxcnc_print.txt and\n@@ -5538,15 +5538,15 @@\n or GladeVCP objects with HAL pins you must use the postgui HAL file to make any connections to\n those pins. See the [HAL] section of the INI configuration for more information.\n 2.4.1.1 Configuration Selector\n If no INI file is passed to the linuxcnc script it loads the configuration selector so you can choose and\n save a sample configuration. Once a sample configuration has been saved it can be modified to suit\n your application. The configuration files are saved in linuxcnc/configs directory.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 51 / 1332\n \n 2.5 CNC Machine Overview\n In diesem Abschnitt wird kurz beschrieben, wie eine CNC-Maschine von der Eingangs- und Ausgangsseite des Interpreters aus betrachtet wird.\n \n 2.5.1 Mechanische Bestandteile\n@@ -5555,15 +5555,15 @@\n Interpreter interagieren, wie z. B. die Jog Buttons/ Tipptasten, werden hier nicht beschrieben, auch\n wenn sie die Steuerung beeinflussen.\n 2.5.1.1 Axes\n Jede CNC-Maschine hat eine oder mehrere Achsen. Verschiedene Arten von CNC-Maschinen haben\n unterschiedliche Kombinationen. Eine \u201d4-Achsen-Fr\u00e4smaschine\u201d kann zum Beispiel XYZA- oder XYZBAchsen haben. Eine Drehmaschine hat normalerweise XZ-Achsen. Eine Schaumstoffschneidemaschine kann XYUV-Achsen haben. In LinuxCNC, der Fall eines XYYZ \u201dGantry\u201d-Maschine mit zwei Motoren\n f\u00fcr eine Achse ist besser durch Kinematik als durch eine zweite lineare Achse behandelt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 52 / 1332\n \n Anmerkung\n Wenn die Bewegung der mechanischen Komponenten nicht unabh\u00e4ngig ist, wie z. B. bei HexapodMaschinen, k\u00f6nnen die RS274/NGC-Sprache und die kanonischen Bearbeitungsfunktionen immer\n noch verwendet werden, solange die unteren Steuerungsebenen wissen, wie die tats\u00e4chlichen Mechanismen zu steuern sind, um die gleiche relative Bewegung von Werkzeug und Werkst\u00fcck zu erzeugen, wie sie von unabh\u00e4ngigen Achsen erzeugt w\u00fcrde. Dies wird als \u201dKinematik\u201d bezeichnet.\n \n@@ -5590,15 +5590,15 @@\n Bearbeitung einen bestimmten Prozentsatz der programmierten Geschwindigkeit betr\u00e4gt.\n 2.5.1.5 Schalter zum L\u00f6schen von Bl\u00f6cken\n Eine CNC-Maschine kann einen Schalter zum L\u00f6schen von Bl\u00f6cken haben. Siehe den Abschnitt BlockL\u00f6sch-Schalter (engl. block delete switch).\n 2.5.1.6 Optionaler Programm-Stopp-Schalter\n Eine CNC-Maschine kann mit einem optionalen Programmstoppschalter ausgestattet sein. Siehe den\n Abschnitt Optionaler Programmstopp.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 53 / 1332\n \n 2.5.2 Steuerungs- und Datenkomponenten\n 2.5.2.1 Lineare Achsen\n Die X-, Y- und Z-Achse bilden ein standardm\u00e4\u00dfiges rechtsh\u00e4ndiges Koordinatensystem mit orthogonalen linearen Achsen. Die Positionen der drei linearen Bewegungsmechanismen werden durch Koordinaten auf diesen Achsen ausgedr\u00fcckt.\n Die Achsen U, V und W bilden ebenfalls ein standardm\u00e4\u00dfiges rechtsh\u00e4ndiges Koordinatensystem. X\n@@ -5629,15 +5629,15 @@\n Um ein Werkzeug entlang einer bestimmten Bahn zu bewegen, muss ein Bearbeitungszentrum h\u00e4ufig\n die Bewegung mehrerer Achsen koordinieren. Wir verwenden den Begriff \u201dkoordinierte lineare Bewegung\u201d, um die Situation zu beschreiben, in der sich nominell jede Achse mit konstanter Geschwindigkeit bewegt und sich alle Achsen gleichzeitig von ihren Startpositionen zu ihren Endpositionen\n bewegen. Wenn sich nur die X-, Y- und Z-Achse (oder eine oder zwei von ihnen) bewegen, f\u00fchrt dies zu\n einer geradlinigen Bewegung, daher das Wort \u201dlinear\u201d in dem Begriff. Bei tats\u00e4chlichen Bewegungen\n ist es oft nicht m\u00f6glich, eine konstante Geschwindigkeit beizubehalten, da am Anfang und/oder am\n Ende der Bewegung eine Beschleunigung oder Verz\u00f6gerung erforderlich ist. Es ist jedoch m\u00f6glich,\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 54 / 1332\n \n die Achsen so zu steuern, dass jede Achse zu jedem Zeitpunkt den gleichen Teil ihrer erforderlichen\n Bewegung ausgef\u00fchrt hat wie die anderen Achsen. Dadurch wird das Werkzeug auf demselben Weg\n bewegt, und wir nennen diese Art der Bewegung auch koordinierte lineare Bewegung.\n Koordinierte lineare Bewegungen k\u00f6nnen entweder mit der vorherrschenden Vorschubgeschwindigkeit oder mit der Verfahrgeschwindigkeit ausgef\u00fchrt werden oder sie k\u00f6nnen mit der Spindelrotation synchronisiert werden. Wenn die gew\u00fcnschte Geschwindigkeit aufgrund physikalischer Grenzen\n@@ -5664,15 +5664,15 @@\n Die Einheiten f\u00fcr Abst\u00e4nde entlang der X-, Y- und Z-Achse k\u00f6nnen in Millimetern oder Zoll gemessen\n werden. Die Einheiten f\u00fcr alle anderen an der Maschinensteuerung beteiligten Gr\u00f6\u00dfen k\u00f6nnen nicht\n ge\u00e4ndert werden. Verschiedene Gr\u00f6\u00dfen verwenden unterschiedliche spezifische Einheiten. Die Spindeldrehzahl wird in Umdrehungen pro Minute gemessen. Die Positionen der Rotationsachsen werden\n in Grad gemessen. Vorschubgeschwindigkeiten werden in aktuellen L\u00e4ngeneinheiten pro Minute oder\n Grad pro Minute oder L\u00e4ngeneinheiten pro Spindelumdrehung ausgedr\u00fcckt, wie in Abschnitt G93 G94\n G95 beschrieben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 55 / 1332\n \n 2.5.2.9 Aktuelle Position\n Der kontrollierte Punkt befindet sich immer an einer Stelle, die als \u201daktuelle Position\u201d bezeichnet wird,\n und der Controller wei\u00df immer, wo sich diese befindet. Die dargestellte aktuelle Position muss angepasst werden, selbst wenn keine Achsenbewegung stattfindet, wenn eines von mehreren Ereignissen\n eintritt:\n@@ -5703,15 +5703,15 @@\n verlangsamt oder stoppt bei Bedarf an scharfen Ecken des Weges.\n kontinuierlicher Modus (continuous mode)\n Im kontinuierlichen Modus k\u00f6nnen scharfe Ecken der Bahn leicht abgerundet werden, damit die\n Vorschubgeschwindigkeit beibehalten werden kann (aber ohne Verletzung der Toleranzgrenzen,\n falls angegeben).\n Siehe Abschnitte G61 und G64.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 56 / 1332\n \n 2.5.3 Interpreter-Interaktion mit Schaltern\n Der Interpreter interagiert mit mehreren Schaltern. In diesem Abschnitt werden die Interaktionen\n genauer beschrieben. In keinem Fall wei\u00df der Interpreter, wie die Einstellung eines dieser Schalter\n ist.\n@@ -5745,15 +5745,15 @@\n TOOL_TABLE = acme_300.tbl\n \n oder:\n TOOL_TABLE = EMC-AXIS-SIM.tbl\n \n Weitere Informationen zu den Besonderheiten des Formats der Werkzeugtabelle finden Sie im Abschnitt Werkzeugtabellen-Format.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 57 / 1332\n \n 2.5.5 Parameter\n In der RS274/NGC-Sprachansicht verwaltet ein Bearbeitungszentrum eine Reihe von numerischen\n Parametern, die durch eine Systemdefinition (RS274NGC_MAX_PARAMETERS) festgelegt sind. Viele\n von ihnen haben spezifische Verwendungen, insbesondere bei der Definition von Koordinatensystemen. Die Anzahl der numerischen Parameter kann sich erh\u00f6hen, wenn die Entwicklung die Unterst\u00fctzung f\u00fcr neue Parameter hinzuf\u00fcgt. Das Parameter-Array bleibt \u00fcber die Zeit erhalten, auch wenn das\n@@ -5797,15 +5797,15 @@\n (engl. home)\n \n Siehe den Abschnitt zu Parametern f\u00fcr weitere Informationen.\n \n 2.6 Lathe User Information\n Dieses Kapitel enth\u00e4lt Informationen speziell f\u00fcr Drehmaschinen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 58 / 1332\n \n 2.6.1 Drehbank-Modus\n Wenn Ihre CNC-Maschine eine Drehmaschine ist, gibt es einige spezifische \u00c4nderungen, die Sie wahrscheinlich an Ihrer INI-Datei vornehmen m\u00f6chten, um die besten Ergebnisse von LinuxCNC zu erzielen.\n Wenn Sie das AXIS-Display verwenden, m\u00fcssen Sie daf\u00fcr sorgen, dass AXIS Ihre Drehwerkzeuge\n richtig anzeigt. Siehe den Abschnitt INI Konfiguration f\u00fcr weitere Details.\n@@ -5836,25 +5836,25 @@\n of the tool table format, see the Tool Table Section.\n \n 2.6.3 Lathe Tool Orientation\n Die folgende Abbildung zeigt die Ausrichtungen der Drehmei\u00dfel mit dem Winkel der Mittellinie jeder\n Ausrichtung und Informationen zu VORDERWINKEL und HINTERWINKEL.\n FRONTANGLE und BACKANGLE sind im Uhrzeigersinn beginnend an einer Linie parallel zu Z+.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 59 / 1332\n \n Abbildung 2.16: Ausrichtung des Drehwerkzeugs\n In AXIS zeigen die folgenden Abbildungen, wie die Werkzeugpositionen aussehen, wie sie in der Werkzeugtabelle eingegeben wurden.\n Werkzeugpositionen 1, 2, 3 & 4Werkzeugpositionen 123 & 4 23 & 4 3 & 4\n \n Werkzeugpositionen 5, 6, 7 & 8Werkzeugpositionen 567 & 8 67 & 8 7 & 8\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 60 / 1332\n \n 2.6.4 Werkzeug Touch Off\n When running in lathe mode in AXIS you can set the X and Z in the tool table using the Touch Off\n window. If you have a tool turret you normally have Touch off to fixture selected when setting up your\n turret. When setting the material Z zero you have Touch off to material selected. For more information\n@@ -5880,15 +5880,15 @@\n Hinweis: Wenn Sie sich im Radiusmodus befinden, m\u00fcssen Sie den Radius und nicht den Durchmesser\n eingeben.\n 2.6.4.2 Z Touch-Off\n Die Vers\u00e4tze der Z-Achse k\u00f6nnen anfangs etwas verwirrend sein, da der Z-Versatz aus zwei Elementen\n besteht. Es gibt den Werkzeugtischversatz und den Maschinenkoordinatenversatz. Zun\u00e4chst werden\n wir uns mit den Vers\u00e4tzen auf dem Werkzeugtisch befassen. Eine Methode besteht darin, einen festen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 61 / 1332\n \n Punkt auf Ihrer Drehmaschine zu verwenden und den Z-Versatz f\u00fcr alle Werkzeuge von diesem Punkt\n aus einzustellen. Manche verwenden die Spindelnase oder die Futterfl\u00e4che. Auf diese Weise k\u00f6nnen\n Sie zu einem neuen Werkzeug wechseln und dessen Z-Versatz einstellen, ohne alle Werkzeuge neu\n einstellen zu m\u00fcssen.\n@@ -5920,15 +5920,15 @@\n \n 2.6.5 Spindelsynchronisierte Bewegung\n Spindle synchronized motion requires a quadrature encoder connected to the spindle with one index\n pulse per revolution. See the motion man page and the Spindle Control Example for more information.\n Gewinde-Drehen (engl. threading) Der Gewindeschneidzyklus G76 wird sowohl f\u00fcr Innen- als auch\n f\u00fcr Au\u00dfengewinde verwendet. Weitere Informationen finden Sie im Abschnitt G76.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 62 / 1332\n \n Konstante Oberfl\u00e4chengeschwindigkeit CSS or Constant Surface Speed uses the machine X origin\n modified by the tool X offset to compute the spindle speed in RPM. CSS will track changes in tool\n offsets. The X machine origin should be when the reference tool (the one with zero offset) is at the\n center of rotation. For more information see the G96 Section.\n@@ -5963,15 +5963,15 @@\n The control point for the tool follows the programmed path. The control point is the intersection of a\n line parallel to the X and Z axis and tangent to the tool tip diameter, as defined when you touch off the\n X and Z axes for that tool. When turning or facing straight sided parts the cutting path and the tool\n edge follow the same path. When turning radius and angles the edge of the tool tip will not follow the\n programmed path unless cutter comp is in effect. In the following figures you can see how the control\n point does not follow the tool edge as you might assume.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 63 / 1332\n \n Abbildung 2.17: Kontrollpunkt\n \n 2.6.7.2 Schneidwinkel ohne Fr\u00e4ser Compensation\n Now imagine we program a ramp without cutter comp. The programmed path is shown in the following\n@@ -5979,29 +5979,29 @@\n same as long as we are moving in an X or Z direction only.\n \n Abbildung 2.18: Rampe Eingang\n Now as the control point progresses along the programmed path the actual cutter edge does not follow\n the programmed path as shown in the following figure. There are two ways to solve this, cutter comp\n and adjusting your programmed path to compensate for tip radius.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 64 / 1332\n \n Abbildung 2.19: Rampenpfad\n Im obigen Beispiel ist es eine einfache \u00dcbung, die programmierte Bahn so anzupassen, dass sie die\n gew\u00fcnschte tats\u00e4chliche Bahn ergibt, indem die programmierte Bahn f\u00fcr die Rampe um den Radius\n der Werkzeugspitze nach links verschoben wird.\n 2.6.7.3 Schneiden eines Radius\n In this example we will examine what happens during a radius cut without cutter comp. In the next\n figure you see the tool turning the OD of the part. The control point of the tool is following the programmed path and the tool is touching the OD of the part.\n \n Abbildung 2.20: Turning Cut\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 65 / 1332\n \n In this next figure you can see as the tool approaches the end of the part the control point still follows\n the path but the tool tip has left the part and is cutting air. You can also see that even though a radius\n has been programmed the part will actually end up with a square corner.\n \n@@ -6009,15 +6009,15 @@\n Jetzt k\u00f6nnen Sie sehen, wie der Kontrollpunkt dem programmierten Radius folgt, die Werkzeugspitze\n hat das Teil verlassen und schneidet nun Luft.\n \n Abbildung 2.22: Radiusschnitt\n In the final figure we can see the tool tip will finish cutting the face but leave a square corner instead\n of a nice radius. Notice also that if you program the cut to end at the center of the part a small amount\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 66 / 1332\n \n of material will be left from the radius of the tool. To finish a face cut to the center of a part you have\n to program the tool to go past center at least the nose radius of the tool.\n \n Abbildung 2.23: Face Cut\n@@ -6038,15 +6038,15 @@\n processes use this plasma to transfer an electrical arc to the workpiece. The metal to be cut or removed is melted by the heat of the arc and then blown away. While the goal of plasma arc cutting is\n the separation of the material, plasma arc gouging is used to remove metals to a controlled depth and\n width.\n Plasma torches are similar in design to the automotive spark plug. They consist of negative and positive\n sections separated by a center insulator. Inside the torch, the pilot arc starts in the gap between the\n negatively charged electrode and the positively charged tip. Once the pilot arc has ionised the plasma\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 67 / 1332\n \n gas, the superheated column of gas flows through the small orifice in the torch tip, which is focused\n on the metal to be cut.\n In a Plasma Cutting Torch a cool gas enters Zone B, where a pilot arc between the electrode and the\n torch tip heats and ionises the gas. The main cutting arc then transfers to the workpiece through the\n@@ -6061,15 +6061,15 @@\n with the material is required), they are unsuited for CNC applications..\n 2.7.2.1 Hochfrequenzstart\n This start type is widely employed, and has been around the longest. Although it is older technology, it\n works well, and starts quickly. But, because of the high frequency high voltage power that is required\n generated to ionise the air, it has some drawbacks. It often interferes with surrounding electronic\n circuitry, and can even damage components. Also a special circuit is needed to create a Pilot arc.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 68 / 1332\n \n Inexpensive models will not have a pilot arc, and require touching the consumable to the work to\n start. Employing a HF circuit also can increase maintenance issues, as there are usually adjustable\n points that must be cleaned and readjusted from time to time.\n 2.7.2.2 Blowback Start\n@@ -6094,15 +6094,15 @@\n unknown state of the sheet makes it impossible to generate G-code that will cater for these variances\n in the material.\n A plasma Arc is oval in shape and the cutting height needs to be controlled to minimise bevelled edges.\n If the torch is too high or too low then the edges can become excessively bevelled. It is also critical\n that the torch is held perpendicular to the surface.\n \u2022 Torch to work distance can impact edge bevel\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 69 / 1332\n \n \u2022 Negative cut angle: torch too low, increase torch to work distance.\n \u2022 Positive cut angle: torch too high, decrease torch to work distance.\n Anmerkung\n Eine leichte Abweichung der Schnittwinkel kann normal sein, solange sie innerhalb der Toleranz liegt.\n@@ -6126,15 +6126,15 @@\n choose a suitable plasma machine. Failure to do this is likely to cause hours and hours of fruitless\n trouble shooting trying to work around the lack of what many would consider to be mandatory features.\n Obwohl Regeln dazu da sind, gebrochen zu werden, wenn man die Gr\u00fcnde f\u00fcr die Anwendung der\n Regel versteht, sind wir der Meinung, dass ein neuer Hersteller von Plasmatischen eine Maschine mit\n den folgenden Merkmalen ausw\u00e4hlen sollte:\n \u2022 Blowback-Start zur Minimierung der elektrischen Ger\u00e4usche und zur Vereinfachung der Konstruktion\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 70 / 1332\n \n \u2022 Ein Maschinenbrenner wird bevorzugt, aber viele haben auch Handbrenner verwendet.\n \u2022 Eine vollst\u00e4ndig abgeschirmte Brennerspitze, die eine ohmsche Abtastung erm\u00f6glicht\n Wenn Sie \u00fcber das n\u00f6tige Budget verf\u00fcgen, k\u00f6nnen Sie sich f\u00fcr ein h\u00f6herwertiges Ger\u00e4t entscheiden:\n \u2022 Vom Hersteller bereitgestellte Schneidtabellen, die viele Stunden und Materialabf\u00e4lle bei der Kalibrierung der Schneidparameter sparen\n@@ -6172,15 +6172,15 @@\n people around the globe have been involved in testing and improving the feature set. QtPlasmaC is\n unique in that its design goal was to support all THCs including the simple bit bang ones through\n to sophisticated torch voltage control, if the voltage is made available to LinuxCNC via a THCAD or\n some other voltage sensor. What\u2019s more, QtPlasmaC is designed to be a stand alone system that does\n not need any additional G-code subroutines and allows the user to define their own cut charts that\n are stored in the system and accessible by a drop-down.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 71 / 1332\n \n 2.7.6 Lichtbogen-OK-Signal\n Plasma machines that have a CNC interface contain a set of dry contacts (eg a relay) that close when a\n valid arc is established and each side of these contacts are bought out onto pins on the CNC interface.\n A plasma table builder should connect one side of these pins to field power and the other to an input\n@@ -6220,15 +6220,15 @@\n commands. If this is the case, then after initial probing, it is recommended to probe away from the\n surface until the probe signal is lost at a slower speed. Also, ensure the switch hysteresis is accounted\n for.\n Unabh\u00e4ngig von der verwendeten Sondierungsmethode wird dringend empfohlen, einen gleitenden\n Schalter einzubauen, damit ein Ausweich- oder Sekund\u00e4rsignal vorhanden ist, um eine Besch\u00e4digung\n des Brenners bei einem Absturz zu vermeiden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 72 / 1332\n \n 2.7.7.2 Ohmsche Erfassung\n Ohmic sensing relies on contact between the torch and the material acting as a switch to activate an\n electrical signal that is sensed by the CNC controller. Provided the material is clean, this can be a\n much more accurate method of sensing the material than a float switch which can cause deflection\n@@ -6259,15 +6259,15 @@\n Encoder B and Encoder Index pins. This firmware is available for download for the 7I76E and 7I96\n boards from the Mesa web site on the product pages.\n The THCAD is sensitive enough to see the ramp up in circuit voltage as contact pressure increases.\n The ohmic.comp component included in LinuxCNC can monitor the sensing voltage and set a voltage\n threshold above which it is deemed contact is made and an output is enabled. By monitoring the voltage, a lower \u201cbreak circuit\u201d threshold can be set to build in strong switch hysteresis. This minimises\n false triggering. In our testing, we found the material sensing using this method was more sensitive\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 73 / 1332\n \n and robust as well as being simpler to implement the wiring. One further advantage is using software\n outputs instead of physical I/O pins is that it frees up pins to use for other purposes. This advantage\n is helpful to get the most out of the Mesa 7I96 which has limited I/O pins.\n Der folgende Schaltplan zeigt, wie eine Hypersensing-Schaltung realisiert werden kann.\n@@ -6279,15 +6279,15 @@\n The following HAL code can be pasted into your QtPlasmaC\u2019s custom.hal to enable Ohmic sensing on\n Encoder 2 of a 7I76E. Install the correct bit file and connect the THCAD to IDX+ and IDX-. Be sure to\n change the calibration settings to agree with your THCAD-5.\n # --- Load the Component --loadrt ohmic names=ohmicsense\n addf ohmicsense servo-thread\n # --- 7I76E ENCODER 2 SETUP FOR OHMIC SENSING--setp hm2_7i76e.0.encoder.02.scale -1\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 74 / 1332\n \n setp hm2_7i76e.0.encoder.02.counter-mode 1\n # --- Configure the component --setp ohmicsense.thcad-0-volt-freq\n 140200\n setp ohmicsense.thcad-max-volt-freq 988300\n@@ -6322,15 +6322,15 @@\n Liegt die Schnittgeschwindigkeit am Ende dieser Verz\u00f6gerung noch nicht in der N\u00e4he der gew\u00fcnschten Schnittgeschwindigkeit, sollte die Steuerung warten, bis diese erreicht ist, bevor sie die THC\n aktiviert.\n \n 2.7.9 Abtastung der Brennerspannung\n Anstatt sich auf die Schneidtabellen des Herstellers zu verlassen, um die gew\u00fcnschte Brennerspannung einzustellen, ziehen es viele Leute (einschlie\u00dflich des Verfassers) vor, die Spannung zu messen,\n wenn die THC aktiviert ist, und diese als Sollwert zu verwenden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 75 / 1332\n \n 2.7.10 Brenner Behinderung (engl. torch breakaway)\n It is recommended that a mechanism is provided to allow the torch to \u201cbreak away\u201d or fall off in the\n case of impact with the material or a cut part that has tipped up. A sensor should be installed to allow\n the CNC controller to detect if this has occurred and pause the running program. Usually a break\n@@ -6360,15 +6360,15 @@\n So it should be possible to compare the moving average with the dv/dt and halt THC operation once\n the dv/dt exceeds the normal range expected due to warpage. More work needs to be done in this\n area to come up with a working solution in LinuxCNC.\n \n 2.7.13 Hole And Small Shape Cutting\n It is recommended that you slow down cutting when cutting holes and small shapes.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 76 / 1332\n \n John Moore says: \u201cIf you want details on cutting accurate small holes look up the sales sheets on\n Hypertherm\u2019s True Hole Technology also look on PlasmaSpider, user seanp has posted extensively on\n his work using simple air plasma.\n The generally accepted method to get good holes from 37mm dia. and down to material thickness with\n@@ -6406,15 +6406,15 @@\n overshoot the initial trigger point by 50-100 mm. If you use a shared home/limit switch, you have to\n move the sensor off the trigger point with the final HOME_OFFSET or you will trigger a limit switch\n fault as the machine comes out of homing. This means you could lose 50 mm or more of axis travel\n with shared home/limit switches. This does not happen if separate home and limit switches are used.\n The following pins are usually required (note that suggested connections may not be appropriate for\n a QtPlasmaC configuration):\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 77 / 1332\n \n 2.7.14.1 Arc OK (input)\n \u2022 Inverter closes dry contacts when a valid arc is established\n \u2022 Connect Field power to one Inverter ArcOK terminal.\n \u2022 Connect other Inverter Ok Terminal to input pin.\n@@ -6444,15 +6444,15 @@\n 2.7.14.4 Ohmscher Sensor aktivieren (Ausgang)\n \u2022 Siehe den Schaltplan ohmic sensing.\n \u2022 Verbinden Sie den Ausgangspin mit einer Seite des Trennrelais und die andere Seite mit der Masse\n der Feldversorgung.\n \u2022 In a non-QtPlasmaC configuration, usually triggered by a \u0300 \u0300motion.digital-out- \u0300 \u0300 so it can be\n controlled in G-code by M62/M63/M64/M65.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 78 / 1332\n \n 2.7.14.5 Ohmsche Sensorik (engl. ohmic sensing) (Eingang)\n \u2022 Beachten Sie das zuvor gezeigte Schema zu ohmic sensing.\n \u2022 Eine isolierte Stromversorgung l\u00f6st ein Relais aus, wenn der Brennerschild das Material ber\u00fchrt.\n \u2022 Schlie\u00dfen Sie die Feldspannung an eine Ausgangsklemme und die andere an den Eingang an.\n@@ -6488,15 +6488,15 @@\n M62 P2 will disable THC (synchronised with motion)\n M63 P2 will enable THC (synchronised with motion)\n M64 P2 will disable THC (immediately)\n M65 P2 will enable THC (immediately)\n \n Reduce Cutting Speeds: (e.g., for hole cutting)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 79 / 1332\n \n M67 E3 Q0 w\u00fcrde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen\n M67 E3 Q40 w\u00fcrde die Geschwindigkeit auf 40% der angeforderten~Geschwindigkeit setzen\n M67 E3 Q60 w\u00fcrde die Geschwindigkeit auf 60% der angeforderten~Geschwindigkeit setzen\n M67 E3 Q100 w\u00fcrde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen\n@@ -6541,15 +6541,15 @@\n [JOINT_n]\n MAX_VELOCITY = 60\n MAX_ACCELERATION = 700\n \n For further information about external offsets (for version 2.8 or later) please read the [AXIS_]\n Section of the INI file document and External Axis Offsets in the LinuxCNC documentation.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 80 / 1332\n \n 2.7.17 Reading Arc Voltage With The Mesa THCAD\n The Mesa THCAD board is a remarkably well priced and accurate voltage to frequency converter that\n is designed for the hostile noisy electrical environment associated with plasma cutting. Internally it\n has a 0-10 V range. This range can be simply extended by the addition of some resistors as described\n@@ -6591,15 +6591,15 @@\n \n Power up your controller and open Halshow (AXIS: Show Homing Configuration), drill down to find\n the hm2_7i76e.0.encoder.00.velocity pin. With 0 Volts applied, it should be hovering around the\n 0 Volt frequency (3,800 in our example). Grab a 9 Volt battery and connect it to IN + and IN -. For a\n THCAD-10 you can now calculate the expected velocity (26,480 in our hypothetical example). If you\n pass this test, then you are ready to configure your LinuxCNC plasma controller.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 81 / 1332\n \n 2.7.17.3 Which Model THCAD To Use?\n The THCAD-5 is useful if you intend to use it for ohmic sensing. There is no doubt the THCAD-10\n is the more flexible device and it is easy to alter the scaling. However, there is one caveat that can\n come into play with some cheaper plasma cutters with an inbuilt voltage divider. That is, the internal resistors may be sensed by the THCAD as being part of its own external resistance and return\n@@ -6632,15 +6632,15 @@\n 2. Processed in CAM to generate final G-code that is loaded to the machine\n 3. Cutting the parts via CNC G-code commands.\n Some people achieve good results with Inkscape and G-code tools but SheetCam is a very well priced\n solution and there are a number of post processors available for LinuxCNC. SheetCam has a number\n of advanced features designed for plasma cutting and for the price, is a no brainer for anybody doing\n regular plasma cutting.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 82 / 1332\n \n 2.7.19 Designing For Noisy Electrical Environments\n Plasma cutting is inherently an extremely hostile and noisy electrical environment. If you have EMI\n problems things won\u2019t work correctly. You might fire the torch and the computer will reboot in a more\n obvious example, but you can have any number of other odd symptoms. They will pretty much all\n@@ -6687,15 +6687,15 @@\n The minimum water level under the cut level of the torch should be around 40 mm, having space under\n slats is nice so the water can level and escape during cutting, having a bit of water above the metal\n plate being cut is really nice as it gets rid of the little bit of dust, running it submerged is the best way\n but not preferable for systems with part time use as it will corrode the torch. Adding baking soda to\n the water will keep the table in a nice condition for many years as it does not allow corrosion while\n the slats are under water and it also reduces the smell of water vapour. Some people use a water\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 83 / 1332\n \n reservoir with a compressed air inlet so they can push the water from the reservoir up to the water\n table on demand and thus allow changes in water levels.\n \n 2.7.21 Downdraft Tables\n@@ -6734,15 +6734,15 @@\n \n 2.7.25 Hypertherm RS485 Control\n Some Hypertherm plasma cutters have a RS485 interface to allow the controller (e.g., LinuxCNC)\n to set amps.pressure and mode. A number of people have used a non-realtime component written in\n Python to achieve this. More recently, QtPlasmaC now supports this interface natively. Refer to the\n QtPlasmaC documentation for how to use it.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 84 / 1332\n \n The combination of a slow baud rate used by Hypertherm and the non-realtime component, make this\n fairly slow to alter machine states so it generally not viable to change settings on the fly while cutting.\n When selecting a RS485 interface to use at the PC end, users have reported that USB to RS485\n interfaces are not reliable. Good reliable results have been achieved using a hardware based RS232\n@@ -6762,15 +6762,15 @@\n and allows you to configure toolsets and code snippets to suit your needs. SheetCam post processors\n are text files written in the Lua programming language and are generally easy to modify to suit your\n exact requirements. For further information, consult the SheetCam web site and their support forum.\n Another popular post-processor is included with the popular Fusion360 package but the included\n post-processors will need some customisation.\n LinuxCNC is a CNC application and discussions of CAM techniques other than this introductory discussion are out of scope of LinuxCNC.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 85 / 1332\n \n Kapitel 3\n \n Konfigurationsassistenten\n 3.1 Stepper Configuration Wizard\n@@ -6781,15 +6781,15 @@\n StepConf wird bei der Installation von LinuxCNC mitinstalliert und befindet sich im CNC-Men\u00fc.\n StepConf legt eine Datei im Verzeichnis linuxcnc/config ab, um die Auswahlm\u00f6glichkeiten f\u00fcr jede von\n Ihnen erstellte Konfiguration zu speichern. Wenn Sie etwas \u00e4ndern, m\u00fcssen Sie die Datei ausw\u00e4hlen,\n die dem Namen Ihrer Konfiguration entspricht. Die Dateierweiterung lautet .stepconf.\n Der StepConf-Assistent funktioniert am besten bei einer Bildschirmaufl\u00f6sung von mindestens 800 x\n 600.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 86 / 1332\n \n 3.1.2 Startseite\n \n Abbildung 3.1: StepConf Einstiegsseite\n Die ersten drei Optionsfelder sind selbsterkl\u00e4rend:\n@@ -6801,15 +6801,15 @@\n \u2022 Importieren (engl. import) - Importieren Sie eine Mach-Konfigurationsdatei und versucht, sie in eine\n LinuxCNC-Konfigurationsdatei zu konvertieren. Nach dem Import gehen Sie durch die Seiten von\n StepConf, um die Eintr\u00e4ge zu best\u00e4tigen/zu \u00e4ndern. Die urspr\u00fcngliche Mach-XML-Datei wird nicht\n ver\u00e4ndert.\n Diese folgenden Optionen werden in einer Einstellungsdatei f\u00fcr den n\u00e4chsten Lauf von StepConf\n gespeichert.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 87 / 1332\n \n \u2022 Desktop-Verkn\u00fcpfung erstellen (engl. Create Desktop Shortcut) - Damit wird eine Verkn\u00fcpfung auf\n Ihrem Desktop zu den Dateien erstellt.\n \u2022 Desktop Launcher erstellen (engl. Create Desktop Launcher) - Damit wird ein Launcher auf Ihrem\n Desktop platziert, um Ihre Anwendung zu starten.\n@@ -6819,15 +6819,15 @@\n \n Abbildung 3.2: Seite mit grundlegenden Informationen\n \u2022 Simulierte Hardware erstellen (engl. Create Simulated Hardware) - Damit k\u00f6nnen Sie eine Konfiguration zum Testen erstellen, auch wenn Sie nicht \u00fcber die tats\u00e4chliche Hardware verf\u00fcgen\u2019.\n \u2022 Machine Name - Choose a name for your machine. Use only uppercase letters, lowercase letters,\n digits, - and _.\n \u2022 Axis Configuration - Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 88 / 1332\n \n \u2022 Machine Units - Choose Inch or mm. All subsequent entries will be in the chosen units. Changing\n this also changes the default values in the Axes section. If you change this after selecting values in\n any of the axes sections, they will be over-written by the default values of the selected units.\n \u2022 Driver Type - If you have one of the stepper drivers listed in the pull down box, choose it. Otherwise,\n@@ -6863,15 +6863,15 @@\n Test mindestens ein paar Minuten laufen. Je l\u00e4nger Sie den Test laufen lassen, desto eher werden auch\n seltene Ereignisse erfasst, die m\u00f6glicherweise in k\u00fcrzeren Abst\u00e4nden auftreten. Dies ist ein Test nur\n f\u00fcr Ihren Computer, es muss also keine Hardware angeschlossen sein, um den Test durchzuf\u00fchren.\n \n Warnung\n Versuchen Sie nicht, LinuxCNC zu starten, w\u00e4hrend der Latenztest l\u00e4uft.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 89 / 1332\n \n Abbildung 3.3: Latenz-Test\n Die Latenzzeit gibt an, wie lange der PC braucht, um seine Arbeit zu unterbrechen und auf eine externe\n Anfrage zu reagieren. In unserem Fall ist die Anfrage der periodische Herzschlag (engl. heartbeat),\n der als Zeitreferenz f\u00fcr die Schrittimpulse dient. Je geringer die Latenzzeit ist, desto schneller kann\n@@ -6889,15 +6889,15 @@\n If your Max Jitter number is less than about 15-20 \u00b5s (15000-20000 ns), the computer should give very\n nice results with software stepping. If the max latency is more like 30-50 \u00b5s, you can still get good\n results, but your maximum step rate might be a little disappointing, especially if you use microstepping\n or have very fine pitch leadscrews. If the numbers are 100 \u00b5s or more (100,000 ns), then the PC is not\n a good candidate for software stepping. Numbers over 1 millisecond (1,000,000 ns) mean the PC is\n not a good candidate for LinuxCNC, regardless of whether you use software stepping or not.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 90 / 1332\n \n 3.1.5 Einrichtung der parallelen Schnittstelle\n \n Abbildung 3.4: Parallele Schnittstelle Setup-Seite\n Sie k\u00f6nnen die Adresse als Hexadezimalwert (oft 0x378) oder als Linux\u2019s Standard-Portnummer (wahrscheinlich 0) angeben\n@@ -6906,15 +6906,15 @@\n \u2022 Ausgangspinout-Voreinstellungen - Automatische Einstellung der Pins 2 bis 9 gem\u00e4\u00df dem SherlineStandard (Richtung auf Pins 2, 4, 6, 8) oder dem Xylotex-Standard (Richtung auf Pins 3, 5, 7, 9).\n \u2022 \u201eEing\u00e4nge und Ausg\u00e4nge\u201c \u2013 Wenn der Ein- oder Ausgang nicht verwendet wird, setzen Sie die\n Option auf \u201eNicht verwendet\u201c.\n \u2022 Externes Notaus (engl. external E-Stop) - Dies kann aus einem Dropdown-Feld f\u00fcr den Eingangsstift ausgew\u00e4hlt werden. Eine typische Notaus-Kette verwendet alle normalerweise geschlossenen\n Kontakte.\n \u2022 Referenzpunkt- & Endschalter - Diese k\u00f6nnen bei den meisten Konfigurationen aus einem DropdownFeld f\u00fcr den Eingangspin ausgew\u00e4hlt werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 91 / 1332\n \n \u2022 Charge Pump - Wenn Ihre Treiberplatine ein Ladungspumpensignal ben\u00f6tigt, w\u00e4hlen Sie Charge\n Pump aus der Dropdown-Liste f\u00fcr den Ausgangspin, den Sie mit Ihrem Ladungspumpeneingang\n verbinden m\u00f6chten. Der Ausgang der Ladungspumpe ist \u00fcber StepConf mit dem Basisgewinde verbunden. Der Ausgang der Ladungspumpe entspricht etwa der H\u00e4lfte der maximalen Schrittrate, die\n auf der Seite \u201dBasic Machine Configuration\u201d angegeben ist.\n@@ -6927,15 +6927,15 @@\n Abbildung 3.5: Einrichten von Parallel Port 2\n Der zweite Parallelport (falls ausgew\u00e4hlt) kann auf dieser Seite konfiguriert und seine Pins zugewiesen\n werden. Es k\u00f6nnen keine Schritt- und Richtungssignale ausgew\u00e4hlt werden. Sie k\u00f6nnen \u201din\u201d oder\n \u201dout\u201d w\u00e4hlen, um die Anzahl der verf\u00fcgbaren Eingangs-/Ausgangs-Pins zu maximieren. Sie k\u00f6nnen\n die Adresse als Hexadezimalwert (oft 0x378) oder als Linux\u2019s Standard-Portnummer (wahrscheinlich\n 1) angeben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 92 / 1332\n \n 3.1.7 Konfiguration der Achsen\n \n Abbildung 3.6: Achsenkonfiguration am Bildschirm\n \u2022 Motor Steps Per Revolution - The number of full steps per motor revolution. If you know how many\n@@ -6946,15 +6946,15 @@\n If not, enter 1:1.\n \u2022 Leadscrew Pitch - Enter the pitch of the leadscrew here. If you chose Inch units, enter the number\n of threads per inch. If you chose mm units, enter the number of millimeters per revolution (e.g.,\n enter 2 for 2mm/rev). If the machine travels in the wrong direction, enter a negative number here\n instead of a positive number, or invert the direction pin for the axis.\n \u2022 Maximum Velocity - Enter the maximum velocity for the axis in units per second.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 93 / 1332\n \n \u2022 Maximum Acceleration - The correct values for these items can only be determined through experimentation. See Finding Maximum Velocity to set the speed and Finding Maximum Acceleration to\n set the acceleration.\n \u2022 Home Location - The position the machine moves to after completing the homing procedure for this\n axis. For machines without home switches, this is the location the operator manually moves the\n@@ -6983,15 +6983,15 @@\n Pulse rate at max speed determines the BASE_PERIOD. Values above 20000Hz may lead to slow\n response time or even lockups (the fastest usable pulse rate varies from computer to computer)\n \u2022 Axis SCALE - Die Zahl, die in der INI-Datei [SCALE] Einstellung verwendet wird. Die Anzahl Schritte\n pro Benutzereinheit.\n \u2022 Test this axis - This will open a window to allow testing for each axis. This can be used after filling\n out all the information for this axis.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 94 / 1332\n \n Abbildung 3.7: Achsen-Test\n Der Achsen-Test ist ein einfacher Test, f\u00fcr den nur Schritt- und Richtungssignale ausgegeben werden,\n um verschiedene Werte f\u00fcr Beschleunigung und Geschwindigkeit zu testen.\n Wichtig\n@@ -7014,15 +7014,15 @@\n Wenn die Maschine nicht offensichtlich zum Stillstand gekommen ist, klicken Sie auf die Schaltfl\u00e4che\n Ausf\u00fchren. Die Achse kehrt nun zu der Position zur\u00fcck, an der sie gestartet ist. Wenn die Position\n nicht korrekt ist, dann ist die Achse w\u00e4hrend des Tests stehen geblieben oder hat Schritte verloren.\n Verringern Sie die Geschwindigkeit und starten Sie den Test erneut.\n Wenn sich die Maschine nicht bewegt, stehen bleibt oder Schritte verliert, egal wie niedrig Sie die\n Geschwindigkeit einstellen, \u00fcberpr\u00fcfen Sie Folgendes:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 95 / 1332\n \n \u2022 Korrigieren Sie das Timing der Schrittwellenform\n \u2022 Korrekte Pinbelegung, einschlie\u00dflich Invert auf Step-Pins\n \u2022 Korrekte, gut geschirmte Verkabelung\n \u2022 Physikalische Probleme mit dem Motor, der Motorkupplung, der Leitspindel usw.\n@@ -7032,15 +7032,15 @@\n 3.1.7.2 Finding Maximum Acceleration\n Geben Sie mit der im vorherigen Schritt ermittelten H\u00f6chstgeschwindigkeit den zu testenden Beschleunigungswert ein. Passen Sie den Beschleunigungswert wie oben beschrieben nach oben oder\n unten an. Bei diesem Test ist es wichtig, dass die Kombination aus Beschleunigung und Testbereich es\n der Maschine erm\u00f6glicht, die ausgew\u00e4hlte Geschwindigkeit zu erreichen. Sobald Sie einen Wert gefunden haben, bei dem die Achse w\u00e4hrend dieses Testverfahrens nicht ins Stocken ger\u00e4t oder Schritte\n verliert, reduzieren Sie ihn um 10 % und verwenden Sie diesen Wert als maximale Beschleunigung\n der Achse.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 96 / 1332\n \n 3.1.8 Spindel-Konfiguration\n \n Abbildung 3.8: Seite zur Spindelkonfiguration\n Diese Seite erscheint nur, wenn Spindle PWM auf der Seite Parallel Port Pinout f\u00fcr einen der Ausg\u00e4nge\n@@ -7051,15 +7051,15 @@\n ein, der f\u00fcr die Erzeugung einer analogen Steuerspannung n\u00fctzlich ist. Den entsprechenden Wert\n finden Sie in der Dokumentation zu Ihrem Spindelcontroller.\n \u2022 Drehzahl 1 und 2, PWM 1 und 2 - Die generierte Konfigurationsdatei verwendet eine einfache lineare\n Beziehung, um den PWM-Wert f\u00fcr einen bestimmten Drehzahlwert zu bestimmen. Wenn die Werte\n nicht bekannt sind, k\u00f6nnen sie bestimmt werden. Weitere Informationen finden Sie unter Festlegung\n der Spindle Kalibrierung.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 97 / 1332\n \n 3.1.8.2 Spindle-synchronized motion\n Wenn die entsprechenden Signale von einem Spindel-Encoder an LinuxCNC \u00fcber HAL verbunden\n sind, unterst\u00fctzt LinuxCNC Drehmaschine Gewindeschneiden. Diese Signale sind:\n \u2022 Spindle Index \u2013 Ist ein Impuls, der einmal pro Spindelumdrehung auftritt.\n@@ -7102,28 +7102,28 @@\n zu ber\u00fccksichtigen:\n \u2022 Stellen Sie sicher, dass die beiden Kalibrierungsdrehzahlen nicht zu nahe beieinander liegen.\n \u2022 Vergewissern Sie sich, dass die beiden Kalibrierungsgeschwindigkeiten im Bereich der Geschwindigkeiten liegen, die Sie normalerweise beim Fr\u00e4sen verwenden.\n Wenn Ihre Spindel z. B. von 0 U/min bis 8000 U/min l\u00e4uft, Sie aber in der Regel Drehzahlen zwischen\n 400 U/min (10 %) und 4000 U/min (100 %) verwenden, dann suchen Sie die PWM-Werte, die 1600\n U/min (40 %) und 2800 U/min (70 %) ergeben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 98 / 1332\n \n 3.1.9 Optionen\n \n Abbildung 3.9: Erweiterte Optionen bei der Konfiguration\n \u2022 Include Halui - Damit wird die Halui-Benutzerschnittstellenkomponente hinzugef\u00fcgt. Siehe das HALUI Kapitel f\u00fcr weitere Informationen hierzu.\n \u2022 Include PyVCP - Diese Option f\u00fcgt die PyVCP-Panel-Basisdatei oder eine Beispieldatei zum Arbeiten\n hinzu. Siehe das PyVCP Kapitel f\u00fcr weitere Informationen.\n \u2022 Include ClassicLadder PLC - Diese Option f\u00fcgt die ClassicLadder PLC (Speicherprogrammierbare\n Steuerung) hinzu. Weitere Informationen finden Sie im Kapitel >.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 99 / 1332\n \n \u2022 Bildschirm-Aufforderung zu Werkzeugwechsel - Wenn dieses Feld markiert ist, wird LinuxCNC Pause und fordern Sie auf, das Werkzeug zu wechseln, wenn M6 angetroffen wird. Diese Funktion ist\n in der Regel nur sinnvoll, wenn Sie voreinstellbaren Werkzeugen haben.\n \n 3.1.10 Complete Machine Configuration\n@@ -7143,15 +7143,15 @@\n angetroffen wird, schaltet LinuxCNC den Motorverst\u00e4rker ab. Der Abstand zwischen dem harten Anschlag und Endschalter muss lang genug sein, um einen unbestromten Motor zum Stillstand zu bringen.\n Vor dem Endschalter gibt es ein soft limit. Dabei handelt es sich um eine Grenze, die nach der Referenzfahrt in der Software durchgesetzt wird. Wenn ein MDI-Befehl oder ein G-Code-Programm die\n weiche Grenze \u00fcberschreiten w\u00fcrde, wird es nicht ausgef\u00fchrt. Wenn eine manuelle Steuerung die\n Softgrenze \u00fcberschreiten w\u00fcrde, wird diese an der Softgrenze beendet.\n Der Referenzschalter (engl. home switch) kann an einer beliebigen Stelle innerhalb des Verfahrwegs\n (zwischen harten Anschl\u00e4gen) platziert werden. Solange die externe Hardware die Motorverst\u00e4rker\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 100 / 1332\n \n nicht deaktiviert, wenn der Endschalter erreicht wird, kann einer der Endschalter als Referenzschalter\n verwendet werden.\n Die Nullposition ist die Stelle auf der Achse, die im Maschinenkoordinatensystem 0 ist. Normalerweise\n liegt die Nullposition innerhalb der weichen Grenzen. Bei Drehmaschinen erfordert der Modus Konstante Schnittgeschwindigkeit, dass X=0 dem Zentrum der Spindeldrehung entspricht, wenn keine\n@@ -7176,15 +7176,15 @@\n The figures below show the general idea of wiring multiple switches to a single input pin. In each\n case, when one switch is actuated, the value seen on INPUT goes from logic HIGH to LOW. However,\n LinuxCNC expects a TRUE value when a switch is closed, so the corresponding Invert box must be\n checked on the pinout configuration page. The pull up resistor show in the diagrams pulls the input\n high until the connection to ground is made and then the input goes low. Otherwise the input might\n float between on and off when the circuit is open. Typically for a parallel port you might use 47 k\u03a9;.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 101 / 1332\n \n Abbildung 3.11: Normalerweise geschlossene Schalter (engl. normally closed, N/C) in Reihe verdrahtet (vereinfachtes Diagramm)\n \n Abbildung 3.12: Normalerweise offene Schalter (engl. normally open switches, N/O) parallel verdrahtet (vereinfachte Darstellung)\n Die folgenden Kombinationen von Schaltern sind in StepConf zul\u00e4ssig:\n@@ -7195,15 +7195,15 @@\n \u2022 Kombinieren eines Endschalters und des Referenzschalters f\u00fcr eine Achse\n Die letzten beiden Kombinationen sind auch geeignet, wenn der Typ Kontakt\n Referenz verwendet wird.\n \n 3.2 Mesa-Konfigurationsassistent\n PnCconf wurde entwickelt, um Konfigurationen zu erstellen, die bestimmte Mesa Anything I/O Produkte verwenden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 102 / 1332\n \n It can configure closed loop servo systems or hardware stepper systems. It uses a similar wizard\n approach as StepConf (used for software stepping, parallel port driven systems).\n PnCconf befindet sich noch im Entwicklungsstadium (Beta), daher gibt es noch einige Bugs und fehlende Funktionen. Bitte melden Sie Fehler und Vorschl\u00e4ge auf der LinuxCNC Forumsseite oder \u00fcber\n die Mailing-Liste.\n@@ -7214,15 +7214,15 @@\n The other is to use PnCconf to build a config that is close to what you want and then hand edit everything to tailor it to your needs. This would be the choice if you need extensive modifications beyond\n PnCconf\u2019s scope or just want to tinker with / learn about LinuxCNC.\n Mit den Schaltfl\u00e4chen \u201dVor\u201d, \u201dZur\u00fcck\u201d und \u201dAbbrechen\u201d k\u00f6nnen Sie durch die Seiten des Assistenten\n navigieren. Au\u00dferdem gibt es eine Hilfeschaltfl\u00e4che, die einige Informationen zu den Seiten, Diagrammen und einer Ausgabeseite enth\u00e4lt.\n Tipp\n Die Hilfeseite von PnCconf sollte die aktuellsten Informationen und zus\u00e4tzliche Details enthalten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 103 / 1332\n \n 3.2.1 Schritt f\u00fcr Schritt Anleitung\n \n Abbildung 3.13: PnCconf Startfenster\n \n@@ -7234,15 +7234,15 @@\n places a note in those files. It also allows you to select desktop shortcut / launcher options. A desktop\n shortcut will place a folder icon on the desktop that points to your new configuration files. Otherwise\n you would have to look in your home folder under linuxcnc/configs.\n A Desktop launcher will add an icon to the desktop for starting your config directly. You can also\n launch it from the main menu by using the Configuration Selector LinuxCNC found in CNC menu and\n selecting your config name.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 104 / 1332\n \n 3.2.3 Grundlegende Informationen zur Maschine\n \n Abbildung 3.14: PnCconf Basic\n \n@@ -7254,15 +7254,15 @@\n Tipp\n Standardwerte werden bei der Verwendung in metrisch nicht konvertiert, stellen Sie also sicher, dass\n es sich um vern\u00fcnftige Werte handelt!\n \n Reaktionszeit des Computers\n The servo period sets the heart beat of the system. Latency refers to the amount of time the\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 105 / 1332\n \n computer can be longer then that period. Just like a railroad, LinuxCNC requires everything\n on a very tight and consistent time line or bad things happen. LinuxCNC requires and uses a\n real time operating system, which just means it has a low latency ( lateness ) response time\n when LinuxCNC requires its calculations and when doing LinuxCNCs calculations it cannot be\n@@ -7309,15 +7309,15 @@\n Up to 3 parallel ports (referred to as parports) can be used as simple I/O. You must set the address\n of the parport. You can either enter the Linux parallel port numbering system (0,1,or 2) or enter\n the actual address. The address for an on board parport is often 0x0278 or 0x0378 (written in\n hexadecimal) but can be found in the BIOS page. The BIOS page is found when you first start\n your computer you must press a key to enter it (such as F2). On the BIOS page you can find\n the parallel port address and set the mode such as SPP, EPP, etc on some computers this info is\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 106 / 1332\n \n displayed for a few seconds during start up. For PCI parallel port cards the address can be found\n by pressing the parport address search button. This pops up the help output page with a list of\n all the PCI devices that can be found. In there should be a reference to a parallel port device with\n a list of addresses. One of those addresses should work. Not all PCI parallel ports work properly.\n@@ -7347,15 +7347,15 @@\n \u2022 hat kein grafisches Fenster\n \u2022 Das Aussehen kann mit benutzerdefinierten Designs ge\u00e4ndert werden\n QtPlasmaC\n \u2022 voll funktionsf\u00e4hige Plasmac-Konfiguration auf der Grundlage der QtVCP-Infrastruktur.\n \u2022 Maus-/Tastaturbedienung oder Touchscreen-Bedienung\n \u2022 keine VCP-Integration\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 107 / 1332\n \n 3.2.4 Externe Konfiguration\n Auf dieser Seite k\u00f6nnen Sie externe Steuerungen ausw\u00e4hlen, z. B. f\u00fcr Jogging oder Overrides.\n \n Abbildung 3.15: Externe Steuerelemente\n@@ -7365,15 +7365,15 @@\n a pulse generator (MPG) or switches (such as a rotary dial). External buttons might be used with a\n switch based OEM joystick.\n Joystick-Joggen\n Requires a custom device rule to be installed in the system. This is a file that LinuxCNC uses to\n connect to Linux\u2019s device list. PnCconf will help to prepare this file.\n \u2022 Suche nach Ger\u00e4teregeln durchsucht das System nach Regeln. Sie k\u00f6nnen diese Funktion verwenden, um den Namen von Ger\u00e4ten zu finden, die Sie bereits mit PnCconf erstellt haben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 108 / 1332\n \n \u2022 Mit Add a device rule k\u00f6nnen Sie ein neues Ger\u00e4t konfigurieren, indem Sie den Aufforderungen\n folgen. Sie m\u00fcssen Ihr Ger\u00e4t zur Verf\u00fcgung haben.\n \u2022 Mit test device k\u00f6nnen Sie ein Ger\u00e4t laden, dessen Pin-Namen sehen und seine Funktionen mit\n halmeter \u00fcberpr\u00fcfen.\n@@ -7391,15 +7391,15 @@\n Neufestlegungen (engl. overrides)\n PnCconf erm\u00f6glicht die Neufestsetzung von Vorschubgeschwindigkeiten und/oder Spindeldrehzahlen \u00fcber ein Handrad (MPG) oder Schalter (z. B. Drehschalter).\n \n 3.2.5 GUI-Konfiguration\n Hier k\u00f6nnen Sie die Standardeinstellungen f\u00fcr die Bildschirme, f\u00fcgen Sie virtuelle Bedienfelder (VCP),\n und stellen Sie einige LinuxCNC Optionen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 109 / 1332\n \n Abbildung 3.16: GUI-Konfiguration\n \n Front-End GUI-Optionen\n Die Standardoptionen erm\u00f6glichen die Auswahl allgemeiner Standardeinstellungen f\u00fcr jeden Anzeigebildschirm.\n@@ -7410,15 +7410,15 @@\n Touchy defaults are options specific to Touchy. Most of Touchy\u2019s options can be changed while Touchy\n is running using the preference page. Touchy uses GTK to draw its screen, and GTK supports themes.\n Themes controls the basic look and feel of a program. You can download themes from the net or edit\n them yourself. There are a list of the current themes on the computer that you can pick from. To help\n some of the text to stand out PnCconf allows you to override the Themes\u2019s defaults. The position and\n force max options can be used to move Touchy to a second monitor if the system is capable.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 110 / 1332\n \n QtPlasmaC-Optionen sind spezifisch f\u00fcr QtPlasmac, alle allgemeinen Optionen, die nicht ben\u00f6tigt werden, sind deaktiviert. Wenn QtPlasmac ausgew\u00e4hlt wird, ist der folgende Bildschirm ein Bildschirm\n zur Einstellung der Benutzertasten, der spezifisch f\u00fcr QtPlasmaC ist, und die VCP-Optionen sind nicht\n verf\u00fcgbar.\n VCP Optionen\n@@ -7454,15 +7454,15 @@\n Unter \u201eAnzeigeoptionen\u201c k\u00f6nnen Gr\u00f6\u00dfe, Position und max. Kraft auf einem \u201eeigenst\u00e4ndigen\u201c Panel\n verwendet werden, um beispielsweise den Bildschirm auf einem zweiten Monitor zu platzieren, wenn\n das System dazu in der Lage ist.\n Sie k\u00f6nnen ein GTK-Thema ausw\u00e4hlen, welches das grundlegende Erscheinungsbild des Panels festlegt. Normalerweise m\u00f6chten Sie, dass dies mit dem Front-End-Bildschirm \u00fcbereinstimmt. Diese Optionen werden verwendet, wenn Sie auf die Schaltfl\u00e4che \u201dBeispiel anzeigen\u201d klicken. Mit GladeVCP\n k\u00f6nnen Sie je nach Front-End-Bildschirm ausw\u00e4hlen, wo das Panel angezeigt werden soll.\n Bei AXIS kann er in der Mitte oder auf der rechten Seite stehen, bei Touchy in der Mitte.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 111 / 1332\n \n Standardeinstellungen und Optionen\n \u2022 Referenzfahrt vor Manueller Dateneingabe / Ausf\u00fchrung erforderlich machen\n \u2013 Wenn Sie m\u00f6chten, dass die Maschine vor der Referenzfahrt bewegt werden kann, deaktivieren Sie dieses Kontrollk\u00e4stchen.\n \u2022 Popup-Tool-Eingabeaufforderung\n@@ -7478,15 +7478,15 @@\n \u2013 Wird f\u00fcr Werkzeugwechsler verwendet, die das Werkzeug nicht in dieselbe Tasche zur\u00fcckbringen. Um Werkzeugwechsler zu unterst\u00fctzen, m\u00fcssen Sie einen eigenen HAL-Code hinzuf\u00fcgen.\n \n 3.2.6 Mesa-Konfiguration\n Die Mesa-Konfigurationsseiten erlauben es, verschiedene Firmwares zu verwenden. Auf der Basisseite\n haben Sie eine Mesa-Karte ausgew\u00e4hlt. Hier w\u00e4hlen Sie die verf\u00fcgbare Firmware aus und bestimmen,\n welche und wie viele Komponenten verf\u00fcgbar sind.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 112 / 1332\n \n Abbildung 3.17: Mesa Board Konfiguration\n Parport address is used only with Mesa parport card, the 7i43. An on board parallel port usually uses\n 0x278 or 0x378 though you should be able to find the address from the BIOS page. The 7i43 requires\n the parallel port to use the EPP mode, again set in the BIOS page. If using a PCI parallel port the\n@@ -7496,15 +7496,15 @@\n \n PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. If using Mesa\n daughter boards the docs for the board should give recommendations.\n \n Wichtig\n Es ist wichtig, diese zu beachten, um Sch\u00e4den zu vermeiden und die beste Leistung zu erzielen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 113 / 1332\n \n Der 7i33 ben\u00f6tigt PDM und eine PDM-Basisfrequenz von 6 MHz\n Der 7i29 ben\u00f6tigt PWM und eine PWM-Basisfrequenz von 20 kHz\n Das 7i30 erfordert PWM und eine PWM-Basisfrequenz von 20 kHz\n Das 7i40 erfordert PWM und eine PWM-Basisfrequenz von 50 kHz\n@@ -7528,48 +7528,48 @@\n After choosing all these options press the Accept Component Changes button and PnCconf will update\n the I/O setup pages. Only I/O tabs will be shown for available connectors, depending on the Mesa\n board.\n \n 3.2.7 Mesa I/O-Einrichtung\n Die Registerkarten werden zur Konfiguration der Eingangs- und Ausgangspins der Mesa-Karten verwendet. Mit PnCconf k\u00f6nnen Sie benutzerdefinierte Signalnamen zur Verwendung in benutzerdefinierten HAL-Dateien erstellen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 114 / 1332\n \n Abbildung 3.18: Mesa I/O C2 Einrichtung\n Auf dieser Registerkarte mit dieser Firmware sind die Komponenten f\u00fcr eine 7i33 Tochterplatine eingestellt, die normalerweise mit Servos mit geschlossenem Regelkreis verwendet wird. Beachten Sie,\n dass die Komponentennummern der Encoderz\u00e4hler und PWM-Treiber nicht in numerischer Reihenfolge sind. Dies entspricht den Anforderungen f\u00fcr die Tochterkarte.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 115 / 1332\n \n Abbildung 3.19: Mesa I/O C3 Einrichtung\n Auf dieser Registerkarte sind alle Pins GPIO. Beachten Sie die 3-stelligen Nummern - sie entsprechen\n der HAL-Pin-Nummer. GPIO-Pins k\u00f6nnen als Eingang oder Ausgang gew\u00e4hlt werden und k\u00f6nnen invertiert werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 116 / 1332\n \n Abbildung 3.20: Mesa I/O C4 Einrichtung\n On this tab there are a mix of step generators and GPIO. Step generators output and direction pins\n can be inverted. Note that inverting a Step Gen-A pin (the step output pin) changes the step timing.\n It should match what your controller expects.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 117 / 1332\n \n 3.2.8 Konfiguration des parallelen Anschlusses\n \n Der Parallelport kann f\u00fcr einfache E/A verwendet werden, \u00e4hnlich wie die GPIO-Pins von Mesa\u2019s.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 118 / 1332\n \n 3.2.9 Konfiguration der Achsen\n \n Abbildung 3.21: Konfiguration des Achsantriebs\n Diese Seite erm\u00f6glicht das Konfigurieren und Testen der Motor- und/oder Encoderkombination. Bei\n@@ -7582,15 +7582,15 @@\n Handbook 1 standards or AXIS graphical display will not make much sense. Hopefully the help\n page and diagrams can help figure this out. Note that axis directions are based on TOOL movement not table movement. There is no acceleration ramping with the open loop test so start with\n lower DAC numbers. By moving the axis a known distance one can confirm the encoder scaling.\n The encoder should count even without the amp enabled depending on how power is supplied to\n the encoder.\n 1 \u201daxis nomenclature\u201d in the chapter \u201dNumerical Control\u201d in the \u201dMachinery\u2019s Handbook\u201d published by Industrial Press.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 119 / 1332\n \n Warnung\n Wenn Motor und Encoder die Z\u00e4hlrichtung nicht \u00fcbereinstimmen, l\u00e4uft das Servo bei PIDRegelung weg.\n \n Da die PID-Einstellungen derzeit nicht in PnCconf getestet werden k\u00f6nnen, sind die Einstellungen\n@@ -7631,15 +7631,15 @@\n 9.87\n 10.07\n \n \u2022 F\u00fchren Sie eine lineare Anpassung nach dem Prinzip der kleinsten Quadrate durch, um die Koeffizienten a und b so zu ermitteln, dass meas=a*raw+b\n \u2022 Beachten Sie, dass wir eine Rohausgabe w\u00fcnschen, bei der das gemessene Ergebnis mit der befohlenen Ausgabe identisch ist. Das bedeutet\n \u2013 cmd=a*raw+b\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 120 / 1332\n \n \u2013 raw=(cmd-b)/a\n \u2022 Folglich k\u00f6nnen die Koeffizienten a und b aus der linearen Anpassung direkt als Skala und Offset\n f\u00fcr den Regler verwendet werden.\n MAX OUTPUT\n@@ -7659,25 +7659,25 @@\n speed.\n B\u00fcrstenlose Motorsteuerung\n These options are used to allow low level control of brushless motors using special firmware and\n daughter boards. It also allows conversion of HALL sensors from one manufacturer to another.\n It is only partially supported and will require one to finish the HAL connections. Contact the\n mail-list or forum for more help.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 121 / 1332\n \n Abbildung 3.22: Berechnung der Achsenskala\n The scale settings can be directly entered or one can use the calculate scale button to assist. Use the\n check boxes to select appropriate calculations. Note that pulley teeth requires the number of teeth\n not the gear ratio. Worm turn ratio is just the opposite it requires the gear ratio. If your happy with\n the scale press apply otherwise push cancel and enter the scale directly.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 122 / 1332\n \n Abbildung 3.23: Konfiguration der Achsen\n Also refer to the diagram tab for two examples of home and limit switches. These are two examples\n of many different ways to set homing and limits.\n \n@@ -7688,15 +7688,15 @@\n Denken Sie daran, dass sich positive und negative Richtungen auf das WERKZEUG und nicht auf den\n Tisch beziehen, wie im Maschinenhandbuch beschrieben.\n Bei einer typischen Knie- oder Bettfr\u00e4se\n \u2022 Wenn sich die TABLE nach au\u00dfen bewegt, ist das die positive Y-Richtung\n \u2022 Wenn sich die TABLE nach links bewegt, ist das die positive X-Richtung\n \u2022 Wenn sich die TABLE nach unten bewegt, ist das die positive Z-Richtung\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 123 / 1332\n \n \u2022 Wenn sich der KOPF nach oben bewegt, ist das die positive Z-Richtung\n Bei einer typischen Drehmaschine\n \u2022 wenn sich das WERKZEUG nach rechts, weg vom Futter, bewegt\n \u2022 das ist die positive Z-Richtung\n@@ -7740,15 +7740,15 @@\n Fahren Sie die Achse zum Ursprung. Markieren Sie eine Referenz auf dem beweglichen Schlitten\n und dem unbeweglichen Tr\u00e4ger (so dass sie in einer Linie liegen) und fahren Sie die Maschine\n bis zum Ende der Grenzen. Messen Sie den Abstand zwischen den Markierungen, der einer der\n Verfahrwege ist. Bewegen Sie den Tisch an das andere Ende des Verfahrwegs. Messen Sie die\n Markierungen erneut. Das ist der andere Verfahrweg. Wenn sich der URSPRUNG an einer der\n Begrenzungen befindet, ist dieser Verfahrweg gleich Null.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 124 / 1332\n \n (Maschinen-)URSPRUNG\n Der Ursprung ist der MASCHINENNullpunkt. (nicht der Nullpunkt Sie Ihre Cutter / Material auf).\n LinuxCNC verwendet diesen Punkt, um alles andere von Referenz. Es sollte innerhalb der Software Grenzen sein. LinuxCNC verwendet die Referenzpunkt (engl. home)-Schalter-Position, um\n die Ursprungs-Position zu bestimmen (bei Verwendung von Home-Schalter oder muss manuell\n@@ -7790,29 +7790,29 @@\n Erm\u00f6glicht die Einstellung der Verriegelungsrichtung auf die gleiche oder entgegengesetzte\n Richtung wie die Suchrichtung.\n Encoder-Index f\u00fcr Referenzpunkt verwenden\n LinuxCNC sucht w\u00e4hrend der Latch-Phase der Referenzfahrt nach einem Encoder-Indeximpuls.\n Kompensationsdatei verwenden\n Erm\u00f6glicht die Angabe eines Komp-Dateinamens und -typs. Erm\u00f6glicht eine anspruchsvolle Kompensation. Siehe den> des INI Kapitels.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 125 / 1332\n \n Verwenden des Umkehrspiel-Ausgleichs\n Erm\u00f6glicht die Einstellung einer einfachen Kompensation des Umkehrspiels. Kann nicht mit Kompensationsdatei verwendet werden. Siehe den > des\n INI Kapitels.\n \n Abbildung 3.24: AXIS-Hilfsdiagramm\n Das Diagramm soll helfen, ein Beispiel f\u00fcr Endschalter und Standard-Achsbewegungsrichtungen zu\n demonstrieren. In diesem Beispiel wurde die Z-Achse mit zwei Endschaltern versehen, wobei der\n positive Schalter als Home-Schalter verwendet wird. Der Maschinen-Ursprung (Nullpunkt, engl. machine origin) befindet sich am negativen Endschalter. Die linke Kante des Schlittens ist der negative\n Grenzwert und die rechte der positive Grenzwert. Die ENDG\u00dcLTIGE HOME-POSITION soll 4 Zoll\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 126 / 1332\n \n vom ORIGIN auf der positiven Seite entfernt sein. Wenn der Schlitten an die positive Grenze bewegt\n w\u00fcrde, w\u00fcrden wir 10 Zoll zwischen der negativen Grenze und dem negativen Ausl\u00f6sestift messen.\n \n 3.2.10 Spindel-Konfiguration\n@@ -7822,15 +7822,15 @@\n Option ausgew\u00e4hlt wurde!\n \n Abbildung 3.25: Spindelmotor/Encoder-Konfiguration\n Diese Seite \u00e4hnelt der Seite zur Konfiguration der Achsenmotoren.\n Es gibt einige Unterschiede:\n \u2022 Sofern man sich nicht f\u00fcr eine schrittgetriebene Spindel entschieden hat, gibt es keine Beschleunigungsoder Geschwindigkeitsbegrenzung.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 127 / 1332\n \n \u2022 Es gibt keine Unterst\u00fctzung f\u00fcr Gangschaltungen oder Bereiche.\n \u2022 Wenn Sie eine VCP-Spindelanzeigeoption gew\u00e4hlt haben, k\u00f6nnen die Skala f\u00fcr die Spindeldrehzahl\n und die Filtereinstellungen angezeigt werden.\n \u2022 Spindle-at-Speed erm\u00f6glicht LinuxCNC zu warten, bis die Spindel auf die gew\u00fcnschte Geschwindigkeit vor dem Bewegen der Achse ist. Dies ist besonders praktisch auf Drehmaschinen mit konstantem Oberfl\u00e4chenvorschub und gro\u00dfe Geschwindigkeit Durchmesser\u00e4nderungen. Es erfordert\n@@ -7847,26 +7847,26 @@\n Dies erm\u00f6glicht die Einstellung von HALUI-Befehlen und das Laden von ClassicLadder- und BeispielSPS-Programme. Wenn Sie GladeVCP-Optionen ausgew\u00e4hlt haben, z. B. zum Nullstellen der Achse,\n werden Befehle angezeigt. Im Kapitel HALUI finden Sie weitere Informationen zur Verwendung benutzerdefinierter halcmds. Es gibt mehrere Optionen f\u00fcr Kontaktplanprogramme. Das Notaus (engl.\n E-stop)-Programm erm\u00f6glicht es einem externen Notaus-Schalter oder dem GUI-Frontend, ein Notaus auszul\u00f6sen. Es verf\u00fcgt auch \u00fcber ein zeitgesteuertes Schmiermittelpumpensignal. Das Z-AutoTouch-Off-Programm verf\u00fcgt \u00fcber eine Touch-Off-Platte, die GladeVCP-Touch-Off-Taste und spezielle\n HALUI-Befehle, um den aktuellen Benutzerursprung auf Null zu setzen und schnell zu l\u00f6schen. Das\n serielle Modbus-Programm ist im Grunde eine leere Programmvorlage, die ClassicLadder f\u00fcr seriellen\n Modbus einrichtet. Siehe das Kapitel > im Handbuch.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 128 / 1332\n \n Abbildung 3.26: PnCconf, erweiterte Optionen\n \n 3.2.12 HAL-Komponenten\n Auf dieser Seite k\u00f6nnen Sie zus\u00e4tzliche HAL-Komponenten hinzuf\u00fcgen, die Sie f\u00fcr benutzerdefinierte\n HAL-Dateien ben\u00f6tigen. Auf diese Weise sollte man die Haupt-HAL-Datei nicht von Hand bearbeiten\n m\u00fcssen, aber dennoch die vom Benutzer ben\u00f6tigten Komponenten bei der Konfiguration ber\u00fccksichtigen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 129 / 1332\n \n Abbildung 3.27: HAL-Komponenten\n Die erste Auswahl sind Komponenten, die PnCconf intern verwendet. Sie k\u00f6nnen pncconf so konfigurieren, dass zus\u00e4tzliche Instanzen der Komponenten f\u00fcr Ihre eigene HAL-Datei geladen werden.\n W\u00e4hlen Sie die Anzahl der Instanzen, die Ihre benutzerdefinierte Datei ben\u00f6tigt, PnCconf f\u00fcgt die\n ben\u00f6tigten Instanzen danach hinzu.\n@@ -7874,15 +7874,15 @@\n letzte verwenden.\n Benutzerdefinierte Komponenten-Befehle\n Mit dieser Auswahl k\u00f6nnen Sie HAL-Komponenten laden, die PnCconf nicht verwendet. F\u00fcgen\n Sie den Befehl loadrt oder loadusr unter der \u00dcberschrift loading command hinzu. F\u00fcgen Sie den\n Befehl addf unter der \u00dcberschrift Thread-Befehl hinzu. Die Komponenten werden dem Thread\n zwischen dem Lesen von Eingaben und dem Schreiben von Ausgaben in der Reihenfolge hinzugef\u00fcgt, in der Sie sie im Befehl \u201dthread\u201d schreiben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 130 / 1332\n \n 3.2.13 PnCconf f\u00fcr Fortgeschrittene\n PnCconf ist bestrebt, flexible Anpassungen durch den Benutzer zu erm\u00f6glichen. PnCconf unterst\u00fctzt\n benutzerdefinierte Signalnamen, benutzerdefiniertes Laden von Komponenten, benutzerdefinierte HALDateien und benutzerdefinierte Firmware.\n Es gibt auch Signalnamen, die PnCconf immer bereitstellt, unabh\u00e4ngig von den gew\u00e4hlten Optionen\n@@ -7908,15 +7908,15 @@\n GPIO-Pins werden einfach mit dem eingegebenen Signalnamen verbunden\n Auf diese Weise kann man sich mit diesen Signalen in den benutzerdefinierten HAL-Dateien verbinden\n und hat trotzdem die M\u00f6glichkeit, sie sp\u00e4ter zu verschieben.\n Benutzerdefinierte Signalnamen\n Die Seite mit HAL Komponenten kann verwendet werden, um Komponenten zu laden, die ein\n Benutzer f\u00fcr die Anpassung ben\u00f6tigt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 131 / 1332\n \n Laden der benutzerdefinierten Firmware\n PnCconf sucht auf dem System nach Firmware und sucht dann nach der XML-Datei, die es in das\n konvertieren kann, was es versteht. Diese XML-Dateien werden nur f\u00fcr offiziell freigegebene\n Firmware vom LinuxCNC-Team bereitgestellt. Um benutzerdefinierte Firmware zu verwenden,\n@@ -7935,15 +7935,15 @@\n \u2022 custom.hal ist f\u00fcr HAL-Befehle, die nicht nach dem Laden des GUI-Frontends ausgef\u00fchrt werden m\u00fcssen. Es wird diese erst nach der HAL-Datei mit dem Konfigurationsnamen ausgef\u00fchrt.\n \u2022 custom_postgui.hal ist f\u00fcr Befehle gedacht, die ausgef\u00fchrt werden m\u00fcssen, nachdem AXIS\n geladen wurde oder eine eigenst\u00e4ndige PyVCP-Anzeige geladen wurde.\n \u2022 custom_gvcp.hal ist f\u00fcr Befehle, die ausgef\u00fchrt werden m\u00fcssen, nachdem GladeVCP geladen\n wurde.\n \u2022 shutdown.hal ist f\u00fcr Befehle, die ausgef\u00fchrt werden, wenn LinuxCNC kontrolliert herunterf\u00e4hrt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 132 / 1332\n \n Kapitel 4\n \n Konfiguration\n 4.1 Integrator-Konzepte\n@@ -7962,15 +7962,15 @@\n \u2022 /home/fred/linuxcnc/nc_files\n \u2022 /home/fred/linuxcnc/configs/mill\n \u2013 /home/fred/linuxcnc/configs/mill/mill.ini\n \u2013 /home/fred/linuxcnc/configs/mill/mill.hal\n \u2013 /home/fred/linuxcnc/configs/mill/mill.var\n \u2013 /home/fred/linuxcnc/configs/mill/tool.tbl\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 133 / 1332\n \n 4.1.1.2 Befehlszeile\n Wenn Sie LinuxCNC von der Kommandozeile aus und geben Sie den Namen und den Speicherort der\n INI-Datei k\u00f6nnen die Dateispeicherorte in einem anderen Ort sein. Um die Optionen f\u00fcr die Ausf\u00fchrung von LinuxCNC von der Kommandozeile laufen linuxcnc -h.\n Anmerkung\n@@ -8002,15 +8002,15 @@\n Software-Schrittgenerator, ob es Zeit f\u00fcr einen weiteren Schrittimpuls ist. Eine k\u00fcrzere Periode erm\u00f6glicht es Ihnen, mehr Impulse pro Sekunde zu erzeugen, innerhalb von Grenzen. Wenn Sie jedoch\n eine zu kurze Periode w\u00e4hlen, verbringt Ihr Computer so viel Zeit mit der Erzeugung von Schrittimpulsen, dass alles andere langsamer wird oder vielleicht sogar zum Stillstand kommt. Die Latenzzeit\n und die Anforderungen an die Schrittmotorsteuerung beeinflussen die k\u00fcrzeste Zeitspanne, die Sie\n verwenden k\u00f6nnen.\n 1 Dieser Abschnitt bezieht sich auf die Verwendung stepgen, LinuxCNCs eingebauten Schritt-Generator. Einige HardwareGer\u00e4te haben ihre eigenen Schritt-Generator und nicht mit LinuxCNC \u2019 s built-in ein. In diesem Fall, verweisen wir auf Ihr\n Hardware-Handbuch\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 134 / 1332\n \n Im schlimmsten Fall treten Latenzzeiten nur ein paar Mal pro Minute auf und die Wahrscheinlichkeit,\n dass eine schlechte Latenz genau dann auftritt, wenn der Motor die Richtung \u00e4ndert, ist gering. Es\n kann also zu sehr seltenen Fehlern kommen, die hin und wieder ein Teil ruinieren und bei denen eine\n Fehlerbehebung unm\u00f6glich ist.\n@@ -8046,15 +8046,15 @@\n Servosysteme sind in der Lage, eine h\u00f6here Geschwindigkeit und Genauigkeit zu erreichen als entsprechende Schrittmachersysteme, sind aber teurer und komplexer. Im Gegensatz zu Schrittmotorensystemen ben\u00f6tigen Servosysteme eine Art von Positionsr\u00fcckmeldung und m\u00fcssen eingestellt oder getunt werden, da sie nicht wie Schrittmotorensysteme direkt nach dem Auspacken funktionieren. Diese\n Unterschiede bestehen, weil Servos ein geschlossener Regelkreis sind, im Gegensatz zu Schrittmotoren, die im Allgemeinen offener Regelkreis betrieben werden. Was bedeutet geschlossener Regelkreis? Schauen wir uns ein vereinfachtes Diagramm an, wie ein Servomotorensystem angeschlossen\n ist.\n 2 steplen refers to a parameter that adjusts the performance of LinuxCNC\u2019s built-in step generator, stepgen, which is a HAL\n component. This parameter adjusts the length of the step pulse itself. Keep reading, all will be explained eventually.\n 3 dirhold refers to a parameter that adjusts the length of the direction hold time.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 135 / 1332\n \n Abbildung 4.1: Servo Loop\n Dieses Diagramm zeigt, dass das Eingangssignal (und das R\u00fcckkopplungssignal) den Summierverst\u00e4rker antreibt, der Summierverst\u00e4rker den Leistungsverst\u00e4rker antreibt, der Leistungsverst\u00e4rker den\n Motor antreibt, der Motor die Last (und das R\u00fcckkopplungsger\u00e4t) antreibt und das R\u00fcckkopplungsger\u00e4t (und das Eingangssignal) den Motor antreibt. Dies sieht aus wie ein Kreis (eine geschlossene\n Schleife), in dem A B, B C, C D und D A steuert.\n@@ -8069,15 +8069,15 @@\n PID steht f\u00fcr Proportional, Integral und Derivativ. Der Proportionalwert bestimmt die Reaktion auf\n den aktuellen Fehler, der Integralwert bestimmt die Reaktion auf der Grundlage der Summe der letzten Fehler und der Derivativwert bestimmt die Reaktion auf der Grundlage der Rate, mit der sich\n der Fehler ge\u00e4ndert hat. Sie sind drei gemeinsame mathematische Techniken, die auf die Aufgabe,\n einen Arbeitsprozess, um einen Sollwert zu folgen angewendet werden. Im Fall von LinuxCNC ist der\n Prozess, den wir steuern wollen, die tats\u00e4chliche Achsenposition und der Sollwert ist die befohlene\n Achsenposition.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 136 / 1332\n \n Abbildung 4.2: PID-Schleife\n Durch Abstimmung der drei Konstanten im PID-Regler-Algorithmus kann der Regler eine auf die spezifischen Prozessanforderungen abgestimmte Regelwirkung erzielen. Die Reaktion des Reglers l\u00e4sst\n sich beschreiben anhand des Ansprechens des Reglers auf eine Regelabweichung, des Ausma\u00dfes, in\n dem der Regler \u00fcber den Sollwert hinausschie\u00dft, und des Grades der Systemschwingung.\n@@ -8097,15 +8097,15 @@\n korrigiert werden m\u00fcssen. Der kumulierte Fehler wird dann mit der Integralverst\u00e4rkung multipliziert\n und zum Reglerausgang addiert.\n Der Integral-Anteil (wenn er zum Proportional-Anteil (kurz P-Anteil) hinzugef\u00fcgt wird) beschleunigt\n die Bewegung des Prozesses in Richtung Sollwert und beseitigt den verbleibenden station\u00e4ren Fehler, der bei einem reinen Proportionalregler auftritt. Da der Integral-Anteil jedoch auf akkumulierte\n Fehler aus der Vergangenheit reagiert, kann er dazu f\u00fchren, dass der aktuelle Wert \u00fcber den Sollwert hinausschie\u00dft (den Sollwert \u00fcberschreitet und dann eine Abweichung in die andere Richtung\n erzeugt).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 137 / 1332\n \n 4.1.4.4 Differenzierender-Anteil (D-Anteil)\n Die \u00c4nderungsrate des Prozessfehlers wird berechnet, indem die Steigung des Fehlers nach der Zeit\n (d. h. seine erste Ableitung nach der Zeit) bestimmt und diese \u00c4nderungsrate mit der Ableitungsverst\u00e4rkung multipliziert wird.\n Der Derivationsanteil verlangsamt die \u00c4nderungsrate des Reglerausgangs, und dieser Effekt ist in\n@@ -8132,15 +8132,15 @@\n die beste Echtzeitleistung (RT) zu erzielen. Mit dem gepatchten RTAI-Kernel k\u00f6nnen Sie Anwendungen mit strengen Zeitvorgaben schreiben. RTAI gibt Ihnen die M\u00f6glichkeit, Dinge wie die SoftwareSchritterzeugung durchzuf\u00fchren, die ein pr\u00e4zises Timing erfordern.\n 4.1.5.1 ACPI\n Das Advanced Configuration and Power Interface (ACPI) hat viele verschiedene Funktionen, von denen die meisten die RT-Leistung beeintr\u00e4chtigen (z. B.: Energieverwaltung, CPU-Abschaltung, CPUFrequenzskalierung usw.). Der LinuxCNC-Kernel (und wahrscheinlich alle RTAI-gepatchten Kernel)\n hat ACPI deaktiviert. ACPI k\u00fcmmert sich auch um das Herunterfahren des Systems, nachdem ein\n Shutdown gestartet wurde, und deshalb m\u00fcssen Sie m\u00f6glicherweise den Netzschalter dr\u00fccken, um\n Ihren Computer vollst\u00e4ndig auszuschalten. Die RTAI-Gruppe hat dies in den letzten Versionen verbessert, so dass sich Ihr LinuxCNC-System vielleicht doch von selbst ausschaltet.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 138 / 1332\n \n 4.1.6 Computer/Machine Interface Hardware Options\n 4.1.6.1 litehm2/rv901t\n Litehm2 is a board-agnostic port of the HostMot2 FPGA firmware. The first board it supports is the\n linsn rv901t, which was originally built as a LED controller board, but due to the available I/O it is\n@@ -8171,15 +8171,15 @@\n \n 4.2.2 Latency Tests\n LinuxCNC includes several latency tests. They all produce equivalent information. Running these tests\n will help determine if a computers is suitable for driving a CNC machine.\n Anmerkung\n Do not run LinuxCNC or StepConf while the latency test is running.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 139 / 1332\n \n 4.2.2.1 Latenz-Test\n To run the test, open a terminal window (in Ubuntu, from Applications \u2192 Accessories \u2192 Terminal) and\n run the following command:\n latency-test\n@@ -8202,15 +8202,15 @@\n Herz und Nieren zu pr\u00fcfen, w\u00e4hrend der Latenztest den schlimmsten Fall ermittelt.\n The important number for software stepping is the max jitter of the base thread. In the example\n above, that is 6693 nanoseconds (ns), or 6.693 microseconds (\u00b5s). Record this number, and enter it in\n StepConf when it is requested.\n In the example above, latency-test only ran for a few seconds. You should run the test for at least several minutes; sometimes the worst case latency doesn\u2019t happen very often, or only happens when you\n do some particular action. For instance, one Intel motherboard worked pretty well most of the time, but\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 140 / 1332\n \n every 64 seconds it had a very bad 300 us latency. Fortunately that was fixable, see https://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues\n Was bedeuten also die Ergebnisse? Wenn Ihre Max-Jitter-Zahl weniger als 15-20 Mikrosekunden\n (15000-20000 Nanosekunden) betr\u00e4gt, sollte der Computer mit Software-Stepping sehr gute Ergebnisse liefern. Wenn die maximale Latenzzeit eher bei 30-50 Mikrosekunden liegt, k\u00f6nnen Sie immer\n noch gute Ergebnisse erzielen, aber Ihre maximale Schrittrate k\u00f6nnte etwas entt\u00e4uschend sein, insbesondere wenn Sie Mikroschrittverfahren verwenden oder sehr feine Spindelsteigungen haben. Wenn\n@@ -8238,15 +8238,15 @@\n 25000)\n --servo nS (servo thread interval, default: 1000000)\n --time mS (report interval, default: 1000)\n --relative (relative clock time (default))\n --actual\n (actual clock time)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 141 / 1332\n \n Abbildung 4.4: latency-plot-Fenster\n \n 4.2.2.3 Latenz-Histogramm\n latency-histogram zeigt ein Histogramm der Latenz (Jitter) f\u00fcr einen Basis- und einen Servo-Thread\n@@ -8271,15 +8271,15 @@\n LinuxCNC and HAL should not be running, stop with halrun -U.\n Large number of bins and/or small binsizes will slow updates.\n For single thread, specify --nobase (and options for servo thread).\n Measured latencies outside of the +/- bin range are reported\n with special end bars. Use --show to show count for\n the off-chart [pos|neg] bin\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 142 / 1332\n \n Abbildung 4.5: Latenz-Histogramm-Fenster\n \n 4.2.3 Latency tuning\n LinuxCNC can run on many different hardware platforms and with many different realtime kernels,\n@@ -8295,15 +8295,15 @@\n BIOS, boot Linux, and run the latency test (potentially for a long time) to see what effects your BIOS\n change had. Then repeat for all the other BIOS settings you want to try.\n Because BIOSes are all different and non-standard, providing a detailed BIOS tuning guide is not\n practical. In general, some things to try tuning in the BIOS are:\n \u2022 Disable ACPI, APM, and any other power-saving features. This includes anything related to power\n saving, suspending, CPU sleep states, CPU frequency scaling, etc.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 143 / 1332\n \n \u2022 Disable CPU \u201dturbo\u201d mode.\n \u2022 Disable CPU hyperthreading.\n \u2022 Disable (or otherwise control) System Management Interrupt (SMI).\n \u2022 Disable any hardware you do not intend to use.\n@@ -8331,15 +8331,15 @@\n erzeugten Schrittimpulse auszugeben. Die Software-Schrittimpulse haben jedoch auch einige Nachteile:\n \u2022 begrenzte maximale Schrittfrequenz\n \u2022 Jitter (variierende zeitliche Abst\u00e4nde) in den erzeugten Impulsen\n \u2022 belastet die CPU\n In diesem Kapitel finden Sie einige Schritte, die Ihnen dabei helfen k\u00f6nnen, die besten Ergebnisse\n aus softwaregenerierten Schritten zu erzielen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 144 / 1332\n \n 4.3.1.1 F\u00fchren Sie einen Latenztest durch\n Die CPU ist nicht der einzige Faktor, der die Latenzzeit bestimmt. Motherboards, Grafikkarten, USBAnschl\u00fcsse und viele andere Dinge k\u00f6nnen die Latenz beeintr\u00e4chtigen. Der beste Weg, um zu wissen,\n was man von einem PC erwarten kann, ist, die RT-Latenztests durchzuf\u00fchren.\n F\u00fchren Sie den Latenztest wie im Kapitel Latenz-Test beschrieben durch.\n@@ -8378,15 +8378,15 @@\n Schrittfrequenz: 0 bis 333 kHz\n Schrittimpuls \u201d0\u201d Zeit: 2.0 \u00b5s min (Schritt bei steigender Flanke)\n Schrittimpuls \u201d1\u201d Zeit: 1.0 \u00b5s min\n Direction Setup:\n 200 ns (0.2 \u00b5s) before step pulse rising edge\n 200 ns (0.2 \u00b5s) hold after step pulse rising edge\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 145 / 1332\n \n Aus dem Xylotex-Datenblatt:\n Minimale DIR-Setup-Zeit vor steigender Flanke des STEP-Impulses 200 ns Minimale\n DIR-Haltezeit nach steigender Flanke des STEP-Pulses 200 ns\n Minimale STEP-Impuls-Hochzeit 2,0 \u00b5s\n@@ -8427,15 +8427,15 @@\n m\u00fcssen im n\u00e4chsten Abschnitt noch einige Optimierungen vornehmen.)\n Beim Xylotex sind die Setup- und Haltezeiten mit jeweils 200 ns (0,2 \u00b5s) sehr kurz. Die l\u00e4ngste Zeit ist\n die 2-\u00b5s-High-Zeit. Wenn Sie eine Latenzzeit von 11 \u00b5s haben, dann k\u00f6nnen Sie die BASE_PERIOD auf\n 11+2=13 \u00b5s einstellen. Die lange Haltezeit von 20 \u00b5s entf\u00e4llt, was sehr hilfreich ist! Bei einer Periode\n von 13 \u00b5s dauert ein kompletter Schritt 2x13 = 26 \u00b5s, und die maximale Schrittrate betr\u00e4gt 38.461\n Schritte pro Sekunde!\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 146 / 1332\n \n Aber Sie k\u00f6nnen noch nicht mit dem Feiern anfangen. Beachten Sie, dass 13 \u00b5s ein sehr kurzer Zeitraum ist. Wenn Sie versuchen, die Schritt-Generator alle 13 \u00b5s laufen, k\u00f6nnte es nicht genug Zeit\n \u00fcbrig, um etwas anderes laufen, und Ihr Computer wird einfrieren. Wenn Sie f\u00fcr Zeitr\u00e4ume von weniger als 25 \u00b5s anstreben, sollten Sie bei 25 \u00b5s oder mehr beginnen, f\u00fchren Sie LinuxCNC, und sehen,\n wie die Dinge reagieren. Wenn alles gut ist, k\u00f6nnen Sie allm\u00e4hlich den Zeitraum zu verringern. Wenn\n der Mauszeiger beginnt immer tr\u00e4ge, und alles andere auf dem PC verlangsamt, ist Ihr Zeitraum ein\n@@ -8474,15 +8474,15 @@\n gr\u00f6\u00dferen Latenzzeit, z. B. 20 oder 25 \u00b5s, durcharbeiten, wird die Spitzenschrittrate sowohl f\u00fcr den\n Xylotex als auch f\u00fcr den Gecko niedriger sein. Es gelten jedoch dieselben Formeln f\u00fcr die Berechnung\n der optimalen BASE_PERIOD und f\u00fcr die Anpassung der Dirhold- oder anderer Schrittgeneratorparameter.\n 4.3.1.5 Nicht raten!\n Um ein schnelles UND zuverl\u00e4ssiges softwarebasiertes Steppersystem zu erhalten, k\u00f6nnen Sie die\n Perioden und andere Konfigurationsparameter nicht einfach erraten. Sie m\u00fcssen auf Ihrem Computer\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 147 / 1332\n \n Messungen vornehmen und die Berechnungen durchf\u00fchren, um sicherzustellen, dass Ihre Antriebe\n die ben\u00f6tigten Signale erhalten.\n To make the math easier, I\u2019ve created an Open Office spreadsheet Step Timing Calculator. You enter\n your latency test result and your stepper drive timing requirements and the spreadsheet calculates\n@@ -8522,15 +8522,15 @@\n carelessly edits a list like this and leaves two of the lines uncommented, the first one encountered will\n be used.\n Beachten Sie, dass die Zeichen \u201d#\u201d und \u201d;\u201d innerhalb einer Variablen nicht f\u00fcr Kommentare stehen:\n FALSCH = Wert # und ein Kommentar\n # Korrekter Kommentar\n CORRECT = Wert\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 4.4.1.2\n \n 148 / 1332\n \n Sections\n \n@@ -8577,15 +8577,15 @@\n \n boolsche Variablen Boolesche Werte k\u00f6nnen eines von TRUE, YES oder 1 f\u00fcr wahr/aktiviert und eines\n von FALSE, NO oder 0 f\u00fcr falsch/deaktiviert sein. Der Fall wird ignoriert.\n In den folgenden Abschnitten wird jeder Abschnitt der Konfigurationsdatei anhand von Beispielwerten\n f\u00fcr die Konfigurationszeilen erl\u00e4utert.\n Variables that are used by LinuxCNC must always use the section names and variable names as shown.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 4.4.1.4\n \n 149 / 1332\n \n Custom Sections and Variables\n \n@@ -8633,15 +8633,15 @@\n Durch die Angabe einer #INCLUDE-Anweisung in einer INI-Datei kann der Computer dazu angehalten\n werden, an dieser Stelle zun\u00e4chst den Inhalt der angegebenen Datei zu ber\u00fccksichtigen.\n #INCLUDE Format\n #INCLUDE filename\n \n Der Dateiname kann wie folgt angegeben werden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 150 / 1332\n \n \u2022 eine Datei in demselben Verzeichnis wie die INI-Datei\n \u2022 eine Datei, die sich relativ zum Arbeitsverzeichnis befindet\n \u2022 ein absoluter Dateiname (beginnt mit einem /)\n \u2022 einen Dateinamen, der sich auf den Wohnort des Benutzers bezieht (beginnt mit ~)\n@@ -8687,15 +8687,15 @@\n \u2022 POSITION_OFFSET = RELATIVE - The coordinate system (RELATIVE or MACHINE) to show on the DRO\n when the user interface starts. The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets currently in effect.\n \u2022 POSITION_FEEDBACK = COMMANDED - The coordinate value (COMMANDED or ACTUAL) to show on the\n DRO when the user interface starts. In AXIS this can be changed from the View menu. The COMMANDED position is the position requested by LinuxCNC. The ACTUAL position is the feedback\n position of the motors if they have feedback like most servo systems. Typically the COMMANDED\n value is used.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 151 / 1332\n \n \u2022 DRO_FORMAT_MM = %+08.6f - Override the default DRO formatting in metric mode (normally 3 decimal places, padded with spaces to 6 digits to the left). The example above will pad with zeros, display\n 6 decimal digits and force display of a + sign for positive numbers. Formatting follows Python practice: https://docs.python.org/2/library/string.html#format-specification-mini-language . An error will\n be raised if the format can not accept a floating-point value.\n \u2022 DRO_FORMAT_IN = % 4.1f - Override the default DRO formatting in imperial mode (normally 4 decimal places, padded with spaces to 6 digits to the left). The example above will display only one decimal digit. Formatting follows Python practice: https://docs.python.org/2/library/string.html#formatspecification-mini-language . An error will be raised if the format can not accept a floating-point\n@@ -8725,15 +8725,15 @@\n \u2013 deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden.\n \u2022 MIN_SPINDLE_0_SPEED = 1000 - The minimum RPM that can be manually selected. On multi spindle\n machine there will be entries for each spindle number. Only used by the QtVCP-based user interfaces.\n \u2013 deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden.\n \u2022 MAX_SPINDLE_0_SPEED = 20000 - The maximum RPM that can be manually selected. On multi spindle machine there will be entries for each spindle number. Only used by the QtVCP-based user interfaces.\n \u2013 deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 152 / 1332\n \n \u2022 PROGRAM_PREFIX = ~/linuxcnc/nc_files - The default directory for G-code files, named subroutines, and user-defined M-codes. The PROGRAM_PREFIX directory is searched before the directories\n listed in [RS274]SUBROUTINE_PATH and [RS274]USER_M_PATH.\n \u2022 INTRO_GRAPHIC = emc2.gif - The image shown on the splash screen.\n \u2022 INTRO_TIME = 5 - The maximum time to show the splash screen, in seconds.\n@@ -8769,15 +8769,15 @@\n INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry.\n \u2022 GRIDS = 10 mm, 1 in, ... - Defines the preset values for grid lines. The value is interpreted the\n same way as INCREMENTS.\n \u2022 OPEN_FILE = /full/path/to/file.ngc - The file to show in the preview plot when AXIS starts.\n Use a blank string \u201d\u201d and no file will be loaded at start up. GMOCCAPY will not use this setting, as\n it offers a corresponding entry on its settings page.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 153 / 1332\n \n \u2022 EDITOR = gedit - The editor to use when selecting File > Edit to edit the G-code from the AXIS\n menu. This must be configured for this menu item to work. Another valid entry is gnome-terminal\n -e vim. This entry does not apply to GMOCCAPY, as GMOCCAPY has an integrated editor.\n \u2022 TOOL_EDITOR = tooledit - The editor to use when editing the tool table (for example by selecting\n@@ -8819,15 +8819,15 @@\n for liveplots only \u2014 G-code previews should be done with zero G5x, G92 offsets. This can be facilitated by setting offsets in programs only when task is running as indicated by #<_task> ==\n 1. If nonzero offsets exist at startup due to persistence, offsets should be zeroed and preview\n reloaded.\n Anmerkung\n If no [DISPLAY]GEOMETRY is included in the INI file, a default is provided by the [DISPLAY]DISPLAY\n GUI program (typically \u201dXYZABCUVW\u201d).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 154 / 1332\n \n \u2022 ARCDIVISION = 64 - Set the quality of preview of arcs. Arcs are previewed by dividing them into\n a number of straight lines; a semicircle is divided into ARCDIVISION parts. Larger values give a\n more accurate preview, but take longer to load and result in a more sluggish display. Smaller values\n give a less accurate preview, but take less time to load and may result in a faster display. The default\n@@ -8871,15 +8871,15 @@\n \n Die folgenden Zeilen f\u00fcgen Unterst\u00fctzung hinzu f\u00fcr die Bild-zu-G-Code-Konverterung mit LinuxCNC.\n PROGRAM_EXTENSION = .png,.gif,.jpg # Greyscale Depth Image\n png = image-to-gcode\n gif = image-to-gcode\n jpg = image-to-gcode\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 155 / 1332\n \n Ein Beispiel f\u00fcr einen benutzerdefinierten G-Code-Konverter, der sich im Verzeichnis linuxcnc befindet.\n PROGRAM_EXTENSION = .gcode 3D Printer\n gcode = /home/mill/linuxcnc/convert.py\n \n@@ -8921,15 +8921,15 @@\n else:\n file_out.append(line)\n for item in file_out:\n print(\u201d%s\u201d % item)\n if __name__ == \u201d__main__\u201d:\n main(sys.argv[1:])\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 156 / 1332\n \n \u2022 FILTER_PROGRESS=%d +\n If the environment variable AXIS_PROGRESS_BAR is set, then lines written to stderr of the form\n above sets the AXIS progress bar to the given percentage. This feature should be used by any filter\n that runs for a long time.\n@@ -8983,15 +8983,15 @@\n See G-code Parameters.\n \u2022 HAL_PIN_VARS = 1 (Default: 1)\n Allows G-code programs to read the values of HAL pins using the format #<_hal[HAL item]>. Variable access is read-only. See G-code Parameters for more details and an important caveat.\n \u2022 RETAIN_G43 = 0 (Default: 0)\n When set, you can turn on G43 after loading the first tool, and then not worry about it through the\n program. When you finally unload the last tool, G43 mode is canceled.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 157 / 1332\n \n \u2022 OWORD_NARGS = 0 (Default: 0)\n If this feature is enabled then a called subroutine can determine the number of actual positional\n parameters passed by inspecting the # parameter.\n \u2022 NO_DOWNCASE_OWORD = 0 (Default: 0)\n@@ -9032,15 +9032,15 @@\n from this section to load the motion controller. For more information on the motion controller see the\n Motion section.\n \u2022 EMCMOT = motmod - the motion controller name is typically used here.\n \u2022 BASE_PERIOD = 50000 - the Base task period in nanoseconds.\n \u2022 SERVO_PERIOD = 1000000 - This is the \u201dServo\u201d task period in nanoseconds.\n \u2022 TRAJ_PERIOD = 100000 - This is the Trajectory Planner task period in nanoseconds.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 158 / 1332\n \n \u2022 COMM_TIMEOUT = 1.0 - Number of seconds to wait for Motion (the realtime part of the motion controller) to acknowledge receipt of messages from Task (the non-realtime part of the motion controller).\n \u2022 HOMEMOD = alternate_homing_module [home_parms=value] The HOMEMOD variable is optional. If\n specified, use a specified (user-built) module instead of the default (homemod). Module parameters\n (home_parms) may be included if supported by the named module. The setting may be overridden\n@@ -9081,15 +9081,15 @@\n arg2, etc. as argv list. Files with a .tcl suffix are processed as above but use haltcl for processing.\n See the HALTCL Chapter for more information.\n \u2022 HALFILE = LIB:sys_example.hal - Execute the system library file sys_example.hal at start up. Explicit use of the LIB: prefix causes use of the system library HALFILE without searching the INI file\n directory.\n \u2022 HALFILE = LIB:sys_texample.tcl [arg1 [arg2 \u2026]] - Execute the system library file sys_texample.tcl\n at start up. Explicit use of the LIB: prefix causes use of the system library HALFILE without searching the INI file directory.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 159 / 1332\n \n HALFILE items specify files that loadrt HAL components and make signal connections between component pins. Common mistakes are\n 1. omission of the addf statement needed to add a component\u2019s function(s) to a thread,\n 2. incomplete signal (net) specifiers.\n Omission of required addf statements is almost always an error. Signals usually include one or more\n@@ -9128,15 +9128,15 @@\n 4.4.2.8\n \n [HALUI] section\n \n \u2022 MDI_COMMAND = G53 G0 X0 Y0 Z0 - An MDI command can be executed by using halui.mdi-command-00.\n Increment the number for each command listed in the [HALUI] section.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 4.4.2.9\n \n 160 / 1332\n \n [APPLICATIONS] Section\n \n@@ -9181,15 +9181,15 @@\n Der Abschnitt [TRAJ] enth\u00e4lt allgemeine Parameter f\u00fcr das Trajektorienplanungsmodul in motion.\n \u2022 ARC_BLEND_ENABLE = 1 - Turn on new TP. If set to 0 TP uses parabolic blending (1 segment look\n ahead) (Default: 1).\n \u2022 ARC_BLEND_FALLBACK_ENABLE = 0 - Optionally fall back to parabolic blends if the estimated speed is\n faster. However, this estimate is rough, and it seems that just disabling it gives better performance\n (Default: 0).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 161 / 1332\n \n \u2022 ARC_BLEND_OPTIMIZATION_DEPTH = 50 - Look ahead depth in number of segments.\n Um dies ein wenig zu erweitern, k\u00f6nnen Sie diesen Wert einigerma\u00dfen willk\u00fcrlich w\u00e4hlen. Hier\u2019s\n eine Formel, um zu sch\u00e4tzen, wie viel Tiefe Sie f\u00fcr eine bestimmte Konfiguration ben\u00f6tigen:\n # n = v_max / (2.0 * a_max * t_c)\n@@ -9232,15 +9232,15 @@\n nur einen geringen Leistungsgewinn bringt. Mit dieser Einstellung l\u00e4sst sich dieses Ruckeln bei\n kurzen Segmenten vermeiden.\n Basically, if a segment will complete in less time than 1 / ARC_BLEND_RAMP_FREQ, we don\u2019t bother with a trapezoidal velocity profile on that segment, and use constant acceleration. (Setting\n ARC_BLEND_RAMP_FREQ = 1000 is equivalent to always using trapezoidal acceleration, if the servo\n loop is 1 kHz).\n Sie k\u00f6nnen den schlimmsten Leistungsverlust charakterisieren, indem Sie die maximale Geschwindigkeit eines trapezf\u00f6rmiges Profils vergleichen mit der durch eine Rampe zu erreichenden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 162 / 1332\n \n # v_ripple = a_max / (4.0 * f)\n # wobei:\n # v_ripple = durchschnittliche Geschwindigkeit \u201dVerlust\u201d aufgrund von Rampen\n # a_max = maximale Achsenbeschleunigung\n@@ -9285,15 +9285,15 @@\n for more details.\n \u2022 NO_FORCE_HOMING = 1 - The default behavior is for LinuxCNC to force the user to home the machine\n before any MDI command or a program is run. Normally, only jogging is allowed before homing.\n For configurations using identity kinematics, setting NO_FORCE_HOMING = 1 allows the user to make\n MDI moves and run programs without homing the machine first. Interfaces using identity kinematics\n without homing ability will need to have this option set to 1.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 163 / 1332\n \n Warnung\n LinuxCNC will not know your joint travel limits when using NO_FORCE_HOMING = 1.\n \n \u2022 HOME = 0 0 0 0 0 0 0 0 0 - World home position needed for kinematics modules that compute\n@@ -9337,15 +9337,15 @@\n limit is exceeded, the controller aborts axis motion. The axis must be homed before MAX_LIMIT is\n in force. For a rotary axis (A,B,C typ) with unlimited rotation having no MAX_LIMIT for that axis in\n the [AXIS_] section a value of 1e99 is used.\n \u2022 WRAPPED_ROTARY = 1 - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999\n degrees. Positive Numbers will move the axis in a positive direction and negative numbers will\n move the axis in the negative direction.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 164 / 1332\n \n \u2022 LOCKING_INDEXER_JOINT = 4 - This value selects a joint to use for a locking indexer for the specified\n axis . In this example, the joint is 4 which would correspond to the B axis for a XYZAB\n system with trivkins (identity) kinematics. When set, a G0 move for this axis will initiate an unlock\n with the joint.4.unlock pin then wait for the joint.4.is-unlocked pin then move the joint at\n@@ -9384,15 +9384,15 @@\n Other kinematics modules with identity kinematics are available to support configurations with partial\n sets of axes. For example, using trivkins with coordinates=XZ, the joint-axes relationships are:\n \u2022 JOINT_0 = X\n \u2022 JOINT_1 = Z\n For more information on kinematics modules see the manpage kins (on the UNIX terminal type man\n kins).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 165 / 1332\n \n \u2022 TYPE = LINEAR - The type of joint, either LINEAR or ANGULAR.\n \n \u2022 UNITS = INCH - If specified, this setting overrides the related [TRAJ] UNITS setting, e.g., [TRAJ]LINEAR_UN\n if the TYPE of this joint is LINEAR, [TRAJ]ANGULAR_UNITS if the TYPE of this joint is ANGULAR.\n@@ -9433,15 +9433,15 @@\n \u2022 MAX_LIMIT = 1000 - The maximum limit for joint motion, in machine units. When this limit is reached, the controller aborts joint motion. For a rotary joint with unlimited rotation having no MAX_LIMIT\n for that joint in the [JOINT_N] section a the value 1e99 is used.\n Anmerkung\n For identity kinematics, the [JOINT_N]MIN_LIMIT/MAX_LIMIT settings must equal or exceed the\n corresponding (one-to-one identity) [AXIS_L] limits. These settings are verified at startup when the\n trivkins kinematics modules is specified.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 166 / 1332\n \n Anmerkung\n The [JOINT_N]MIN_LIMIT/MAX_LIMIT settings are enforced while jogging in joint mode prior to homing. After homing, [AXIS_L]MIN_LIMIT/MAX_LIMIT coordinate limits are used as constraints for axis\n (coordinate letter) jogging and by the trajectory planning used for G-code moves (programs and MDI\n commands). The trajectory planner works in Cartesian space (XYZABCUVW) and has no information\n@@ -9481,15 +9481,15 @@\n provision for this signal you may set it to yes. When it is yes, it will affect the kind of home pattern\n used. Currently, you can\u2019t home to index with steppers unless you\u2019re using StepGen in velocity mode\n and PID.\n \u2022 HOME_INDEX_NO_ENCODER_RESET = NO - Use YES if the encoder used for this joint does not reset\n its counter when an index pulse is detected after assertion of the joint index_enable HAL pin.\n Applicable only for HOME_USE_INDEX = YES.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 167 / 1332\n \n \u2022 HOME_IGNORE_LIMITS = NO - When you use the limit switch as a home switch and the limit switch\n this should be set to YES. When set to YES the limit switch for this joint is ignored when homing.\n You must configure your homing so that at the end of your home move the home/limit switch is not\n in the toggled state you will get a limit switch error after the home move.\n@@ -9527,15 +9527,15 @@\n begrenzen, wenn Sie k\u00f6nnen.\n Be careful about going below 1 encoder count, since you may create a condition where there is no\n place that your servo is happy. This can go beyond hunting (slow) to nervous (rapid), and even to\n squealing which is easy to confuse with oscillation caused by improper tuning. Better to be a count\n or two loose here at first, until you\u2019ve been through gross tuning at least.\n Example of calculating machine units per encoder pulse to use in deciding DEADBAND value:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 168 / 1332\n \n \u2022 BIAS = 0.000 - This is used by hm2-servo and some others. Bias is a constant amount that is added\n to the output. In most cases it should be left at zero. However, it can sometimes be useful to compensate for offsets in servo amplifiers, or to balance the weight of an object that moves vertically.\n Bias is turned off when the PID loop is disabled, just like all other components of the output.\n \u2022 P = 50 - The proportional gain for the joint servo. This value multiplies the error between commanded and actual position in machine units, resulting in a contribution to the computed voltage for\n@@ -9564,15 +9564,15 @@\n linearize a DAC. Specifically, when writing outputs, the LinuxCNC first converts the desired output\n in quasi-SI units to raw actuator values, e.g., Volts for an amplifier DAC. This scaling looks like:\n \n The value for scale can be obtained analytically by doing a unit analysis, i.e., units are [output\n SI units]/[actuator units]. For example, on a machine with a velocity mode amplifier such that 1 V\n results in 250 mm/s velocity.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 169 / 1332\n \n Note that the units of the offset are in machine units, e.g. mm/s, and they are pre-subtracted from\n the sensor readings. The value for this offset is obtained by finding the value of your output which\n yields 0.0 for the actuator output. If the DAC is linearized, this offset is normally 0.0.\n Skalierung und Offset k\u00f6nnen auch zur Linearisierung des DAC verwendet werden. Diese Werte spigeln dann die kombinierten Auswirkungen von Verst\u00e4rkung, Nicht-Linearit\u00e4t des DAC, DACEinheiten usw. wider.\n@@ -9614,15 +9614,15 @@\n section. For a linear joint one machine unit will be equal to the setting of LINEAR_UNITS. For an angular\n joint one unit is equal to the setting in ANGULAR_UNITS. A second number, if specified, is ignored. For\n example, on a 2000 counts per rev encoder, and 10 revs/inch gearing, and desired units of inch, we\n have:\n \n Diese Parameter sind relevant f\u00fcr Gelenke, die von Schrittmotoren gesteuert werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 170 / 1332\n \n Warnung\n The following are custom INI file entries that you may find in a sample INI file or a wizard\n generated file. These are not used by the LinuxCNC software and meant only to put all the\n settings in one place. For more information on custom INI file entries see the Custom Sections\n@@ -9663,15 +9663,15 @@\n The specifies the spindle number 0 \u2026 (num_spindles-1)\n The value of num_spindles is set by [TRAJ]SPINDLES= .\n By default maximum velocity of the spindle in forward and reverse is approximately 2147483000 RPM.\n By default minimum velocity of the spindle in forward and reverse is 0 RPM.\n By default the increment is 100 RPM.\n You change these default by setting the following INI variables:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 171 / 1332\n \n Anmerkung\n These settings are for the motion controller component. Control screens can limit these settings\n further.\n \u2022 MAX_FORWARD_VELOCITY = 20000 The maximum spindle speed (in rpm) for the specified spindle.\n@@ -9713,15 +9713,15 @@\n \u2022 TOOL_CHANGE_QUILL_UP = 1 - The Z axis will be moved to machine zero prior to the tool change\n when the value is 1. This is the same as issuing a G0 G53 Z0.\n \u2022 TOOL_CHANGE_AT_G30 = 1 - The machine is moved to reference point defined by parameters 51815186 for G30 if the value is 1. For more information see G-code Parameters and G-code G30-G30.1.\n \u2022 RANDOM_TOOLCHANGER = 1 - This is for machines that cannot place the tool back into the pocket it\n came from. For example, machines that exchange the tool in the active pocket with the tool in the\n spindle.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 172 / 1332\n \n 4.5 Konfiguration der Referenzfahrt (engl. homing)\n 4.5.1 \u00dcbersicht\n Die Referenzfahrt legt den Nullpunkt der G53-Maschinenkoordinaten fest. Softlimits werden relativ\n zum Maschinenursprung definiert. Eine korrekt konfigurierte und funktionierende Maschine bewegt\n@@ -9757,15 +9757,15 @@\n \u2022 If using a separate homing switch, it is possible to start homing on the wrong side of the home\n switch, which combined with HOME_IGNORE_LIMITS option will lead to a hard crash. You can\n avoid this by making the home switch toggle its state when the trip dog is on a particular side until\n it returns passed the trip point again. Said another way, the home switch state must represent the\n position of the dog relative to the switch (ie before or after the switch), and must stay that way even\n if the dog coasts past the switch in the same direction.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 173 / 1332\n \n Anmerkung\n While it is possible to use LinuxCNC with the G53 machine origin outside the soft machine limits, if\n you use G28 or G30 without setting the parameters it goes to the origin by default. This would trip\n the limit switches before getting to position.\n@@ -9783,15 +9783,15 @@\n \u2022 A<->B ist die negative weiche Grenze (MIN_LIMITS) = -3 Einheiten\n \u2022 B<->C ist der Home_Offset (HOME_OFFSET) = -2,3 Einheiten\n \u2022 B<->D ist die positive weiche Grenze (MAX_LIMITS) = 7 Einheiten\n \u2022 A<->D ist der gesamte Weg = 10 Einheiten\n \u2022 Der Abstand zwischen den Endschaltern und Soft Limits (-L<->A und D<-+L) wird in diesem Beispiel vergr\u00f6\u00dfert\n \u2022 Beachten Sie, dass zwischen den Endschaltern und dem tats\u00e4chlichen harten Kontakt f\u00fcr den Auslauf nach der Deaktivierung des Verst\u00e4rkers ein Abstand besteht.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 174 / 1332\n \n Anmerkung\n Die Referenzfahrt legt das G53-Koordinatensystem fest. Der Maschinenursprung (Nullpunkt) kann an\n einer beliebigen Stelle liegen, aber wenn Sie den Nullpunkt auf die negative weiche Grenze setzen,\n werden alle G53-Koordinaten positiv, was wahrscheinlich am einfachsten zu merken ist. Dazu setzen\n@@ -9812,32 +9812,32 @@\n \u2022 B<->C ist der Home_Offset (HOME_OFFSET) = -0,7 Einheiten.\n \u2022 B<->D ist die positive weiche Grenze (MAX_LIMITS) 10 Einheiten.\n \u2022 A<->D ist der gesamte Weg = 10 Einheiten.\n \u2022 Der Abstand zwischen den Endschaltern und den Soft Limits (-L<->A und D<->+L) wird in diesem\n Beispiel vergr\u00f6\u00dfert.\n \u2022 Beachten Sie, dass zwischen den Endschaltern und dem tats\u00e4chlichen harten Kontakt f\u00fcr den Auslauf nach der Deaktivierung des Verst\u00e4rkers ein Abstand besteht.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 175 / 1332\n \n 4.5.5 Referenzfahrt Abfolge\n \n There are four possible homing sequences defined by the sign of HOME_SEARCH_VEL and HOME_LATCH_V\n along with the associated configuration parameters as shown in the following table. Two basic conditions exist, HOME_SEARCH_VEL and HOME_LATCH_VEL are the same sign or they are opposite\n signs. For a more detailed description of what each configuration parameter does, see the following\n section.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 176 / 1332\n \n Abbildung 4.8: Referenzfahrt-Abl\u00e4ufe\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 177 / 1332\n \n 4.5.6 Konfiguration\n Im Folgenden wird genau festgelegt, wie sich die Stammfolge verh\u00e4lt. Sie werden in einem [JOINT_n]Abschnitt der INI-Datei definiert.\n Referenzfahrt\n Typ\n@@ -9895,15 +9895,15 @@\n 4.5.6.3 HOME_FINAL_VEL\n Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde.\n Sie gibt die Geschwindigkeit an, die LinuxCNC verwendet, wenn es seine Bewegung von HOME_OFFSET\n zur HOME-Position durchf\u00fchrt. Wenn die HOME_FINAL_VEL in der INI-Datei fehlt, dann wird die\n maximale Gelenkgeschwindigkeit verwendet, um diese Bewegung zu machen. Der Wert muss eine\n positive Zahl sein.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 178 / 1332\n \n 4.5.6.4 HOME_IGNORE_LIMITS\n Can hold the values YES / NO. The default value for this parameter is NO. This flag determines whether\n LinuxCNC will ignore the limit switch input for this joint while homing. This setting will not ignore\n limit inputs for other joints. If you do not have a separate home switch set this to YES and connect the\n@@ -9935,15 +9935,15 @@\n switch or home switch then index pulse (depending on configuration), and setting the coordinate of\n that point to HOME_OFFSET, LinuxCNC makes a move to HOME as the final step of the homing\n process. The default value is zero. Note that even if this parameter is the same as HOME_OFFSET,\n the joint will slightly overshoot the latched position as it stops. Therefore there will always be a small\n move at this time (unless HOME_SEARCH_VEL is zero, and the entire search/latch stage was skipped).\n This final move will be made at the joint\u2019s maximum velocity unless HOME_FINAL_VEL has been set.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 179 / 1332\n \n Anmerkung\n Der Unterschied zwischen HOME_OFFSET und HOME besteht darin, dass HOME_OFFSET zun\u00e4chst die\n Ursprungsposition und den Ma\u00dfstab auf der Maschine festlegt, indem der HOME_OFFSET -Wert auf\n die Position angewendet wird, an der die Ausgangsposition gefunden wurde, und dann HOME angibt,\n@@ -9978,15 +9978,15 @@\n Wenn HOME_SEQUENCE nicht angegeben ist, wird das Gelenk nicht durch die HOME ALL-Sequenz referenziert (sondern kann durch einzelne gelenkspezifische Referenzierungsbefehle referenziert werden).\n \n Die anf\u00e4ngliche HOME_SEQUENCE-Nummer kann 0, 1 (oder -1) sein. Der absolute Wert der Sequenznummern muss um eins erh\u00f6ht werden - das \u00dcberspringen von Sequenznummern wird nicht unterst\u00fctzt. Wenn eine Sequenznummer weggelassen wird, stoppt HOME ALL die Referenzfahrt nach\n Abschluss der letzten g\u00fcltigen Sequenznummer.\n Negative HOME_SEQUENCE values indicate that joints in the sequence should synchronize the\n final move to [JOINT_n]HOME by waiting until all joints in the sequence are ready. If any joint has a\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 180 / 1332\n \n negative HOME_SEQUENCE value, then all joints with the same absolute value (positive or negative)\n of the HOME_SEQUENCE item value will synchronize the final move.\n Eine negative HOME_SEQUENCE gilt auch f\u00fcr das Ausf\u00fchren einer Referenzfahrt eines einzelnen\n Gelenks. Wenn der HOME_SEQUENCE-Wert negativ ist, werden alle Gelenke, die den gleichen absoluten Wert dieser HOME_SEQUENCE haben, gemeinsam mit einer synchronisierten Endbewegung freigesetzt. Wenn der HOME_SEQUENCE-Wert Null oder positiv ist, wird nur das angegebene\n@@ -10029,15 +10029,15 @@\n If this setting is true, this joint becomes unhomed whenever the machine transitions into the OFF\n state. This is appropriate for any joint that does not maintain position when the joint drive is off. Some\n stepper drives, especially microstep drives, may need this.\n 4.5.6.13 LOCKING_INDEXER\n Handelt es sich bei diesem Gelenk um einen verriegelnden Drehindexer, wird es vor der Referenzfahrt\n entriegelt und danach verriegelt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 181 / 1332\n \n 4.5.6.14 Immediate Homing\n If a joint does not have home switches or does not have a logical home position like a rotary joint and\n you want that joint to home at the current position when the \u201dHome All\u201d button is pressed in the AXIS\n GUI, then the following INI entries for that joint are needed.\n@@ -10080,15 +10080,15 @@\n net home_seq_s32 => ini.1.home_sequence\n ...\n # allow_jjog: von einem virtuellen Bedienfeld oder Hardware-Schalter erzeugter Pin\n net hsequence_select <= allow_jog\n net hsequence_select => home_sequence_mux.sel\n net hsequence_select => motion.homing-inhibit\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 182 / 1332\n \n Anmerkung\n INI HAL-Pins (wie ini.N.home_sequence) sind nicht verf\u00fcgbar, bis milltask startet, so dass die Ausf\u00fchrung der oben genannten HAL-Befehle mit Hilfe einer postgui HAL-Datei oder eines verz\u00f6gerten\n [APPLICATION]APP=-Skripts verschoben werden sollte.\n \n@@ -10118,15 +10118,15 @@\n wird ein Handshake erwartet, um zuverl\u00e4ssige Signalisierung zu gew\u00e4hrleisten, und optional lockstep Verhalten zu erzwingen. Handshaking ist optional und kann in HAL \u00fcberbr\u00fcckt werden, wenn\n es nicht ben\u00f6tigt wird.\n \u2022 R\u00fcckw\u00e4rtskompatibilit\u00e4t: Ein Werkzeugwechsler, der die iocontrol emc-abort-Zeile ignoriert und an\n der alten Handhabung festh\u00e4lt, wird \u201dweiterhin funktionieren\u201d (vorbehaltlich einer Race Condition)\n Wenn Sie strenge Zeitvorgaben haben oder einfach mehr E/A ben\u00f6tigen, sollten Sie stattdessen die\n Echtzeit-E/A verwenden, die von motion bereitgestellt wird.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 183 / 1332\n \n 4.6.2 Anwendung\n INI-Datei Optionen:\n [EMCIO] Abschnitt\n PROTOCOL_VERSION = 2\n@@ -10157,15 +10157,15 @@\n \u2022 iocontrol.0.tool-number (s32, out) Current tool number\n \u2022 iocontrol.0.tool-prep-number (s32, out) The number of the next tool, from the RS274NGC T-word\n \u2022 iocontrol.0.tool-prep-pocket (s32, out) This is the pocket number (location in the tool storage mechanism) of the tool requested by the most recent T-word.\n \u2022 iocontrol.0.tool-prepare (bit, out) TRUE when a Tn tool prepare is requested.\n \u2022 iocontrol.0.tool-prepared (bit, in) Should be driven TRUE when a tool prepare is completed.\n \u2022 iocontrol.0.user-enable-out (bit, out) FALSE when an internal E-stop condition exists\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 184 / 1332\n \n \u2022 iocontrol.0.user-request-enable (bit, out) TRUE when the user has requested that E-stop be cleared\n Zus\u00e4tzliche Pins hinzugef\u00fcgt durch I/O Control V2\n \u2022 emc-abort: (bit, out) signals emc-originated abort to toolchanger.\n \u2022 emc-abort-ack: (bit, in) Acknowledge line from toolchanger for previous signal, or jumpered to aborttool-change if not used in toolchanger. NB: after signaling an emc-abort, iov2 will block until emcabort-ack is raised.\n@@ -10198,15 +10198,15 @@\n die Abort-Handshake-Funktion nicht ben\u00f6tigen, jumpen Sie sie wie folgt:\n net emc-abort-ack iocontrol.0.emc-abort iocontrol.0.emc-abort-ack\n \n Der emc-reason-Pin wird als g\u00fcltig angesehen, wenn emc-abort TRUE ist.\n Die Ausl\u00f6ser-Codes sind wie folgt f\u00fcr LinuxCNC intern generiert Abbr\u00fcche (siehe emc.hh ca Zeile\n 321):\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 185 / 1332\n \n \u2022 EMC_ABORT_TASK_EXEC_ERROR = 1,\n \u2022 EMC_ABORT_AUX_ESTOP = 2,\n \u2022 EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3,\n \u2022 EMC_ABORT_TASK_STATE_OFF = 4,\n@@ -10237,15 +10237,15 @@\n die Standardebene zu \u00e4ndern, f\u00fcgen Sie die folgende Zeile in die INI-Datei im Abschnitt RS274NGC\n ein.\n RS274NGC_STARTUP_CODE = G18\n \n Die obigen Angaben k\u00f6nnen in einem G-Code-Programm \u00fcberschrieben werden, daher sollten Sie\n wichtige Dinge immer in der Pr\u00e4ambel der G-Code-Datei festlegen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 186 / 1332\n \n 4.7.2 INI-Einstellungen\n Die folgenden INI-Einstellungen werden f\u00fcr den Drehmaschinenmodus in Axis zus\u00e4tzlich zu den normalen Einstellungen in der INI-Datei ben\u00f6tigt oder ersetzen diese. Diese historischen Einstellungen\n verwenden die Identit\u00e4tskinematik (trivkins) und drei Gelenke (0,1,2) entsprechend den Koordinaten\n x, y, z. Das Gelenk 1 f\u00fcr die unbenutzte y-Achse ist erforderlich, wird aber in diesen historischen Konfigurationen nicht verwendet. Simulierte Drehmaschinen-Konfigurationen k\u00f6nnen diese historischen\n@@ -10287,15 +10287,15 @@\n [JOINT_1]\n ...\n [AXIS_X]\n ...\n [AXIS_Z]\n ...\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 187 / 1332\n \n 4.8 Stepper Schnellstart\n This section assumes you have done a standard install from the Live CD. After installation it is recommended that you connect the computer to the Internet and wait for the update manager to pop up\n and get the latest updates for LinuxCNC and Ubuntu before continuing.\n \n@@ -10355,15 +10355,15 @@\n 10\n \n Typ.\n Wenn UnterFunktion\n schiedlich\n X End/Referenzschalter\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 188 / 1332\n \n AusgangsPin\n 2\n \n Typ.\n@@ -10448,15 +10448,15 @@\n \u2022 Motor Teeth and Leadscrew Teeth - ist, wenn Sie eine Untersetzung (Zahnrad, Kette, Zahnriemen\n usw.) zwischen Motor und Leitspindel haben. Wenn nicht, setzen Sie beide auf 1.\n \u2022 Leitspindelsteigung\u2019 - gibt an, wie viel Bewegung (in Benutzereinheiten) in einer Leitspindelumdrehung stattfindet. Wenn Sie auf Zoll eingestellt sind, ist es Zoll pro Umdrehung. Wenn Sie in\n Millimetern einstellen, sind es Millimeter pro Umdrehung.\n Das Nettoergebnis, nach dem Sie suchen, ist die Anzahl der CNC-Ausgabeschritte, die erforderlich\n sind, um eine Benutzereinheit (Zoll oder mm) zu bewegen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 189 / 1332\n \n Beispiel 4.1 Einheiten Zoll\n Stepper = 200 Schritte pro Umdrehung\n Antrieb = 10 Mikroschritte pro Schritt\n Motorverzahnung = 20\n@@ -10484,15 +10484,15 @@\n This chapter describes some of the more common settings for manually setting up a stepper based\n system. These systems are using stepper motors with drives that accept step & direction signals.\n Es ist eines der einfacheren Systeme, da die Motoren im offenen Regelkreis laufen (keine R\u00fcckmeldung von den Motoren), aber das System muss richtig konfiguriert werden, damit die Motoren nicht\n abgew\u00fcrgt werden oder Schritte verlieren.\n Most of this chapter is based on a sample config released along with LinuxCNC. The config is called\n stepper_inch, and can be found by running the Configuration Picker.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 190 / 1332\n \n 4.9.2 Maximale Schrittgeschwindigkeit\n With software step generation, the maximum step rate is one step per two BASE_PERIODs for stepand-direction output. The maximum requested step rate is the product of an axis\u2019 MAX_VELOCITY and\n its INPUT_SCALE. If the requested step rate is not attainable, following errors will occur, particularly\n during fast jogs and G0 moves.\n@@ -10530,15 +10530,15 @@\n loadrt hal_parport cfg=\u201d0x0378\u201d\n #\n # als n\u00e4chstes die Parport-Funktionen mit den Threads verbinden\n # lese zuerst die Eing\u00e4nge\n addf parport.0.read base-thread 1\n # Ausgaben zuletzt schreiben\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 191 / 1332\n \n addf parport.0.write base-thread -1\n #\n # schlie\u00dflich physische Pins mit den Signalen verbinden Netz\n net Xstep => parport.0.pin-03-out\n@@ -10587,15 +10587,15 @@\n ### Beispiel f\u00fcr separate Endschalter auf der X-Achse (Achse 0)\n ###\n # net X-neg-limit parport.0.pin-11-in => joint.0.neg-lim-sw-in\n # net X-pos-limit parport.0.pin-12-in => joint.0.pos-lim-sw-in\n \n \u2190-\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 192 / 1332\n \n ###\n ### Genau wie beim Beispiel der gemeinsamen Referenzschalter k\u00f6nnen Sie auch\n ### Endschalter miteinander verbinden. Achten Sie darauf, wenn Sie einen ausl\u00f6sen, wird \u2190LinuxCNC stoppen,\n ### kann Ihnen aber nicht sagen, welche Schalter/Achse verantwortlich ist. Seien Sie \u2190vorsichtig, wenn die den Betrieb\n@@ -10628,15 +10628,15 @@\n Tipp: Achten Sie darauf, dass Sie nicht mehr als ein Signal an denselben Pin anschlie\u00dfen.\n 4.9.3.4 \u00c4ndern der Polarit\u00e4t eines Signals\n If external hardware expects an \u201dactive low\u201d signal, set the corresponding -invert parameter. For\n instance, to invert the spindle control signal:\n setp parport.0.pin-09-invert TRUE\n 4 The fastest thread in the LinuxCNC setup, usually the code gets executed every few tens of microseconds.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 193 / 1332\n \n 4.9.3.5 Hinzuf\u00fcgen einer PWM-Spindeldrehzahlregelung\n Wenn Ihre Spindel durch ein PWM-Signal gesteuert werden kann, verwenden Sie die Komponente\n \u201epwmgen\u201c, um das Signal zu erzeugen:\n loadrt pwmgen output_type=0\n@@ -10673,15 +10673,15 @@\n 4.10.1 H\u00e4ufige Probleme\n 4.10.1.1 Stepper bewegt sich einen Schritt\n Der h\u00e4ufigste Grund, warum sich ein Schrittmotor bei einer Neuinstallation nicht bewegt, ist, dass die\n Schritt- und Richtungssignale vertauscht sind. Wenn Sie die Tasten \u201dTippen vorw\u00e4rts\u201d und \u201dTippen\n r\u00fcckw\u00e4rts\u201d abwechselnd dr\u00fccken und der Schrittmotor sich jedes Mal um einen Schritt und in dieselbe\n Richtung bewegt, haben Sie einen Anhaltspunkt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 194 / 1332\n \n 4.10.1.2 Keine Stepper bewegen sich\n Viele Laufwerke haben einen Freigabe-Pin oder ben\u00f6tigen eine Ladungspumpe, um den Ausgang zu\n aktivieren.\n 4.10.1.3 Abstand nicht korrekt\n@@ -10717,15 +10717,15 @@\n usually an indication that the BASE_PERIOD in the [EMCMOT] section of the ini file is set too low. You\n should run the Latency Test for an extended period of time to see if you have any delays that would\n cause this problem. If you used the StepConf Wizard, run it again, and test the Base Period Jitter again,\n and adjust the Base Period Maximum Jitter on the Basic Machine Information page. You might have to\n leave the test running for an extended period of time to find out if some hardware causes intermittent\n problems.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 195 / 1332\n \n LinuxCNC verfolgt die Anzahl der CPU-Zyklen zwischen den Aufrufen des Echtzeit-Threads. Wenn ein\n Element Ihrer Hardware verursacht Verz\u00f6gerungen oder Ihre Echtzeit-Threads zu schnell eingestellt\n sind, werden Sie diesen Fehler erhalten.\n Anmerkung\n@@ -10769,15 +10769,15 @@\n #1000 = [#1000 - 1]\n o101 endwhile\n ( msg, Done...Z sollte genau .5\u201d \u00fcber dem Tisch liegen )\n M2\n \n \u2190-\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 196 / 1332\n \n 4.11 Filter-Programme\n 4.11.1 Einf\u00fchrung\n Die meisten Bildschirme von LinuxCNC haben die M\u00f6glichkeit, geladene Dateien durch ein \u201dFilterprogramm\u201d zu senden oder das Filterprogramm zu verwenden, um G-Code zu machen. Ein solcher Filter\n kann jede gew\u00fcnschte Aufgabe erledigen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit\n@@ -10798,15 +10798,15 @@\n Es ist auch m\u00f6glich, einen Interpreter anzugeben:\n PROGRAM_EXTENSION = .py Python Script\n py = python\n \n Auf diese Weise kann jedes Python-Skript ge\u00f6ffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter \u201dnc_files/holecircle.py\u201d verf\u00fcgbar. Dieses Skript erzeugt\n G-Code f\u00fcr das Bohren einer Reihe von L\u00f6chern entlang des Umfangs eines Kreises.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 197 / 1332\n \n Abbildung 4.9: Kreisf\u00f6rmige L\u00f6cher\n Wenn das Filterprogramm Zeilen in der folgenden Form an stderr sendet:\n FILTER_PROGRESS=10\n \n@@ -10826,15 +10826,15 @@\n time.sleep(.1)\n # Ausgabe einer Zeile G-Code\n print(\u2019G0 X1\u2019, file=sys.stdout)\n # Fortschritt aktualisieren\n print(\u2019FILTER_PROGRESS={}\u2019.format(i), file=sys.stderr)\n except:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 198 / 1332\n \n # Dies f\u00fchrt zu einer Fehlermeldung\n print(\u2019Fehler; Aber das war nur ein Test\u2019, file=sys.stderr)\n raise SystemExit(1)\n \n@@ -10876,15 +10876,15 @@\n print(\u2019You asked to cancel before finished.\u2019, file=sys.stderr)\n raise SystemExit(1)\n def process(self):\n try:\n # n\u00e4chste Codezeile erhalten\n codeLine = self.temp[self.line]\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 199 / 1332\n \n # die Zeile irgendwie verarbeiten\n # Verarbeiteten Code ausgeben\n print(codeLine, file=sys.stdout)\n self.line +=1\n@@ -10907,15 +10907,15 @@\n else:\n path = None\n app = QApplication(sys.argv)\n w = CustomDialog(path=path)\n w.show()\n sys.exit( app.exec_() )\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 200 / 1332\n \n Kapitel 5\n \n HAL (Hardware Abstraction Layer)\n 5.1 HAL Introduction\n@@ -10939,15 +10939,15 @@\n of what CNC machines need to do, or space craft.\n Any machine controller needs to know:\n \u2022 about its internal state and how this maps to the environment (machine coordinates, state of switches/regulators),\n \u2022 how actuators are expected to change that state,\n \u2022 how allow for updates of the internal state by sensors (encoders, probes).\n The HAL layer consists of parts (referred to as \u201dcomponents\u201d) that\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 201 / 1332\n \n \u2022 are connected with each other, e.g., to update position data or have the planning algorithm tell the\n motors about the next step.\n \u2022 may know how to communicate with hardware,\n \u2022 may simply process incoming data and provide data outputs to other components,\n@@ -10980,15 +10980,15 @@\n \u2022 from within C/C++ programs,\n but none of these interfaces are HAL itself.\n HAL itself is not a program, it consists of one or more lists of loaded programs (the components) that\n are periodically executed (in strict sequence), and an area of shared-memory that these components\n use to interchange data. The main HAL script runs only once at machine startup, setting up the realtime threads and the shared-memory locations, loading the components and setting up the data links\n between them (the \u201dsignals\u201d and \u201dpins\u201d).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 202 / 1332\n \n In principle multiple machines could share a common HAL to allow them to inter-operate, however\n the current implementation of LinuxCNC is limited to a single interpreter and a single Task module.\n Currently this is almost always a G-code interpreter and \u201dmilltask\u201d (which was found to also work well\n for lathes and adequately for robots) but these modules are selectable at load-time. With an increasing\n@@ -11029,15 +11029,15 @@\n number of components that know a lot about CNC and present that information via pins. There are\n pins representing\n \u2022 static information about the machine\n \u2022 the current state of the machine\n \u2013 end switches\n \u2013 positions counted by steppers or as measured by encoders\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 203 / 1332\n \n \u2022 recipients for instructions\n \u2013 manual control of machine position (\u201djogging\u201d)\n \u2013 positions that stepper motors should take next\n In a analogy to electronic cables, pins can be wired, so the value changing in one pin serves as input to\n@@ -11079,15 +11079,15 @@\n \u2013 developing over time.\n \n 5.1.3 HAL System Design\n HAL basiert auf traditionellen Systementwurfstechniken. HAL is based on the same principles\n that are used to design hardware circuits and systems, so it is useful to examine those principles first.\n Any system, including a CNC machine, consists of interconnected components. For the CNC machine,\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 204 / 1332\n \n those components might be the main controller, servo amps or stepper drives, motors, encoders, limit\n switches, pushbutton pendants, perhaps a VFD for the spindle drive, a PLC to run a toolchanger, etc.\n The machine builder must aselect, mount and wire these pieces together to make a complete system.\n \n@@ -11109,15 +11109,15 @@\n black boxes. During the design stage, he decides which parts he is going to use - steppers or servos,\n which brand of servo amp, what kind of limit switches and how many, etc. The integrator\u2019s decisions\n about which specific components to use is based on what that component does and the specifications\n supplied by the manufacturer of the device. The size of a motor and the load it must drive will affect the\n choice of amplifier needed to run it. The choice of amplifier may affect the kinds of feedback needed\n by the amp and the velocity or position signals that must be sent to the amp from a control.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 205 / 1332\n \n In the HAL world, the integrator must decide what HAL components are needed. Usually every interface card will require a driver. Additional components may be needed for software generation of step\n pulses, PLC functionality, and a wide variety of other tasks.\n 5.1.3.2 Interconnection Design\n The designer of a hardware system not only selects the parts, he also decides how those parts will be\n@@ -11143,15 +11143,15 @@\n HAL provides the software equivalents of a voltmeter, oscilloscope, signal generator, and other tools\n needed for testing and tuning a system. The same commands used to build the system can be used to\n make changes as needed.\n 5.1.3.5 Summary\n This document is aimed at people who already know how to do this kind of hardware system integration, but who do not know how to connect the hardware to LinuxCNC. See the Remote Start Example\n section in the HAL UI Examples documentation.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 206 / 1332\n \n Abbildung 5.2: Remote-Start-Beispiel (Schema)\n The traditional hardware design as described above ends at the edge of the main control. Outside the\n control are a bunch of relatively simple boxes, connected together to do whatever is needed. Inside,\n the control is a big mystery \u2014 one huge black box that we hope works.\n@@ -11176,15 +11176,15 @@\n because these terms are not arranged in alphabetical order. They are arranged by their relationship\n or flow in the HAL way of things.\n Komponente\n When we talked about hardware design, we referred to the individual pieces as parts, building\n blocks, black boxes, etc. The HAL equivalent is a component or HAL component. This document\n uses HAL component when there is likely to be confusion with other kinds of components, but\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 207 / 1332\n \n normally just uses component. A HAL component is a piece of software with well-defined inputs,\n outputs, and behavior, that can be installed and interconnected as needed. + + Many HAL Components model the behaviour of a tangible part of a machine, and a pin may indeed be meant to\n be connected to a physical pin on the device to communicate with it, hence the names. But most\n often this is not the case. Imagine a retrofit of a manual lathe/mill. What LinuxCNC implements\n@@ -11224,15 +11224,15 @@\n Both pins and signals have types, and signals can only be connected to pins of ffvthe same type.\n Currently there are 4 types, as follows:\n \u2022 bit - ein einzelner TRUE/FALSE- oder ON/OFF-Wert\n \u2022 float - eine 64-Bit-Flie\u00dfkommazahl mit einer Aufl\u00f6sung von etwa 53 Bit und einem Dynamikbereich von \u00fcber 1000 Bit.\n \u2022 u32 - eine 32-Bit-Ganzzahl ohne Vorzeichen, zul\u00e4ssige Werte sind 0 bis 4.294.967.295\n \u2022 s32 - eine 32-Bit-Ganzzahl mit Vorzeichen, zul\u00e4ssige Werte sind -2.147.483.647 bis +2.147.483.647\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 208 / 1332\n \n Funktion\n Real hardware components tend to act immediately on their inputs. For example, if the input\n voltage to a servo amp changes, the output also changes automatically. However software components cannot act automatically. Each component has specific code that must be executed to\n do whatever that component is supposed to do. In some cases, that code simply runs as part of\n@@ -11274,15 +11274,15 @@\n de-energizes the coil. So the relay still switches rapidly between on and off, but at a rate determined\n by how often the PLC evaluates the rung.\n In HAL, the function is the code that evaluates the rung(s). In fact, the HAL-aware realtime version\n of ClassicLadder exports a function to do exactly that. Meanwhile, a thread is the thing that runs the\n function at specific time intervals. Just like you can choose to have a PLC evaluate all its rungs every\n 10 ms, or every second, you can define HAL threads with different periods.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 209 / 1332\n \n What distinguishes one thread from another is not what the thread does - that is determined by which\n functions are connected to it. The real distinction is simply how often a thread runs.\n In LinuxCNC you might have a 50 \u00b5s thread and a 1 ms thread. These would be created based on\n BASE_PERIOD and SERVO_PERIOD, the actual times depend on the values in your INI file.\n@@ -11296,15 +11296,15 @@\n 5.2.1 HAL Commands\n Ausf\u00fchrlichere Informationen finden Sie in der Manpage f\u00fcr halcmd: f\u00fchren Sie man halcmd in einem\n Terminalfenster aus.\n To see the HAL configuration and check the status of pins and parameters use the HAL Configuration\n window on the Machine menu in AXIS. To watch a pin status open the Watch tab and click on each\n pin you wish to watch and it will be added to the watch window.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 210 / 1332\n \n Abbildung 5.3: HAL-Konfigurationsfenster\n \n 5.2.1.1\n \n@@ -11324,15 +11324,15 @@\n The addf command adds a function to a real-time thread. If the StepConf wizard was used to create\n the configuration, two threads have been created ( \u0300 \u0300base-thread \u0300 \u0300 and \u0300 \u0300servo-thread \u0300 \u0300).\n addf adds function functname to thread threadname. Default is to add the function in the order they\n are in the file. If position is specified, adds the function to that spot in the thread. A negative position\n indicates the position with respect to the end of the thread. For example 1 is start of thread, -1 is the\n end of the thread, -3 is third from the end.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 211 / 1332\n \n For some functions it is important to load them in a certain order, like the parport read and write\n functions. The function name is usually the component name plus a number. In the following example\n the component or2 is loaded and show function shows the name of the or2 function.\n $ halrun\n@@ -11403,15 +11403,15 @@\n ausgegangen, dass die Komponente denselben Namen hat wie das erste\n Argument des Befehls.\n um auf die Komponente zu warten, die den angegebenen haben wird.\n Dies gilt nur, wenn die Komponente eine Namensoption hat.\n um zu warten, bis das Programm beendet wird\n um den R\u00fcckgabewert des Programms zu ignorieren (mit -w)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n -n\n \n 212 / 1332\n \n Benennt eine Komponente, sofern dies eine zul\u00e4ssige Option f\u00fcr diese\n Komponente ist.\n@@ -11443,15 +11443,15 @@\n \u2022 Ein IN-Pin kann immer mit einem Signal verbunden werden.\n \u2022 Ein IO-Pin kann angeschlossen werden, sofern kein ein OUT-Pin am Signal anliegt.\n \u2022 Ein OUT-Pin kann nur angeschlossen werden, wenn es keine anderen OUT- oder IO-Pins am Signal\n gibt.\n Derselbe Signal-Name kann in mehreren Netzbefehlen verwendet werden, um zus\u00e4tzliche Pins zu\n verbinden, solange die obigen Regeln beachtet werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 213 / 1332\n \n Abbildung 5.4: Signalrichtung (engl. signal direction)\n This example shows the signal xStep with the source being stepgen.0.out and with two readers,\n parport.0.pin-02-out and parport.0.pin-08-out. Basically the value of stepgen.0.out is sent to\n the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out.\n@@ -11478,15 +11478,15 @@\n \n The command setp sets the value of a pin or parameter. The valid values will depend on the type of\n the pin or parameter. It is an error if the data types do not match.\n Some components have parameters that need to be set before use. Parameters can be set before use\n or while running as needed. You cannot use setp on a pin that is connected to a signal.\n Syntax and Examples of setp\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 214 / 1332\n \n setp \n setp parport.0.pin-08-out TRUE\n \n 5.2.1.6\n@@ -11529,15 +11529,15 @@\n linkps parport.0.pin-02-out X-Step\n \n The linkps command has been superseded by the net command.\n the command newsig creates a new HAL signal by the name and the data type of .\n Type must be bit, s32, u32 or float. Error if already exists.\n Syntax and Examples of newsig\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 215 / 1332\n \n newsig \n newsig Xstep bit\n \n Weitere Informationen finden Sie im HAL-Handbuch oder in den Man Pages f\u00fcr halrun.\n@@ -11577,15 +11577,15 @@\n ge\u00e4ndert werden, wenn Sie den Stepper-Konfigurationsassistenten verwendet haben.\n \u2022 custom.hal This file is loaded next and before the GUI loads. This is where you put your custom HAL\n commands that you want loaded before the GUI is loaded.\n \u2022 custom_postgui.hal This file is loaded after the GUI loads. This is where you put your custom HAL\n commands that you want loaded after the GUI is loaded. Any HAL commands that use PyVCP widgets\n need to be placed here.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 216 / 1332\n \n 5.2.4 HAL Parameter\n Two parameters are automatically added to each HAL component when it is created. These parameters\n allow you to scope the execution time of a component.\n .time\n@@ -11636,15 +11636,15 @@\n \n out\n False\n False\n False\n True\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 5.2.5.2\n \n 217 / 1332\n \n not\n \n@@ -11700,15 +11700,15 @@\n \n out\n True\n True\n True\n False\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 5.2.5.4\n \n 218 / 1332\n \n xor2\n \n@@ -11763,15 +11763,15 @@\n \n The weighted sum converts a group of bits into an integer. The conversion is the sum of the weights of\n the bits present plus any offset. It\u2019s similar to binary coded decimal but with more options. The hold\n bit interrupts the input processing, so that the sum value no longer changes.\n Syntax for loading component weighted_sum\n loadrt weighted_sum wsum_sizes=size[,size,...]\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 219 / 1332\n \n Creates groups of \u0300 \u0300weighted_sum \u0300 \u0300s, each with the given number of input bits (size).\n Um die \u201dweighted_sum\u201d zu aktualisieren, muss der \u201dprocess_wsums\u201d an einen Thread angeh\u00e4ngt\n werden.\n Add process_wsums to servo thread\n@@ -11861,15 +11861,15 @@\n loadrt and2 count=3\n \n Configurations are more readable if you specify with the names= option for components where it is\n supported, e.g.:\n Example load command resulting in explicitly named components aa, ab, ac.\n loadrt and2 names=aa,ab,ac\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 220 / 1332\n \n It can be a maintenance problem to keep track of the components and their names, since when you\n add (or remove) a component, you must find and update the single loadrt directive applicable to the\n component.\n TWOPASS processing is enabled by including an INI file parameter in the [HAL] section,\n@@ -11905,15 +11905,15 @@\n In einem zweiten Durchlauf werden dann alle anderen in den HALFILES angegebenen LinuxCNCBefehle ausgef\u00fchrt. Die addf-Befehle verkn\u00fcpfen die Funktionen einer Komponente mit der ThreadAusf\u00fchrung und werden in diesem zweiten Durchgang in der Reihenfolge ihres Erscheinens zusammen mit anderen Befehlen ausgef\u00fchrt.\n Die Optionen \u201dcount=\u201d und \u201dnames=\u201d k\u00f6nnen zwar verwendet werden, schlie\u00dfen sich aber gegenseitig aus - f\u00fcr ein bestimmtes Modul kann nur ein Typ angegeben werden.\n Die TWOPASS-Verarbeitung ist am effektivsten, wenn die Option \u201dnames=\u201d verwendet wird. Mit dieser Option k\u00f6nnen Sie eindeutige Namen vergeben, die als Ged\u00e4chtnisst\u00fctze dienen oder anderweitig\n f\u00fcr die Konfiguration relevant sind. Wenn Sie z. B. eine Ableitungskomponente zur Sch\u00e4tzung der Geschwindigkeiten und Beschleunigungen an jeder (x,y,z)-Koordinate verwenden, f\u00fchrt die Verwendung\n der count=-Methode zu obskuren Komponentennamen wie ddt.0, ddt.1, ddt.2, usw.\n Alternativ k\u00f6nnen Sie auch die Option names= verwenden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 221 / 1332\n \n loadrt ddt names=xvel,yvel,zvel\n ...\n loadrt ddt names=xaccel,yaccel,zaccel\n \n@@ -11955,15 +11955,15 @@\n 5.3.3 Ausschlie\u00dfen von HAL-Dateien\n TWOPASS processing converts .hal files to equivalent .tcl files and uses haltcl to find loadrt and addf\n commands in order to accumulate and consolidate their usage. Loadrt parameters that conform to\n the simple names= (or count=) parameters accepted by the HAL Component Generator (halcompile)\n are expected. More complex parameter items included in specialized LinuxCNC components may not\n be handled properly.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 222 / 1332\n \n A .hal file may be excluded from TWOPASS processing by including a magic comment line anywhere in\n the .hal file. The magic comment line must begin with the string: #NOTWOPASS. Files specified with this\n magic comment are sourced by halcmd using the -k (keep going if failure) and -v (verbose) options.\n Diese Ausschlussbestimmung kann verwendet werden, um Probleme zu isolieren oder um spezielle\n@@ -11998,15 +11998,15 @@\n \n 5.4 HAL Tutorial\n 5.4.1 Einf\u00fchrung\n Die Konfiguration geht von der Theorie zum Ger\u00e4t \u00fcber - dem HAL-Ger\u00e4t. F\u00fcr diejenigen, die nur ein\n wenig Erfahrung mit Computerprogrammierung haben, ist dieser Abschnitt das \u201dHello World\u201d des\n HAL.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 223 / 1332\n \n halrun kann verwendet werden, um ein funktionierendes System zu erstellen. Es ist ein Kommandozeilenoder Textdateiwerkzeug f\u00fcr Konfiguration und Tuning.\n \n 5.4.2 Halcmd\n halcmd ist ein Befehlszeilentool zum Manipulieren von HAL. Eine vollst\u00e4ndigere Manpage existiert\n@@ -12046,15 +12046,15 @@\n Linux. Unfortunately, each RTOS does things a little differently.\n Um diese Unterschiede zu beseitigen, hat das LinuxCNC-Team die RTAPI entwickelt, die einen einheitlichen Weg f\u00fcr Programme bietet, um mit dem RTOS zu kommunizieren. Wenn Sie ein Programmierer\n sind, der an den Interna von LinuxCNC arbeiten will, sollten Sie vielleicht linuxcnc/src/rtapi/rtapi.h\n studieren, um die API zu verstehen. Aber wenn Sie eine normale Person sind, ist alles, was Sie \u00fcber\n RTAPI wissen m\u00fcssen, dass es (und das RTOS) in den Speicher Ihres Computers geladen werden muss,\n bevor Sie etwas mit HAL machen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 224 / 1332\n \n 5.4.3 Ein einfaches Beispiel\n 5.4.3.1 Laden einer Komponente\n F\u00fcr dieses Tutorial gehen wir davon aus, dass Sie die Live-CD erfolgreich installiert haben und, falls\n Sie eine RIP footnote: [Run In Place, wenn die Quelldateien in ein Benutzerverzeichnis heruntergeladen wurden und direkt von dort aus kompiliert und ausgef\u00fchrt werden] Installation verwenden, das\n@@ -12103,15 +12103,15 @@\n halcmd at the same time (in different terminal windows for example), so the PID is added to the end of\n the name to make it unique. The list also shows the siggen component that we installed in the previous\n step. The RT under Type indicates that siggen is a realtime component. The User under Type indicates\n it is a non-realtime component.\n Next, let\u2019s see what pins siggen makes available:\n Pins anzeigen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 225 / 1332\n \n halcmd: show pin\n Component Pins:\n Owner\n Type\n@@ -12206,15 +12206,15 @@\n to any threads, so users is zero 1 .\n 5.4.3.3 Echtzeitcode zum Laufen bringen\n To actually run the code contained in the function siggen.0.update, we need a realtime thread. The\n component called threads that is used to create a new thread. Lets create a thread called \u201dtest-thread\u201d\n with a period of 1 ms (1,000 \u00b5s or 1,000,000 ns):\n 1 CodeAddr and Arg fields were used during development and should probably disappear.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 226 / 1332\n \n halcmd: loadrt threads name1=test-thread period1=1000000\n \n Mal sehen, ob das funktioniert:\n Threads anzeigen\n@@ -12309,15 +12309,15 @@\n Owner\n Type Dir\n \n Value\n \n Name\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 3\n 3\n 3\n 3\n 3\n 3\n@@ -12430,15 +12430,15 @@\n Das meiste, was wir bisher mit halcmd gemacht haben, war einfach das Anzeigen von Dingen mit dem\n show-Befehl. Zwei der Befehle haben jedoch tats\u00e4chlich Dinge ver\u00e4ndert. Wenn wir komplexere Systeme mit HAL entwerfen, werden wir viele Befehle verwenden, um die Dinge genau so zu konfigurieren,\n wie wir sie haben wollen. HAL hat ein Ged\u00e4chtnis wie ein Elefant und beh\u00e4lt diese Konfiguration bei,\n bis wir es abschalten. Aber was ist beim n\u00e4chsten Mal? Wir wollen nicht jedes Mal, wenn wir das\n System benutzen wollen, eine Reihe von Befehlen manuell eingeben.\n Saving the configuration of the entire HAL with a single command.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 228 / 1332\n \n halcmd: save\n # Komponenten\n loadrt threads name1=test-thread period1=1000000\n loadrt siggen\n@@ -12474,15 +12474,15 @@\n file saved.hal to add it there).\n 5.4.3.8 HAL aus dem Speicher entfernen\n Wenn eine HAL-Sitzung unerwartet beendet wird, m\u00fcssen Sie m\u00f6glicherweise HAL entladen, bevor\n eine neue Sitzung beginnen kann. Geben Sie dazu den folgenden Befehl in ein Terminalfenster ein.\n Removing HAL\n halrun -U\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 5.4.4\n \n 229 / 1332\n \n Halmeter\n \n@@ -12520,27 +12520,27 @@\n halcmd: start\n halcmd: setp siggen.0.amplitude 5\n \n At this point we have the siggen component loaded and running. It\u2019s time to start halmeter.\n Halmeter starten\n halcmd: loadusr halmeter\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 230 / 1332\n \n The first window you will see is the \u201dSelect Item to Probe\u201d window.\n \n Abbildung 5.5: Halmeter Auswahlfenster\n This dialog has three tabs. The first tab displays all of the HAL pins in the system. The second one\n displays all the signals, and the third displays all the parameters. We would like to look at the pin\n siggen.0.cosine first, so click on it then click the \u201dClose\u201d button. The probe selection dialog will\n close, and the meter looks something like the following figure.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 231 / 1332\n \n Abbildung 5.6: Halmeter-Fenster\n To change what the meter displays press the \u201dSelect\u201d button which brings back the \u201dSelect Item to\n Probe\u201d window.\n Sie sollten sehen, wie sich der Wert \u00e4ndert, wenn siggen seine Kosinuswelle erzeugt. Das Halmeter\n@@ -12570,15 +12570,15 @@\n The first command loads two step generators, both configured to generate stepping type 0. The second\n command loads our old friend siggen, and the third one creates two threads, a fast one with a period\n of 50 microseconds (\u00b5s) and a slow one with a period of 1 millisecond (ms). The fast thread doesn\u2019t\n support floating point functions.\n As before, we can use halcmd show to take a look at the HAL. This time we have a lot more pins and\n parameters than before:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 232 / 1332\n \n halcmd: show pin\n Component Pins:\n Owner\n Type Dir\n@@ -12760,15 +12760,15 @@\n stepgen.capture-position.time\n stepgen.capture-position.tmax\n stepgen.make-pulses.time\n stepgen.make-pulses.tmax\n stepgen.update-freq.time\n stepgen.update-freq.tmax\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 233 / 1332\n \n 5.4.5.2 Verbinden von Pins mit Signalen\n Wir haben also zwei Schrittimpulsgeneratoren und einen Signalgenerator. Nun ist es an der Zeit,\n einige HAL-Signale zu erzeugen, um die beiden Komponenten zu verbinden. Wir tun so, als ob die beiden Schrittimpulsgeneratoren die X- und Y-Achse einer Maschine antreiben w\u00fcrden. Wir wollen den\n Tisch im Kreis bewegen. Dazu senden wir ein Kosinussignal an die X-Achse und ein Sinussignal an die\n@@ -12826,15 +12826,15 @@\n signal comes from pin siggen.0.cosine, and goes to pin stepgen.0.velocity-cmd.\n 5.4.5.3 Einrichten der Echtzeitausf\u00fchrung - Threads und Funktionen\n Thinking about data flowing through \u201dwires\u201d makes pins and signals fairly easy to understand. Threads\n and functions are a little more difficult. Functions contain the computer instructions that actually get\n things done. Thread are the method used to make those instructions run when they are needed. First\n let\u2019s look at the functions available to us.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 234 / 1332\n \n halcmd: show funct\n Exported Functions:\n Owner\n CodeAddr Arg\n@@ -12918,15 +12918,15 @@\n (\n slow (\n \n Time, Max-Time )\n 0,\n 0 )\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 49849\n \n NO\n \n 1 siggen.0.update\n 2 stepgen.update-freq\n@@ -12977,41 +12977,41 @@\n \n 5.4.6 Halscope\n Das vorherige Beispiel erzeugt einige sehr interessante Signale. Aber vieles von dem, was passiert,\n ist viel zu schnell, um es mit dem Halmeter zu sehen. Um einen genaueren Blick auf die Vorg\u00e4nge\n im Inneren des HAL zu werfen, brauchen wir ein Oszilloskop. Gl\u00fccklicherweise verf\u00fcgt HAL \u00fcber ein\n solches, genannt halscope.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 236 / 1332\n \n Halscope has two parts - a realtime part that reads the HAL signals, and a non-realtime part that\n provides the GUI and display. However, you don\u2019t need to worry about this because the non-realtime\n part will automatically load the realtime part when needed.\n With LinuxCNC running in a terminal you can start halscope with the following command.\n Halscope starten\n halcmd loadusr halscope\n \n Wenn LinuxCNC nicht l\u00e4uft oder die Datei autosave.halscope nicht mit den Pins \u00fcbereinstimmt, die\n im aktuell laufenden LinuxCNC verf\u00fcgbar sind, \u00f6ffnet sich das Scope-GUI-Fenster, unmittelbar gefolgt von einem Dialog Realtime function not linked, der wie die folgende Abbildung aussieht. Um die\n Abtastrate zu \u00e4ndern, klicken Sie mit der linken Maustaste auf das Feld Samples.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 237 / 1332\n \n Abbildung 5.7: Dialog Echtzeitfunktion nicht verkn\u00fcpft\n This dialog is where you set the sampling rate for the oscilloscope. For now we want to sample once\n per millisecond, so click on the 1.00 ms thread slow and leave the multiplier at 1. We will also leave\n the record length at 4000 samples, so that we can use up to four channels at one time. When you\n select a thread and then click OK, the dialog disappears, and the scope window looks something like\n the following figure.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 238 / 1332\n \n Abbildung 5.8: Fenster f\u00fcr den anf\u00e4nglichen Geltungsbereich\n \n 5.4.6.1 Anschlie\u00dfen der Oszilloskop-Sonden\n An diesem Punkt ist Halscope einsatzbereit. Wir haben bereits eine Abtastrate und eine Aufzeichnungsl\u00e4nge gew\u00e4hlt, so dass der n\u00e4chste Schritt darin besteht, zu entscheiden, was wir uns ansehen wollen. Dies ist gleichbedeutend mit dem Anschlie\u00dfen von \u201dvirtuellen Oszilloskop-Sonden\u201d an\n@@ -13020,34 +13020,34 @@\n die Aufzeichnung verf\u00fcgbare Speicher auf etwa 16.000 Samples festgelegt ist.\n Die Kanalschaltfl\u00e4chen befinden sich am unteren Rand des Halskop-Bildschirms. Wenn Sie auf die\n Schaltfl\u00e4che \u201d1\u201d klicken, wird das Dialogfeld \u201dSelect Channel Source\u201d (Kanalquelle ausw\u00e4hlen) angezeigt, wie in der folgenden Abbildung dargestellt. Dieser Dialog ist dem von Halmeter verwendeten\n Dialog sehr \u00e4hnlich. Wir m\u00f6chten uns die Signale ansehen, die wir zuvor definiert haben, also klicken\n wir auf die Registerkarte \u201dSignale\u201d, und der Dialog zeigt alle Signale im HAL an (in diesem Beispiel\n nur zwei).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 239 / 1332\n \n Abbildung 5.9: Kanalquelle ausw\u00e4hlen\n Um ein Signal auszuw\u00e4hlen, klicken Sie es einfach an. In diesem Fall m\u00f6chten wir, dass auf Kanal 1\n das Signal \u201dX-vel\u201d angezeigt wird. Klicken Sie auf die Registerkarte \u201dSignale\u201d und dann auf \u201dX-vel\u201d.\n Das Dialogfeld schlie\u00dft sich und der Kanal ist nun ausgew\u00e4hlt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 240 / 1332\n \n Abbildung 5.10: Signal ausw\u00e4hlen\n Die Taste f\u00fcr Kanal 1 wird gedr\u00fcckt, und die Kanalnummer 1 und die Bezeichnung \u201dX-vel\u201d erscheinen\n unter der Tastenreihe. Diese Anzeige zeigt immer den ausgew\u00e4hlten Kanal an - Sie k\u00f6nnen mehrere\n Kan\u00e4le auf dem Bildschirm haben, aber der ausgew\u00e4hlte Kanal ist hervorgehoben, und die verschiedenen Steuerelemente wie vertikale Position und Skalierung funktionieren immer f\u00fcr den ausgew\u00e4hlten\n Kanal.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 241 / 1332\n \n Abbildung 5.11: Halscope\n To add a signal to channel 2, click the 2 button. When the dialog pops up, click the Signals tab, then\n click on Y-vel. We also want to look at the square and triangle wave outputs. There are no signals\n connected to those pins, so we use the Pins tab instead. For channel 3, select siggen.0.triangle and\n@@ -13057,15 +13057,15 @@\n haben und 1000 Samples pro Sekunde erfassen, wird halscope etwa 2 Sekunden brauchen, um die\n H\u00e4lfte seines Puffers zu f\u00fcllen. W\u00e4hrend dieser Zeit zeigt ein Fortschrittsbalken direkt \u00fcber dem\n Hauptbildschirm an, dass der Puffer gef\u00fcllt ist. Sobald der Puffer halb voll ist, wartet das Scope auf einen Trigger. Da wir noch keinen konfiguriert haben, wird es ewig warten. Um es manuell auszul\u00f6sen,\n klicken Sie auf die Schaltfl\u00e4che \u201dErzwingen\u201d im Abschnitt \u201dAusl\u00f6ser\u201d oben rechts. Sie sollten sehen,\n wie sich der Rest des Puffers f\u00fcllt, und dann werden die erfassten Wellenformen auf dem Bildschirm\n angezeigt. Das Ergebnis sieht ungef\u00e4hr so aus wie in der folgenden Abbildung.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 242 / 1332\n \n Abbildung 5.12: Erfasste Wellenformen\n The Selected Channel box at the bottom tells you that the purple trace is the currently selected one,\n channel 4, which is displaying the value of the pin siggen.0.square. Try clicking channel buttons 1\n through 3 to highlight the other three traces.\n@@ -13074,30 +13074,30 @@\n verwenden wir die \u201dVertikal\u201d-Steuerungen in der Box auf der rechten Seite des Bildschirms. Diese\n Regler wirken sich auf den aktuell ausgew\u00e4hlten Kanal aus. Bei der Einstellung der Verst\u00e4rkung ist\n zu beachten, dass sie einen riesigen Bereich abdeckt - im Gegensatz zu einem echten Oszilloskop kann\n dieses Ger\u00e4t Signale von sehr kleinen (Pico-Einheiten) bis zu sehr gro\u00dfen (Tera-Einheiten) anzeigen.\n Mit dem Positionsregler wird die angezeigte Kurve nur \u00fcber die H\u00f6he des Bildschirms nach oben und\n unten bewegt. F\u00fcr gr\u00f6\u00dfere Einstellungen sollte die Offset-Taste verwendet werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 243 / 1332\n \n Abbildung 5.13: Vertikale Einstellung\n Die gro\u00dfe Schaltfl\u00e4che Ausgew\u00e4hlter Kanal am unteren Rand zeigt an, dass Kanal 1 der aktuell ausgew\u00e4hlte Kanal ist und dass er mit dem X-vel-Signal \u00fcbereinstimmt. Versuchen Sie, auf die anderen\n Kan\u00e4le zu klicken, um ihre Spuren sichtbar zu machen und sie mit dem Pos-Cursor verschieben zu\n k\u00f6nnen.\n 5.4.6.4 Triggering (automatisches Ausl\u00f6sen)\n Die Verwendung des Button \u201dErzwingen\u201d ist eine eher unbefriedigende Art, das Oszilloskop auszul\u00f6sen. Um eine echte Triggerung einzurichten, klicken Sie auf die Schaltfl\u00e4che \u201dQuelle\u201d unten rechts.\n Daraufhin wird das Dialogfeld \u201dTrigger Source\u201d (Triggerquelle) angezeigt, das einfach eine Liste aller\n derzeit angeschlossenen Sonden enth\u00e4lt. W\u00e4hlen Sie eine Sonde f\u00fcr die Triggerung aus, indem Sie\n auf sie klicken. In diesem Beispiel verwenden wir Kanal 3, die Dreieckswelle, wie in der folgenden\n Abbildung dargestellt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 244 / 1332\n \n Abbildung 5.14: Dialogfeld Triggerquelle (engl. trigger source)\n Nachdem Sie die Triggerquelle eingestellt haben, k\u00f6nnen Sie den Triggerpegel und die Triggerposition mit den Schiebereglern im Feld \u201dTrigger\u201d am rechten Rand einstellen. Der Pegel kann vom\n oberen bis zum unteren Rand des Bildschirms eingestellt werden und wird unter den Schiebereglern\n angezeigt. Die Position ist die Lage des Ausl\u00f6sepunkts innerhalb der gesamten Aufzeichnung. Ist der\n@@ -13106,15 +13106,15 @@\n dem Ausl\u00f6sen passiert ist. Der Triggerpunkt ist als vertikale Linie in der Fortschrittsanzeige \u00fcber\n dem Bildschirm sichtbar. Die Triggerpolarit\u00e4t kann durch Klicken auf die Schaltfl\u00e4che direkt unter\n der Triggerpegelanzeige ge\u00e4ndert werden. Sie wird dann absteigend. Beachten Sie, dass die \u00c4nderung der Triggerposition das Oszilloskop anh\u00e4lt, sobald die Position angepasst wurde, starten Sie das\n Oszilloskop erneut, indem Sie auf die Schaltfl\u00e4che Normal des Run-Modus der Gruppe klicken.\n Nachdem wir nun die vertikalen Regler und die Triggerung eingestellt haben, sieht die Anzeige des\n Oszilloskops etwa wie in der folgenden Abbildung aus.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 245 / 1332\n \n Abbildung 5.15: Wellenformen mit Triggerung\n \n 5.4.6.5 Horizontale Anpassungen\n To look closely at part of a waveform, you can use the zoom slider at the top of the screen to expand\n@@ -13123,15 +13123,15 @@\n the sampling rate. For example, we would like to look at the actual step pulses that are being generated\n in our example. Since the step pulses may be only 50 \u00b5s long, sampling at 1 kHz isn\u2019t fast enough. To\n change the sample rate, click on the button that displays the number of samples and sample rate to\n bring up the Select Sample Rate dialog figure. For this example, we will click on the 50 \u00b5s thread,\n fast, which gives us a sample rate of about 20 kHz. Now instead of displaying about 4 seconds worth\n of data, one record is 4000 samples at 20 kHz, or about 0.20 seconds.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 246 / 1332\n \n Abbildung 5.16: Dialogfeld f\u00fcr Abtastrate\n \n 5.4.6.6 Weitere Kan\u00e4le\n Now let\u2019s look at the step pulses. Halscope has 16 channels, but for this example we are using only\n@@ -13143,15 +13143,15 @@\n channel 5, and choose pin stepgen.0.dir, then channel 6, and select stepgen.0.step. Then click run\n mode Normal to start the scope, and adjust the horizontal zoom to 5 ms per division. You should see\n the step pulses slow down as the velocity command (channel 1) approaches zero, then the direction\n pin changes state and the step pulses speed up again. You might want toincrease the gain on channel\n 1 to about 20 milli per division to better see the change in the velocity command. The result should\n look like the following figure.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 247 / 1332\n \n Abbildung 5.17: Schrittimpulse\n \n 5.4.6.7 Weitere Samples\n Wenn Sie mehr Samples auf einmal aufnehmen wollen, starten Sie realtime neu und laden Sie halscope\n@@ -13171,15 +13171,15 @@\n 5.5.1 Verbinden von zwei Ausg\u00e4ngen\n To connect two outputs to an input you can use the or2 component. The or2 works like this, if either\n input to or2 is on then the or2 output is on. If neither input to or2 is on the or2 output is off.\n For example to have two PyVCP buttons both connected to one LED.\n The .xml file to instruct PyVCP to prepare a GUI that features two buttons (named \u201dbutton-1\u201d\n and \u201dbutton-2\u201d) and an LED (named \u201dled-1\u201d).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 248 / 1332\n \n \n \n \n \n Starten Sie nun Ihre Konfiguration und sie sollte so aussehen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 470 / 1332\n \n Abbildung 8.26: AXIS Notaus\n Beachten Sie, dass Sie in diesem Beispiel wie im wirklichen Leben den ferngesteuerten Notaus (simuliert durch das Kontrollk\u00e4stchen) deaktivieren m\u00fcssen, bevor der AXIS Notaus oder der externe\n Reset Sie in den AUS-Modus versetzt. Wenn der Not-Aus-Schalter auf dem AXIS-Bildschirm gedr\u00fcckt\n wurde, m\u00fcssen Sie ihn erneut dr\u00fccken, um ihn zu deaktivieren. Nach einem Notaus in AXIS k\u00f6nnen\n Sie keinen externen Reset durchf\u00fchren.\n \n 8.3.4 Beispiel f\u00fcr Timer/Bedienung\n In diesem Beispiel verwenden wir den Operate-Block, um der Timer-Voreinstellung einen Wert zuzuweisen, der davon abh\u00e4ngt, ob ein Eingang ein- oder ausgeschaltet ist.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 471 / 1332\n \n Abbildung 8.27: Beispiel f\u00fcr Timer/Bedienung\n In diesem Fall ist %I0 wahr, so dass der voreingestellte Wert des Timers 10 ist. W\u00e4re %I0 falsch, w\u00e4re\n der voreingestellte Zeitgeberwert 5.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 472 / 1332\n \n Kapitel 9\n \n Fortgeschrittene Themen\n 9.1 Kinematik\n@@ -23463,15 +23463,15 @@\n X, joint 1 along axis Y, joint 2 along axis Z), and these machines are called Cartesian machines (or\n machines with Trivial Kinematics). These are the most common machines used in milling, but are not\n very common in other domains of machine control (e.g. welding: puma-typed robots).\n LinuxCNC unterst\u00fctzt Achsen mit Namen: X Y Z A B C U V W. Die X Y Z-Achsen beziehen sich normalerweise auf die \u00fcblichen kartesischen Koordinaten. Die A B C Achsen beziehen sich auf Rotationskoordinaten um die X Y Z Achsen. Die Achsen U V W beziehen sich auf zus\u00e4tzliche Koordinaten, die\n \u00fcblicherweise kolinear zu den X-Y-Z-Achsen angeordnet sind.\n 1 Kinematics: a two way function to transform from Cartesian space to joint space.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 473 / 1332\n \n 9.1.2 Triviale Kinematik\n Die einfachsten Maschinen sind solche, bei denen jedes Gelenk entlang einer der kartesischen Achsen angeordnet ist. Bei diesen Maschinen ist die Abbildung vom kartesischen Raum (das G-CodeProgramm) auf den Gelenkraum (die tats\u00e4chlichen Aktoren der Maschine) trivial. Es handelt sich um\n eine einfache 1:1-Abbildung:\n pos->tran.x = joints[0];\n@@ -23522,15 +23522,15 @@\n bewerkstelligen, sofern die verwendeten Achsenbuchstaben keine L\u00fccken aufweisen.\n Etwas komplizierter wird es, wenn der Maschine ein oder mehrere Achsenbuchstaben fehlen. Das\n Problem der fehlenden Achsenbuchstaben wird durch die Verwendung des Modulparameters coordinates= mit dem Modul trivkins gel\u00f6st. Jeder angegebenen Koordinate werden fortlaufend Gelenknummern zugewiesen. Eine Drehmaschine kann mit coordinates=xz beschrieben werden. Die Gelenkzuweisungen lauten dann:\n 2 Wenn die Maschine (z. B. eine Drehmaschine) nur mit den X-, Z- und A-Achsen gemountet ist und die INI-Datei von LinuxCNC nur die Definition dieser 3 Verbindungen enth\u00e4lt, ist die vorherige Behauptung falsch. Weil wir derzeit haben (Gelenk0 =\n X, Gelenk 1 = Z, Gelenk 2 = A), die davon ausgeht, dass Gelenk 1 = Y. Um dies in LinuxCNC zum Laufen zu bringen, definieren\n Sie einfach alle Achsen (XYZA), LinuxCNC verwendet dann eine einfache Schleife in HAL f\u00fcr nicht verwendete Y-Achse.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 474 / 1332\n \n joints[0] = pos->tran.x\n joints[1] = pos->tran.z\n \n Die Verwendung des Parameters coordinates= wird f\u00fcr Konfigurationen empfohlen, bei denen die Achsenbuchstaben weggelassen werden. Fu\u00dfnote:[ In der Vergangenheit unterst\u00fctzte das Modul trivkins\n@@ -23551,15 +23551,15 @@\n 9.1.3 Nicht-triviale Kinematik\n There can be quite a few types of machine setups (robots: puma, scara; hexapods etc.). Each of them is\n set up using linear and rotary joints. These joints don\u2019t usually match with the Cartesian coordinates,\n therefore we need a kinematics function which does the conversion (actually 2 functions: forward and\n inverse kinematics function).\n Zur Veranschaulichung der obigen Ausf\u00fchrungen werden wir eine einfache Kinematik namens Zweibein (eine vereinfachte Version des Dreibeins, das eine vereinfachte Version des Hexapods ist) analysieren.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 475 / 1332\n \n Abbildung 9.1: Zweibein-Einrichtung\n Das Zweibein (engl. bipod), um das es hier geht, besteht aus zwei Motoren, die an einer Wand angebracht sind und an denen ein Ger\u00e4t mit einem Draht aufgeh\u00e4ngt ist. Die Gelenke sind in diesem Fall\n die Abst\u00e4nde zwischen den Motoren und dem Ger\u00e4t (in der Abbildung mit AD und BD bezeichnet).\n Die Position der Motoren ist per Konvention festgelegt. Motor A befindet sich in (0,0), was bedeutet,\n@@ -23572,15 +23572,15 @@\n 9.1.3.1 Vorw\u00e4rts-Transformation\n Um vom gemeinsamen Raum in den kartesischen Raum zu transformieren, werden wir einige trigonometrische Regeln anwenden (die rechtwinkligen Dreiecke, die durch die Punkte (0,0), (Dx,0), (Dx,Dy)\n und das Dreieck (Dx,0), (Bx,0) und (Dx,Dy) bestimmt werden).\n Wir k\u00f6nnen leicht erkennen, dass:\n \n ebenso:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 476 / 1332\n \n Wenn wir das eine von dem anderen abziehen, erhalten wir:\n \n und deshalb:\n \n@@ -23612,15 +23612,15 @@\n 9.1.4 Details zur Implementierung\n Ein Kinematikmodul ist als HAL-Komponente implementiert und darf Pins und Parameter exportieren.\n Es besteht aus mehreren \u201dC\u201d-Funktionen (im Gegensatz zu HAL-Funktionen):\n int kinematicsForward(const double *joint, EmcPose *world,\n const KINEMATICS_FORWARD_FLAGS *fflags,\n KINEMATICS_INVERSE_FLAGS *iflags)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 477 / 1332\n \n Implementiert die forward kinematics function.\n int kinematicsInverse(const EmcPose * world, double *joints,\n const KINEMATICS_INVERSE_FLAGS *iflags,\n KINEMATICS_FORWARD_FLAGS *fflags)\n@@ -23655,15 +23655,15 @@\n int rtapi_app_main(void)\n void rtapi_app_exit(void)\n \n Dies sind die Standardfunktionen zum Auf- und Abbauen von RTAPI-Modulen.\n Wenn sie in einer einzigen Quelldatei enthalten sind, k\u00f6nnen Kinematikmodule mit halcompile kompiliert und installiert werden. Weitere Informationen finden Sie in der Manpage halcompile(1) oder\n im HAL-Handbuch.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 478 / 1332\n \n 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp\n Eine weitere M\u00f6glichkeit, ein benutzerdefiniertes Kinematikmodul zu erstellen, ist die Anpassung der\n HAL Komponente userkins. Diese Vorlagenkomponente kann von einem Benutzer lokal ge\u00e4ndert und\n mit halcompile erstellt werden.\n@@ -23693,15 +23693,15 @@\n des Endeffektors in Bezug auf ein Referenzkoordinatensystem, wenn die Gelenkwinkel bekannt sind\n (vorw\u00e4rtsgerichtete Kinematik), sowie die komplexere umgekehrte Berechnung der erforderlichen\n Gelenkwinkel f\u00fcr eine bestimmte Position und Ausrichtung des Endeffektors in Bezug auf das Referenzkoordinatensystem (inverse Kinematik). Die mathematischen Standardwerkzeuge, die f\u00fcr diese\n Berechnungen verwendet werden, sind Matrizen, d. h. Tabellen mit Parametern und Formeln, die den\n Umgang mit den Rotationen und Translationen erleichtern, die bei der Berechnung der Vorw\u00e4rts- und\n R\u00fcckw\u00e4rtskinematik erforderlich sind.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 479 / 1332\n \n Detaillierte Kenntnisse der Mathematik sind f\u00fcr einen Serienroboter nicht erforderlich, da LinuxCNC\n ein Kinematikmodul bereitstellt, das einen Algorithmus namens \u201dgenserkins\u201d implementiert, um die\n Vorw\u00e4rts- und R\u00fcckw\u00e4rtskinematik f\u00fcr einen generischen Serienroboter zu berechnen. Um einen bestimmten Serienroboter zu steuern, muss genserkins mit Daten versorgt werden, so dass es ein mathematisches Modell der mechanischen Struktur des Roboters aufbauen und damit die Mathematik\n tun kann.\n@@ -23736,15 +23736,15 @@\n system\u201d\n 2. a : positive distance, along X, between two joint axes specified in machine units (mm or inch)\n defined in the system\u2019s INI file.\n 3. d : positive or negative length along Z (also in machine units)\n Die Parameters\u00e4tze werden immer in der gleichen Reihenfolge abgeleitet und ein Satz wird durch\n das Setzen des d-Parameters abgeschlossen. Dadurch bleibt die Z-Achse unseres CS nicht auf das\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 480 / 1332\n \n n\u00e4chste Gelenk ausgerichtet! Dies mag verwirrend erscheinen, aber wenn man sich an diese Regel\n h\u00e4lt, erh\u00e4lt man einen funktionierenden Satz von Parametern. Sobald der d-Parameter gesetzt ist,\n muss die X-Achse unseres CS auf die Achse des n\u00e4chsten Gelenks zeigen.\n \n@@ -23772,87 +23772,87 @@\n \n 9.2.8 Detailliertes Beispiel (RV-6SL)\n Im Folgenden wird eine Methode beschrieben, wie man die erforderlichen \u201dmodifizierten DH-Parameter\u201d\n f\u00fcr einen Mitsubishi RV-6SDL ableitet und wie man die Parameter in der HAL-Datei einstellt, um sie\n mit der \u201dgenserkins\u201d-Kinematik in LinuxCNC zu verwenden. Die erforderlichen Abmessungen werden\n am besten aus einer vom Hersteller des Roboters zur Verf\u00fcgung gestellten Ma\u00dfzeichnung entnommen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 481 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 482 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 483 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 484 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 485 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 486 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 487 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 488 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 489 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 490 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 491 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 492 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 493 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 494 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 495 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 496 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 497 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 498 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 499 / 1332\n \n 9.2.9 Danksagungen\n Vielen Dank an den Benutzer Aciera f\u00fcr den gesamten Text und die Grafiken f\u00fcr den RV-6SL-Roboter!\n \n 9.3 5-Axis Kinematics\n@@ -23883,29 +23883,29 @@\n CAD/CAM-Systeme werden in der Regel verwendet, um die 3D-CAD-Modelle des Werkst\u00fccks sowie\n die CAM-Daten f\u00fcr die Eingabe in die CNC-5-Achsen-Maschine zu erzeugen. Die Daten zur Werkzeugoder Fr\u00e4serposition (CL) setzen sich aus der Position der Fr\u00e4serspitze und der Ausrichtung des Fr\u00e4sers\n relativ zum Werkst\u00fcckkoordinatensystem zusammen. Zwei Vektoren, wie sie von den meisten CAMSystemen erzeugt werden und in Abb. 1 dargestellt sind, enthalten diese Informationen:\n \n Der K-Vektor entspricht dem dritten Vektor der Pose-Matrix E6 , die in der 6-Achsen-Roboterkinematik\n [3] verwendet wurde, und der Q-Vektor entspricht dem vierten Vektor von E6 . Vektor von E6 . In MASTERCAM zum Beispiel sind diese Informationen in der Zwischenausgabedatei \u201d.nci\u201d enthalten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 500 / 1332\n \n Abbildung 9.2: Standortdaten des Fr\u00e4sers\n \n 9.3.4 Translations- und Rotationsmatrizen\n Homogene Transformationen bieten eine einfache M\u00f6glichkeit, die Mathematik der Mehrachsenkinematik von Maschinen zu beschreiben. Eine Transformation des Raums H ist eine 4x4-Matrix und kann\n Translations- und Rotationstransformationen darstellen. Wird ein Punkt x,y,x durch einen Vektor u =\n {x,y,z,1}T beschrieben, so wird seine Transformation v durch das Matrixprodukt\n \n Es gibt vier grundlegende Transformationsmatrizen, auf die sich die 5-Achsen-Kinematik st\u00fctzen\n kann:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 501 / 1332\n \n Die Matrix T(a,b,c) impliziert eine Verschiebung in den Koordinatenrichtungen X, Y und Z um die\n Betr\u00e4ge a, b bzw. c. Die R-Matrizen implizieren Rotationen des Winkels theta um die X-, Y- bzw. ZKoordinatenachse. Die Symbole \u201dC\u201d und \u201dS\u201d beziehen sich auf die Kosinus- bzw. Sinusfunktionen.\n \n 9.3.5 Tisch Dreh-/Schwenkkonfigurationen mit 5 Achsen (engl. Table Rotary/Tilting 5-Axis Configurations)\n@@ -23913,15 +23913,15 @@\n montiert. Typischerweise werden zwei Formen verwendet:\n \u2022 Ein Drehtisch, der sich um die vertikale Z-Achse dreht (C-Drehung, sekund\u00e4r), ist auf einem Kipptisch montiert, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, prim\u00e4r). Das Werkst\u00fcck\n ist auf dem Drehtisch montiert.\n \u2022 Ein Kipptisch, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, sekund\u00e4r), ist auf einem\n Drehtisch montiert, der sich um die Z-Achse dreht (C-Drehung, prim\u00e4r), wobei das Werkst\u00fcck auf\n dem Kipptisch liegt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 502 / 1332\n \n Abbildung 9.3: Allgemeine Konfiguration und Koordinatensysteme\n Eine mehrachsige Maschine kann als eine Reihe von Gliedern betrachtet werden, die durch Gelenke\n verbunden sind. Durch die Einbettung eines Koordinatenrahmens in jedes Glied der Maschine und\n die Verwendung homogener Transformationen k\u00f6nnen wir die relative Position und Orientierung zwischen diesen Koordinatenrahmen beschreiben\n@@ -23931,46 +23931,46 @@\n Im Allgemeinen kann eine solche Transformation wie folgt aussehen:\n \n wobei jede Matrix i-1 Aj eine Translationsmatrix T oder eine Rotationsmatrix R der Form (2,3) ist.\n Die Matrixmultiplikation ist ein einfacher Vorgang, bei dem die Elemente jeder Zeile der linken Matrix\n A mit den Elementen jeder Spalte der rechten Matrix B multipliziert und summiert werden, um ein\n Element der Ergebnismatrix C zu erhalten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 503 / 1332\n \n In Abb. 2 ist eine generische Konfiguration mit Koordinatensystemen dargestellt [4]. Sie umfasst sowohl Tischdreh-/Schwenkachsen als auch Spindel-Dreh-/Schwenkachsen. Nur zwei der Drehachsen\n werden tats\u00e4chlich in einer Werkzeugmaschine verwendet.\n Zun\u00e4chst werden wir die Transformationen f\u00fcr die erste der oben erw\u00e4hnten Konfigurationen entwickeln, d. h. einen Tisch vom Typ Kippen/Drehen (trt) ohne Drehachsenversatz. Wir k\u00f6nnen ihr den\n Namen xyzac-trt-Konfiguration geben.\n Wir entwickeln auch die Transformationen f\u00fcr den gleichen Typ (xyzac-trt), aber mit rotierenden Achsenvers\u00e4tzen.\n Dann entwickeln wir die Transformationen f\u00fcr eine xyzbc-trt-Konfiguration mit Rotationsachsen-Offsets.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 504 / 1332\n \n 9.3.5.1 Transformationen f\u00fcr eine xyzac-trt-Werkzeugmaschine mit Werkst\u00fcckversatz\n \n Abbildung 9.4: vismach-Modell von xyzac-trt mit \u00fcbereinstimmenden Drehachsen\n Wir befassen uns hier mit einer vereinfachten Konfiguration, bei der sich die Kippachse und die Drehachse in einem Punkt schneiden, der als Drehpunkt bezeichnet wird, wie in Abb. 4 dargestellt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 505 / 1332\n \n Abbildung 9.5: Kipp-/Drehkonfiguration des Tisches\n Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden:\n \n wobei die Matrizen wie folgt aufgebaut sind:\n \n In diesen Gleichungen definieren Lx , Ly , Lz die Verschiebungen des Drehpunktes der beiden Drehachsen A und C relativ zum Ursprung des Werkst\u00fcckkoordinatensystems. Au\u00dferdem sind Px , Py , Pz die\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 506 / 1332\n \n relativen Abst\u00e4nde des Drehpunkts zur Position der Fr\u00e4serspitze, die auch als \u201dGelenkkoordinaten\u201d\n des Drehpunkts bezeichnet werden k\u00f6nnen. Der Drehpunkt liegt im Schnittpunkt der beiden Drehachsen. Die Vorzeichen der Terme SA und SC unterscheiden sich von denen in [2,3], da dort die Tischdrehungen relativ zu den Werkst\u00fcckkoordinatenachsen negativ sind (beachten Sie, dass sin(-theta) =\n -sin(theta), cos(-theta) = cos(theta)).\n Multipliziert mit (5) ergibt sich das Ergebnis:\n@@ -23989,58 +23989,58 @@\n schreiben:\n \n Der Vektor auf der rechten Seite kann auch als das Produkt einer Matrix und eines Vektors geschrieben\n werden, was folgendes ergibt:\n \n Dies kann wie folgt erweitert werden\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 507 / 1332\n \n was die Vorw\u00e4rtstransformation der Kinematik darstellt.\n Wir k\u00f6nnen P aus Gleichung (13) als \u201dP = (Q AP )-1 * Q\u201d berechnen. Die quadratische Matrix ist eine homogene 4x4-Matrix, die eine Rotationsmatrix R und einen Translationsvektor q enth\u00e4lt, deren\n Umkehrung wie folgt geschrieben werden kann:\n \n wobei R^T die Transponierung von R ist (Zeilen und Spalten vertauscht). Wir erhalten also:\n \n Die gew\u00fcnschten Gleichungen f\u00fcr die inverse Transformation der Kinematik k\u00f6nnen somit wie folgt\n geschrieben werden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 508 / 1332\n \n 9.3.5.2 Transformationen f\u00fcr eine xyzac-trt-Maschine mit Drehachsenverschiebungen\n \n Abbildung 9.6: Vismach-Modell von xyzac-trt mit Rotationsachsenversatz (positiv)\n Wir haben es hier mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse und die\n Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dy aufweisen. Au\u00dferdem gibt es\n zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der Dz genannt\n wird. Ein Vismach-Modell ist in Abb. 5 dargestellt, und die Offsets sind in Abb. 6 gezeigt (positive\n Offsets in diesem Beispiel). Um die Konfiguration zu vereinfachen, werden die Vers\u00e4tze Lx , Ly , Lz des\n vorherigen Falls nicht ber\u00fccksichtigt. Sie sind wahrscheinlich nicht notwendig, wenn man die G54\n Offsets in LinuxCNC mit Hilfe der \u201dtouch of\u201d-Funktion verwendet.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 509 / 1332\n \n Abbildung 9.7: Kipp-/Drehkonfiguration des Tisches xyzac-trt, mit Achsenversatz\n Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden:\n \n wobei die Matrizen wie folgt aufgebaut sind:\n \n In diesen Gleichungen definieren Dy , Dz die Verschiebungen des Drehpunktes der Drehachsen A relativ\n zum Ursprung des Werkst\u00fcckkoordinatensystems. Au\u00dferdem sind Px , Py , Pz die relativen Abst\u00e4nde\n des Drehpunkts zur Position der Schneidenspitze, die auch als \u201dGelenkkoordinaten\u201d des Drehpunkts\n bezeichnet werden k\u00f6nnen. Der Drehpunkt liegt auf der Drehachse A.\n Bei Multiplikation gem\u00e4\u00df (18) erhalten wir:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 510 / 1332\n \n Wir k\u00f6nnen nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor\n K gleichsetzen, d. h.:\n \n Aus diesen Gleichungen lassen sich die Drehwinkel thetaA , thetaC ermitteln. Aus der dritten Zeile\n@@ -24059,42 +24059,42 @@\n was die Vorw\u00e4rtstransformation der Kinematik darstellt.\n Wir k\u00f6nnen P aus Gleichung (25) als \u201dP = (Q AP )-1 * Q\u201d l\u00f6sen, indem wir wie zuvor (15) verwenden. Wir\n erhalten somit:\n \n Die gew\u00fcnschten Gleichungen f\u00fcr die inverse Transformation der Kinematik k\u00f6nnen somit wie folgt\n geschrieben werden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 511 / 1332\n \n 9.3.5.3 Transformationen f\u00fcr eine xyzbc-trt-Maschine mit Drehachsenverschiebungen\n \n Abbildung 9.8: Vismach-Modell von xyzbc-trt mit Rotationsachsenversatz (negativ)\n Wir haben es hier wieder mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse (um\n die y-Achse) und die Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dx haben. Au\u00dferdem gibt es zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der\n Dz genannt wird. Ein Vismach-Modell ist in Abb. 7 dargestellt (negative Vers\u00e4tze in diesem Beispiel),\n und die positiven Vers\u00e4tze sind in Abb. 8 dargestellt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 512 / 1332\n \n Abbildung 9.9: Kipp-/Drehkonfiguration des Tisches xyzbc-trt, mit Achsenversatz\n Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden:\n \n wobei die Matrizen wie folgt aufgebaut sind:\n \n In diesen Gleichungen definieren Dx , Dz die Verschiebungen des Drehpunkts der Drehachsen B relativ\n zum Ursprung des Werkst\u00fcckkoordinatensystems. Au\u00dferdem sind Px , Py , Pz die relativen Abst\u00e4nde\n des Drehpunkts zur Position der Schneidenspitze, die auch als \u201dGelenkkoordinaten\u201d des Drehpunkts\n bezeichnet werden k\u00f6nnen. Der Drehpunkt liegt auf der B-Drehachse.\n Bei Multiplikation gem\u00e4\u00df (29) erhalten wir:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 513 / 1332\n \n Wir k\u00f6nnen nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor\n K gleichsetzen, d. h.:\n \n Aus diesen Gleichungen lassen sich die Drehwinkel thetaB , thetaC ermitteln. Aus der dritten Zeile\n@@ -24113,15 +24113,15 @@\n was die Vorw\u00e4rtstransformation der Kinematik darstellt.\n Wir k\u00f6nnen P aus Gleichung (37) als \u201dP = (Q AP )-1 * Q\u201d l\u00f6sen.\n Mit dem gleichen Ansatz wie zuvor, erhalten wir:\n \n Die gew\u00fcnschten Gleichungen f\u00fcr die inverse Transformation der Kinematik k\u00f6nnen somit wie folgt\n geschrieben werden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 514 / 1332\n \n 9.3.6 Beispiele f\u00fcr Dreh-/Kipptische\n LinuxCNC enth\u00e4lt Kinematik-Module f\u00fcr die \u201dxyzac-trt\u201d und \u201dxyzbc-trt\u201d Topologien in der Mathematik oben beschrieben. F\u00fcr interessierte Benutzer ist der Quellcode im Git-Baum im Verzeichnis\n \u201dsrc/emc/kinematics/\u201d verf\u00fcgbar.\n Beispielkonfigurationen f\u00fcr xyzac-trt und xyzbc-trt befinden sich im Verzeichnis Beispielkonfigurationen (configs/sim/axis/vismach/5axis/table-rotary-tilting/).\n@@ -24157,15 +24157,15 @@\n net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset\n \n wo:\n :tool-offset ---------------- Signalname\n motion.tooloffset.z --------- Ausgang HAL-Pin von LinuxCNC Bewegungsmodul\n xyzac-trt-kins.tool-offset -- Eingang HAL-Pin zu xyzac-trt-kins\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 515 / 1332\n \n 9.3.7 Kundenspezifische Kinematik-Komponenten\n LinuxCNC implementiert Kinematik mit einer HAL-Komponente, die beim Starten von LinuxCNC geladen wird. Die h\u00e4ufigste Kinematik-Modul, trivkins, implementiert Identit\u00e4t (trivial) Kinematik, wo\n es eine eins-zu-eins-Korrespondenz zwischen einer Achse Koordinate Buchstaben und einem Motor\n Gelenk. Zus\u00e4tzliche Kinematik-Module f\u00fcr komplexere Systeme (einschlie\u00dflich \u201dxyzac-trt\u201d und \u201dxyzbctrt\u201d oben beschrieben) sind verf\u00fcgbar.\n@@ -24193,29 +24193,29 @@\n verwendet werden, erstellt werden. Diese Pins k\u00f6nnen mit einem Signal zur dynamischen Steuerung\n verbunden werden oder einmalig mit HAL-Verbindungen wie:\n # Offset-Parameter einstellen\n net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset\n setp xyzac-trt-kins.y-versatz 0\n setp xyzac-trt-kins.z-versatz 20\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 9.3.8 Abbildungen\n \n Abbildung 9.10: Kipp-/Drehkonfiguration des Tisches\n \n 516 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 9.11: Spindel-/Tischkippkonfiguration\n \n 517 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 518 / 1332\n \n Abbildung 9.12: Kipp-/Drehkonfiguration der Spindel\n \n 9.3.9 VERWEISE\n 1. AXIS MACHINE TOOLS: Kinematics and Vismach Implementation in LinuxCNC, RJ du Preez,\n@@ -24231,15 +24231,15 @@\n 9.4 Schaltbare Kinematik (switchkins)\n 9.4.1 Einf\u00fchrung\n Eine Reihe von Kinematikmodulen unterst\u00fctzt die Umschaltung von Kinematikberechnungen. Diese Module unterst\u00fctzen eine Standard-Kinematikmethode (Typ0), eine zweite eingebaute Methode\n (Typ1) und (optional) eine vom Benutzer bereitgestellte Kinematikmethode (Typ2). F\u00fcr die Typ1Methode wird in der Regel die Identit\u00e4tskinematik verwendet.\n Die Switchkins-Funktionalit\u00e4t kann f\u00fcr Maschinen verwendet werden, bei denen eine Steuerung der\n Gelenke nach der Referenzfahrt w\u00e4hrend des Einrichtens erforderlich ist oder um Bewegungen in der\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 519 / 1332\n \n N\u00e4he von Singularit\u00e4ten aus dem G-Code zu vermeiden. Solche Maschinen verwenden f\u00fcr die meisten\n Vorg\u00e4nge spezifische Kinematikberechnungen, k\u00f6nnen aber f\u00fcr die Steuerung einzelner Gelenke nach\n der Referenzfahrt auf Identit\u00e4tskinematik umgestellt werden.\n Die Auswahl des Kinematik-Typs erfolgt \u00fcber einen Motion-Modul-HAL-Pin, der \u00fcber ein G-CodeProgramm oder \u00fcber interaktive MDI-Befehle aktualisiert werden kann. Die halui-Bestimmungen f\u00fcr\n@@ -24273,15 +24273,15 @@\n KINEMATICS = genhexkins coordinates=xyzabc\n # custom identity ordering: joint0==c, joint1==b, ...\n KINEMATICS = genhexkins coordinates=cbazyx\n \n Anmerkung\n Wenn der Parameter coordinates= weggelassen wird, lauten die Standard-Zuordnungen der Gelenkbuchstaben joint0==x,joint1=y,\u2026.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 520 / 1332\n \n Die Gelenkzuweisungen f\u00fcr Identit\u00e4ts-Kinematiken bei Verwendung des Koordinatenparameters sind\n identisch mit denen f\u00fcr das Modul trivkins. Die Duplizierung von Achsenbuchstaben zur Zuweisung\n mehrerer Gelenke f\u00fcr einen Koordinatenbuchstaben ist jedoch im Allgemeinen nicht f\u00fcr serielle oder\n parallele Kinematiken (wie genserkins, pumakins, genhexkins usw.) geeignet, bei denen es keine einfache Beziehung zwischen Gelenken und Koordinaten gibt.\n@@ -24314,15 +24314,15 @@\n 9.4.4.1 HAL-Verbindungen\n Die Switchkins-Funktionalit\u00e4t wird durch den Pin motion.switchkins-type aktiviert. Normalerweise\n wird dieser Pin von einem analogen Ausgangspin wie motion.analog-out-03 gespeist, so dass er durch\n M68-Befehle gesetzt werden kann. Beispiel:\n net :kinstype-select <= motion.analog-out-03\n net :kinstype-select => motion.switchkins-type\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 521 / 1332\n \n 9.4.4.2 G-/M-Code-Befehle\n Die Auswahl des Kinstype wird verwaltet \u00fcber G-Code-Sequenzen wie:\n ...\n M68 E3 Q1 ;analog-out-03 aktualisieren, um Kinstype 1 auszuw\u00e4hlen\n@@ -24359,15 +24359,15 @@\n LinuxCNC Bahnplanung verwendet Grenzen f\u00fcr die Position (min, max), Geschwindigkeit und Beschleunigung f\u00fcr jede anwendbare Koordinaten-Buchstaben in der Konfiguration INI-Datei angegeben. Beispiel f\u00fcr den Buchstaben L (im Satz XYZABCUVW):\n [AXIS_L]\n MIN_LIMIT =\n MAX_LIMIT =\n MAX_VELOCITY =\n MIN_ACCELERATION =\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 522 / 1332\n \n Die angegebenen INI-Datei-Grenzwerte gelten f\u00fcr die Standardkinematik vom Typ 0, die beim Start\n aktiviert wird. Beim Umschalten auf eine andere Kinematik sind diese Grenzen m\u00f6glicherweise nicht\n anwendbar. Da jedoch beim Umschalten der Kinematik eine Synchronisierung zwischen Interpreter\n und Bewegung erforderlich ist, k\u00f6nnen INI-HAL-Pins verwendet werden, um Grenzwerte f\u00fcr einen\n@@ -24411,15 +24411,15 @@\n sinnvoll sein, die in der System-INI-Datei angegebenen Grenzwerte festzulegen oder wiederherzustellen. Ein Beispiel: Ein Roboter startet nach der Referenzfahrt mit einer komplexen (nicht identischen) Kinematik (Typ 0). Das System ist so konfiguriert, dass es auf eine Identit\u00e4tskinematik (Typ1)\n umgeschaltet werden kann, um einzelne Gelenke mit den herk\u00f6mmlichen Buchstaben aus dem Satz\n XYZABCUVW zu manipulieren. Die Einstellungen in der INI-Datei ([AXIS_L]) sind beim Betrieb mit\n Identit\u00e4tskinematik (Typ1) nicht anwendbar. Um diesem Anwendungsfall gerecht zu werden, k\u00f6nnen\n die Benutzer-M-code-Skripte wie folgt gestaltet werden:\n M129 (Switch to identity type1)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 523 / 1332\n \n 1. INI-Datei lesen und auswerten (\u201dparsen\u201d)\n 2. hal: setzt die INI-HAL Grenzstifte f\u00fcr jeden Achsenbuchstaben ([AXIS_L]) entsprechend der identit\u00e4tsbezogenen Gelenknummer INI-Datei ([JOINT_N])\n 3. HAL: setp motion.switchkins-type 1\n 4. MDI: Ausf\u00fchren eines Synchronisations-G-Codes (M66E0L0)\n@@ -24446,15 +24446,15 @@\n 2. 5axis/table-rotary-tilting/xyzbc-trt.ini (xyzac-trt-kins)\n 3. 5axis/bridgemill/5axis.ini (5axiskins)\n 4. scara/scara.ini (scarakins)\n 5. puma/puma560.ini (genserkins)\n 6. puma/puma.ini (pumakins)\n 7. hexapod-sim/hexapod.ini (genhexkins)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 524 / 1332\n \n 9.4.6 Kinematische Bestimmungen des Benutzers\n Benutzerdefinierte Kinematiken k\u00f6nnen auf Run-In-Place (\u201dRIP\u201d) Builds kodiert und getestet werden. Eine Vorlagendatei src/emc/kinematics/userkfuncs.c ist in der Distribution enthalten. Diese Datei kann in ein Benutzerverzeichnis kopiert/umbenannt und bearbeitet werden, um benutzerdefinierte\n Kinematik mit kinstype==2 bereitzustellen.\n Die benutzerdefinierte Kinematikdatei kann bei rt-preempt-Implementierungen aus den Out-of-TreeQuellen kompiliert werden oder bei rtai-Systemen durch Ersetzen der In-Tree-Vorlagendatei (src/emc/kinematics/userkfuncs.c).\n@@ -24480,15 +24480,15 @@\n von Konfigurationseinstellungen.\n Nach dem Aufruf von switchkinsSetup() pr\u00fcft rtapi_app_main() die \u00fcbergebenen Parameter, erstellt\n eine HAL Komponente und ruft dann die f\u00fcr jeden Kinstype (0,1,2) identifizierte Setup-Routine auf.\n Jede Kinstype (0,1,2) Setup-Routine kann (optional) HAL Pins erzeugen und auf Standardwerte setzen.\n Wenn alle Setup-Routinen abgeschlossen sind, gibt rtapi_app_main() hal_ready() f\u00fcr die Komponente\n aus, um die Erstellung des Moduls abzuschlie\u00dfen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 525 / 1332\n \n 9.5 PID Tuning\n 9.5.1 PID-Regler (engl. PID controller)\n A proportional-integral-derivative controller (PID controller) is a common feedback loop component\n in industrial control systems. 3\n@@ -24522,15 +24522,15 @@\n Ein PID-Regler kann zur Regelung jeder messbaren Gr\u00f6\u00dfe verwendet werden, die durch die Beeinflussung einer anderen Prozessgr\u00f6\u00dfe beeinflusst werden kann. Er kann zum Beispiel zur Regelung\n von Temperatur, Druck, Durchfluss, chemischer Zusammensetzung, Geschwindigkeit oder anderen\n Variablen eingesetzt werden. Ein Beispiel f\u00fcr einen Prozess au\u00dferhalb der Industrie, bei dem eine\n grobe PID-Regelung zum Einsatz kommt, ist die Geschwindigkeitsregelung von Autos.\n Einige Regelsysteme ordnen PID-Regler in Kaskaden oder Netzwerken an. Das hei\u00dft, ein \u201dMaster\u201dRegler erzeugt Signale, die von \u201dSlave\u201d-Reglern verwendet werden. Eine h\u00e4ufige Situation sind Motorsteuerungen: Oft soll der Motor eine geregelte Drehzahl haben, wobei der \u201dSlave\u201d-Regler (oft in einen\n 3 This Subsection is taken from an much more extensive article found at https://en.wikipedia.org/wiki/PID_controller\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 526 / 1332\n \n Frequenzumrichter eingebaut) die Drehzahl direkt auf der Grundlage eines proportionalen Eingangs\n steuert. Dieser Slave-Eingang wird vom Ausgang des Master-Reglers gespeist, der auf der Grundlage\n einer verwandten Variablen regelt.\n 9.5.1.2 Theorie\n@@ -24568,15 +24568,15 @@\n weisen einen gewissen Grad an Nichtlinearit\u00e4t auf, so dass Parameter, die unter Volllastbedingungen\n gut funktionieren, beim Anfahren des Prozesses im Leerlauf nicht funktionieren. In diesem Abschnitt\n werden einige herk\u00f6mmliche manuelle Methoden zur Regelkreisabstimmung beschrieben.\n Es gibt mehrere Methoden zur Abstimmung einer PID-Schleife. Die Wahl der Methode h\u00e4ngt weitgehend davon ab, ob die Schleife f\u00fcr die Abstimmung \u201doffline\u201d genommen werden kann oder nicht,\n sowie von der Reaktionsgeschwindigkeit des Systems. Wenn das System offline geschaltet werden\n kann, besteht die beste Abstimmungsmethode oft darin, das System einer sprunghaften \u00c4nderung\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 527 / 1332\n \n des Eingangs zu unterziehen, den Ausgang als Funktion der Zeit zu messen und diese Reaktion zur\n Bestimmung der Regelparameter zu verwenden.\n Einfache Methode Wenn das System am Netz bleiben muss, besteht eine Abstimmungsmethode\n darin, zun\u00e4chst die Werte f\u00fcr I und D auf Null zu setzen. Erh\u00f6hen Sie den P-Wert, bis der Ausgang\n@@ -24652,15 +24652,15 @@\n 9.6 Neuzuordnung (engl. remap) f\u00fcr das Erweitern von G-Code\n 9.6.1 Einf\u00fchrung: Erweiterung des RS274NGC-Interpreters durch Remapping von Codes\n 9.6.1.1 Eine Definition: Neuzuordnung von Codes\n Mit \u201dNeuzuordnung\u201d (engl. Remapping) von Codes meinen wir eine der folgenden Optionen:\n 1. Definition der Semantik neuer - d.h. derzeit nicht zugewiesener - M- oder G-Codes\n 2. Definieren Sie die Semantik eines - derzeit begrenzten - Satzes bestehender Codes neu.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 528 / 1332\n \n 9.6.1.2 Warum sollten Sie den RS274NGC Interpreter erweitern?\n Der Satz von Codes (M,G,T,S,F), die derzeit vom RS274NGC-Interpreter verstanden werden, ist festgelegt und kann nicht durch Konfigurationsoptionen erweitert werden.\n In particular, some of these codes implement a fixed sequence of steps to be executed. While some of\n these, like M6, can be moderately configured by activating or skipping some of these steps through\n@@ -24696,15 +24696,15 @@\n procedure.\n This glue code is impossible to write as an O-word procedure itself, since the RS274NGC language\n lacks the introspective capabilities and access into interpreter internal data structures to achieve\n the required effect. Doing the glue code in - again - C/C+\\+ would be an inflexible and therefore\n unsatisfactory solution.\n Wie sich Embedded Python einf\u00fcgt Um eine einfache Situation einfach und eine komplexe Situation l\u00f6sbar zu machen, wird das Problem des Glue Codes als Zwischenebene wie folgt angegangen:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 529 / 1332\n \n \u2022 For simple situations, a built-in glue procedure (argspec) covers most common parameter passing\n requirements.\n \u2022 For remapping T,M6,M61,S,F there is some standard Python glue which should cover most situations, see Standard Glue.\n \u2022 For more complex situations, one can write your own Python glue to implement new behavior.\n@@ -24738,15 +24738,15 @@\n M-codes section.\n \u2022 Informationen zu unbelegten G-Codes finden Sie hier.\n \u2022 Existing codes that can be reassigned are listed in the remappable codes section.\n Derzeit gibt es zwei vollst\u00e4ndige, nur in Python verf\u00fcgbare Remaps, die in stdglue.py verf\u00fcgbar sind:\n \u2022 ignore_m6\n \u2022 index_lathe_tool_with_wear\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 530 / 1332\n \n Diese sind f\u00fcr die Verwendung mit Drehmaschinen gedacht. Drehb\u00e4nke verwenden nicht M6, um die\n Werkzeuge zu indexieren, sondern den Befehl T.\n This remap also adds wear offsets to the tool offset, e.g. T201 would index to tool 2 (with tool 2\u2019s tool\n offset) and adds wear offset 1. In the tool table, tools numbers above 10000 are wear offsets, e.g. in\n@@ -24781,15 +24781,15 @@\n of which might be required, others might be optional. We have the following options to feed values to\n the procedure:\n 1. Extracting words from the current block and pass them to the procedure as parameters (like\n X22.34 or P47),\n 2. referring to INI file variables,\n 3. referring to global variables (like #2200 = 47.11 or #<_global_param> = 315.2).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 531 / 1332\n \n The first method is preferred for parameters of dynamic nature, like positions. You need to define\n which words on the current block have any meaning for your new code, and specify how that is passed\n to the NGC procedure. Any easy way is to use the argspec statement. A custom prolog might provide\n better error messages.\n@@ -24825,15 +24825,15 @@\n block are ignored with respect to the M400 code. If the P word is not present, fail execution with an\n error.\n \u2022 When an M400 code is encountered, execute myprocedure.ngc along the other modal group 10 Mcodes as per order of execution.\n \u2022 The value of P, and Q are available in the procedure as local named parameters. The may be referred\n to as #

and #. The procedure may test whether the Q word was present with the EXISTS built\n in function.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 532 / 1332\n \n Es wird erwartet, dass die Datei myprocedure.ngc im Verzeichnis [DISPLAY]NC_FILES oder [RS274NGC]SUBR\n existiert.\n Eine ausf\u00fchrliche Erl\u00e4uterung der REMAP (engl. f\u00fcr Neuzuordnung)-Parameter finden Sie im folgenden Referenzteil.\n \n@@ -24873,15 +24873,15 @@\n epilog=\n After executing an ngc procedure, call this Python function. The function is expected to be defined\n in the module_basename.remap module. Optional.\n The python, prolog and epilog options require the Python Interpreter plugin to be configured, and\n appropriate Python functions to be defined there so they can be referred to with these options.\n The syntax for defining a new code, and redefining an existing code is identical.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 533 / 1332\n \n 9.6.3.2 Useful REMAP option combinations\n Note that while many combinations of argspec options are possible, not all of them make sense. The\n following combinations are useful idioms:\n argspec= ngc= modalgroup=_\n@@ -24920,15 +24920,15 @@\n Words DEIJKPQR have no predefined function and are recommended for use as argspec parameters.\n ABCDEFHIJKPQRSTUVWXYZ\n Defines a required word parameter: an uppercase letter specifies that the corresponding word\n must be present in the current block. The word \u0300s value will be passed as a local named parameter\n with a corresponding name. If the @ character is present in the argspec, it will be passed as\n positional parameter, see below.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 534 / 1332\n \n abcdefhijkpqrstuvwxyz\n Defines an optional word parameter: a lowercase letter specifies that the corresponding word\n may be present in the current block. If the word is present, the word\u2019s value will be passed as a\n local named parameter. If the @ character is present in the argspec, it will be passed as positional\n@@ -24965,15 +24965,15 @@\n o endsub\n M2\n \n \u2022 Executing M400 will fail with the message user-defined M400: missing: P.\n \u2022 Executing M400 P123 will display P word=123.000000.\n \u2022 Executing M400 P123 Q456 will display P word=123.000000 and Q word set: 456.000000.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 535 / 1332\n \n Example for positional parameter passing to NGC procedures Assume the code is defined as\n REMAP=M410 modalgroup=10 argspec=@PQr ngc=m410\n and m410.ngc looks as follows:\n o sub\n@@ -25016,15 +25016,15 @@\n self.execute()).\n Angenommen, die Definition lautet wie folgt (Anmerkung: Hier wird argspec nicht verwendet):\n REMAP=G88.1 modalgroup=1 py=involute\n The involute function in python/remap.py listed below does all word extraction from the current\n block directly. Note that interpreter errors can be translated to Python exceptions. Remember this is\n readahead time - execution time errors cannot be trapped this way.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 536 / 1332\n \n import sys\n import traceback\n from math import sin,cos\n from interpreter import *\n@@ -25067,15 +25067,15 @@\n except InterpreterException,e:\n msg = \u201d%d: \u2019%s\u2019 - %s\u201d % (e.line_number,e.line_text, e.error_message)\n return msg\n return INTERP_OK\n \n Die bisher beschriebenen Beispiele finden Sie in \u201dconfigs/sim/axis/remap/getting-started\u201d mit vollst\u00e4ndigen Arbeitskonfigurationen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 537 / 1332\n \n 9.6.4 Aktualisieren einer bestehenden Konfiguration f\u00fcr die Neuzuordnung\n Die Mindestvoraussetzungen f\u00fcr die Verwendung von \u201dREMAP\u201d-Anweisungen sind wie folgt:\n \u2022 The Python plug in must be activated by specifying a [PYTHON]TOPLEVEL=\n in the INI file.\n@@ -25116,15 +25116,15 @@\n of the interpreter.\n Unser remapped Code muss also etwas mehr tun, als nur einige Befehle zu generieren, um die Maschine so zu bewegen, wie wir es wollen - er muss auch die Schritte aus dieser Sequenz wiederholen,\n die n\u00f6tig sind, um den Interpreter und die Task bei Laune zu halten.\n However, this does not affect the processing of tool change-related commands in task and iocontrol.\n This means when we execute step 6b this will still cause iocontrol to do its thing.\n Decisions, decisions:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 538 / 1332\n \n \u2022 M\u00f6chten wir eine O-Wort-Prozedur verwenden oder alles in Python-Code tun?\n \u2022 Ist die \u201diocontrol\u201d-HAL-Sequenz (tool-prepare/tool-prepared und tool-change/tool-changed Pins) gut\n genug oder brauchen wir eine andere Art von HAL-Interaktion f\u00fcr unseren Werkzeugwechsler (z.B.:\n mehr beteiligte HAL-Pins mit einer anderen Interaktionssequenz)?\n@@ -25162,15 +25162,15 @@\n For the sake of documentation, we\u2019ll disable these iocontrol sequences, and roll our own - the result\n will look and feel like the existing interaction, but now we have complete control over them because\n they are executed in our own O-word procedure.\n So what we\u2019ll do is use some motion.digital-* and motion.analog-* pins, and the associated M62\n .. M68 commands to do our own HAL interaction in our O-word procedure, and those will effectively\n replace the iocontrol tool-prepare/tool-prepared and tool-change/tool-changed sequences. So we\u2019ll\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 539 / 1332\n \n define our pins replacing existing iocontrol pins functionally, and go ahead and make the iocontrol\n interactions a loop. We\u2019ll use the following correspondence in our example:\n iocontrol pin correspondence in the examples\n iocontrol.0 pin\n@@ -25220,15 +25220,15 @@\n prolog=change_prolog ngc=change epilog=change_epilog\n \n So the prolog covering steps 1 and 2 would look like so - we decide to pass a few variables to\n the remap procedure which can be inspected and changed there, or used in a message. Those are:\n tool_in_spindle, selected_tool (tool numbers) and their respective tooldata indices current_pocket\n and selected_pocket:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 540 / 1332\n \n Anmerkung\n Die inzwischen nicht mehr verwendeten Namen selected_pocket und current_pocket verweisen\n auf einen sequentiellen Werkzeugdatenindex f\u00fcr Werkzeugelemente, die aus einer Werkzeugtabelle\n ([EMCIO]TOOL_TABLE) oder \u00fcber eine Werkzeugdatenbank ([EMCIO]DB_PROGRAM) geladen werden.\n@@ -25275,15 +25275,15 @@\n # cause a sync()\n self.tool_change_flag = True\n self.set_tool_parameters()\n return INTERP_OK\n else:\n return \u201dM6 aborted (return code %.1f)\u201d % (self.return_value)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 541 / 1332\n \n except Exception, e:\n return \u201dM6/change_epilog: %s\u201d % (e)\n \n This replacement M6 is compatible with the built in code, except steps 3-5 need to be filled in with\n@@ -25317,15 +25317,15 @@\n \u2022 M6 (change_prolog): #, #, #, #\n \u2022 M61 (settool_prolog): # , #\n \u2022 S (setspeed_prolog): #\n \u2022 F (setfeed_prolog): #\n If you have specific needs for extra parameters to be made visible, that can simply be added to the\n prolog - practically all of the interpreter internals are visible to Python.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 542 / 1332\n \n 9.6.5.6 Making minimal changes to the built in codes, including M6\n Remember that normally remapping a code completely disables all internal processing for that code.\n However, in some situations it might be sufficient to add a few codes around the existing M6 built in\n implementation, like a tool length probe, but other than that retain the behavior of the built in M6.\n@@ -25375,15 +25375,15 @@\n cblock = self.blocks[self.remap_level]\n if not cblock.t_flag:\n return \u201dT requires a tool number\u201d\n tool\n \n = cblock.t_number\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 543 / 1332\n \n if tool:\n (status, pocket) = self.find_tool_pocket(tool)\n if status != INTERP_OK:\n return \u201dT%d: pocket not found\u201d % (tool)\n@@ -25431,15 +25431,15 @@\n remap is aborted.\n The way to do this is by using the [RS274NGC]ON_ABORT_COMMAND feature. This INI option specifies a\n O-word procedure call which is executed if task for some reason aborts program execution. on_abort\n receives a single parameter indicating the cause for calling the abort procedure, which might be used\n for conditional cleanup.\n Die Gr\u00fcnde sind in nml_intf/emc.hh definiert\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 544 / 1332\n \n EMC_ABORT_TASK_EXEC_ERROR = 1,\n EMC_ABORT_AUX_ESTOP = 2,\n EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3,\n EMC_ABORT_TASK_STATE_OFF = 4,\n@@ -25488,15 +25488,15 @@\n Stellen Sie sicher, dass sich on_abort.ngc im Suchpfad des Interpreters befindet (empfohlener Ort:\n SUBROUTINE_PATH, um Ihr NC_FILES-Verzeichnis nicht mit internen Prozeduren zu \u00fcberladen).\n Statements in that procedure typically would assure that post-abort any state has been cleaned up,\n like HAL pins properly reset. For an example, see configs/sim/axis/remap/rack-toolchange.\n Beachten Sie, dass das Beenden eines remapped Codes durch R\u00fcckgabe von INTERP_ERROR aus\n dem Epilog (siehe vorheriger Abschnitt) auch den Aufruf der Prozedur on_abort bewirkt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 545 / 1332\n \n 9.6.5.9 Fehlerbehandlung: Fehlschlagen einer NGC-Prozedur mit neu zugeordnetem Code\n Wenn Sie in Ihrer Handler-Prozedur feststellen, dass eine Fehlerbedingung aufgetreten ist, verwenden\n Sie nicht M2, um Ihren Handler zu beenden - siehe oben:\n If displaying an operator error message and stopping the current program is good enough, use the\n@@ -25530,15 +25530,15 @@\n change gears appropriately if not.\n 9.6.6.2 Anpassen des Verhaltens von M0, M1, M60\n A use case for remapping M0/M1 would be to customize the behavior of the existing code. For instance,\n it could be desirable to turn off the spindle, mist and flood during an M0 or M1 program pause, and\n turn these settings back on when the program is resumed.\n For a complete example doing just that, see configs/sim/axis/remap/extend-builtins/, which adapts M1 as laid out above.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 546 / 1332\n \n 9.6.7 Creating new G-code cycles\n A G-code cycle as used here is meant to behave as follows:\n \u2022 On first invocation, the associated words are collected and the G-code cycle is executed.\n \u2022 If subsequent lines just continue parameter words applicable to this code, but no new G-code, the\n@@ -25582,15 +25582,15 @@\n [PYTHON]\n TOPLEVEL = \n Dateiname des anf\u00e4nglichen Python-Skripts, das beim Starten ausgef\u00fchrt wird. Dieses Skript\n ist f\u00fcr die Einrichtung der Paketnamensstruktur verantwortlich, siehe unten.\n PATH_PREPEND = \n Dieses Verzeichnis dem PYTHON_PATH voranstellen. Eine sich wiederholende Gruppe.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 547 / 1332\n \n PATH_APPEND = \n Dieses Verzeichnis an PYTHON_PATH anh\u00e4ngen. Eine sich wiederholende Gruppe.\n LOG_LEVEL = \n Log level of plugin-related actions. Increase this if you suspect problems. Can be very verbose.\n@@ -25628,15 +25628,15 @@\n Hier werden aufgabenbezogene Abrufe erwartet.\n 9.6.9.2 Der Interpreter aus der Sicht von Python\n \n The interpreter is an existing C++ class (Interp) defined in src/emc/rs274ngc. Conceptually all oword. Python calls are methods of this Interp class, although there is no explicit Python definition of this class (it is a Boost.Python wrapper instance) and hence receive the as the first\n parameter self which can be used to access internals.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 548 / 1332\n \n 9.6.9.3 Die Interpreterfunktionen __init__ und __delete__\n If the TOPLEVEL module defines a function __init__, it will be called once the interpreter is fully\n configured (INI file read, and state synchronized with the world model).\n Wenn das Modul TOPLEVEL eine Funktion __delete__ definiert, wird sie einmal aufgerufen, bevor der\n@@ -25676,15 +25676,15 @@\n \u2013 when a comment like ;py, is executed - during execution of a remapped\n code: any prolog=, python= and epilog= handlers.\n Calling O-word Python subroutines\n Arguments:\n self\n The interpreter instance.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 549 / 1332\n \n *args\n The list of actual positional parameters. Since the number of actual parameters may vary, it is\n best to use this style of declaration:\n # this would be defined in the oword module\n@@ -25722,15 +25722,15 @@\n print(\u201d%s: %s\u201d % (w, words[w]))\n if words[\u2019p\u2019] < 78: # NB: could raise an exception if p were optional\n return \u201dfailing miserably\u201d\n return INTERP_OK\n \n R\u00fcckgabewerte:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 550 / 1332\n \n INTERP_OK\n Return this on success. You need to import this from interpreter.\n a message text\n Returning a string from a handler means this is an error message, abort the program. Works like\n@@ -25770,15 +25770,15 @@\n # Post-sync()-Ausf\u00fchrung wird hier fortgesetzt:\n pin_status = emccanon.GET_EXTERNAL_DIGITAL_INPUT(0,0);\n print(\u201dpin status=\u201d,pin_status)\n \n Warnung\n The yield feature is fragile. The following restrictions apply to the usage of yield INTERP_EXECUTE_FINISH:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 551 / 1332\n \n \u2022 Python-Code, der ein yield INTERP_EXECUTE_FINISH ausf\u00fchrt, muss Teil einer Remap-Prozedur\n sein. Yield funktioniert nicht in einer Python-O-word-Prozedur.\n \u2022 Eine Python-Remap-Subroutine, welche die Anweisung yield INTERP_EXECUTE_FINISH enth\u00e4lt,\n darf keinen Wert zur\u00fcckgeben, wie dies bei normalen Python-Yield-Anweisungen der Fall ist.\n@@ -25820,15 +25820,15 @@\n return \u201dtestparam forgot to assign #\u201d\n return INTERP_OK\n o sub\n (debug, call_level=#<_call_level> myname=#)\n ; try commenting out the next line and run again\n # = [# * 3]\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 552 / 1332\n \n #1 = [#1 * 5]\n #2 = [#2 * 3]\n o endsub\n m2\n@@ -25870,15 +25870,15 @@\n \n except InterpreterException,e:\n msg = \u201d%d: \u2019%s\u2019 - %s\u201d % (e.line_number,e.line_text, e.error_message)\n return msg # ersetzt regul\u00e4r ausgegebene Fehlermeldung\n \n Canon The canon layer is practically all free functions. Example:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 553 / 1332\n \n import emccanon\n def example(self,*args):\n ....\n emccanon.STRAIGHT_TRAVERSE(line,x0,y0,z0,0,0,0,0,0,0)\n@@ -25915,15 +25915,15 @@\n \u2022 Import that module from the TOPLEVEL script.\n # namedparams.py\n # trivial example\n def _pi(self):\n return 3.1415926535\n # = [2 * # * #<_pi>]\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 554 / 1332\n \n Functions in namedparams.py are expected to return a float or int value. If a string is returned, this\n sets the interpreter error message and aborts execution.\n Es werden nur Funktionen mit f\u00fchrendem Unterstrich als Parameter hinzugef\u00fcgt, da dies die RS274NGCKonvention f\u00fcr Globals ist.\n It is possible to redefine an existing predefined parameter by adding a Python function of the same\n@@ -25955,15 +25955,15 @@\n no further action is taken. This can be used for instance to minimally adjust the built in behavior be\n preceding or following it with some other statements.\n \u2022 Otherwise, the # and # parameters are extracted from the subroutine\u2019s parameter\n space. This means that the NGC procedure could change these values, and the epilog takes the\n changed values in account.\n \u2022 Then, the Canon command SELECT_TOOL(#) is executed.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 555 / 1332\n \n 9.6.11.2 M6: change_prolog and change_epilog\n Diese schlie\u00dfen ein NGC-Verfahren f\u00fcr den M6-Werkzeugwechsel ein.\n Actions of change_prolog\n \u2022 Die folgenden drei Schritte sind nur anwendbar, wenn die Komponente \u201diocontrol-v2\u201d verwendet\n@@ -25994,15 +25994,15 @@\n be preceding or following it with some other statements.\n \u2022 Otherwise, the # parameter is extracted from the subroutine\u2019s parameter space,\n and used to set the interpreter\u2019s current_pocket variable. Again, the procedure could change this\n value, and the epilog takes the changed value in account.\n \u2022 Then, the Canon command CHANGE_TOOL(#) is executed.\n \u2022 Die neuen Werkzeugparameter (Versatz, Durchmesser usw.) werden eingestellt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 556 / 1332\n \n 9.6.11.3 G-Code-Zyklen: cycle_prolog und cycle_epilog\n These wrap a NGC procedure so it can act as a cycle, meaning the motion code is retained after\n finishing execution. If the next line just contains parameter words (e.g. new X,Y values), the code is\n executed again with the new parameter words merged into the set of the parameters given in the first\n@@ -26034,15 +26034,15 @@\n \u2013 retain the current motion mode so a continuation line without a motion code will execute the same\n motion code.\n 9.6.11.4 S (Set Speed) : setspeed_prolog and setspeed_epilog\n TBD\n 9.6.11.5 F (Set Feed) : setfeed_prolog and setfeed_epilog\n TBD\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 557 / 1332\n \n 9.6.11.6 M61 Set tool number : settool_prolog and settool_epilog\n TBD\n \n 9.6.12 Remapped code execution\n@@ -26100,15 +26100,15 @@\n or these flags into the [EMC]DEBUG variable as needed. For a current list of debug flags see src/emc/nml_intf/d\n 9.6.12.5 Fehlersuche in eingebettetem Python-Code\n Debugging of embedded Python code is harder than debugging normal Python scripts, and only a\n limited supply of debuggers exists. A working open-source based solution is to use the Eclipse IDE,\n and the PydDev Eclipse plug in and its remote debugging feature.\n Um diesen Ansatz zu verwenden:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 558 / 1332\n \n \u2022 Installieren Sie Eclipse \u00fcber das Ubuntu Software Center (w\u00e4hlen Sie die erste Option).\n \u2022 Install the PyDev plug in from the Pydev Update Site.\n \u2022 Setup the LinuxCNC source tree as an Eclipse project.\n \u2022 Start the Pydev Debug Server in Eclipse.\n@@ -26125,15 +26125,15 @@\n \n To cover the last two steps: the o procedure helps to get into the debugger from MDI mode.\n See also the call_pydevd function in util.py and its usage in remap.involute to set a breakpoint.\n Here\u2019s a screen-shot of Eclipse/PyDevd debugging the involute procedure from above:\n \n See the Python code in configs/sim/axis/remap/getting-started/python for details.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 559 / 1332\n \n 9.6.13 Axis Preview and Remapped code execution\n For complete preview of a remapped code\u2019s tool path some precautions need to be taken. To understand what is going on, let\u2019s review the preview and execution process (this covers the AXIS case, but\n others are similar):\n First, note that there are two independent interpreter instances involved:\n@@ -26163,15 +26163,15 @@\n \u2022 M0 (pause a running program temporarily)\n \u2022 M1 (pause a running program temporarily if the optional stop switch is on)\n \u2022 M60 (exchange pallet shuttles and then pause a running program temporarily)\n \u2022 S (set spindle speed)\n \u2022 F (set feed)\n Note that the use of M61 currently requires the use of iocontrol-v2.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 560 / 1332\n \n 9.6.14.2 Currently unallocated G-codes:\n Currently unallocated G-codes (for remapping) must be selected from the blank areas of the following\n tables. All the listed G-codes are already defined in the current implementation of LinuxCNC and may\n not be used to remap new G-codes. (Developers who add new G-codes to LinuxCNC are encouraged\n@@ -26249,15 +26249,15 @@\n \n Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9\n \n G28\n \n G28.1\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 561 / 1332\n \n Tabelle 9.8: Tabelle der zugewiesenen G-Codes 50-59\n #\n 30\n 31\n@@ -26341,15 +26341,15 @@\n Gxx\n G60\n G61\n \n Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9\n G61.1\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 562 / 1332\n \n Tabelle 9.11: (continued)\n #\n 62\n 63\n@@ -26431,15 +26431,15 @@\n G93\n \n Gxx.1 Gxx.2 Gxx.3 Gxx.4 Gxx.5 Gxx.6 Gxx.7 Gxx.8 Gxx.9\n G90.1\n G91.1\n G92.1 G92.2 G92.3\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 563 / 1332\n \n Tabelle 9.14: (continued)\n #\n 94\n 95\n@@ -26592,15 +26592,15 @@\n 9.6.14.4 Vorauslesezeit und Ausf\u00fchrungszeit\n FIXME F\u00fcge fehlende Informationen hinzu\n 9.6.14.5 Plugin/Pickle-Hack\n FIXME F\u00fcge fehlende Informationen hinzu\n 9.6.14.6 Modul, Methoden, Klassen, usw. Referenz\n FIXME F\u00fcge fehlende Informationen hinzu\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 564 / 1332\n \n 9.6.15 Einf\u00fchrung: Erweiterung der Task-Ausf\u00fchrung\n FIXME F\u00fcge fehlende Informationen hinzu\n 9.6.15.1 Warum sollten Sie die Task-Ausf\u00fchrung \u00e4ndern wollen?\n FIXME F\u00fcge fehlende Informationen hinzu\n@@ -26628,15 +26628,15 @@\n codes - for instance, once the spindle is turned on and the speed is set, it remains at this setting\n until turned off. The same goes for many codes, like feed, units, motion modes (feed or rapid)\n and so forth.\n 4. Interpreter execution state - Holds information about the block currently executed, whether we\n are in a subroutine, interpreter variables, etc. . Most of this state is aggregated in a - fairly\n unsystematic - structure _setup (see interp_internals.hh).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 565 / 1332\n \n 9.6.17.2 Task and Interpreter interaction, Queuing and Read-Ahead\n The task part of LinuxCNC is responsible for coordinating actual machine commands - movement,\n HAL interactions and so forth. It does not by itself handle the RS274NGC language. To do so, task\n calls upon the interpreter to parse and execute the next command - either from MDI or the current\n@@ -26681,15 +26681,15 @@\n \n To pre-compute the move in N90, the interpreter would need to know where the machine is after line\n N80 - and that depends on whether the probe command succeeded or not, which is not known until it\n is actually executed.\n So, some operations are incompatible with further read-ahead. These are called queue busters, and\n they are:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 566 / 1332\n \n \u2022 Reading a HAL pin\u2019s value with M66: value of HAL pin not predictable.\n \u2022 Loading a new tool with M6: tool geometry not predictable.\n \u2022 Executing a probe with G38.n: final position and success/failure not predictable.\n 9.6.17.5 How queue-busters are dealt with\n@@ -26720,15 +26720,15 @@\n input_flag, probe_flag) and the interpreter returns an INTERP_EXECUTE_FINISH return value, signaling stop readahead for now, and resynch to the caller (task). If no queue busters are found after\n all items are executed, INTERP_OK is returned, signalling that read-ahead may continue.\n When read ahead continues after the synch, task starts executing interpreter read() operations again.\n During the next read operation, the above mentioned flags are checked and corresponding variables\n are set (because the a synch() was just executed, the values are now current). This means that the\n next command already executes in the properly set variable context.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 567 / 1332\n \n 9.6.17.9 Prozedurausf\u00fchrung\n O-word procedures complicate handling of queue busters a bit. A queue buster might be found somewhere in a nested procedure, resulting in a semi-finished procedure call when INTERP_EXECUTE_FINISH\n is returned. Task makes sure to synchronize the world model, and continue parsing and execution as\n long as there is still a procedure executing (call_level > 0).\n@@ -26762,15 +26762,15 @@\n Interpreter action on a Tx command\n Der Interpreter wertet lediglich den Parameter toolnumber aus, sucht den entsprechenden tooldataIndex, speichert ihn f\u00fcr sp\u00e4ter in der Variablen selected_pocket und stellt einen Kanon-Befehl (SELECT_TOOL) in die Warteschlange. Siehe Interp::convert_tool_select in src/emc/rs274/interp_execute.cc.\n Task-Aktion auf SELECT_TOOL Wenn task dazu kommt, ein SELECT_TOOL zu bearbeiten, sendet\n es eine EMC_TOOL_PREPARE Nachricht an den iocontrol Prozess, der die meisten werkzeugbezogenen Aktionen in LinuxCNC bearbeitet.\n In der derzeitigen Implementierung wartet task tats\u00e4chlich darauf, dass iocontrol die Positionierung des Wechslers abschlie\u00dft, was m.E. nicht notwendig ist, da es die Idee zunichte macht, dass die\n Vorbereitung des Wechslers und die Ausf\u00fchrung des Codes parallel laufen k\u00f6nnen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 568 / 1332\n \n Iocontrol-Aktion auf EMC_TOOL_PREPARE Wenn iocontrol den Befehl \u201dSelect Pocket\u201d sieht,\n f\u00fchrt es das entsprechende HAL-Pin-Wackeln aus - es setzt den \u201dtool-prep-number\u201d-Pin, um anzuzeigen, welches Werkzeug als n\u00e4chstes an der Reihe ist, hebt den \u201dtool-prepare\u201d-Pin an und wartet\n darauf, dass der \u201dtool-prepared\u201d-Pin auf High geht.\n When the changer responds by asserting \u201dtool-prepared\u201d, it considers the prepare phase to be completed and signals task to continue. Again, this wait is not strictly necessary IMO.\n@@ -26804,15 +26804,15 @@\n since M6 is a queue buster.\n Was task tut, wenn es einen CHANGE_TOOL-Befehl sieht Auch hier nicht viel mehr, als die\n Kontrolle an iocontrol zu \u00fcbergeben, indem man ihm eine EMC_TOOL_LOAD Nachricht sendet und\n zu warten, bis iocontrol sein Ding gemacht hat.\n Iocontrol-Aktion auf EMC_TOOL_LOAD\n 1. Es best\u00e4tigt den \u201dTool-Change\u201d-Pin\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 569 / 1332\n \n 2. Es wartet, bis der \u201dTool-changed\u201d-Pin aktiv wird\n 3. wenn dies geschehen ist:\n a. deassert \u201dWerkzeugwechsel\u201d\n b. Setzen der Pins tool-prep-number und tool-prep-pocket auf Null\n@@ -26841,15 +26841,15 @@\n \n 9.6.19 Changes\n \u2022 The method to return error messages and fail used to be self.set_errormsg(text) followed by return\n INTERP_ERROR. This has been replaced by merely returning a string from a Python handler or\n oword subroutine. This sets the error message and aborts the program. Previously there was no\n clean way to abort a Python O-word subroutine.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 570 / 1332\n \n 9.6.20 Debugging\n In the [EMC] section of the INI file the DEBUG parameter can be changed to get various levels of\n debug messages when LinuxCNC is started from a terminal.\n Debug level, 0 means no messages. See src/emc/nml_intf/debugflags.h for others\n@@ -26887,15 +26887,15 @@\n waypoint-sample-secs and waypoint-threshold pins. When the backtrack-enable pin is TRUE, the autoreturn path follows the recorded waypoints. When the memory available for waypoints is exhausted,\n offsets are frozen and the waypoint-limit pin is asserted. This restriction applies regardless of the\n state of the backtrack-enable pin. An enabling pin must be deasserted to allow a return to the original\n (non-offset position).\n Backtracking durch Wegpunkte f\u00fchrt zu langsameren Bewegungsraten, da die Bewegungen Punktzu-Punkt unter Ber\u00fccksichtigung der Geschwindigkeits- und Beschleunigungseinstellungen erfolgen.\n Die Geschwindigkeits- und Beschleunigungsgrenzwerte k\u00f6nnen dynamisch verwaltet werden, um Vers\u00e4tze jederzeit zu kontrollieren.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 571 / 1332\n \n Wenn backtrack-enable FALSE ist, wird die automatische R\u00fccklaufbewegung NICHT koordiniert, jede Achse kehrt mit ihrer eigenen Geschwindigkeit auf Null zur\u00fcck. Wenn in diesem Zustand ein kontrollierter Weg gew\u00fcnscht wird, sollte jede Achse manuell auf Null zur\u00fcckgef\u00fchrt werden, bevor ein\n Freigabe-Pin deaktiviert wird.\n Die Pins waypoint-sample-secs, waypoint-threshold und epsilon werden nur ausgewertet, wenn sich\n die Komponente im Leerlauf befindet.\n@@ -26924,15 +26924,15 @@\n \n 9.7.1 \u00c4ndern einer bestehenden Konfiguration\n Eine vom System bereitgestellte HAL-Datei (LIB:hookup_moveoff.tcl) kann verwendet werden, um\n eine bestehende Konfiguration f\u00fcr die Verwendung der moveoff-Komponente anzupassen. Zus\u00e4tzliche Einstellungen in der INI-Datei unterst\u00fctzen die Verwendung einer einfachen Benutzeroberfl\u00e4che\n (moveoff_gui) zur Steuerung von Offsets.\n Wenn die System-HAL-Datei (LIB:hookup_moveoff.tcl) ordnungsgem\u00e4\u00df in einer Konfigurations-INIDatei angegeben ist, wird sie:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 572 / 1332\n \n 1. die urspr\u00fcnglichen Pinverbindungen joint.N.motor-pos-cmd und joint.N.motor-pos-fb trennen\n 2. Die moveoff-Komponente (unter dem Namen mv) mit einem Profil (engl. personality) laden (loadrt),\n die alle in der INI-Datei angegebenen Achsen aufnehmen kann\n 3. Funktionen der Auszugskomponenten in der gew\u00fcnschten Reihenfolge hinzuf\u00fcgen (addf)\n@@ -26974,15 +26974,15 @@\n WAYPOINT_SAMPLE_SECS =\n WAYPOINT_THRESHOLD =\n \n Das moveoff_gui wird verwendet, um zus\u00e4tzliche erforderliche Verbindungen herzustellen und eine\n Popup-GUI zu erstellen:\n 1. Aktivieren/Deaktivieren von Offsets \u00fcber eine Umschalttaste (engl. togglebutton).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 573 / 1332\n \n 2. Bereitstellung einer Schaltfl\u00e4che zum Aktivieren/Deaktivieren des Backtrackings\n 3. Steuertasten zum Inkrementieren/Dekrementieren/Nullstellen jeder Achsenverschiebung\n 4. Anzeige des aktuellen Wertes jeder Achsenverschiebung\n 5. Anzeige des aktuellen Offset-Status (deaktiviert, aktiv, entfernt, etc.)\n@@ -27022,15 +27022,15 @@\n sind:\n net external_enable mv.move-enable\n net external_offset_0 mv.offset-in-0\n net external_offset_1 mv.offset-in-1\n net external_offset_2 mv.offset-in-2\n net external_backtrack_en mv.backtrack-enable\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 574 / 1332\n \n Diese Signale (external_enable, external_offset_M, external_backtrack_en) k\u00f6nnen von nachfolgenden\n HALFILES (einschlie\u00dflich POSTGUI_HALFILEs) verwaltet werden, um eine angepasste Steuerung\n der Komponente zu erm\u00f6glichen, w\u00e4hrend die moveoff_gui-Anzeige f\u00fcr aktuelle Offset-Werte und den\n Offset-Status verwendet wird.\n@@ -27079,15 +27079,15 @@\n [-no_display] (Voreinstellung: nicht verwendet)\n (Verwendung, wenn sowohl externe Steuerungen als auch Anzeigen \u2190)\n (verwendet werden (siehe Hinweis))\n Hinweis: Wenn der moveoff move-enable Pin (mv.move-enable) angeschlossen ist w\u00e4hrend\n moveoff_gui gestartet wird, sind externe Steuerungen erforderlich und nur\n die Bildschirm-Anzeigen sind verf\u00fcgbar.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 575 / 1332\n \n 9.8 Eigenst\u00e4ndiger Interpreter\n Der eigenst\u00e4ndige Interpreter rs274 kann \u00fcber die Kommandozeile verwendet werden.\n \n 9.8.1 Anwendung\n@@ -27125,15 +27125,15 @@\n \n Befehl\n rs274 -g test.ngc -t test.tbl\n \n 9.9 External Axis Offsets\n External axis offsets are supported during teleop (world) jogs and coordinated (G-code) motion. External axis offsets are enabled on a per-axis basis by INI file settings and controlled dynamically by\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 576 / 1332\n \n INI input pins. The INI interface is similar to that used for wheel jogging. This type of interface is\n typically implemented with a manual-pulse-generator (mpg) connected to an encoder INI component\n that counts pulses.\n \n@@ -27164,15 +27164,15 @@\n 9.9.2.2 Other Motion HAL Pins\n 1. motion.eoffset-active Output(bit): non-zero external offsets applied\n 2. motion.eoffset-limited Output(bit): motion inhibited due to soft limit\n \n 9.9.3 Anwendung\n The axis input HAL pins (enable,scale,counts) are similar to the pins used for wheel jogging.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 577 / 1332\n \n 9.9.3.1 Offset-Berechnung\n At each servo period, the axis.L.eoffset-counts pin is compared to its value in the prior period. The\n increase or decrease (positive or negative delta) of the axis.L.eoffset-counts pin is multiplied by the\n current axis.L.eoffset-scale pin value. This product is accumulated in an internal register and exported\n@@ -27208,15 +27208,15 @@\n Der HAL-Pin axis.L.eoffset-request zeigt den aktuellen angeforderten Offset an, der das Produkt aus\n dem internen Z\u00e4hlregister und der eoffset-Skala ist. Im Allgemeinen hinkt der Wert des Pins axis.L.eoffset\n dem Wert von axis.L.eoffset-request hinterher, da der externe Offset einer Beschleunigungsgrenze unterliegt. Beim Betrieb an einer weichen Grenze wirken sich zus\u00e4tzliche Aktualisierungen der\n axis.L.eoffset-counts weiterhin auf den angeforderten externen Offset aus, wie er im axis.L.eoffsetrequest-HAL-Pin reflektiert wird.\n Beim Teleop-Jogging mit aktivierten externen Offsets und angewandten Werten ungleich Null wird\n bei Erreichen eines Soft-Limits die Bewegung in der betreffenden Achse ohne Verz\u00f6gerungsintervall angehalten. In \u00e4hnlicher Weise wird bei einer koordinierten Bewegung mit aktivierten externen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 578 / 1332\n \n Offsets das Erreichen eines Soft-Limits zum Anhalten der Bewegung ohne Verz\u00f6gerungsphase f\u00fchren.\n In diesem Fall spielt es keine Rolle, ob die Offsets Null sind.\n Wenn die Bewegung ohne Verz\u00f6gerungsphase gestoppt wird, k\u00f6nnen die Beschleunigungsgrenzen des Systems verletzt werden, was zu Folgefehlern f\u00fchrt: 1) einem Schleppfehler (und/oder\n einem Klopfen) bei einem Servomotor-System, 2) einem Verlust von Schritten bei einem SchrittmotorSystem. Im Allgemeinen wird empfohlen, externe Offsets so zu verwenden, dass eine Ann\u00e4herung an\n@@ -27241,15 +27241,15 @@\n designed and tested before deployment.\n \n 9.9.4 Related HAL Components\n 9.9.4.1 eoffset_per_angle.comp\n Komponente zur Berechnung eines externen Offsets aus einer Funktion auf der Grundlage eines\n gemessenen Winkels (Drehkoordinate oder Spindel). Siehe die Manpage f\u00fcr Details ($ man eoffset_per_angle).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 579 / 1332\n \n 9.9.5 Testen\n Der externe Achsenversatz wird durch Hinzuf\u00fcgen einer [AXIS_L]-Einstellung f\u00fcr jede Kandidatenachse aktiviert. Zum Beispiel:\n [AXIS_Z]\n OFFSET_AV_RATIO = 0.2\n@@ -27289,15 +27289,15 @@\n HAL logic needed to demonstrate external offset functionality and the GUI HAL pin connections for\n a PyVCP panel are made in separate HAL files. A non-simulation configuration should replace the\n LIB:basic_sim.tcl item HALFILEs appropriate to the machine. The provided PyVCP files (.hal and .xml)\n could be a starting point for application-specific GUI interfaces.\n 9.9.6.1 eoffsets.ini\n Die Sim-Konfiguration sim/configs/axis/external_offsets/eoffsets.ini demonstriert eine kartesische XYZMaschine mit Steuerelementen zur Aktivierung externer Offsets auf jeder Achse.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 580 / 1332\n \n Alle wichtigen Positions- und Offsetwerte werden angezeigt.\n Ein sim_pin GUI bietet Steuerelemente f\u00fcr die Achsen-Offset-Pins: eoffset-scale & eoffset-counts (\u00fcber\n Signal e:counts), eoffset-clear (\u00fcber Signal e:clearall)\n Ein Skript (eoffsets_monitor.tcl) wird verwendet, um die axis.L.counts-Pins beim Ausschalten der Maschine auf Null zu setzen.\n@@ -27325,15 +27325,15 @@\n typically set by a program (or MDI) M68 command to control a motion.analog-out-NN pin.\n Die LEDs auf dem Bedienfeld dienen zur Anzeige wichtiger Statusinformationen.\n Es werden Funktionen f\u00fcr Innen- und Au\u00dfenpolygone (nsides >= 3), Sinuswellen und Rechteckwellen\n bereitgestellt. Die Funktionen k\u00f6nnen mit dem Stift fmul in der Frequenz multipliziert und mit dem\n Stift rfrac in der Amplitude ver\u00e4ndert werden (Bruchteil des Referenzradius).\n Es gibt Bedienelemente zum Starten/Stoppen von Offset-Wellenformen und zum Einstellen des Funktionstyps und seiner Parameter.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 581 / 1332\n \n 9.10 Tool Database Interface\n \n Tool data is conventionally described by a tool table file specified by an inifile setting: [EMCIO]TOOL_TABLE=\n A tool table file consists of a text line for each available tool describing the tool\u2019s parameters, see Tool\n@@ -27370,15 +27370,15 @@\n textual reply format is identical to the text line format used in conventional tool table files. A final\n response of \u201dFINI\u201d terminates the reply.\n 4. Das db_program tritt dann in eine Ereignis-Warteschleife ein, um Befehle zu empfangen, die\n anzeigen, dass Werkzeugdaten von LinuxCNC ge\u00e4ndert wurden. Werkzeugdaten \u00c4nderungen\n umfassen:\n \u2022 a) Laden der Spindel(Tn M6)/Entladen(T0 M6)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 582 / 1332\n \n \u2022 b) \u00c4nderung der Werkzeugparameter (z. B. G10L1Pn)\n \u2022 c) Werkzeugauswechslungen (M61Qn).\n Wenn eine Werkzeugdaten\u00e4nderung auftritt, sendet LinuxCNC einen Befehl an das db_program, bestehend aus einem identifizierenden Befehlsbuchstaben, gefolgt von einer vollst\u00e4ndigen oder abgek\u00fcrzten Werkzeugdatenzeile. Das db_program muss mit einer Antwort antworten, um den Empfang\n zu best\u00e4tigen. Enth\u00e4lt die Antwort den Text \u201dNAK\u201d, wird eine Meldung auf stdout ausgegeben, aber\n@@ -27413,15 +27413,15 @@\n Tool data changes made within LinuxCNC (p,u,l commands) are pushed immediately to the db_program\n which is expected to synchronize its source data. By default, LinuxCNC requests for tool data (g commands) are made at startup only. A database program may update tool usage data on a continuous\n basis so long-lived LinuxCNC applications may benefit by refreshing the tool data provided by the\n db_program. The G-code command G10L0 can be used to request a tool data reload (g command)\n from within G-code programs or by MDI. A reload operation is also typically provided by a Graphical User Interface (GUI) so that on-demand reloads can be requested. For example, a Python GUI\n application can use:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 583 / 1332\n \n #!/usr/bin/env python3\n from linuxcnc import command\n command().load_tool_table()\n \n@@ -27459,15 +27459,15 @@\n 9.10.1.5 Python tooldb module\n The example program uses a LinuxCNC provided Python module (tooldb) that manages the low-level\n details for communication and version verification. This module uses callback functions specified by\n the db_program to respond to the g (get) command and the commands that indicate tool data changes\n (p, l, u).\n The db_program uses the tooldb module by implementing the following Python code:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n user_tools = list(...)\n \n 584 / 1332\n \n # list of available tool numbers\n \n@@ -27513,61 +27513,61 @@\n The sim configs demonstrate the use of the Python tooldb interface module and implement a basic\n flat-file database that tracks tool time usage for multiple tools having equal diameters. The database\n rules support selection of the tool having the lowest operating time.\n The sim configs use a primary task to monitor and respond to tool updates initiated from within LinuxCNC. A periodic task updates tool time usage at reguar intervals. Separate, concurrent tasks\n are implemented as threads to demonstrate the code required when changes are initiated by the\n db_program and demonstrate methods for synchronizing LinuxCNC internal tooldata. Examples include:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 585 / 1332\n \n 1. Aktualisierung der Werkzeugparameter\n 2. addition and removal of tool numbers\n A mutual exclusion lock is used to protect data from inconsistencies due to race conditions between\n LinuxCNC tooldata updates and the database application updates.\n 9.10.2.1 Anmerkungen\n \n When a db_program is used in conjunction with a random tool changer ([EMCIO]RANDOM_TOOLCHANGER\n LinuxCNC maintains a file (db_spindle.tbl in the configuration directory) that consists of a single tool\n table line identifying the current tool in the spindle.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 586 / 1332\n \n Teil II\n \n Anwendung\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 587 / 1332\n \n Kapitel 10\n \n Benutzerschnittstellen\n 10.1 AXIS GUI\n 10.1.1 Einf\u00fchrung\n AXIS ist ein grafisches Frontend f\u00fcr LinuxCNC mit Live-Vorschau und Backplot. Es ist in Python geschrieben und verwendet Tk und OpenGL, um seine Benutzeroberfl\u00e4che anzuzeigen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 588 / 1332\n \n Abbildung 10.1: Das AXIS-Fenster\n \n 10.1.2 Erste Schritte\n Wenn Ihre Konfiguration derzeit nicht f\u00fcr die Verwendung von AXIS eingerichtet ist, k\u00f6nnen Sie sie\n \u00e4ndern, indem Sie die .ini Datei (INI-Datei) bearbeiten. \u00c4ndern Sie im Abschnitt [DISPLAY] die Zeile\n [DISPLAY] in DISPLAY = axis.\n Die Beispielkonfiguration \u201dsim/axis.ini\u201d ist bereits f\u00fcr die Verwendung von AXIS als Front-End konfiguriert.\n Wenn AXIS gestartet wird, \u00f6ffnet sich ein Fenster wie das in der Abbildung Abbildung 10.1 oben.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 589 / 1332\n \n 10.1.2.1 INI-Einstellungen\n For more information on INI file settings that can change how AXIS works see the Display Section\n and the Axis Section of the INI Configuration Chapter.\n \u2022 CYCLE_TIME - Passen Sie die Antwortrate der GUI in Millisekunden an. Typisch 100, nutzbarer\n@@ -27600,15 +27600,15 @@\n Anmerkung\n Nun notwendige Schritte um dasselbe Programm erneut auszuf\u00fchren, h\u00e4ngen von Ihrem Setup und\n Ihren Anforderungen ab. M\u00f6glicherweise m\u00fcssen Sie mehr Material laden und Offsets setzen oder\n einen Offset verschieben und festlegen und dann das Programm erneut ausf\u00fchren. Wenn Ihr Material\n fixiert ist, m\u00fcssen Sie das Programm m\u00f6glicherweise nur erneut ausf\u00fchren. Weitere Informationen\n zum Befehl run finden Sie im Abschnitt zum Men\u00fc Maschine.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 590 / 1332\n \n 10.1.3 AXIS Fenster\n Das AXIS-Fenster enth\u00e4lt die folgenden Elemente:\n \u2022 Ein Anzeigebereich, der Folgendes anzeigt:\n \u2013 Eine Vorschau der geladenen Datei (in diesem Fall axis.ngc) sowie des aktuellen Speicherorts des\n@@ -27645,15 +27645,15 @@\n INI-Datei konfiguriert haben. Weitere Informationen zum Angeben eines zu verwendenden Editors\n finden Sie im Abschnitt DISPLAY.\n \u2022 Reload - Laden Sie die aktuelle G-Code-Datei neu. Wenn Sie es bearbeitet haben, m\u00fcssen Sie es\n neu laden, damit die \u00c4nderungen wirksam werden. Wenn Sie eine Datei stoppen und von vorne\n beginnen m\u00f6chten, laden Sie die Datei neu. Das Neuladen der Symbolleiste ist identisch mit dem\n Men\u00fc.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 591 / 1332\n \n \u2022 G-Code speichern unter\u2026 - Speichern Sie die aktuelle Datei unter einem neuen Namen.\n \u2022 Eigenschaften - Die Summe der Eilgang- und Vorschubbewegungen. Ber\u00fccksichtigt keine Beschleunigung, \u00dcberblendung oder den Pfadmodus, sodass die gemeldete Zeit nie weniger als die tats\u00e4chliche Laufzeit ist.\n \u2022 Werkzeugtabelle bearbeiten\u2026 - Wie bei Bearbeiten, wenn Sie einen Editor definiert haben, k\u00f6nnen\n Sie die Werkzeugtabelle \u00f6ffnen und bearbeiten.\n@@ -27686,15 +27686,15 @@\n \u2022 In MDI-Verlauf einf\u00fcgen - Einf\u00fcgen aus der Zwischenablage in das MDI-Verlaufsfenster\n \u2022 Kalibrierung - Startet den Kalibrierungsassistenten (emccalib.tcl). Die Kalibrierung liest die HALDatei und erstellt f\u00fcr jedes setp, das eine Variable aus der INI-Datei verwendet, die sich in einem\n [AXIS_L],[JOINT_N],[SPINDLE_S] oder [TUNE] Abschnitt befindet, ein Eintrag, der bearbeitet und\n getestet werden kann.\n \u2022 HAL-Konfiguration anzeigen - \u00d6ffnet das Fenster HAL-Konfiguration, in dem Sie HAL-Komponenten,\n Pins, Parameter, Signale, Funktionen und Threads \u00fcberwachen k\u00f6nnen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 592 / 1332\n \n \u2022 HAL-Messger\u00e4t - \u00d6ffnet ein Fenster, in dem Sie einen einzelnen HAL-Pin, ein Signal oder einen\n Parameter \u00fcberwachen k\u00f6nnen.\n \u2022 HAL Scope - \u00d6ffnet ein virtuelles Oszilloskop zur Anzeige von HAL-Werten (vertikal) \u00fcber die Zeit\n (horizontal) erm\u00f6glicht.\n@@ -27726,15 +27726,15 @@\n von negativ nach positiv aussieht. Diese Ansicht eignet sich am besten f\u00fcr den Blick auf X & Z.\n \u2022 Perspektivische Ansicht (engl. perspective view) - Die perspektivische Ansicht (oder P-Ansicht) zeigt\n den G-Code an, der das Teil aus einem einstellbaren Blickwinkel betrachtet, standardm\u00e4\u00dfig X+, Y-,\n Z+. Die Position ist mit der Maus und dem Zug-/Drehwahlschalter einstellbar. Diese Ansicht ist eine\n Kompromissansicht, und obwohl sie versucht, drei (bis neun!) Diese Ansicht ist am besten, wenn\n Sie alle drei (bis neun) Achsen gleichzeitig sehen m\u00f6chten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 593 / 1332\n \n Sichtweise\n Das AXIS-Anzeigeauswahlmen\u00fc \u201dAnsicht\u201d bezieht sich auf die Ansichten \u201dOben\u201d, \u201dVorne\u201d und\n \u201dSeitlich\u201d. Diese Begriffe sind korrekt, wenn die Z-Achse der CNC-Maschine senkrecht steht, mit\n positivem Z nach oben. Dies gilt f\u00fcr vertikale Fr\u00e4smaschinen, was wahrscheinlich die h\u00e4ufigste\n@@ -27774,15 +27774,15 @@\n \u2022 Geschwindigkeit anzeigen - Eine Anzeige der Geschwindigkeit ist manchmal n\u00fctzlich, um zu sehen,\n wie nah Ihre Maschine an ihren Entwurfsgeschwindigkeiten l\u00e4uft. Sie kann auf Wunsch deaktiviert\n werden.\n \u2022 Restweg anzeigen (engl. Show Distance to Go) - Der Restweg ist ein sehr n\u00fctzlicher Hinweis, wenn\n Sie ein unbekanntes G-Code-Programm zum ersten Mal ausf\u00fchren. In Kombination mit den Eilgangund Vorschub-Override-Steuerungen k\u00f6nnen unerw\u00fcnschte Werkzeug- und Maschinensch\u00e4den vermieden werden. Sobald das G-Code-Programm fehlerfrei l\u00e4uft, kann die Restweg-Anzeige auf Wunsch\n deaktiviert werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 594 / 1332\n \n \u2022 Koordinaten in gro\u00dfer Schrift\u2026 - Die Koordinaten der Achsen und die Geschwindigkeit im Voraus\n werden in gro\u00dfer Schrift in der Werkzeugwegansicht angezeigt.\n \u2022 Live Plot l\u00f6schen - W\u00e4hrend das Werkzeug in der AXIS-Anzeige reist, wird der G-Code-Pfad hervorgehoben. Um das Programm zu wiederholen oder einen Interessenbereich besser zu sehen, k\u00f6nnen\n die zuvor markierten Pfade gel\u00f6scht werden.\n@@ -27836,15 +27836,15 @@\n \n Zeilen \u00fcberspringen mit \u201d/\u201d [Alt-M-/] umschalten\n \n \u2022\n \n Optionale Pause einschalten [Alt-M-1]\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n \u2022\n \n Vergr\u00f6\u00dfern (engl. zoom in)\n \n \u2022\n \n@@ -27898,15 +27898,15 @@\n mit X 0,0033 auf Ihrer Fr\u00e4smaschine befehlen, aber ein Schritt Ihres Schrittmotors oder eine Encoderz\u00e4hlung 0,00125 betr\u00e4gt, dann k\u00f6nnte die befohlene Position 0,0033 sein, aber die tats\u00e4chliche\n Position wird 0,0025 (2 Schritte) oder 0,00375 (3 Schritte) sein.\n Vorschau-Plot Wird eine Datei geladen, so wird im Anzeigebereich eine Vorschau angezeigt. Schnelle Bewegungen (z.B. durch den Befehl G0) werden als cyanfarbene Linien dargestellt. Bewegungen\n im Vorschub (z. B. mit dem Befehl \u201dG1\u201d) werden als durchgezogene wei\u00dfe Linien dargestellt. Verweilzeiten (z. B. durch den Befehl \u201dG4\u201d) werden als kleine rosa \u201dX\u201d-Markierungen dargestellt.\n G0 (Eilgang) Bewegungen vor einer Vorschubbewegung werden nicht in der Vorschau angezeigt. Eilgangbewegungen nach einem T (Werkzeugwechsel) werden erst nach der ersten Vorschubbewegung in der Vorschau angezeigt. Um eine dieser Funktionen auszuschalten, programmieren Sie einen\n G1 ohne Bewegungen vor den G0-Bewegungen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 596 / 1332\n \n Programm-Extents Die Ausdehnungen des Programms in jeder Achse werden angezeigt. An den\n Enden werden die kleinsten und gr\u00f6\u00dften Koordinatenwerte angegeben. In der Mitte ist die Differenz\n zwischen den Koordinaten dargestellt.\n Wenn einige Koordinaten die \u201dweichen Grenzen\u201d in der INI-Datei \u00fcberschreiten, wird die betreffende\n@@ -27941,15 +27941,15 @@\n der Mittelpunkt der Linie. Andernfalls ist der Drehpunkt der Mittelpunkt des gesamten Programms.\n Durch Drehen des Mausrads oder durch Ziehen mit gedr\u00fcckter rechter Maustaste oder durch Ziehen\n mit der Steuerung und gedr\u00fcckter linker Maustaste wird die Vorschaudarstellung vergr\u00f6\u00dfert oder\n verkleinert.\n Durch Anklicken eines der Symbole \u201dVoreingestellte Ansicht\u201d oder durch Dr\u00fccken von \u201dV\u201d k\u00f6nnen\n mehrere voreingestellte Ansichten ausgew\u00e4hlt werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 597 / 1332\n \n 10.1.3.4 Textanzeigebereich\n Wenn Sie mit der linken Maustaste auf eine Zeile des Programms klicken, wird diese Zeile sowohl in\n der grafischen als auch in der Textanzeige hervorgehoben.\n Wenn das Programm l\u00e4uft, wird die Zeile, die gerade ausgef\u00fchrt wird, rot hervorgehoben. Wenn der\n@@ -27968,15 +27968,15 @@\n nicht angeschlossen, erscheint die Schaltfl\u00e4che \u201dBrake\u201d nicht auf dem Bildschirm. Ist die Umgebungsvariable AXIS_NO_AUTOCONFIGURE gesetzt, so ist dieses Verhalten deaktiviert und alle Elemente\n werden angezeigt.\n Die Achsengruppe Mit AXIS k\u00f6nnen Sie die Maschine manuell bewegen. Diese Aktion wird als \u201dJogging\u201d bezeichnet. W\u00e4hlen Sie zun\u00e4chst die zu bewegende Achse durch Anklicken aus. Klicken Sie\n dann auf die Schaltfl\u00e4che \u201d+\u201d oder \u201d-\u201d und halten Sie sie gedr\u00fcckt, je nachdem, in welche Richtung\n Sie verfahren m\u00f6chten. Die ersten vier Achsen k\u00f6nnen auch mit den Pfeiltasten (X und Y), den Tasten\n PAGE UP und PAGE DOWN (Z) und den Tasten [ und ] (A) bewegt werden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 598 / 1332\n \n Wenn Sie \u201dKontinuierlich\u201d ausw\u00e4hlen, wird die Bewegung so lange fortgesetzt, wie die Schaltfl\u00e4che\n oder Taste gedr\u00fcckt wird. Wenn ein anderer Wert gew\u00e4hlt wird, bewegt sich die Maschine bei jedem\n Klicken auf die Schaltfl\u00e4che oder Dr\u00fccken der Taste genau um die angezeigte Strecke. Standardm\u00e4\u00dfig\n sind die folgenden Werte verf\u00fcgbar: \u201d0.1000, 0.0100, 0.0010, 0.0001\u201d.\n@@ -28004,15 +28004,15 @@\n Weitere Informationen finden Sie im Kapitel Referenzfahrt Konfiguration.\n Touch-Off\n Durch Dr\u00fccken von Touch Off oder der END-Taste wird der G5x-Offset f\u00fcr die aktuelle Achse ge\u00e4ndert,\n so dass der aktuelle Achsenwert dem angegebenen Wert entspricht. Ausdr\u00fccke k\u00f6nnen nach den\n Regeln f\u00fcr rs274ngc-Programme eingegeben werden, mit der Ausnahme, dass auf Variablen nicht\n Bezug genommen werden darf. Der resultierende Wert wird als Zahl angezeigt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 599 / 1332\n \n Abbildung 10.4: Touch Off Fenster\n Siehe auch die Optionen im Men\u00fc Maschine: \u201dWerkst\u00fcck ber\u00fchren\u201d und \u201dWerkst\u00fcckhalter ber\u00fchren\u201d.\n Werkzeug Touch Off Durch Dr\u00fccken der Schaltfl\u00e4che Tool Touch Off werden die Werkzeugl\u00e4nge und\n die Offsets des aktuell geladenen Werkzeugs so ver\u00e4ndert, dass die aktuelle Position der Werkzeugspitze mit der eingegebenen Koordinate \u00fcbereinstimmt.\n@@ -28030,15 +28030,15 @@\n spindle.0.reverse sein). Die Schaltfl\u00e4chen in der n\u00e4chsten Zeile erh\u00f6hen oder verringern die Drehgeschwindigkeit. Mit dem Kontrollk\u00e4stchen in der dritten Zeile kann die Spindelbremse aktiviert oder\n deaktiviert werden. Je nach Maschinenkonfiguration werden m\u00f6glicherweise nicht alle Elemente in\n dieser Gruppe angezeigt. Durch Dr\u00fccken der Spindelstarttaste wird die S-Drehzahl auf 1 gesetzt.\n Die K\u00fchlmittelgruppe Mit den beiden Schaltfl\u00e4chen k\u00f6nnen die K\u00fchlmittel Nebel und Flut ein- und\n ausgeschaltet werden. Je nach Konfiguration Ihres Ger\u00e4ts werden m\u00f6glicherweise nicht alle Elemente\n in dieser Gruppe angezeigt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 600 / 1332\n \n 10.1.3.6 MDI\n Mit MDI k\u00f6nnen G-Code-Befehle manuell eingegeben werden. Wenn das Ger\u00e4t nicht eingeschaltet ist\n oder wenn ein Programm l\u00e4uft, sind die MDI-Steuerungen nicht verf\u00fcgbar.\n \n@@ -28053,15 +28053,15 @@\n Durch Verschieben dieses Schiebereglers kann der programmierte Vorschub ge\u00e4ndert werden. Wenn\n z.B. ein Programm \u201dF60\u201d verlangt und der Schieberegler auf 120% eingestellt ist, dann ist der resultierende Vorschub 72.\n 10.1.3.8 Spindeldrehzahl-Anpassung\n Durch Verschieben dieses Schiebereglers kann die programmierte Spindeldrehzahl ge\u00e4ndert werden. Wenn ein Programm beispielsweise S8000 anfordert und der Schieberegler auf 80% eingestellt\n ist, betr\u00e4gt die resultierende Spindeldrehzahl 6400. Dieser Punkt erscheint nur, wenn der HAL-Pin\n spindle.0.speed-out angeschlossen ist.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 601 / 1332\n \n 10.1.3.9 Jog-Geschwindigkeit\n Durch Bewegen dieses Schiebereglers kann die Geschwindigkeit des Joggens ge\u00e4ndert werden. Zum\n Beispiel, wenn der Schieberegler auf 1 Zoll / min eingestellt ist, dann wird ein 0,01-Zoll-Joggen in etwa\n 0,6 Sekunden oder 1/100 einer Minute abgeschlossen. In der N\u00e4he der linken Seite (langsames Joggen) sind die Werte eng beieinander angeordnet, w\u00e4hrend sie in der N\u00e4he der rechten Seite (schnelle\n@@ -28113,15 +28113,15 @@\n Jede (engl. any)\n Variiert\n Handbuch\n Handbuch\n Handbuch\n Handbuch\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 602 / 1332\n \n Tabelle 10.1: (continued)\n Tastenkombination\n I\n C\n@@ -28211,15 +28211,15 @@\n Jede (engl. any)\n Jede (engl. any)\n \n 10.1.5 Show LinuxCNC Status (linuxcnctop)\n AXIS enth\u00e4lt ein Programm namens linuxcnctop, das einige der Details des LinuxCNC-Status anzeigt.\n Sie k\u00f6nnen dieses Programm ausf\u00fchren, indem Sie Maschine > LinuxCNC-Status anzeigen aufrufen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 603 / 1332\n \n Abbildung 10.7: LinuxCNC-Statusfenster\n Der Name jedes Elements wird in der linken Spalte angezeigt. Der aktuelle Wert wird in der rechten\n Spalte angezeigt. Wenn sich der Wert k\u00fcrzlich ge\u00e4ndert hat, wird er rot unterlegt angezeigt.\n \n@@ -28236,15 +28236,15 @@\n MDI>\n (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)\n MDI> G1 F5 X1\n MDI>\n (0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0)\n MDI>\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 604 / 1332\n \n (1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0)\n \n 10.1.7 axis-remote\n AXIS enth\u00e4lt ein Programm namens axis-remote, das bestimmte Befehle an einen laufenden AXIS\n@@ -28273,15 +28273,15 @@\n 10.1.9 Python modules\n AXIS enth\u00e4lt mehrere Python-Module, die f\u00fcr andere n\u00fctzlich sein k\u00f6nnen. F\u00fcr weitere Informationen\n \u00fcber eines dieser Module verwenden Sie pydoc oder lesen Sie den Quellcode. Zu\n diesen Modulen geh\u00f6ren:\n \u2022 emc\u2019 erm\u00f6glicht den Zugriff auf die LinuxCNC Befehls-, Status- und Fehlerkan\u00e4le\n \u2022 gcode bietet Zugriff auf den RS274NGC-Interpreter\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 605 / 1332\n \n \u2022 rs274 bietet zus\u00e4tzliche Tools f\u00fcr die Arbeit mit RS274NGC-Dateien\n \u2022 hal allows the creation of non-realtime HAL components written in Python\n \u2022 _togl stellt ein OpenGL-Widget bereit, das in Tkinter-Anwendungen verwendet werden kann\n \u2022 minigl bietet Zugriff auf die von AXIS verwendete Teilmenge von OpenGL\n@@ -28291,44 +28291,44 @@\n k\u00f6nnen Sie dies mit \u201dscripts/rip-environment\u201d tun.\n \n 10.1.10 Using AXIS in Lathe Mode\n Durch Einf\u00fcgen der Zeile LATHE = 1 in den Abschnitt [DISPLAY] der INI-Datei w\u00e4hlt AXIS den Drehmaschinenmodus. Die Y-Achse wird in den Koordinatenanzeigen nicht angezeigt, die Ansicht wird so\n ge\u00e4ndert, dass die Z-Achse nach rechts und die X-Achse zum unteren Rand des Bildschirms zeigt, und\n mehrere Steuerelemente (z. B. die f\u00fcr voreingestellte Ansichten) werden entfernt. Die Koordinatenanzeigen f\u00fcr X werden durch Durchmesser und Radius ersetzt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 606 / 1332\n \n Abbildung 10.9: AXIS-Drehmaschinenmodus\n Durch Dr\u00fccken von V wird die gesamte Datei angezeigt, sofern eine solche geladen ist.\n Im Drehmaschinenmodus wird die Form des geladenen Werkzeugs (falls vorhanden) angezeigt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 607 / 1332\n \n Abbildung 10.10: Drehwerkzeug-Form\n Um die Anzeige in eine Drehbank mit hinterem Werkzeug zu \u00e4ndern, m\u00fcssen Sie sowohl LATHE =\n 1 als auch BACK_TOOL_LATHE = 1 in der Sektion [DISPLAY] eingeben. Dadurch wird die Ansicht\n umgedreht und das Werkzeug auf die R\u00fcckseite der Z-Achse gelegt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 608 / 1332\n \n Abbildung 10.11: Lathe Back Tool Shape\n \n 10.1.11 Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam\n cutting mode)\n Durch Einf\u00fcgen der Zeile FOAM = 1 in den [DISPLAY]-Abschnitt der INI-Datei w\u00e4hlt AXIS den Schaumschneidemodus. In der Programmvorschau werden die XY-Bewegungen in einer Ebene und die UVBewegungen in einer anderen Ebene angezeigt. In der Live-Darstellung werden Linien zwischen entsprechenden Punkten auf der XY-Ebene und der UV-Ebene gezeichnet. Die speziellen Kommentare\n (XY_Z_POS) und (UV_Z_POS) legen die Z-Koordinaten dieser Ebenen fest, die standardm\u00e4\u00dfig 0 und\n 1,5 Maschineneinheiten betragen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 609 / 1332\n \n Abbildung 10.12: Modus Schaumstoffschneiden\n \n 10.1.12 Erweiterte Konfiguration\n Wenn AXIS gestartet wird, werden die HAL-Pins f\u00fcr die grafische Benutzeroberfl\u00e4che erstellt und\n@@ -28336,15 +28336,15 @@\n kann aber jeder beliebige Dateiname sein. Diese Befehle werden nach der Erstellung des Bildschirms\n ausgef\u00fchrt und garantieren, dass die HAL-Pins des Widgets verf\u00fcgbar sind. Sie k\u00f6nnen mehrere Zeilen\n mit POSTGUI_HALFILE= in der INI haben. Sie werden nacheinander in der Reihenfolge\n ausgef\u00fchrt, in der sie erscheinen.\n Weitere Informationen zu den Einstellungen in der INI-Datei der Funktionsweise von AXIS, finden Sie\n im Kapitel INI-Konfiguration zur Display Section.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 610 / 1332\n \n 10.1.12.1 Programm-Filter\n AXIS hat die M\u00f6glichkeit, geladene Dateien durch ein \u201dFilterprogramm\u201d zu schicken. Dieser Filter\n kann jede gew\u00fcnschte Aufgabe erf\u00fcllen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit\n \u201dM2\u201d endet, oder etwas so Kompliziertes wie die Erzeugung von G-Code aus einem Bild.\n@@ -28365,15 +28365,15 @@\n \n Auf diese Weise kann jedes Python-Skript ge\u00f6ffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter \u201dnc_files/holecircle.py\u201d verf\u00fcgbar. Dieses Skript erzeugt\n G-Code f\u00fcr das Bohren einer Reihe von L\u00f6chern entlang des Umfangs eines Kreises.\n \n Abbildung 10.13: Kreisf\u00f6rmige L\u00f6cher\n Wenn die Umgebungsvariable AXIS_PROGRESS_BAR gesetzt ist, werden in stderr Zeilen der Form\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 611 / 1332\n \n FILTER_PROGRESS=%d\n \n setzt den AXIS-Fortschrittsbalken auf den angegebenen Prozentsatz. Diese Funktion sollte von jedem\n Filter verwendet werden, der lange l\u00e4uft.\n@@ -28409,15 +28409,15 @@\n Beispiel einer .axisrc-Datei\n root_window.bind(\u201d\u201d, \u201ddestroy .\u201d)\n help2.append((\u201dControl-Q\u201d, \u201dQuit\u201d))\n \n Das folgende Beispiel stoppt den Dialog \u201dWollen Sie wirklich beenden\u201d.\n root_window.tk.call(\u201dwm\u201d,\u201dprotocol\u201d,\u201d.\u201d,\u201dWM_DELETE_WINDOW\u201d,\u201ddestroy .\u201d)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 612 / 1332\n \n 10.1.12.5 USER_COMMAND_FILE\n \n A configuration-specific Python file may be specified with an INI file setting [DISPLAY]USER_COMMAND_FIL\n Like a ~/.axisrc file, this file is sourced just before the AXIS GUI is displayed. This file is specific to\n@@ -28452,15 +28452,15 @@\n wobei (AXIS,hide) an erster Stelle steht. Alles, was nach einem (AXIS,stop) kommt, wird w\u00e4hrend der\n Vorschau nicht gezeichnet.\n Diese Kommentare sind n\u00fctzlich, um die Anzeige der Vorschau zu entschlacken (z. B. kann man bei\n der Fehlersuche in einer gr\u00f6\u00dferen G-Code-Datei die Vorschau f\u00fcr bestimmte Teile, die bereits gut\n funktionieren, deaktivieren).\n \u2022 (AXIS,hide) Stoppt die Vorschau (muss zuerst sein)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 613 / 1332\n \n \u2022 (AXIS,show) Setzt die Vorschau fort (muss auf ein hide folgen)\n \u2022 (AXIS,stop) Stoppt die Vorschau von hier bis zum Ende der Datei.\n \u2022 (AXIS,notify,the_text) Zeigt the_text als Infoanzeige an\n Diese Anzeige kann in der AXIS-Vorschau n\u00fctzlich sein, wenn (Debug-, Nachrichten-) Kommentare\n@@ -28543,15 +28543,15 @@\n \n Dir\n IN\n \n Name\n axisui.resume-inhibit\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 614 / 1332\n \n 10.1.14 Hinweise zur AXIS-Anpassung\n AXIS ist eine ziemlich gro\u00dfe und schwer zu durchdringende Codebasis. Das ist hilfreich, um den Code\n stabil zu halten, macht es aber schwierig, ihn anzupassen.\n Hier werden wir Codeschnipsel zeigen, um das Verhalten oder die Darstellung des Bildschirms zu\n@@ -28587,15 +28587,15 @@\n # G-Code-Schriftart ist unabh\u00e4ngig\n root_window.tk.call(\u2019.pane.bottom.t.text\u2019,\u2019configure\u2019,\u2019-foreground\u2019,\u2019blue\u2019)\n #root_window.tk.call(\u2019.pane.bottom.t.text\u2019,\u2019configure\u2019,\u2019-foreground\u2019,\u2019blue\u2019,\u2019-font\u2019,font)\n #root_window.tk.call(\u2019.pane.bottom.t.text\u2019,\u2019configure\u2019,\u2019-foreground\u2019,\u2019blue\u2019,\u2019-font\u2019,font,\u2019- \u2190height\u2019,\u201912\u2019)\n \n 10.1.14.4 \u00c4ndern der Rapid Rate mit Tastenkombinationen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 615 / 1332\n \n # Verwenden Sie Control + \u2018 oder 1-0 als Tastaturk\u00fcrzel f\u00fcr die rapid rate und behalten Sie \u2190\u2018 oder 1-0 f\u00fcr feedrate\n # f\u00fcgt auch Text zur Kurzreferenz in der Hilfe hinzu\n help1.insert(10,(\u201dStrg+ \u2018,1..9,0\u201d, _(\u201dSet Rapid Override from 0% to 100%\u201d)),)\n root_window.bind(\u2019\u2019,lambda event: set_rapidrate(0))\n@@ -28637,15 +28637,15 @@\n commands.set_view_z()\n \n 10.1.14.8 Erstellen neuer AXISUI HAL-Pins\n def user_hal_pins():\n comp.newpin(\u2019my-new-in-pin\u2019, hal.HAL_BIT, hal.HAL_IN)\n comp.ready()\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 616 / 1332\n \n 10.1.14.9 Neue HAL-Komponente und Pins erstellen\n # Komponente erstellen\n mycomp = hal.component(\u2019meine_Komponente\u2019)\n mycomp.newpin(\u2019idle-led\u2019,hal.HAL_BIT,hal.HAL_IN)\n@@ -28686,15 +28686,15 @@\n elif hal.get_value(\u2019gladevcp.user0-tab\u2019):\n root_window.tk.call(\u2019.pane.top.right\u2019,\u2019raise\u2019,\u2019user_0\u2019)\n except:\n pass\n \n 10.1.14.11 Hinzuf\u00fcgen einer GOTO Referenzpunkt (engl. Home)-Taste\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 617 / 1332\n \n def goto_home(axis):\n if s.interp_state == linuxcnc.INTERP_IDLE:\n home = inifile.find(\u2019JOINT_\u2019 + str(inifile.find(\u2019TRAJ\u2019, \u2019COORDINATES\u2019).upper(). \u2190index(axis)), \u2019HOME\u2019)\n mode = s.task_mode\n@@ -28733,15 +28733,15 @@\n print(\u2019mybutton was released\u2019)\n # jede Funktion, die von Tcl aufgerufen wird, muss zu TclCommands hinzugef\u00fcgt werden\n TclCommands.mybutton_clicked = mybutton_clicked\n TclCommands.mybutton_pressed = mybutton_pressed\n TclCommands.mybutton_released = mybutton_released\n commands = TclCommands(root_window)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 10.1.14.13 Interne Variablen lesen\n # die folgenden Variablen k\u00f6nnen aus der vars-Instanz gelesen werden\n print(vars.machine.get())\n print(vars.emcini.get())\n active_codes\n = StringVar\n@@ -28851,15 +28851,15 @@\n task_state\n = IntVar\n taskfile\n = StringVar\n \n 618 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n teleop_mode\n tool\n touch_off_system\n trajcoordinates\n tto_g11\n view_type\n@@ -28903,15 +28903,15 @@\n root_window.tk.call(\u2019.pane.top.right.fnumbers.text\u2019,\u2019configure\u2019,\u2019-foreground\u2019,\u2019green\u2019,\u2019- \u2190background\u2019,\u2019black\u2019)\n \n 10.1.14.18 \u00c4ndern der Buttons der Werkzeugleiste\n # \u00e4ndern der Werkzeugleisten-Buttons\n buW = \u20193\u2019\n buH = \u20192\u2019\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 620 / 1332\n \n boW = \u20193\u2019\n root_window.tk.call(\u2019.toolbar.machine_estop\u2019,\u2019configure\u2019,\u2019-image\u2019,\u2019\u2019,\u2019-text\u2019,\u2019ESTOP\u2019,\u2019- \u2190width\u2019,buW,\u2019-height\u2019,buH,\u2019-borderwidth\u2019,boW)\n root_window.tk.call(\u2019.toolbar.machine_power\u2019,\u2019configure\u2019,\u2019-image\u2019,\u2019\u2019,\u2019-text\u2019,\u2019POWER\u2019,\u2019- \u2190width\u2019,buW,\u2019-height\u2019,buH,\u2019-borderwidth\u2019,boW)\n root_window.tk.call(\u2019.toolbar.file_open\u2019,\u2019configure\u2019,\u2019-image\u2019,\u2019\u2019,\u2019-text\u2019,\u2019OPEN\u2019,\u2019-width\u2019, \u2190buW,\u2019-height\u2019,buH,\u2019-borderwidth\u2019,boW)\n@@ -28942,15 +28942,15 @@\n (0,0,255,255),\n (255,255,0,255),\n (255,255,255,255),\n (0,255,255,255))\n except Exception as e:\n print(e)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 621 / 1332\n \n 10.2 GMOCCAPY\n 10.2.1 Einf\u00fchrung\n GMOCCAPY is a GUI for LinuxCNC, designed to be used with a touch screen, but can also be used on\n normal screens with a mouse or hardware buttons and MPG wheels, as it presents HAL Pins for the\n@@ -28966,15 +28966,15 @@\n 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.\n You could just copy the gmoccapy.pot file to something like it.po and translate that file with gtranslator\n or poedit. After rebuilding, you\u2019d get the GUI in your preference language. To facilitate the sharing\n of the translation, GMOCCAPY is available on the Weblate web interface. GMOCCAPY is currently\n 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\u2019t hesitate to contact me on\n nieson@web.de.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 622 / 1332\n \n 10.2.2 Anforderungen\n GMOCCAPY 3 has been tested on Debian Jessie, Debian Stretch and MINT 18 with LinuxCNC master\n and 2.8 release. It fully support joint / axis changes of LinuxCNC, making it suitable as GUI for Scara,\n Robots or any other config with more joints than axes. So it supports also gantry configs. If you use\n@@ -28987,15 +28987,15 @@\n \n 10.2.3 How to get GMOCCAPY\n GMOCCAPY 3 is included in the standard distribution of LinuxCNC since release 2.7. So the easiest\n way to get GMOCCAPY on your controlling PC is just to download the ISO and install it from the\n CD/DVD/USB-stick. This allows you to receive updates with the regular Debian packages.\n In the release notes aka changelist you can track the latest bugfixes and features.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 623 / 1332\n \n Sie erhalten einen \u00e4hnlichen Bildschirm wie den folgenden (das Design kann je nach Ihrer Konfiguration variieren):\n \n 10.2.4 Basiseinstellung\n GMOCCAPY 3 unterst\u00fctzt die folgenden Befehlszeilenoptionen:\n@@ -29006,15 +29006,15 @@\n Es gibt eigentlich nicht viel zu konfigurieren, um GMOCCAPY auszuf\u00fchren, aber es gibt einige Punkte,\n die Sie beachten sollten, wenn Sie alle Funktionen der GUI nutzen wollen.\n Sie werden eine Reihe von Simulationskonfigurationen (INI-Dateien) finden, die nur die Grundlagen\n zeigen:\n \u2022 gmoccapy.ini\n \u2022 gmoccapy_4_axis.ini\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 624 / 1332\n \n \u2022 lathe_configs/gmoccapy_lathe.ini\n \u2022 lathe_configs/gmoccapy_lathe_imperial.ini\n \u2022 gmoccapy_left_panel.ini\n \u2022 gmoccapy_right_panel.ini\n@@ -29047,15 +29047,15 @@\n PROGRAM_PREFIX = ../../nc_files/\n \n \u2022 DISPLAY = gmoccapy - Damit wird LinuxCNC angewiesen, GMOCCAPY zu verwenden.\n \u2022 PREFERENCE_FILE_PATH - Gives the location and name of the preferences file to be used. In most\n cases this line will not be needed, it is used by GMOCCAPY to store your settings of the GUI, like\n themes, DRO units, colors, and keyboard settings, etc., see settings page for more details.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 625 / 1332\n \n Anmerkung\n If no path or file is given, GMOCCAPY will use as default .pref, if no machine\n name is given in your INI File it will use gmoccapy.pref. The file will be stored in your config directory,\n so the settings will not be mixed if you use several configs. If you only want to use one file for several\n@@ -29091,15 +29091,15 @@\n \u2022 DEFAULT_ANGULAR_VELOCITY - Sets the default jog velocity of the machine for rotary axes.\n 10.2.4.2 Der TRAJ Abschnitt\n \u2022 DEFAULT_LINEAR_VELOCITY = 85.0 - Sets the default jog velocity of the machine.\n Anmerkung\n If not set, half of MAX_LINEAR_VELOCITY will be used. If that value is also not given, it will default\n to 180.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 626 / 1332\n \n \u2022 MAX_LINEAR_VELOCITY = 230.0 - Sets the maximal velocity of the machine. This value will also\n be the maximum linear jog velocity.\n Anmerkung\n Der Standardwert ist 600, falls nicht festgelegt.\n@@ -29136,15 +29136,15 @@\n not be shown.\n \n Anmerkung\n You will find the sample macros in a folder named macros placed in the GMOCCAPY sim folder. If you\n have given several subroutine paths, they will be searched in the order of the given paths. The first\n file found will be used.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 627 / 1332\n \n GMOCCAPY akzeptiert auch Makros, die nach Parametern wie den folgenden fragen:\n [MACROS]\n MACRO = go_to_position X-pos Y-pos Z-pos\n \n@@ -29170,15 +29170,15 @@\n M2\n \n Nach dem Dr\u00fccken der Taste Makro ausf\u00fchren werden Sie aufgefordert, die Werte f\u00fcr X-pos Y-pos\n Z-pos einzugeben, und das Makro wird nur ausgef\u00fchrt, wenn alle Werte angegeben wurden.\n Anmerkung\n Wenn Sie ein Makro ohne Bewegung verwenden m\u00f6chten, beachten Sie auch die Hinweise in bekannte Probleme.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 628 / 1332\n \n Makrobeispiel mit dem \u201dGehe zu Position\u201d-Makro\n 10.2.4.4 Embedded Tabs and Panels\n You can add embedded programs to GMOCCAPY like you can do in AXIS, Touchy and Gscreen. All is\n done by GMOCCAPY automatically if you include a few lines in your INI file in the DISPLAY section.\n@@ -29192,15 +29192,15 @@\n EMBED_TAB_LOCATION = ntb_preview\n EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade\n \n Alles, was Sie beachten m\u00fcssen, ist, dass Sie f\u00fcr jede Registerkarte oder jedes Seitenfeld die genannten drei Zeilen einf\u00fcgen:\n \u2022 EMBED_TAB_NAME = Stellt den Namen der Registerkarte oder des Seitenfensters dar, es ist Ihnen\n \u00fcberlassen, welchen Namen Sie verwenden, aber er muss vorhanden sein!\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 629 / 1332\n \n \u2022 EMBED_TAB_LOCATION = Der Ort, an dem Ihr Programm in der GUI platziert wird, siehe Abbildung Embedded tab locations. G\u00fcltige Werte sind:\n \u2013 ntb_user_tabs (as main tab, covering the complete screen)\n \u2013 ntb_preview (as tab on the preview side (1))\n \u2013 hbox_jog (will hide the jog buttons and introduce your glade file here (2))\n@@ -29235,29 +29235,29 @@\n gladevcp -c gladevcp -u hitcounter.py -H manual-example.hal manual-example.ui\n \n f\u00fcgt das Panel manual-example.ui hinzu, f\u00fcgt einen benutzerdefinierten Python-Handler, hitcounter.py, ein und stellt alle Verbindungen her, nachdem das Panel gem\u00e4\u00df manual-example.hal realisiert wurde.\n hide (engl. f\u00fcr ausblenden)\n \n blendet das gew\u00e4hlte K\u00e4stchen aus.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 630 / 1332\n \n Abbildung 10.14: Eingebettete Registerkartenpositionen\n Anmerkung\n If you make any HAL connections to your custom glade panel, you need to do that in the HAL file\n specified in the EMBED_TAB_COMMAND line, otherwise you may get an error that the HAL pin does\n not exist \u2014 this is because of race conditions loading the HAL files. Connections to GMOCCAPY HAL\n pins need to be made in the postgui HAL file specified in your INI file, because these pins do not exist\n prior of realizing the GUI.\n \n Hier sind einige Beispiele:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n ntb_preview\n \n 631 / 1332\n \n box_right - and GMOCCAPY in MDI mode\n \n@@ -29278,15 +29278,15 @@\n provide a -response HAL pin.\n For more detailed information of the pins see User Created Message HAL Pins.\n Beispiel f\u00fcr die Konfiguration von Benutzernachrichten\n MESSAGE_TEXT = This is a info-message test\n MESSAGE_TYPE = status\n MESSAGE_PINNAME = statustest\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 632 / 1332\n \n MESSAGE_TEXT = This is a yes no dialog test\n MESSAGE_TYPE = yesnodialog\n MESSAGE_PINNAME = yesnodialog\n MESSAGE_TEXT = Text can be small, big, bolditalic,\n@@ -29327,15 +29327,15 @@\n self.widgets.rbt_auto.set_size_request(*BB_SIZE)\n self.widgets.tbtn_setup.set_size_request(*BB_SIZE)\n self.widgets.tbtn_user_tabs.set_size_request(*BB_SIZE)\n self.widgets.btn_exit.set_size_request(*BB_SIZE)\n \n The widget names can the looked up in the /usr/share/gmoccapy.glade file\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 633 / 1332\n \n 10.2.4.8 User CSS File\n Similar to the User command file it\u2019s possible to influence the appearance by cascading style sheets\n (CSS). If a file ~/.gmoccapy_css exists, its contents are loaded into the stylesheet provider and are\n so being applied to the GUI.\n@@ -29379,15 +29379,15 @@\n \n You can specify where to save the log file:\n [DISPLAY]\n LOG_FILE = gmoccapy.log\n \n If LOG_FILE is not set, logging happens to $HOME/.log.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 634 / 1332\n \n 10.2.5 HAL-Pins\n GMOCCAPY exports several HAL pins to be able to react to hardware devices. The goal is to get a\n GUI that may be operated in a tool shop, completely/mostly without mouse or keyboard.\n Anmerkung\n@@ -29420,15 +29420,15 @@\n For the bottom (horizontal) buttons they are:\n \u2022 gmoccapy.h-button.button-0 (bit IN)\n \u2022 gmoccapy.h-button.button-1 (bit IN)\n \u2022 gmoccapy.h-button.button-2 (bit IN)\n \u2022 gmoccapy.h-button.button-3 (bit IN)\n \u2022 gmoccapy.h-button.button-4 (bit IN)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 635 / 1332\n \n \u2022 gmoccapy.h-button.button-5 (bit IN)\n \u2022 gmoccapy.h-button.button-6 (bit IN)\n \u2022 gmoccapy.h-button.button-7 (bit IN)\n \u2022 gmoccapy.h-button.button-8 (bit IN)\n@@ -29534,15 +29534,15 @@\n \n set selected\n \n back\n \n back\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 636 / 1332\n \n Tabelle 10.5: Funktionelle Zuordnung der horizontalen\n Buttons (3)\n Pin\n Tool Mode\n@@ -29595,15 +29595,15 @@\n back\n \n Wir haben also 67 Reaktionen mit nur 10 HAL-Pins!\n These pins are made available to be able to use the screen without a touch panel, or protect it from\n excessive use by placing hardware buttons around the panel. They are available in a sample configuration like shown in the image below.\n Sample configuration \u201dgmoccapy_sim_hardware_button\u201d showing the side buttons\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 637 / 1332\n \n 10.2.5.2 Velocities and Overrides\n All sliders from GMOCCAPY can be connected to hardware encoders or hardware potentiometers.\n Anmerkung\n For GMOCCAPY 3 some HAL pin names have changed when new controls have been implemented.\n@@ -29615,15 +29615,15 @@\n \u2022 gmoccapy.jog.jog-velocity.count-enable (bit IN) - Must be True, to enable counts\n \u2022 gmoccapy.feed.feed-override.counts (s32 IN) - feed override\n \u2022 gmoccapy.feed.feed-override.count-enable (bit IN) - Must be True, to enable counts\n \u2022 gmoccapy.feed.reset-feed-override (bit IN) - reset the feed override to *0%\n \u2022 gmoccapy.spindle.spindle-override.counts (s32 IN) - spindle override\n \u2022 gmoccapy.spindle.spindle-override.count-enable (bit IN) - Must be True, to enable counts\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 638 / 1332\n \n \u2022 gmoccapy.spindle.reset-spindle-override (bit IN) - reset the spindle override to *0%\n \u2022 gmoccapy.rapid.rapid-override.counts (s32 IN) - Maximal Velocity of the *chine\n \u2022 gmoccapy.rapid.rapid-override.count-enable (bit IN) - Must be True, to enable counts\n To connect potentiometers, use the following pins:\n@@ -29653,15 +29653,15 @@\n \u2022 gmoccapy.spc_spindle.increase (bit IN) - As long as True the value of the slider will increase\n \u2022 gmoccapy.spc_spindle.decrease (bit IN) - As long as True the value of the slider will decrease\n \u2022 gmoccapy.spc_spindle.scale (float IN) - A value to scale the output value (handy to change units/min to units/sec)\n \u2022 gmoccapy.spc_spindle.value (float OUT) - Value of the widget\n \u2022 gmoccapy.spc_spindle.scaled-value (float OUT) - Scaled value of the widget .RAPIDS\n \u2022 gmoccapy.spc_rapid.increase (bit IN) - As long as True the value of the slider will increase\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 639 / 1332\n \n \u2022 gmoccapy.spc_rapid.decrease (bit IN) - As long as True the value of the slider will decrease\n \u2022 gmoccapy.spc_rapid.scale (float IN) - A value to scale the output value (handy to change units/min\n to units/sec)\n \u2022 gmoccapy.spc_rapid.value (float OUT) - Value of the widget\n@@ -29696,15 +29696,15 @@\n For the standard XYZ config following HAL pins will be available:\n \u2022 gmoccapy.jog.axis.jog-x-plus (bit IN)\n \u2022 gmoccapy.jog.axis.jog-x-minus (bit IN)\n \u2022 gmoccapy.jog.axis.jog-y-plus (bit IN)\n \u2022 gmoccapy.jog.axis.jog-y-minus (bit IN)\n \u2022 gmoccapy.jog.axis.jog-z-plus (bit IN)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 640 / 1332\n \n \u2022 gmoccapy.jog.axis.jog-z-minus (bit IN)\n Wenn Sie eine 4-Achsen-Konfiguration verwenden, gibt es zwei zus\u00e4tzliche Pins:\n \u2022 gmoccapy.jog.jog--plus (bit IN)\n \u2022 gmoccapy.jog.jog--minus (bit IN)\n@@ -29735,15 +29735,15 @@\n \u2022 gmoccapy.jog.jog-inc-3 (bit IN)\n \u2022 gmoccapy.jog.jog-inc-4 (bit IN)\n \u2022 gmoccapy.jog.jog-inc-5 (bit IN)\n \u2022 gmoccapy.jog.jog-inc-6 (bit IN)\n GMOCCAPY bietet auch einen HAL-Pin zur Ausgabe der gew\u00e4hlten Jog-Schrittweite:\n \u2022 gmoccapy.jog.jog-increment (float OUT)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 641 / 1332\n \n 10.2.5.6 Hardware-Entsperr-Pin\n Um einen Schl\u00fcsselschalter zum Entsperren der Einstellungsseite verwenden zu k\u00f6nnen, wird der\n folgende Pin exportiert:\n \u2022 gmoccapy.unlock-settings (bit IN) - The settings page is unlocked if the pin is high. To use this\n@@ -29772,15 +29772,15 @@\n Closing the message will reset the this pin.\n \u2022 gmoccapy.messages.yesnodialog-response (bit OUT) - This pin will change to 1 if the user clicks\n OK and in all other cases it will be 0. This pin will remain 1 until the dialog is called again.\n To add a user created message you need to add the message to the INI file in the DISPLAY section.\n See Configuration of User Created Messages.\n Beispiel f\u00fcr eine Benutzermeldung (INI-Datei)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 642 / 1332\n \n MESSAGE_TEXT = LUBE FAULT\n MESSAGE_TYPE = okdialog\n MESSAGE_PINNAME = lube-fault\n MESSAGE_TEXT = X SHEAR PIN BROKEN\n@@ -29808,15 +29808,15 @@\n Also loops will cause different values.\n 10.2.5.11 Tool Related Pins\n Werkzeugwechsel-Pins These pins are provided to use GMOCCAPY\u2019s internal tool change dialog,\n similar to the one known from AXIS, but with several modifications. So you will not only get the\n message to change to tool number 3, but also the description of that tool like 7.5 mm 3 flute cutter.\n The information is taken from the tool table, so it is up to you what to display.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 643 / 1332\n \n Abbildung 10.15: GMOCCAPY tool change dialog\n \u2022 gmoccapy.toolchange-number (s32 IN) - The number of the tool to be changed\n \u2022 gmoccapy.toolchange-change (bit IN) - Indicates that a tool has to be changed\n \u2022 gmoccapy.toolchange-changed (bit OUT) - Indicates tool has been changed\n@@ -29832,15 +29832,15 @@\n \n Werkzeug-Offset Pins These pins allow you to show the active tool offset values for X and Z in the\n tool information frame. You should know that they are only active after G43 has been sent.\n \n Abbildung 10.16: Tool information area\n \u2022 gmoccapy.tooloffset-x (float IN)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 644 / 1332\n \n \u2022 gmoccapy.tooloffset-z (float IN)\n Anmerkung\n Die Zeile \u201dtooloffset-x\u201d wird bei einer Fr\u00e4smaschine nicht ben\u00f6tigt und wird bei einer Fr\u00e4smaschine\n mit trivialer Kinematik nicht angezeigt.\n@@ -29871,15 +29871,15 @@\n 1. Touch off your workpiece in X and Y.\n 2. Messen Sie die H\u00f6he Ihres Blocks von der Basis, an der sich Ihr Werkzeugschalter befindet, bis\n zur Oberseite des Blocks (einschlie\u00dflich Spannfutter usw.).\n 3. Dr\u00fccken Sie die Taste Blockh\u00f6he und geben Sie den Messwert ein.\n 4. Gehen Sie in den Automatikmodus und starten Sie Ihr Programm.\n Hier ist eine kleine Skizze:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 645 / 1332\n \n Abbildung 10.17: Werkzeugmessung Daten\n With the first given tool change the tool will be measured and the offset will be set automatically to\n fit the block height. The advantage of the GMOCCAPY way is, that you do not need a reference tool.\n Anmerkung\n@@ -29895,15 +29895,15 @@\n \u2022 gmoccapy.probeheight (float OUT) - The probe switch height\n \u2022 gmoccapy.searchvel (float OUT) - The velocity to search for the tool probe switch\n \u2022 gmoccapy.probevel (float OUT) - The velocity to probe tool length\n 10.2.6.2 INI File Modifications\n \u00c4ndern Sie Ihre INI-Datei so, dass sie die folgenden Abschnitte enth\u00e4lt.\n Der RS274NGC-Abschnitt\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 646 / 1332\n \n [RS274NGC]\n # Unterfunktion wird aufgerufen, wenn ein Fehler beim Werkzeugwechsel auftritt, wird nicht\n bei jeder Maschinenkonfiguration ben\u00f6tigt\n ON_ABORT_COMMAND=O call\n@@ -29946,15 +29946,15 @@\n /configs/sim/gmoccapy/python die folgenden Dateien in den gerade erstellten Ordner config_dir/python:\n \u2022 toplevel.py\n \u2022 remap.py\n \u2022 stdglue.py\n Von /configs/sim/gmoccapy/macros kopieren\n \u2022 on_abort.ngc\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 647 / 1332\n \n \u2022 change.ngc\n to the directory specified as SUBROUTINE_PATH, see RS274NGC Section.\n Open change.ngc with a editor and uncomment the following lines (49 and 50):\n F #<_hal[gmoccapy.probevel]>\n@@ -29989,15 +29989,15 @@\n \n To enter the page you will have to click on\n and give an unlock code, which is 123 by\n default. If you want to change it at this time you will have to edit the hidden preference file, see the\n display section for details.\n Die Seite ist in drei Hauptregisterkarten unterteilt:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 648 / 1332\n \n 10.2.7.1 Erscheinungsbild\n \n Abbildung 10.18: GMOCCAPY Einstellungsseite Erscheinungsbild\n Auf dieser Registerkarte finden Sie die folgenden Optionen:\n@@ -30009,15 +30009,15 @@\n \u2022 Start als Fenster - Wenn Sie \u201dStart als Fenster\u201d w\u00e4hlen, werden die Spinboxen zum Einstellen der\n Position und Gr\u00f6\u00dfe aktiv. Einmal eingestellt, startet die GUI jedes Mal an der gew\u00e4hlten Stelle\n und mit der gew\u00e4hlten Gr\u00f6\u00dfe. Dennoch kann der Benutzer die Gr\u00f6\u00dfe und Position mit der Maus\n ver\u00e4ndern, was aber keinen Einfluss auf die Einstellungen hat.\n \u2022 hide title bar - Allows the title bar to be hidden. (default: title bar visible).\n \u2022 hide cursor - Does allow to hide the cursor, what is very useful if you use a touch screen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 649 / 1332\n \n \u2022 hide tooltips - Hides the tool tips.\n Virtuelle Tastatur The checkboxes allow the user to select if he wants the on board keyboard to be\n shown immediately when entering the MDI Mode, the offset page, the tooledit widget or when open\n a program in the EDIT mode. The keyboard button on the bottom button list will not be affected by\n@@ -30043,15 +30043,15 @@\n execute this file before starting LinuxCNC, it can be done also adding a starter to your local folder.\n ./config/autostart\n \n Damit das Layout beim Start automatisch eingestellt wird.\n F\u00fcr matchbox-keyboard m\u00fcssen Sie Ihr eigenes Layout erstellen, f\u00fcr ein deutsches Layout fragen Sie\n im Forum.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 650 / 1332\n \n GMOCCAPY with Onboard keyboard in edit mode\n On Touch Off This gives the option whether to show the preview tab or the offset page tab when you\n enter the touch off mode by clicking the corresponding bottom button.\n \u2022 show preview\n@@ -30062,15 +30062,15 @@\n \u2022 Relative Color = black\n \u2022 Absolute Color = blue\n \u2022 DTG Color = yellow\n Die Vordergrundfarbe der DRO kann ausgew\u00e4hlt werden mit:\n \u2022 Homed Color = green\n \u2022 Unhomed Color = red\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 651 / 1332\n \n Anmerkung\n Sie k\u00f6nnen durch die DRO-Modi (absolut, relativ, Entfernung zu gehen) wechseln, indem Sie auf die\n Zahl auf dem DRO klicken! Wenn Sie auf den linken Seitenbuchstaben des DRO klicken, k\u00f6nnen Sie\n in einem Popup-Fenster den Wert der Achsen festlegen, was das Einstellen des Werts erleichtert, da\n@@ -30107,15 +30107,15 @@\n \u2013 links bewegen, mitte drehen, rechts zoomen\n \u2013 Links zoomen, Mitte drehen, rechts bewegen\n \u2013 Links verschieben, Mitte zoomen, rechts rotieren\n \u2013 Links drehen, Mitte zoomen, rechts bewegen\n Default is left move, middle zoom, right rotate.\n The mouse wheel will still zoom the preview in every mode.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 652 / 1332\n \n Tipp\n Wenn Sie ein Element in der Vorschau ausw\u00e4hlen, wird das ausgew\u00e4hlte Element als Rotationsmittelpunkt genommen und im Automodus wird die entsprechende Codezeile hervorgehoben.\n \n Gmoccapy Messages\n@@ -30141,15 +30141,15 @@\n By default \u201dFollow System Theme\u201d is set.\n Es erm\u00f6glicht weiterhin, das Symbolthema zu \u00e4ndern. Derzeit stehen drei Themen zur Verf\u00fcgung:\n \u2022 classic\n \u2022 material\n \u2022 material light\n To create custom icon themes, see section Icon Theme for details.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 653 / 1332\n \n 10.2.7.2 Hardware\n \n Hardware MPG Scale For the different HAL pins to connect MPG wheels to, you may select individual\n scales to be applied. The main reason for this was my own test to solve this through HAL connections,\n@@ -30164,15 +30164,15 @@\n Spindel\n \u2022 Starting RPM - Sets the rpm to be used if the spindle is started and no S value has been set.\n Anmerkung\n This value will be presetted according to your settings in [DISPLAY] DEFAULT_SPINDLE_SPEED of\n your INI file. If you change the settings on the settings page, that value will be default from that\n moment, your INI file will not be modified.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 654 / 1332\n \n \u2022 Spindelstange min und Spindelstange max - Legt die Grenzen der Spindelstange fest, die im INFORahmen auf dem Hauptbildschirm angezeigt werden.\n Standardwerte sind\n MIN = 0\n MAX = 6000\n@@ -30192,15 +30192,15 @@\n please take care that the \u201drabbit mode\u201d is activated, otherwise you will not be able to jog faster\n than the turtle jog velocity, which is calculated using the turtle jog factor.\n \u2022 Turtle jog factor - Sets the scale to apply for turtle jog mode (button pressed, showing the turtle). If\n you set a factor of 20, the turtle max. jog velocity will be 1/20 of the max. velocity of the machine.\n Anmerkung\n This button can be controlled using the Turtle-Jog HAL Pin.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 655 / 1332\n \n 10.2.7.3 Erweiterte Einstellungen\n \n Werkzeugmessung\n Bitte pr\u00fcfen Sie Auto Tool Measurement\n@@ -30211,15 +30211,15 @@\n the result will be stored in the tool table and a G43 will be executed after the change.\n Sonden-Informationen\n The following information are taken from your INI file and must be given in absolute coordinates:\n \u2013 X Pos. - Die X-Position des Werkzeugschalters.\n \u2013 Y Pos. - Die Y-Position des Werkzeugschalters.\n \u2013 Z Pos. - Die Z-Position des Werkzeugschalters, wir fahren im Eilgang zu dieser Koordinate.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 656 / 1332\n \n \u2013 Max. Probe - The distance to search for contact, an error will be launched, if no contact is\n given in this range. The distance has to be given in relative coordinates, beginning the move\n from Z Pos., so you have to give a negative value to go down!\n \u2013 Probe Height - The height of your probe switch, you can measure it. Just touch off the base\n@@ -30256,15 +30256,15 @@\n Keyboard shortcuts are disabled by default. They can be activated by the checkbox\n \u2022 Use keyboard shortcuts\n \n Warnung\n Es wird nicht empfohlen, Tastatur-Jogging zu verwenden, da dies ein ernsthaftes Risiko f\u00fcr\n Bediener und Maschine darstellt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 657 / 1332\n \n Please take care if you use a lathe, then the shortcuts will be different, see the Lathe Specific Section.\n \n Allgemeines\n \u2022 F1 - Trigger Estop (will work even if keyboard shortcuts are disabled)\n@@ -30297,15 +30297,15 @@\n \u2022 material-light - Derived from material but optimized for light desktop themes.\n Das in GMOCCAPY verwendete Icon-Theme ist ein regul\u00e4res GTK Icon-Theme, das der Spezifikation\n des freedestktop Icon-Theme folgt. Somit kann jedes g\u00fcltige GTK-Icon-Theme als GMOCCAPY-IconTheme verwendet werden, solange es die erforderlichen Icons enth\u00e4lt.\n GMOCCAPY durchsucht die folgenden Verzeichnisse nach Icon-Themes:\n \u2022 linuxcnc/share/gmoccapy/icons\n \u2022 ~/.icons\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 658 / 1332\n \n 10.2.8.1 Benutzerdefiniertes Symboldesign (eigentlich engl. icon theme)\n Creating a custom icon theme is pretty easy. All you need is a text editor and of course the desired\n icons as pixel or vector graphics. Details about how exactly an icon theme is built can be found at the\n Freedesktop Icon Theme Specification.\n@@ -30347,15 +30347,15 @@\n Das ist im Grunde alles, was man braucht, um ein eigenes Icon Theme zu erstellen.\n 10.2.8.2 Symbolische Icons\n Symbolic icons are a special type of icon, usually a monochrome image. The special feature of symbolic\n icons is that the icons are automatically colored at runtime to match the desktop theme. That way,\n icon themes can be created that work well with dark and also light desktop themes (in fact, that\u2019s not\n always the best option, that\u2019s why a dedicated \u201dmaterial-light\u201d theme exists).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 659 / 1332\n \n Um die symbolische Funktion zu nutzen, muss eine Symboldatei die Endung .symbolic.$ext haben\n (wobei $ext die regul\u00e4re Dateierweiterung wie png ist), zum Beispiel \u201dpower_on.symbolic.png\u201d.\n Mit diesem Namen behandelt GTK dieses Bild als symbolisches Icon und wendet beim Laden des Icons\n eine Umf\u00e4rbung an. Es gibt nur vier Farben, die verwendet werden d\u00fcrfen:\n@@ -30386,21 +30386,21 @@\n Tipp\n Examples of symbolic icons can be found at linuxcnc/share/gmoccapy/icons/material.\n \n 10.2.9 Drehmaschinen-spezifischer Abschnitt\n If in the INI file LATHE = 1 is given, the GUI will change its appearance to the special needs for a\n lathe. Mainly the Y axis will be hidden and the jog buttons will be arranged in a different order.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 10.19: Normale Drehmaschine\n \n 660 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 661 / 1332\n \n Abbildung 10.20: Back Tool Lathe\n As you see the R DRO has a black background and the D DRO is gray. This will change according to\n the active G-code G7 or G8. The active mode is visible by the black background, meaning in the shown\n images G8 is active.\n@@ -30411,15 +30411,15 @@\n Normale Drehmaschine:\n \u2022 Arrow_Left or NumPad_Left - Jog Z minus\n \u2022 Arrow_Right or NumPad_Right - Jog Z plus\n \u2022 Arrow_up or NumPad_Up - Jog X minus\n \u2022 Arrow_Down or NumPad_Down - Jog X plus\n Back Tool Lathe:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 662 / 1332\n \n \u2022 Arrow_Left or NumPad_Left - Jog Z minus\n \u2022 Arrow_Right or NumPad_Right - Jog Z plus\n \u2022 Arrow_up or NumPad_Up - Jog X plus\n \u2022 Arrow_Down or NumPad_Down - Jog X minus\n@@ -30431,15 +30431,15 @@\n There is a very good WIKI, which is actually growing, maintained by Marius, see Plasma wiki page.\n \n 10.2.11 Videos on YouTube\n Below is a series of videos that show GMOCCAPY in action. Unfortunately, these videos don\u2019t show\n the latest version of GMOCCAPY, but the way to use it will still be the same as in the current version.\n I will update the videos as soon as possible.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 663 / 1332\n \n 10.2.11.1 Grundlegende Verwendung\n https://youtu.be/O5B-s3uiI6g\n 10.2.11.2 Simulierte Jog-Wheels\n https://youtu.be/ag34SGxt97o\n@@ -30458,15 +30458,15 @@\n 10.2.12 Known Problems\n 10.2.12.1 Seltsame Zahlen im Infobereich\n Wenn Sie im Infobereich von GMOCCAPY seltsame Zahlen erhalten wie:\n \n 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\n MAX_VELOCITY = xxx.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 664 / 1332\n \n 10.2.12.2 Nicht endendes Makro\n Wenn Sie ein Makro ohne Bewegung verwenden, wie dieses hier:\n o sub\n G92.1\n@@ -30491,15 +30491,15 @@\n 10.3 The Touchy Graphical User Interface\n Touchy ist eine Benutzeroberfl\u00e4che f\u00fcr LinuxCNC, die f\u00fcr die Verwendung auf Maschinenbedienfeldern gedacht ist und daher keine Tastatur oder Maus ben\u00f6tigt.\n Es ist f\u00fcr die Verwendung mit einem Touchscreen gedacht und funktioniert in Kombination mit einem\n Rad/MPG und einigen Tasten und Schaltern.\n Die Registerkarte \u201dHandrad\u201d verf\u00fcgt \u00fcber Optionsfelder zur Auswahl zwischen den Funktionen \u201dVorschubOverride\u201d, \u201dSpindel-Override\u201d, \u201dMaximale Geschwindigkeit\u201d und \u201dTippen\u201d f\u00fcr den Rad/MPG-Eingang.\n Optionsfelder f\u00fcr die Achsenauswahl und die Schrittweite f\u00fcr den Tippbetrieb sind ebenfalls vorhanden.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 665 / 1332\n \n 10.3.1 Panel-Konfiguration\n 10.3.1.1 HAL-Verbindungen\n \n Touchy sucht in der INI-Datei unter der \u00dcberschrift [HAL] nach Eintr\u00e4gen von POSTGUI_HALFILE= G-Code Datei \u00f6ffnen (Die Datei, die Sie nach der Kompensation ausf\u00fchren)\n \u2022 If necessary, make adjustments and press Recalculate.\n \u2022 Press Save G-Code File - Probe Only.\n \u2022 Save the generated file to the nc_files folder.\n@@ -31657,15 +31657,15 @@\n net ypos-cmd\n z_level_compensation.y-pos\n \n => logic-and.in-01\n <= axis.x.pos-cmd\n <= axis.y.pos-cmd\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n net zpos-cmd\n net z_compensation_on\n net eoffset-zlevel-count\n count\n \n z_level_compensation.z-pos\n@@ -31703,15 +31703,15 @@\n 1. how far above the table the probe trigger point is (tool setter height) and\n 2. how far above the table the top of the workpiece is.\n This operation has to be done every time the tool is changed as the tool length is not saved.\n For touching off with a touch probe, whether you use the touchplate operation with thickness set to 0\n or use a probing routine, the height from table to top of workpiece parameter is not taken into account\n and can be ignored. It is only for the tool setter.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 698 / 1332\n \n 10.5.12.1 Versa Probe\n \n Abbildung 10.29: QtDragon - Versa-Probe-Option\n Versa probe is used to semi-automatically probe work pieces to find edges, centers and angles.\n@@ -31728,15 +31728,15 @@\n \u2022 SEARCH:: This is the feed rate at which the probe searches for the target workpiece in machine\n units per minute. The search speed should be slow enough to give an acceptable initial accuracy,\n but fast enough to not waste time waiting for movement. Recommendation: 200-500 mm/min.\n \u2022 PROBE:: Once initial contact has been made and the probe is retracted, it will wait for 0.5 seconds\n before performing the search again at a lower speed, the probe velocity. This lower speed ensures\n the machine can stop movement as quickly as possible on contact with the workpiece.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 699 / 1332\n \n \u2022 RAPID:: Axis movements not associated with searching are done at the speed defined by RAPID in\n machine units per minute.\n \u2022 SIDE/EDGE LENGTH:: This is the distance the probe will move at the rapid rate to the position\n where it will begin a search. If measuring a corner, it will move EDGE LENGTH units away from\n@@ -31756,15 +31756,15 @@\n CLEARANCE to 0.\n There are three toggle buttons:\n \u2022 Auto Zero This selects if after probing the relevant axis is set to zero in the current user system.\n \u2022 Auto Skew This selects if after probing, the system will be rotated or just display the calculated\n rotation.\n \u2022 Tool Measure This (if integrated) turns auto tool probing on and off.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 700 / 1332\n \n 10.5.12.2 Basic probe\n \n Abbildung 10.30: QtDragon - Grundlegende Sondenoption\n Basic probe is used to semi-automatically probe work pieces to find edges, centers and angles. The\n@@ -31777,15 +31777,15 @@\n \u2022 Calibration\n You must carefully set the Probing Parameters:\n \u2022 Probe Tool: will only allow probing if this tool number is in the spindle\n \u2022 Probe Diameter: the size of the probe tip\n \u2022 Probe Rapid: the speed of rapid moves in machine units\n \u2022 Probe Search: the speed of the first rough search in machine units\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 701 / 1332\n \n \u2022 Probe Feed: the speed of the second fine search in machine units\n \u2022 Step Off : back off and re-probe distance\n \u2022 Max XY Distance: the maximum distance the probe will search for in X and Y before failing with\n error\n@@ -31816,15 +31816,15 @@\n \u2022 EDGE WIDTH - distance along edge wall (away from corner) to start probing.\n Anmerkung\n These distance are always to be set in machine units (mm for metric machine, inch for imperial\n machine).\n \n Preset:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 702 / 1332\n \n \u2022 manual set probe at the intersection of the edges (ie corner) of material as described by the green\n bullseye on the button. Set it Z CLEARANCE above the top of material. These can be done by eye.\n \u2022 set EXTRA CLEARANCE to a value that you want the probe to go below the top of material. (So the\n probe will move from its start position down Z Clearance + Extra Clearance distance.)\n@@ -31840,15 +31840,15 @@\n 3. probe wall twice (rough and fine),\n 4. move diagonally to the other wall as set by EDGE WIDTH and XY CLEARANCE,\n 5. probe wall twice,\n 6. raise probe up by Z CLEARANCE + EXTRA DEPTH (returns to starting height),\n 7. rapid back to starting corner (now calculated using the probed walls),\n 8. if auto zero button is enabled, set X and Y of the current user system to zero.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 703 / 1332\n \n 10.5.13 Touch-Platte\n \n Abbildung 10.31: QtDragon Touch-Fl\u00e4che (engl. touch plate)\n You can use a conductive touch plate or equivalent to auto touch off (zero the user coordinate) for the\n@@ -31866,15 +31866,15 @@\n will probe down twice and the current user offset (G5X) will be zeroed at the bottom of the plate by\n calculation from the touchplate height setting.\n \n 10.5.14 Automatische Werkzeugmessung\n QtDragon kann so eingestellt werden, dass es eine integrierte automatische Werkzeugmessung mit\n dem Versa Probe Widget und Remap-Code durchf\u00fchrt. Um diese Funktion zu nutzen, m\u00fcssen Sie\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 704 / 1332\n \n einige zus\u00e4tzliche Einstellungen vornehmen und Sie k\u00f6nnen den angebotenen HAL-Pin verwenden,\n um Werte in Ihrer eigenen ngc-Remap-Prozedur zu erhalten.\n \n Wichtig\n@@ -31890,15 +31890,15 @@\n \u2022 Gehen Sie in den Automatikmodus und starten Sie Ihr Programm.\n Anmerkung\n When fist setting up auto tool measurement, please use caution until you confirm tool change and\n probe locations - it is easy to break a tool/probe. Abort will be honoured while the probe is in motion.\n \n Abbildung 10.32: Automatische Werkzeugvermessung\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 705 / 1332\n \n Beim ersten gegebenen Werkzeugwechsel wird das Werkzeug vermessen und der Versatz wird automatisch auf die Blockh\u00f6he eingestellt. Der Vorteil dieser Methode ist, dass Sie kein Referenzwerkzeug\n ben\u00f6tigen.\n Anmerkung\n Ihr Programm muss am Anfang einen Werkzeugwechsel enthalten. Das Werkzeug wird gemessen,\n@@ -31915,15 +31915,15 @@\n \u2022 Probe down in Z to maximum defined in the INI\u2019s [VERSA_TOOLSETTER] MAXPROBE\n \u2022 Return Z to position defined in the INI\u2019s [TOOL_CHANGE] Z\n Anmerkung\n The [TOOL_CHANGE] Z position should be high enough so the tool will not hit the tool probe when\n moving to the [VERSA_TOOLSETTER] X and Y position. MAXPROBE distance needs to be high enough\n for the tool to touch the probe.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 706 / 1332\n \n 10.5.14.1 Werkst\u00fcckh\u00f6he Antasten\n \n Abbildung 10.33: QtDragon_hd - Werkst\u00fcck H\u00f6henabtastung\n Dieses Programm tastet 2 benutzerdefinierte Positionen in der Z-Achse an und berechnet die H\u00f6hendifferenz.\n@@ -31936,15 +31936,15 @@\n sie auf den DROs angezeigt wird, ausf\u00fcllen.\n Automatische F\u00fcllung der Werkst\u00fcckh\u00f6he auf dem Hauptbildschirm\n \u2022 When checked, the calculated height is automatically transferred to the Workpiece Height field in\n the main screen.\n \u2022 Andernfalls ist der Hauptbildschirm nicht betroffen.\n Werkst\u00fccktaster bei\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 707 / 1332\n \n \u2022 die X-, Y- und Z-Koordinaten geben an, wo die erste Sondierungsroutine im aktuellen WCS beginnen\n soll\n Probenahme bei\n \u2022 die X-, Y- und Z-Koordinaten geben an, wo die zweite Sondierungsroutine beginnen soll, und zwar\n@@ -31970,15 +31970,15 @@\n \u2022 Units are irrelevant in this program. The probed values are not saved and only the difference is\n reported.\n \n Achtung\n Setting incorrect values can lead to crashes into fixtures on the machine work surface. Initial\n testing with no tool and safe heights is recommended.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 708 / 1332\n \n 10.5.14.2 Werkzeugmess-Pins\n Versaprobe offers 5 output pins for tool measurement purpose. The pins are used to be read from a\n remap G-code subroutine, so the code can react to different values.\n \u2022 qtversaprobe.enable (HAL_BIT) measurement enabled or not tool. Reflects screen button state.\n@@ -32018,15 +32018,15 @@\n ON_ABORT_COMMAND=O Aufruf\n # Der Remap-Code f\u00fcr die automatische Werkzeugsonde von Z der Versaprobe von QtVCP\n REMAP=M6 modalgroup=6 prolog=change_prolog ngc=qt_auto_probe_tool epilog=change_epilog\n \n The position of the tool sensor and the start position of the probing movement.\n All values are absolute (G53) coordinates, except MAXPROBE, which is expressed in relative movement.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 709 / 1332\n \n All values are in machine native units.\n X,Y,Z set the tool setter probe location.\n auto probe action sequence (this could be changed with a modified ngc remap file):\n \n@@ -32065,15 +32065,15 @@\n situations. Some systems may need to use linuxcnc/nc_files/examples/ instead of linuxcnc/nc_files/.\n Custom entries pointing to modified file are possible.\n # The path start point for all remap searches, i.e. Python\u2019s sys.path.append()\n PATH_APPEND = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python\n # path to the tremap\u2019s \u2019toplevel file\n TOPLEVEL = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python/toplevel.py\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 710 / 1332\n \n 10.5.14.4 Required HAL Connections\n Stellen Sie sicher, dass der Messtastereingang in Ihrer HAL-Datei angeschlossen ist: Bei korrektem\n Anschluss sollten Sie in der Lage sein, die Taster-LED in QtDragon umzuschalten, wenn Sie den Tasterstift dr\u00fccken.\n net probe motion.probe-input <= \n@@ -32107,15 +32107,15 @@\n \u2022 P,X,Y,Z: Set standard views.\n \u2022 D: Toggle display of dimensions.\n \u2022 +, -: Zoom controls.\n \u2022 C: Clear graphics of tool movement lines.\n In qtdragon_hd there are also macro buttons available on the right side. Up to tens buttons can be\n defined in the INI.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 711 / 1332\n \n 10.5.17.2 Registerkarte \u201dDatei\u201d\n You can use this tab to load or transfer programs. Editing of G-code programs can be selected from\n this tab. With qtdragon_hd, this is where you can load the G-code Ripper.\n 10.5.17.3 Registerkarte \u201dOffsets\u201d\n@@ -32147,15 +32147,15 @@\n Camview xscale = 100\n Camview yscale = 100\n Camview cam number = 0\n \n These are in percent, usually the range will be 100 - 200 in one axis.\n The preference file can only be edited when QtDragon is not running.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 712 / 1332\n \n 10.5.17.8 G-Codes Registrierkarte\n This tab will display a list of LinuxCNC\u2019s G-code. if you click on a line, a description of the code will\n be displayed.\n 10.5.17.9 Registerkarte \u201dEinstellungen\u201d\n@@ -32173,15 +32173,15 @@\n \u2022 The left arrow moves backward one HTML page.\n \u2022 The right arrow moves forward one HTML page.\n If you wish to include a custom default HTML page, name it default_setup.html and place it in your\n configuration folder.\n Custom QtVCP panels can be displayed in this tab by setting the EMBED_TAB_LOCATION option to\n tabWidget_setup.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 713 / 1332\n \n Abbildung 10.34: QtDragon - Beispiel f\u00fcr die Registerkarte Setup\n \n 10.5.17.10 Registerkarte \u201dEinstellungen\u201d\n Die Registerkarte \u201dEinstellungen\u201d dient zum Einstellen der Betriebsoptionen, der Offsets f\u00fcr Messtaster/Tastplatte/Laser/Kamera und zum Laden externer Debugging-Programme.\n@@ -32195,15 +32195,15 @@\n Custom QtVCP panels can be displayed here by setting the EMBED_TAB_LOCATION option to tabWidget_uti\n 10.5.17.12 User Tab\n \n This tab will only be displayed if an embedded panel has been designated for the location stackedWidget_mai\n If more then one embedded tab has been designated, then pressing the user tab will cycle through\n them.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 714 / 1332\n \n 10.5.18 Stile\n Nearly all aspects of the GUI appearance are configurable via the QtDragon.qss stylesheet file. The\n file can be edited manually or through the stylesheet dialog widget in the GUI. To call up the dialog,\n press F12 on the main window. New styles can be applied temporarily and then saved to a new qss\n@@ -32236,15 +32236,15 @@\n \n So \u00e4ndern Sie den Text der Schaltfl\u00e4che \u201dNebel\u201d in \u201dLuft\u201d (f\u00fcgen Sie diese Zeilen ein)\n #action_mist{\n qproperty-true_state_string: \u201dAir\\\\nOn\u201d;\n qproperty-false_state_string: \u201dAir\\\\nOff\u201d;\n }\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 715 / 1332\n \n To change the Offsets display font and format:\n ToolOffsetView {\n font: 20pt \u201dLato Heavy\u201d;\n qproperty-imperial_template: \u2019%9.1f\u2019;\n@@ -32294,15 +32294,15 @@\n qproperty-spindle_down_action: true;\n }\n \n 10.5.19.2 Qt Designer und Python-Code\n All aspects of the GUI are fully customization through Qt Designer and/or Python code. This capability\n is included with the QtVCP development environment. The extensive use of QtVCP widgets keeps the\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 716 / 1332\n \n amount of required Python code to a minimum, allowing relatively easy modifications. The LinuxCNC\n website has extensive documentation on the installation and use of QtVCP libraries. See QtVCP for\n more information about QtVCP in general.\n QtDragon can also utilize QtVCP\u2019s rc file to do minor python code modifications without using a custom\n@@ -32310,30 +32310,30 @@\n [DISPLAY]\n USER_COMMAND_FILE = CONFIGFOLDER/qtdragonrc.py\n \n See Modifying Screens for more information about customization.\n \n Abbildung 10.36: QtDragon - Angepasster QtDragon\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 717 / 1332\n \n 10.6 NGCGUI\n \n Abbildung 10.37: NGCGUI eingebettet in AXIS\n \n 10.6.1 \u00dcbersicht\n \u2022 NGCGUI ist eine Tcl-Anwendung zur Arbeit mit Unterroutinen. Es erm\u00f6glicht Ihnen, eine Konversationsschnittstelle mit LinuxCNC zu haben. Sie k\u00f6nnen die Unterroutinen in der Reihenfolge organisieren, in der Sie sie ausf\u00fchren und die Unterroutinen in einer Datei f\u00fcr ein vollst\u00e4ndiges Teileprogramm verketten m\u00fcssen.\n \u2022 NGCGUI kann als eigenst\u00e4ndige Anwendung ausgef\u00fchrt oder in mehrere Registerkarten in der AXIS\n GUI eingebettet werden.\n \u2022 PyNGCGUI is an alternate, Python implementation of NGCGUI.\n \u2022 PyNGCGUI kann als eigenst\u00e4ndige Anwendung laufen oder als Registerkarte (mit einem eigenen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 718 / 1332\n \n Satz von mehreren Unterprogramm-Registerkarten) in jede GUI eingebettet werden, die eine Einbettung der GladeVCP-Anwendungen AXIS, Touchy, Gscreen und GMOCCAPY unterst\u00fctzt.\n NGCGUI oder PyNGCGUI verwenden:\n \u2022 F\u00fcr jedes in der INI-Datei angegebene Unterprogramm gibt es Registerkarten (engl. tabs).\n \u2022 Neue Subroutinen-Registerkarten k\u00f6nnen mit dem custom tab spontan hinzugef\u00fcgt werden.\n@@ -32364,15 +32364,15 @@\n Sample Configurations/sim/axis/ngcgui/ngcgui_gcmc\n Ein umfassendes Beispiel, das als GladeVCP-App eingebettet ist und gcmc verwendet, finden Sie unter:\n Sample Configurations/sim/gscreen/ngcgui/pyngcgui_gcmc\n \n Die Beispielsimulationskonfigurationen verwenden Bibliotheksdateien, die Beispiel-G-Code-Unterprogramm\n (.ngc) und G-Code-Meta-Compilerdateien (.gcmc) enthalten:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 719 / 1332\n \n \u2022 nc_files/ngcgui_lib\n \u2013 ngcgui.ngc - Ein leicht verst\u00e4ndliches Beispiel mit Unterroutinen\n \u2013 arc1.ngc - Kreisbogen mit Fr\u00e4serradiuskompensation\n \u2013 arc2.ngc - Bogen angegeben durch Zentrum, Offset, Breite, Winkel (ruft arc1 auf)\n@@ -32412,15 +32412,15 @@\n Wenn Sie die AXIS GUI verwenden, dr\u00fccken Sie auf \u201dNotaus\u201d (engl. E-Stop)\n chine Power\u201d\n \n und dann auf \u201dMa-\n \n und dann auf \u201dRefefernzierfahrt aller Achsen\u201d (engl. Home All). W\u00e4hlen Sie eine\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 720 / 1332\n \n NGCGUI-Registerkarte, f\u00fcllen Sie alle leeren Felder mit sinnvollen Werten aus und dr\u00fccken Sie auf\n \u201dFeature anlegen\u201d (engl. create feature) und dann auf \u201dFinalize\u201d. Dr\u00fccken Sie abschlie\u00dfend auf die\n Schaltfl\u00e4che \u201dAusf\u00fchren\u201d\n , um die Ausf\u00fchrung zu beobachten. Experimentieren Sie, indem Sie\n@@ -32453,15 +32453,15 @@\n = ../../nc_files/ngcgui_lib/mfiles\n \n Anmerkung\n Dabei handelt es sich um lange Zeilen (die nicht \u00fcber mehrere Zeilen fortgesetzt werden), in denen\n die in einem Suchfeld verwendeten Verzeichnisse angegeben werden. Die Verzeichnisnamen werden\n durch Doppelpunkte (:) getrennt. Zwischen den Verzeichnisnamen sollten keine Leerzeichen stehen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 721 / 1332\n \n Ein Benutzer kann neue Verzeichnisse f\u00fcr seine eigenen Unterprogramme und M-Dateien erstellen\n und sie zu den Suchpfaden hinzuf\u00fcgen.\n So k\u00f6nnte ein Benutzer beispielsweise Verzeichnisse vom Terminal aus mit den folgenden Befehlen\n erstellen:\n@@ -32509,15 +32509,15 @@\n [--font [big|small|fontspec]] (Voreinstellung: \u201dHelvetica -10 normal\u201d)\n [--horiz|--vert] (Voreinstellung: --horiz)\n [--cwidth comment_width] (Breite des Kommentarfeldes)\n [--vwidth varname_width] (Breite des Feldes varname)\n [--quiet] (weniger Kommentare in der Ausgabedatei)\n [--noiframe] (Voreinstellung: Rahmen zeigt Bild an)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 722 / 1332\n \n Anmerkung\n Als eigenst\u00e4ndige Anwendung bearbeitet NGCGUI eine einzelne Unterprogrammdatei, die mehrfach\n aufgerufen werden kann. Mehrere eigenst\u00e4ndige NGCGUI-Anwendungen k\u00f6nnen unabh\u00e4ngig voneinander gestartet werden.\n \n@@ -32568,15 +32568,15 @@\n 10.6.5 NGCGUI einbetten\n 10.6.5.1 NGCGUI in AXIS einbetten\n Die folgenden INI-Datei-Elemente geh\u00f6ren in den Abschnitt [DISPLAY]. (Siehe weitere Abschnitte\n unten f\u00fcr zus\u00e4tzlich ben\u00f6tigte Elemente)\n \u2022 TKPKG = Ngcgui 1.0 - das NGCGUI-Paket\n \u2022 TKPKG = Ngcguittt 1.0 - das True Type Tracer-Paket zum Generieren von Text f\u00fcr die Gravur (optional, muss TKPKG = Ngcgui folgen).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 723 / 1332\n \n \u2022 NGCGUI_FONT = Helvetica -12 normal - Legt die verwendete Schriftart fest\n \u2022 NGCGUI_PREAMBLE = in_std.ngc\u2019 - Die Pr\u00e4ambel-Datei, die am Anfang des Unterprogramms hinzugef\u00fcgt wird. Bei der Verkettung mehrerer Unterprogramme wird sie nur einmal hinzugef\u00fcgt.\n \u2022 NGCGUI_SUBFILE = simp.ngc - Erstellt eine Registerkarte aus der benannten Unterroutine.\n \u2022 NGCGUI_SUBFILE = \u201d\u201d - Erzeugt eine benutzerdefinierte Registerkarte\n@@ -32602,15 +32602,15 @@\n in AXIS eingebettet werden kann, ist die Integration vollst\u00e4ndiger, wenn NGCGUI verwendet wird (mit\n TKPKG = Ngcgui 1.0). Um die EMBED_TAB_LOCATION f\u00fcr andere GUIs festzulegen, vgl. den Abschnitt\n zu DISPLAY des INI-Konfigurationskapitels.\n \n Anmerkung\n Das Truetype Tracer GUI-Frontend ist derzeit nicht f\u00fcr GladeVCP-Anwendungen verf\u00fcgbar.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 724 / 1332\n \n 10.6.5.3 Zus\u00e4tzliche INI-Datei-Elemente, die f\u00fcr NGCGUI oder PyNGCGUI erforderlich sind\n Die folgenden INI-Datei-Elemente geh\u00f6ren in den Abschnitt [DISPLAY] f\u00fcr jede GUI, die entweder\n NGCGUI oder PyNGCGUI einbindet.\n \u2022 NGCGUI_FONT = Helvetica -12 normal\u2019 - gibt den Namen und die Gr\u00f6\u00dfe der Schriftart an, normal|fett (engl. bold)\n@@ -32647,15 +32647,15 @@\n SUBROUTINE_PATH\n USER_M_PATH\n [DISPLAY]\n \n = ../../nc_files/ngcgui_lib:../../ngcgui_lib/utilitysubs\n = ../../nc_files/ngcgui_lib/mfiles\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 725 / 1332\n \n TKPKG = Ngcgui 1.0\n TKPKG = Ngcguittt 1.0\n # Ngcgui muss vor Ngcguittt stehen\n NGCGUI_FONT\n@@ -32731,15 +32731,15 @@\n [DISPLAY]TTT = path_to_truetype-tracer\n Example: [DISPLAY]TTT = truetype-tracer\n Note:\n Optional, if not specified, attempt to use /usr/local/bin/truetype-tracer.\n Specify with absolute pathname or as a simple executable name,\n in which case the user PATH environment will used to find the program.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 726 / 1332\n \n Item:\n [DISPLAY]TTT_PREAMBLE = preamble_filename\n Example: [DISPLAY]TTT_PREAMBLE = in_std.ngc\n Note:\n@@ -32774,15 +32774,15 @@\n Dies ist eine lange Zeile, fahren Sie nicht in mehreren Zeilen fort. Wenn LinuxCNC und/oder NGCGUI\n nach Dateien suchen, wird die erste Datei, die bei der Suche gefunden wird, verwendet.\n LinuxCNC (und NGCGUI) muss in der Lage sein, alle Unterprogramme einschlie\u00dflich der Hilfsroutinen zu finden, die aus den NGCGUI Unterdateien aufgerufen werden. Es ist zweckm\u00e4\u00dfig, Utility-Subs\n in einem separaten Verzeichnis zu platzieren, wie im obigen Beispiel angegeben.\n Die Distribution enth\u00e4lt das Verzeichnis ngcgui_lib und Demodateien f\u00fcr Pr\u00e4ambeln, Subdateien,\n Postambeln und Hilfsdateien. Um das Verhalten der Dateien zu \u00e4ndern, k\u00f6nnen Sie eine beliebige\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 727 / 1332\n \n Datei kopieren und sie an einer fr\u00fcheren Stelle des Suchpfads platzieren. Das erste Verzeichnis, das\n durchsucht wird, ist [DISPLAY]PROGRAM_PREFIX. Sie k\u00f6nnen dieses Verzeichnis verwenden, aber es\n ist besser, eigene Verzeichnisse zu erstellen und sie an den Anfang des [RS274NGC]SUBROUTINE_PATH\n zu stellen.\n@@ -32824,15 +32824,15 @@\n Note: Required only for AXIS GUI embedding.\n Specifies loading of NGCGUI AXIS tab pages.\n [DISPLAY]NGCGUI_FONT = Schriftart_deskriptor\n Example: [DISPLAY]NGCGUI_FONT = Helvetica -12 normal\n Note: Optional, font_descriptor is a tcl-compatible font specifier with items for fonttype -fontsize\n fontweight.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 728 / 1332\n \n Default is: Helvetica -10 normal.\n Smaller font sizes may be useful for small screens.\n Larger font sizes may be helpful for touch screen applications .\n [ANZEIGE] NGCGUI_SUBFILE = subfile_filename\n@@ -32878,15 +32878,15 @@\n tab pages.\n \n [DISPLAY]GCMC_INCLUDE_PATH = dirname1:dirname2:\u2026\n Example: [DISPLAY]GCMC_INCLUDE_PATH = /home/myname/gcmc_includes:/home/myname/gcmc_incl\n Note: Optional, each directory will be included when gcmc is invoked using the option: --include\n dirname.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 729 / 1332\n \n 10.6.6 Dateianforderungen f\u00fcr NGCGUI-Kompatibilit\u00e4t\n 10.6.6.1 Anforderungen an eine G-code-Unterroutine (.ngc) in einer Datei\n An NGCGUI-compatible subfile contains a single subroutine definition. The name of the subroutine\n must be the same as the filename (not including the .ngc suffix). LinuxCNC supports named or numbered subroutines, but only named subroutines are compatible with NGCGUI. For more information\n@@ -32931,15 +32931,15 @@\n # = #3 (=0.0 Z Start Einstellung)\n \n If a default_value is provided, it will be entered in the entry box for the parameter on startup. If\n comment_text is included, it will be used to identify the input instead of the parameter name.\n Globale benannte Parameter Hinweise zu globalen benannten Parametern und NGCGUI:\n (globale benannte Parameter haben einen f\u00fchrenden Unterstrich im Namen, wie #<_irgendeinglobalername>)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 730 / 1332\n \n As in many programming languages, use of globals is powerful but can often lead to unexpected\n consequences. In LinuxCNC, existing global named parameters will be valid at subroutine execution\n and subroutines can modify or create global named parameters.\n Passing information to subroutines using global named parameters is discouraged since such usage\n@@ -32985,15 +32985,15 @@\n Kommentar enthalten, so dass NGCGUI sie automatisch mit einer entsprechenden Meldung zur\u00fcckweist.\n (not_a_subfile)\n \n An optional image file (.png,.gif,.jpg,.pgm) can accompany a subfile. The image file can help clarify the\n parameters used by the subfile. The image file should be in the same directory as the subfile and have\n the same name with an appropriate image suffix, e.g. the subfile example.ngc could be accompanied\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 731 / 1332\n \n by an image file examp.png. NGCGUI attempts to resize large images by subsampling to a size with\n maximum width of 320 and maximum height of 240 pixels.\n Keine der Konventionen, die f\u00fcr die Herstellung einer NGCGUI-kompatiblen Subdatei erforderlich\n sind, schlie\u00dfen ihre Verwendung als allgemeine Subroutinendatei f\u00fcr LinuxCNC aus.\n@@ -33032,15 +33032,15 @@\n //ngcgui: xl = 0; //, x limit\n \n Eine Info-Zeile, die oben auf einer Registerkarte erscheint, kann optional mit einer Zeile mit der\n Kennzeichnung als:\n Info-Tag\n //ngcgui: info: text_to_appear_at_top_of_tab_page\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 732 / 1332\n \n Falls erforderlich, k\u00f6nnen Optionen mit einem Zeilen-Tag an den gcmc-Compiler \u00fcbergeben werden:\n Option line tag format\n //ngcgui: -option_name [ [=] option_value]\n \n@@ -33066,28 +33066,28 @@\n [DISPLAY]\n GCMC_INCLUDE_PATH = ../../nc_files/gcmc_lib\n \n 10.6.7 DB25 Beispiel\n The following shows the DB25 subroutine. In the first photo you see where you fill in the blanks for\n each variable.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Dieses Foto zeigt den Backplot der DB25-Subroutine.\n \n 733 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 734 / 1332\n \n Dieses Foto zeigt die Verwendung der neuen Schaltfl\u00e4che und der benutzerdefinierten Registerkarte\n zur Erstellung von drei DB25-Ausschnitten in einem Programm.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 735 / 1332\n \n 10.6.8 Erstellen eines Unterprogramms\n \u2022 Um ein Unterprogramm f\u00fcr die Verwendung mit NGCGUI zu erstellen, m\u00fcssen der Dateiname und\n der Name des Unterprogramms identisch sein.\n \u2022 Die Datei muss sich in dem Unterverzeichnis befinden, auf das in der INI-Datei verwiesen wird.\n@@ -33102,15 +33102,15 @@\n # = #2 (=0.4) ;Beispiel f\u00fcr einen Parameter ohne Kommentar\n # = #3 (Feedrate) ;Beispiel f\u00fcr einen Parameter ohne Voreinstellung\n g0x0y0z1\n g3 i# f#\n g3 i[0-#]\n o endsub\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 736 / 1332\n \n 10.7 TkLinuxCNC GUI\n 10.7.1 Einf\u00fchrung\n TkLinuxCNC ist eines der ersten grafischen Front-Ends f\u00fcr LinuxCNC. Es ist in Tcl geschrieben und\n verwendet das Tk-Toolkit f\u00fcr die Anzeige. Es ist in Tcl geschrieben und daher sehr portabel (es l\u00e4uft\n@@ -33124,15 +33124,15 @@\n DISPLAY = tklinuxcnc\n \n Dann starten Sie LinuxCNC und w\u00e4hlen Sie diese INI-Datei. Die Beispielkonfiguration sim/tklinuxcnc/tklinuxcnc.ini ist bereits konfiguriert, um TkLinuxCNC als Front-End zu verwenden.\n Nach dem Start von LinuxCNC wird das Fenster TKLinuxCNC ge\u00f6ffnet.\n 10.7.2.1 Eine typische Sitzung mit TkLinuxCNC\n 1. Starten Sie LinuxCNC und w\u00e4hlen Sie eine Konfigurationsdatei.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 737 / 1332\n \n 2. Beheben Sie den Notaus (engl. E-STOP)-Zustand und schalten Sie die Maschine ein (indem Sie\n F1 und dann F2 dr\u00fccken).\n 3. Referenzfahrt jeder Achse.\n 4. Laden Sie die zu fr\u00e4sende Datei.\n@@ -33165,15 +33165,15 @@\n \u2022 Spindeldrehzahl erh\u00f6hen\n \u2022 Abbrechen\n dann in der zweiten Zeile:\n \u2022 Betriebsart: MANUAL > MDI > AUTO\n \u2022 Flutk\u00fchlmittel ein-/ausschalten\n \u2022 Spindelbremse ein-/ausschalten\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 738 / 1332\n \n 10.7.3.2 Statusleiste der Offset-Anzeige\n Die Statusleiste der Versatzanzeige zeigt das aktuell ausgew\u00e4hlte Werkzeug (ausgew\u00e4hlt mit Txx M6),\n den Werkzeugl\u00e4ngenversatz (falls aktiv) und die Arbeitsvers\u00e4tze (eingestellt durch Rechtsklick auf die\n Koordinaten) an.\n@@ -33203,15 +33203,15 @@\n zu \u00fcberpr\u00fcfen, * Ausf\u00fchren (engl. run), um den eigentlichen Schneidevorgang zu starten, * Pause,\n um es w\u00e4hrend des Laufens anzuhalten, * Fortsetzen (engl. resume), um ein bereits angehaltenes\n Programm wieder aufzunehmen, * Schritt (engl. step), um eine Zeile im Programm voranzubringen\n und * Optional Stop zum Umschalten des optionalen Stop-Schalters (wenn die Schaltfl\u00e4che gr\u00fcn ist,\n wird die Programmausf\u00fchrung bei jedem M1-Ereignis angehalten).\n Anzeigebereich des Textprogramms Wenn das Programm l\u00e4uft, wird die Zeile, die gerade ausgef\u00fchrt wird, wei\u00df hervorgehoben. Die Textanzeige scrollt automatisch, um die aktuelle Zeile anzuzeigen.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 739 / 1332\n \n 10.7.3.5 Manuelle Steuerung\n Steuerung mit der Tastatur TkLinuxCNC erm\u00f6glicht es Ihnen, die Maschine manuell zu bewegen.\n Diese Aktion wird als \u201dJogging\u201d bekannt. W\u00e4hlen Sie zun\u00e4chst die zu bewegende Achse aus, indem\n Sie sie anklicken. Klicken Sie dann auf die Schaltfl\u00e4che \u201d+\u201d oder \u201d-\u201d und halten Sie sie gedr\u00fcckt, je\n@@ -33236,15 +33236,15 @@\n der Benutzer die Drehgeschwindigkeit erh\u00f6hen oder verringern. Mit der Taste in der zweiten Reihe\n kann die Spindelbremse aktiviert oder deaktiviert werden. Je nach Maschinenkonfiguration haben\n m\u00f6glicherweise nicht alle Elemente in dieser Gruppe eine Wirkung.\n Die K\u00fchlmittelgruppe K\u00fchlmittel Mit den beiden Schaltfl\u00e4chen k\u00f6nnen die K\u00fchlmittel \u201dNebel\u201d\n und \u201dFlut\u201d ein- und ausgeschaltet werden. Je nach Konfiguration Ihres Ger\u00e4ts werden m\u00f6glicherweise\n nicht alle Elemente in dieser Gruppe angezeigt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 740 / 1332\n \n 10.7.3.6 Code-Eingabe\n \n Die manuelle Dateneingabe (auch MDI genannt) erm\u00f6glicht die manuelle Eingabe von G-Code-Programmen,\n eine Zeile nach der anderen. Wenn das Ger\u00e4t nicht eingeschaltet und nicht auf den MDI-Modus eingestellt ist, sind die Steuerelemente f\u00fcr die Codeeingabe nicht verf\u00fcgbar.\n@@ -33278,15 +33278,15 @@\n F1\n Notaus ein-/ausschalten\n F2\n Maschine ein-/ausschalten\n \u0300, 1 .. 9, 0\n Vorschub-Override von 0% bis 100% einstellen\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 741 / 1332\n \n Tabelle 10.7: (continued)\n Tastenkombination\n Ergriffene Ma\u00dfnahmen\n X, \u0300\n@@ -33331,42 +33331,42 @@\n The QtPlasmaC GUI will run on any hardware that is supported by LinuxCNC v2.9 or later provided\n there are enough hardware I/O pins to fulfill the requirements of a plasma configuration.\n There are three available formats:\n \u2022 16:9 with a minimum resolution of 1366 x 768\n \u2022 9:16 with a minimum resolution of 768 x 1366\n \u2022 4:3 with a minimum resolution of 1024 x 768\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 742 / 1332\n \n Screenshot examples of QtPlasmaC are below:\n \n Abbildung 10.40: 16:9\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 743 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 744 / 1332\n \n Abbildung 10.42: 4:3\n \n 10.8.4 LinuxCNC installieren\n Die bevorzugte Methode zur Installation von LinuxCNC ist \u00fcber ein ISO-Image, wie unten beschrieben.\n Anmerkung\n Es ist m\u00f6glich, LinuxCNC auf einer Vielzahl von Linux-Distributionen zu installieren und auszuf\u00fchren,\n was jedoch den Rahmen dieses Benutzerhandbuchs sprengen w\u00fcrde. Wenn der Benutzer m\u00f6chte eine\n Linux-Distribution andere als die empfohlenen zu installieren, m\u00fcssen sie zun\u00e4chst ihre bevorzugte\n Linux-Distribution zu installieren und dann installieren LinuxCNC v2.9 oder h\u00f6her zusammen mit allen\n erforderlichen Abh\u00e4ngigkeiten.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 745 / 1332\n \n 10.8.4.1 Wenn der Benutzer kein Linux installiert hat\n Installation instructions are available from here.\n Following these instructions will yield a machine with the current stable branch of LinuxCNC (v2.9)\n on Debian 12 (Bookworm).\n@@ -33408,15 +33408,15 @@\n \n Wichtig\n If the plasma power source has an Arc OK (Transfer) output then it is recommended to use that\n for Arc OK rather than the soft (calculated) Arc OK provided by mode 0. It may also be possible\n to use a reed relay as an alternative method to establish an Arc OK signal when the power\n source does not provide one.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 746 / 1332\n \n Anmerkung\n F\u00fcr die Feinabstimmung von Mode 0 Ark OK siehe Tuning Mode 0 Arc OK im Abschnitt Erweiterte\n Themen des Handbuchs.\n \n@@ -33491,15 +33491,15 @@\n the ohmic probe\u2019s power.\n Digital input; optional, see info below table:\n HAL pin name plasmac.breakaway\n Connected from a breakout board input to a torch breakaway\n detection switch.\n This signal senses if the torch has broken away from its cradle.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Name\n Brenner ein (engl.\n torch on)\n \n Modi\n 0, 1, 2\n@@ -33573,15 +33573,15 @@\n \u2022 [AXIS_Z] MIN_LIMIT should be just below top of the slats with allowances for float_switch_travel\n and over travel tolerance. For example, if the user\u2019s float switch takes 4 mm (0.157\u201d) to activate\n then set the Z minimum to 5 mm (0.2\u201d) plus an allowance for overrun (either calculated using the\n equation below or allow 5 mm (0.2\u201d) below the lowest slat).\n \u2022 [AXIS_Z] MAX_LIMIT should be the highest the user wants the Z axis to travel (it must not be\n lower than Z HOME_OFFSET).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 748 / 1332\n \n \u2022 [AXIS_Z] HOME should be set to be approximately 5 mm-10 mm (0.2\u201d-0.4\u201d) below the maximum\n limit.\n \u2022 Floating Head - it is recommended that a floating head be used and that it has enough movement\n to allow for overrun during probing. Overrun can be calculated using the following formula:\n@@ -33616,47 +33616,47 @@\n Platine aus.\n QtPlasmaC adds two pages to the LinuxCNC configuration wizards for QtPlasmaC specific parameters,\n the two pages are QtPlasmaC options and User Buttons. Complete each of the wizards QtPlasmaC page\n to suit the machine that is being configured and the user button requirements.\n Note that PnCconf options allow user selection of Feed Override, Linear Velocity, and Jog Increments,\n whereas in StepConf these are automatically calculated and set.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 10.43: PnCConf QtPlasmaC Options\n \n 749 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 10.44: StepConf QtPlasmaC Options\n \n 750 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Abbildung 10.45: QtPlasmaC User Buttons\n \n 751 / 1332\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 752 / 1332\n \n Abbildung 10.46: QtPlasmaC THCAD\n The THCAD screen will only appear if a Plasma Encoder is selected in the card screen. The the dedicated section on Mesa THCAD for more information.\n When the configuration is complete, the wizard will save a copy of the configuration that may be\n loaded and edited at a later time, a working QtPlasmaC configuration will be created in the following\n directory: ~/linuxcnc/configs/.\n The way the newly created QtPlasmaC configuration can be run from the terminal command line\n slightly differs depending the way LinuxCNC was installed:\n F\u00fcr eine Paketinstallation (Buildbot):\n linuxcnc ~/linuxcnc/configs/__/__.ini\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 753 / 1332\n \n For a run in place installation:\n ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/__/__.ini\n \n Nach dem Ausf\u00fchren des obigen Befehls sollte LinuxCNC mit der QtPlasmaC GUI sichtbar sein.\n@@ -33679,25 +33679,25 @@\n \n Geben Sie f\u00fcr eine \u201drun in place\u201d-Installation den folgenden Befehl in ein Terminalfenster ein:\n ~/linuxcnc-dev/lib/python/qtvcp/designer/install_script\n \n 10.8.5.6 Erstmalige Einrichtung\n Das folgende H\u00f6hendiagramm soll dem Benutzer helfen, die verschiedenen H\u00f6hen beim Plasmaschneiden und deren Messung zu veranschaulichen:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 754 / 1332\n \n Click on the Parameters Tab to view the CONFIGURATION section which shows the user settable\n parameters. It is necessary to ensure every one of these settings is tailored to the machine.\n To set the Z axis DRO relative to the Z axis MINIMUM_LIMIT, the user should perform the following\n steps. It is important to understand that in QtPlasmaC, touching off the Z axis DRO has no effect on\n the Z axis position while running a G-code program. These steps simply allow the user to more easily\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 755 / 1332\n \n set the probe height as after performing the steps, the displayed Z axis DRO value will be relative to\n Z axis MINIMUM_LIMIT.\n Anmerkung\n The user should be familiar with the recommended Z Axis Settings.\n@@ -33732,15 +33732,15 @@\n and the measured value.\n 8. After the adjustments to the \u201dFloat Travel\u201d have been made, repeat the process from #4 above\n until the measured distance between the material and the torch tip matches the Pierce Height\n of the currently selected material.\n 9. If the table has a laser or camera for sheet alignment, a scribe, or uses offset probing then the\n required offsets need to be applied by following the procedure described in Peripheral Offsets.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 756 / 1332\n \n 10. CONGRATULATIONS! The user should now have a working QtPlasmaC Configuration.\n Anmerkung\n If the amount of time between the torch contacting the material and when the torch moves up and\n comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution.\n@@ -33772,15 +33772,15 @@\n \n For a run in place installation enter the following lines in terminal window:\n source ~/linuxcnc-dev/scripts/rip-environment\n qtplasmac-plasmac2qt\n \n The following screen will be displayed:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 757 / 1332\n \n Tabelle 10.10: Mandatory Settings\n Field\n Beschreibung\n INI-DATEI IN\n@@ -33804,15 +33804,15 @@\n 16:9\n ESTOP:1\n \n Optional Setting - This setting is not required unless the machine has a laser for sheet\n alignment. Leave this blank if it is not used/required. Lassen Sie dieses Feld leer, wenn es nicht\n verwendet/erforderlich ist.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Field\n Laser On\n HAL-Pins\n \n Beschreibung\n Schalten Sie ein Laserfadenkreuz f\u00fcr die\n@@ -33855,15 +33855,15 @@\n For a package installation (Buildbot) enter the following line in a terminal window:\n qtplasmac-cfg2prefs\n \n For a run in place installation enter the following lines in terminal window:\n source ~/linuxcnc-dev/scripts/rip-environment\n qtplasmac-cfg2prefs\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 759 / 1332\n \n Abbildung 10.47: qtplasmac-cfg2prefs\n Select the INI file of the old PlasmaC configuration, select the INI file of the new QtPlasmaC configuration, then press CONVERT.\n \n 10.8.7 Other QtPlasmaC Setup Considerations\n@@ -33877,15 +33877,15 @@\n file in the machine\u2019s configuration directory to add the appropriate cutoff frequency as measured in\n Hertz (Hz).\n Zum Beispiel:\n setp plasmac.lowpass-frequency 100\n \n The above example would give a cutoff frequency of 100Hz.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 760 / 1332\n \n 10.8.7.2 Contact Bounce\n Contact bounce from mechanical relays, switches, or external interference may cause some inconsistent behavior of the following switches:\n \u2022 Float Switch\n \u2022 Ohmic Probe\n@@ -33921,15 +33921,15 @@\n Depending on the specified minimum contact current and the current drawn by the input device there\n may be a need to provide a method to increase the current through the contacts.\n Most relays using gold contacts will not require any additional current for reliable operation.\n There are two different methods available to provide this minimum current if it is required:\n 1. A 0.1 \u03bcF film capacitor placed across the contacts.\n 2. A 1200 \u03a9 1 W resistor across the load (see calculations below).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 761 / 1332\n \n Schematics are shown at contact load schematics.\n More information on contact switching load can be seen on page VI of the finder General Technical\n Information document.\n Calculations:\n@@ -33967,15 +33967,15 @@\n Terminal=false\n Name=LinuxCNC\n Exec=sh -c \u201dlinuxcnc $HOME/linuxcnc/configs//.ini\u201d\n Type=Application\n Icon=/usr/share/pixmaps/linuxcncicon.png\n 1 In the US, the letter V is commonly used as a symbol (Voltage) and as a unit (Volt).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 762 / 1332\n \n Wenn der Benutzer ein Terminalfenster hinter dem GUI-Fenster \u00f6ffnen m\u00f6chte, \u00e4ndern Sie die TerminalZeile in:\n Terminal=true\n \n Die Anzeige eines Terminals kann f\u00fcr Fehler- und Informationsmeldungen n\u00fctzlich sein.\n@@ -34031,15 +34031,15 @@\n Anmerkung\n The configuration files (.ini and .hal) that are created by configuration wizard are notated to explain the requirements to aid in manual manipulation of these\n configurations. They may be edited with any text editor.\n \n Anmerkung\n The .prefs file is plain text and may be edited with any text editor.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 763 / 1332\n \n 10.8.7.6 INI File\n QtPlasmaC has some specific .ini file variables as follows:\n [FILTER] Section These variables are mandatory.\n PROGRAM_EXTENSION = .ngc,.nc,.tap G-code File (*.ngc, *.nc, *.tap)\n@@ -34088,15 +34088,15 @@\n [DISPLAY] Section\n This variable is mandatory.\n DISPLAY = qtvcp qtplasmac\n (use 16:9 resolution)\n = qtvcp qtplasmac_9x16 (use 9:16 resolution)\n = qtvcp qtplasmac_4x3 (use 4:3 resolution)\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 764 / 1332\n \n There are multiple QtVCP options that are described here: QtVCP INI Settings\n For example the following would start a 16:9 resolution QtPlasmaC screen in full screen mode:\n DISPLAY = qtvcp -f qtplasmac\n \n@@ -34135,15 +34135,15 @@\n 10.8.8.1 Beenden von QtPlasmaC\n Das Beenden oder Herunterfahren von QtPlasmaC erfolgt entweder durch:\n 1. Klicken Sie auf die Schaltfl\u00e4che zum Herunterfahren des Fensters in der Titelleiste des Fensters\n 2. Dr\u00fccken Sie lange auf die Taste POWER auf der Haupt-Registerkarte (engl. main).\n A shutdown warning can be displayed on every shutdown by checking the Exit Warning checkbox on\n the SETTINGS Tab.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 765 / 1332\n \n 10.8.8.2 HAUPT (engl. main)-Registerkarte (engl. tab)\n Screenshot example of the QtPlasmaC MAIN Tab in 16:9 aspect ratio:\n \n Einige Funktionen/Merkmale werden nur f\u00fcr bestimmte Modi verwendet und werden nicht angezeigt,\n@@ -34159,15 +34159,15 @@\n Dropdown-Men\u00fc zu \u00f6ffnen. Es wird verwendet, um die aktuellen\n Materialschnittparameter manuell auszuw\u00e4hlen. Wenn in der\n Materialdatei keine Materialien vorhanden sind, wird nur das\n Standardmaterial angezeigt.\n Hier wird der tats\u00e4chliche Schnittvorschub angezeigt, mit dem sich der\n Tisch bewegt.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 766 / 1332\n \n Tabelle 10.14: (continued)\n Name\n FR:\n PH:\n@@ -34237,15 +34237,15 @@\n Wenn ein Zyklus pausiert wird, zeigt dieser Button \u201dZYKLUS\n FORTSETZEN (engl. CYCLE RESUME) an und blinkt.\n Durch Dr\u00fccken von ZYKLUS FORTSETZEN wird der Zyklus fortgesetzt.\n \n ZYKLUSSTART\n ZYKLUSPAUSE\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 767 / 1332\n \n Tabelle 10.15: (continued)\n Name\n ZYKLUS STOP\n (engl. cycle stop)\n@@ -34321,15 +34321,15 @@\n Beschreibung\n Displays the actual arc voltage.\n Indicates the status of the Arc OK signal.\n Each press of this button will raise the target voltage by\n the THC Threshold voltage (The distance changed will be\n Height Per Volt * THC Threshold voltage).\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 768 / 1332\n \n Tabelle 10.17: (continued)\n Name\n -\n \n@@ -34422,15 +34422,15 @@\n - Will not require an Arc OK signal be received before\n starting machine motion after the \u201dTorch On\u201d signal is\n given.\n - Will disable the THC.\n - Will not stop machine motion if the Arc OK signal is lost.\n For more information see Ignore Arc Ok.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 769 / 1332\n \n Tabelle 10.18: (continued)\n Name\n OHMIC PROBE\n \n@@ -34502,15 +34502,15 @@\n Beschreibung\n This drop down button will change the jog increment. Options are\n determined by the values in the [DISPLAY] section of the\n .ini file and begin with the label \u201dINCREMENTS =\u201d.\n This button will toggle between FAST which is the default linear velocity in\n the .ini file or SLOW which is 10% of the default value.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n Name\n Y+\n YX+\n XZ+\n Z-\n \n@@ -34581,15 +34581,15 @@\n If a file is open, the default material will be selected.\n If no file is open, the preview will be reset to a top down full table view.\n The torch (T0) will be selected if it was not the active tool.\n Diese Schaltfl\u00e4che \u00f6ffnet ein DATEI-\u00d6FFNEN-Panel \u00fcber dem\n VORSCHAU-FENSTER.\n Diese Schaltfl\u00e4che l\u00e4dt die aktuell geladene G-Code-Datei neu.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 771 / 1332\n \n Tabelle 10.24: DRO\n Name\n HOME ALL\n WCS G54\n@@ -34631,30 +34631,30 @@\n orientation, then pressing either Z or P will change the display to the newly selected view. If the user\n then wishes to display the full table while maintaining the currently selected view as the default view\n for a loaded G-code file, then pressing CLEAR will achieve this and allow the selected view orientation\n to prevail the next time a G-code file is loaded.\n 10.8.8.4 CONVERSATIONAL Tab\n Screenshot example of the QtPlasmaC CONVERSATIONAL Tab in 16:9 aspect ratio:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 772 / 1332\n \n The CONVERSATIONAL Tab enables the user to quickly program various simple shapes for quick\n cutting without the need for CAM software.\n See Conversational Shape Library for detailed information on the Conversational feature.\n It is possible to hide this tab so the conversational feature cannot be used by an operator. This may\n be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a HAL\n file using the following command:\n setp qtplasmac.conv_disable 1\n \n 10.8.8.5 PARAMETERS Tab\n Screenshot example of the QtPlasmaC PARAMETERS Tab in 16:9 aspect ratio:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 773 / 1332\n \n Einige Funktionen/Merkmale werden nur f\u00fcr bestimmte Modi verwendet und werden nicht angezeigt,\n wenn sie f\u00fcr den gew\u00e4hlten QtPlasmaC-Modus nicht erforderlich sind.\n This tab is used to display configuration parameters that are modified infrequently.\n It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This\n@@ -34676,15 +34676,15 @@\n Beschreibung\n This sets the amount of time (in seconds) QtPlasmaC will wait\n between commanding a \u201dTorch On\u201d and receiving an Arc OK\n signal before timing out and displaying an error message.\n This sets the number of times QtPlasmaC will attempt to start\n the arc.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 774 / 1332\n \n Tabelle 10.25: (continued)\n Name\n Retry Delay\n \n@@ -34761,15 +34761,15 @@\n This sets the distance threshold used to determine if an Initial Height\n Sense (probe) can be skipped for the current cut, see IHS Skip.\n \n Anmerkung\n If the amount of time between the torch contacting the material and when the torch moves up and\n comes to rest at the Pierce Height seems excessive, see the probing section for a possible solution.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 775 / 1332\n \n Tabelle 10.27: CONFIGURATION - SAFETY\n Name\n Safe Height\n \n@@ -34821,15 +34821,15 @@\n \n CONFIGURATION - THC Two methods of THC activation are available and are selected with the\n Auto Activation checkbutton. Both methods begin their calculations when the current velocity of the\n torch matches the cut feed rate specified for the selected material:\n 1. Delay Activation (the default) is selected when Auto Activation is unchecked. This method uses\n a time delay set with the Delay parameter.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 776 / 1332\n \n 2. Auto Activation is selected when Auto Activation is checked. This method determines that the\n arc voltage is stable by using the Sample Counts and Sample Threshold parameters.\n Name\n Delay\n@@ -34917,15 +34917,15 @@\n Beschreibung\n The top drop down menu is used to manually select the current material\n cut parameters. If there are no materials in the material file then only the\n default material will be displayed.\n This sets the kerf width for the currently selected material. Refer to the\n Heights Diagram diagram for a visual representation.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 777 / 1332\n \n Tabelle 10.32: (continued)\n Name\n Pierce Height\n Pierce Delay\n@@ -34987,15 +34987,15 @@\n The Cut Parameters for the new material will then need to be adjusted and saved.\n The DELETE this button is used to delete a material. After pressing it, the user will be prompted for\n a material number to be deleted, and prompted again to ensure the user is sure. After deletion, the\n material file will be reloaded and the drop down list will display the default material.\n 10.8.8.6 SETTINGS Tab\n Screenshot example of the QtPlasmaC SETTINGS Tab in 16:9 aspect ratio:\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 778 / 1332\n \n Diese Registerkarte wird verwendet, um GUI-Konfigurationsparameter, Schaltfl\u00e4chentext und Herunterfahrtext anzuzeigen, die selten ge\u00e4ndert werden, sowie einige Dienstprogrammschaltfl\u00e4chen.\n It is possible to hide this tab so machine settings cannot be modified by unauthorized personnel. This\n may be achieved either by wiring the pin to a physical key-switch or similar or it may also be set in a\n HAL file using the following command:\n@@ -35010,15 +35010,15 @@\n Foreground\n Highlight\n \n Beschreibung\n This button allows the user to change the color of the GUI Foreground.\n This button allows the user to change the color of the GUI Highlight.\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 779 / 1332\n \n Tabelle 10.33: (continued)\n Name\n LED\n Background\n@@ -35096,15 +35096,15 @@\n current tool) in the Preview Window on the MAIN Tab.\n This allows a user to change the default zoom level for the top down full\n table view in the Preview Window on the MAIN Tab.\n \n USER BUTTON ENTRIES USERBUTTON\n This section shows the text that appears on the Custom User Buttons as well as the code associated\n \n-\fLinuxCNC V2.9.7, 22 Oct 2025\n+\fLinuxCNC V2.9.7, 23 Oct 2025\n \n 780 / 1332\n \n with the user button. User buttons may be changed and the new settings used without restarting\n LinuxCNC.\n The text and/or code may be edited at any time and will be loaded ready for use if the SAVE button is\n clicked.\n@@ -35144,15 +35144,15 @@\n where is the machine name entered in the configuration wizard, is the\n current QtPlasmaC version the user is on, is the current date (YY-MM-DD), and