--- /srv/reproducible-results/rbuild-debian/r-b-build.C0ge1s3J/b1/linuxcnc_2.9.7-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.C0ge1s3J/b2/linuxcnc_2.9.7-1_amd64.changes ├── Files │ @@ -1,9 +1,9 @@ │ │ - 72192af84625654af240ee71263ba49f 26828252 misc optional linuxcnc-doc-de_2.9.7-1_all.deb │ - 8449e04dfb8886351170b16be01aa734 27469012 misc optional linuxcnc-doc-en_2.9.7-1_all.deb │ - d63cb287397da63315d4c1e869e8b69c 26565824 misc optional linuxcnc-doc-es_2.9.7-1_all.deb │ - fb7bd8593f2f570b8f8b0b7c3a5af287 26476072 misc optional linuxcnc-doc-fr_2.9.7-1_all.deb │ - 742d98df39e5ec2dacad95de52c2f8d6 26524032 misc optional linuxcnc-doc-zh-cn_2.9.7-1_all.deb │ + 0f941c32f6805ff47e247c825acc4f35 26826868 misc optional linuxcnc-doc-de_2.9.7-1_all.deb │ + b83b704bd8a3debf66e1b532e82dc6e2 27466736 misc optional linuxcnc-doc-en_2.9.7-1_all.deb │ + 931f0b91e504817c2b29a0dec986dfee 26566052 misc optional linuxcnc-doc-es_2.9.7-1_all.deb │ + 6feaf0e2feee46fa8025764aa26a5525 26475316 misc optional linuxcnc-doc-fr_2.9.7-1_all.deb │ + 16a7462a6e7c06ad2b16add4a2359ba1 26521720 misc optional linuxcnc-doc-zh-cn_2.9.7-1_all.deb │ a5f860d94c3181154d537b97f410c1e8 11450936 debug optional linuxcnc-uspace-dbgsym_2.9.7-1_amd64.deb │ 1a68d1b457eddac8144bf417db040a65 273712 devel optional linuxcnc-uspace-dev_2.9.7-1_amd64.deb │ - 866d2cfe497b71d78576d08476c066df 25673596 misc optional linuxcnc-uspace_2.9.7-1_amd64.deb │ + 090c0cacc9525d7c2ebf58209fc635d8 25674144 misc optional linuxcnc-uspace_2.9.7-1_amd64.deb ├── linuxcnc-doc-de_2.9.7-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-10-22 22:43:13.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1076 2025-10-22 22:43:13.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 26826984 2025-10-22 22:43:13.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 26825600 2025-10-22 22:43:13.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -4,16 +4,16 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/applications/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 340 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-documentation_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 367 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-gcoderef_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 381 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-gettingstarted_de.desktop │ │ │ │ -rw-r--r-- 0 root (0) root (0) 370 2025-10-22 22:43:13.000000 ./usr/share/applications/linuxcnc-integratorinfo_de.desktop │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 870099 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26623282 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 870107 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26623105 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ -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 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 155432 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/LinuxCNC_Integrator_de.pdf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15158 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc/gcode_de.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc-doc-de/ │ │ │ │ -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 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 42238 2025-10-22 22:43:13.000000 ./usr/share/doc/linuxcnc-doc-de/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-22 22:43:13.000000 ./usr/share/doc-base/ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Developer_de.pdf │ │ │ │ │┄ Document info │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ CreationDate: 'D:20251022224313Z' │ │ │ │ │ Creator: 'DBLaTeX-0.3.12' │ │ │ │ │ Producer: 'xdvipdfmx (20250410)' │ │ │ │ │ -Title: 'Entwickler-Handbuch V2.9.7, 22 Oct 2025' │ │ │ │ │ +Title: 'Entwickler-Handbuch V2.9.7, 23 Oct 2025' │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ -Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ +Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ ii │ │ │ │ │ │ │ │ │ │ Inhaltsverzeichnis │ │ │ │ │ 1 Einführung │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ @@ -115,15 +115,15 @@ │ │ │ │ │ │ │ │ │ │ 16 │ │ │ │ │ │ │ │ │ │ 3.8.3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 17 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ iii │ │ │ │ │ │ │ │ │ │ 3.8.3.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 17 │ │ │ │ │ │ │ │ │ │ @@ -277,15 +277,15 @@ │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ 3.8.16.1Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ iv │ │ │ │ │ │ │ │ │ │ 3.8.16.2Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ @@ -447,15 +447,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 29 │ │ │ │ │ │ │ │ │ │ 3.21.3Prozesslinie │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ v │ │ │ │ │ │ │ │ │ │ 3.21.4Kommentare zur Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 30 │ │ │ │ │ │ │ │ │ │ @@ -619,15 +619,15 @@ │ │ │ │ │ │ │ │ │ │ 43 │ │ │ │ │ │ │ │ │ │ 4.14Andere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 43 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ vi │ │ │ │ │ │ │ │ │ │ 5 Quellcode-Stil │ │ │ │ │ │ │ │ │ │ 45 │ │ │ │ │ │ │ │ │ │ @@ -777,15 +777,15 @@ │ │ │ │ │ │ │ │ │ │ 60 │ │ │ │ │ │ │ │ │ │ 8.4.1 LinuxCNC offizielles Git Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 60 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ vii │ │ │ │ │ │ │ │ │ │ 8.4.2 Verwendung von Git im LinuxCNC-Projekt . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 61 │ │ │ │ │ │ │ │ │ │ @@ -870,15 +870,15 @@ │ │ │ │ │ │ │ │ │ │ 10.2GNU Free Documentation License │ │ │ │ │ │ │ │ │ │ 72 │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 1 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 1 │ │ │ │ │ │ │ │ │ │ Einführung │ │ │ │ │ │ │ │ │ │ @@ -901,15 +901,15 @@ │ │ │ │ │ LINUX® ist das eingetragene Warenzeichen von Linus Torvalds in den USA und anderen Ländern. │ │ │ │ │ Die eingetragene Marke Linux® wird im Rahmen einer Unterlizenz von LMI, dem exklusiven Lizenznehmer von Linus Torvalds, dem Eigentümer der Marke auf weltweiter Basis, verwendet. │ │ │ │ │ Das LinuxCNC-Projekt ist nicht mit Debian® verbunden. Debian_ ist ein eingetragenes Warenzeichen │ │ │ │ │ im Besitz von Software in the Public Interest, Inc. │ │ │ │ │ Das LinuxCNC-Projekt ist nicht mit UBUNTU® verbunden. UBUNTU ist eine eingetragene Marke im │ │ │ │ │ Besitz von Canonical Limited. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 2 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 2 │ │ │ │ │ │ │ │ │ │ HAL General Reference │ │ │ │ │ 2.1 HAL Entity Names │ │ │ │ │ @@ -939,15 +939,15 @@ │ │ │ │ │ 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 │ │ │ │ │ functional blocks, each block might have several channels, and each channel has one or more pins. │ │ │ │ │ This results in a structure that resembles a directory tree. Even though halcmd doesn’t recognize the │ │ │ │ │ tree structure, proper choice of naming conventions will let it group related items together (since it │ │ │ │ │ sorts the names). In addition, higher level tools can be designed to recognize such structure, if the │ │ │ │ │ names provide the necessary information. To do that, all HAL components should follow these rules: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 3 / 76 │ │ │ │ │ │ │ │ │ │ • Punkte (”.”) trennen die einzelnen Ebenen der Hierarchie. Dies ist vergleichbar mit dem Schrägstrich (”/”) in einem Dateinamen. │ │ │ │ │ • Bindestriche („-“) trennen Wörter oder Felder auf derselben Hierarchieebene. │ │ │ │ │ • HAL-Komponenten sollten keine Unterstriche oder ”MixedCase” verwenden. 1 │ │ │ │ │ • Verwenden Sie in Namen nur Kleinbuchstaben und Zahlen. │ │ │ │ │ @@ -982,15 +982,15 @@ │ │ │ │ │ Like device numbers, channel numbers start at zero and increment.2 If more than one device is │ │ │ │ │ installed, the channel numbers on additional devices start over at zero. If it is possible to have a │ │ │ │ │ 1 Die unterstrichenen Zeichen wurden entfernt, aber es gibt immer noch einige Fälle, in denen die Mischung nicht stimmt, │ │ │ │ │ zum Beispiel pid.0.Pgain anstelle von pid.0.p-gain. │ │ │ │ │ 2 One exception to the ”channel numbers start at zero” 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 │ │ │ │ │ debate over whether this is a bug or a feature. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 4 / 76 │ │ │ │ │ │ │ │ │ │ channel number greater than 9, then channel numbers should be two digits, with a leading zero │ │ │ │ │ on numbers less than 10 to preserve sort ordering. Some modules have pins and/or parameters │ │ │ │ │ that affect more than one channel. For example a PWM generator might have four channels │ │ │ │ │ with four independent ”duty-cycle” inputs, but one ”frequency” parameter that controls all four │ │ │ │ │ @@ -1031,28 +1031,28 @@ │ │ │ │ │ Funktionen darauf zugreifen. │ │ │ │ │ read|write │ │ │ │ │ Gibt an, ob die Funktion die Hardware liest (engl. read) oder in sie schreibt (engl. write). │ │ │ │ │ 3 Note to driver programmers: Do NOT implement separate functions for different I/O types unless they are interruptible │ │ │ │ │ and can work in independent threads. If interrupting an encoder read, reading digital inputs, and then resuming the encoder │ │ │ │ │ read will cause problems, then implement a single function that does everything. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 5 / 76 │ │ │ │ │ │ │ │ │ │ Beispiele │ │ │ │ │ motenc.0.encoder.read │ │ │ │ │ Liest alle Encoder auf der ersten Motenc-Platine aus. │ │ │ │ │ generic8255.0.din.09-15.read │ │ │ │ │ Liest den zweiten 8-Bit-Port auf der ersten generischen 8255-basierten digitalen E/A-Karte. │ │ │ │ │ ppmc.0.write │ │ │ │ │ Schreibt alle Ausgänge (Schrittgeneratoren, PWM, DACs und Digital) auf die erste Pico Systems │ │ │ │ │ ppmc-Karte. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 6 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 3 │ │ │ │ │ │ │ │ │ │ Code Anmerkungen │ │ │ │ │ 3.1 Zielgruppe │ │ │ │ │ @@ -1077,15 +1077,15 @@ │ │ │ │ │ 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 │ │ │ │ │ Freiheitsgraden der Maschine zu unterscheiden. In diesem Dokument werden letztere als Gelenke und nicht als Achsen bezeichnet. Die grafischen Benutzeroberflächen und einige andere Teile │ │ │ │ │ des Quellcodes folgen dieser Unterscheidung vielleicht nicht immer, aber die Interna des ”Motion │ │ │ │ │ Controllers” schon. │ │ │ │ │ • GELENK (engl. JOINT)- Ein Gelenk ist eines der beweglichen Teile der Maschine. Gelenke unterscheiden sich von Achsen, obwohl die beiden Begriffe manchmal (fälschlicherweise) für dieselbe │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 7 / 76 │ │ │ │ │ │ │ │ │ │ Tisch einer Bridgeport-Fräse alles Gelenke. Die Schulter, der Ellbogen und das Handgelenk eines │ │ │ │ │ Roboterarms sind Gelenke, ebenso wie die Linearaktuatoren eines Hexapods. Jedem Gelenk ist ein │ │ │ │ │ Motor oder Aktuator zugeordnet. Gelenke entsprechen nicht unbedingt den X-, Y- und Z-Achsen, │ │ │ │ │ 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 │ │ │ │ │ @@ -1116,19 +1116,19 @@ │ │ │ │ │ gedacht. │ │ │ │ │ │ │ │ │ │ 3.4 Architekturübersicht │ │ │ │ │ Die LinuxCNC-Architektur besteht aus vier Komponenten: einem Motion-Controller (EMCMOT), einem diskreten IO-Controller (EMCIO), einem Task-Executor, der diese koordiniert (EMCTASK) und │ │ │ │ │ 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 │ │ │ │ │ (wo findet man benötigte Daten, wie kann man Dinge einfach erweitern/verändern, usw.). │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 8 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 9 / 76 │ │ │ │ │ │ │ │ │ │ 3.4.1 LinuxCNC-Softwarearchitektur │ │ │ │ │ Auf der gröbsten Ebene ist LinuxCNC eine Hierarchie von drei Controllern: der Task-Level-Befehlshandler │ │ │ │ │ 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ür Spindel, Kühlmittel- und Hilfs-Subsysteme (z. B. Notaus, Schmierung). Der Task-Controller koordiniert die │ │ │ │ │ Aktionen der Bewegungssteuerung und der diskreten E/A-Steuerung. Deren Aktionen werden in konventionellen numerischen Steuerungs- ”G- und M-Code” Programmen programmiert, die von der Aufgabensteuerung in NML-Nachrichten interpretiert und zu den entsprechenden Zeitpunkten entweder │ │ │ │ │ @@ -1159,19 +1159,19 @@ │ │ │ │ │ durch │ │ │ │ │ LinuxCNC wird durch das linuxcnc Skript gestartet, welches eine Konfigurations-.ini-Datei liest und │ │ │ │ │ alle benötigten Prozesse startet. Für die Echtzeit-Bewegungssteuerung lädt das Skript zunächst die │ │ │ │ │ Standard-Module tpmod und homemod und lädt dann die Kinematik- und Bewegungsmodule entsprechend den Einstellungen in halfiles, die in der .ini-Datei angegeben sind. │ │ │ │ │ Benutzerdefinierte Referenzfahrt- oder Flugbahnplanungsmodule können anstelle der Standardmodule über .ini-Datei-Einstellungen oder Befehlszeilenoptionen verwendet werden. Benutzerdefinierte │ │ │ │ │ Module müssen alle von den Standardmodulen verwendeten Funktionen implementieren. Das Dienstprogramm halcompile kann verwendet werden, um ein benutzerdefiniertes Modul zu erstellen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 10 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 11 / 76 │ │ │ │ │ │ │ │ │ │ 3.6 Blockdiagramme und Datenfluss │ │ │ │ │ Die folgende Abbildung ist das Blockdiagramm einer Gelenksteuerung. Für jedes Gelenk gibt es genau │ │ │ │ │ eine Gelenksteuerung. Die Gelenksteuerungen arbeiten auf einer niedrigeren Ebene als die Kinematik, einer Ebene, auf der alle Gelenke völlig unabhängig sind. Alle Daten für ein Gelenk befinden sich │ │ │ │ │ in einer einzigen Gelenkstruktur. Einige Elemente dieser Struktur sind im Blockdiagramm sichtbar, │ │ │ │ │ @@ -1184,15 +1184,15 @@ │ │ │ │ │ wird mit der Traj-Rate aktualisiert, nicht mit der Servo-Rate. Im koordinierten Modus wird sie durch │ │ │ │ │ den Traj-Planer bestimmt. Im Teleop-Modus wird sie durch den Traj-Planer bestimmt? Im freien │ │ │ │ │ Modus sie entweder von actualPos kopiert oder durch Anwendung von Vorwärtskinematik auf (2) │ │ │ │ │ oder (3) erzeugt. │ │ │ │ │ • emcmotStatus->joints[n].coarse_pos - Dies ist die gewünschte Position, in Gelenkkoordinaten, aber │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 12 / 76 │ │ │ │ │ │ │ │ │ │ sie durch Anwendung von inversen Kinematiken auf (1) erzeugt. Im freien Modus wird sie von (3) │ │ │ │ │ kopiert, glaube ich. │ │ │ │ │ • ’emcmotStatus->joints[n].pos_cmd - Dies ist die gewünschte Position, in Gelenkkoordinaten, nach │ │ │ │ │ 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 │ │ │ │ │ @@ -1215,26 +1215,26 @@ │ │ │ │ │ vorzutäuschen, oder B) zuzugeben, dass wir die kartesischen Koordinaten nicht wirklich kennen, │ │ │ │ │ und actualPos einfach nicht zu aktualisieren. Unabhängig davon, welcher Ansatz verwendet wird, │ │ │ │ │ sehe ich keinen Grund, es nicht auf die gleiche Weise zu tun, unabhängig von der Betriebsart. Ich │ │ │ │ │ würde das Folgende vorschlagen: Wenn es Vorwärts-Kins gibt, verwenden Sie sie, es sei denn, sie │ │ │ │ │ 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 │ │ │ │ │ aktualisiert werden würde. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 13 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 3.7 Referenzfahrt (engl. homing) │ │ │ │ │ 3.7.1 Zustandsdiagramm der Referenzfahrt │ │ │ │ │ │ │ │ │ │ 14 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 15 / 76 │ │ │ │ │ │ │ │ │ │ 3.7.2 Ein weiteres Homing-Diagramm │ │ │ │ │ │ │ │ │ │ 3.8 Befehle │ │ │ │ │ Die Befehle werden durch eine große Fallunterscheidung (Switch-Anweisung) in der Funktion emcmotCommandHandler() implementiert, die bei der Servo-Rate aufgerufen wird. Mehr zu dieser Funktion später. │ │ │ │ │ @@ -1247,15 +1247,15 @@ │ │ │ │ │ │ │ │ │ │ 3.8.1 Abbrechen │ │ │ │ │ Der Befehl ABORT (engl. für Abbruch) stoppt einfach alle Bewegungen. Er kann jederzeit erteilt werden und wird immer akzeptiert. Er deaktiviert den Motion Controller nicht und ändert auch keine │ │ │ │ │ Zustandsinformationen, sondern bricht lediglich eine laufende Bewegung ab.1 │ │ │ │ │ 1 Es scheint, dass der Code auf höherer Ebene (TASK und höher) ABORT auch zum Löschen von Fehlern verwendet. Wann │ │ │ │ │ immer ein anhaltender Fehler auftritt (z. B. wenn die Hardware-Endschalter überschritten werden), sendet der übergeordnete │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 16 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.1.1 Anforderungen │ │ │ │ │ Keine. Der Befehl wird immer angenommen und sofort ausgeführt. │ │ │ │ │ 3.8.1.2 Ergebnisse │ │ │ │ │ Im freien Modus sind die Trajektorienplaner für den freien Modus deaktiviert. Das führt dazu, dass │ │ │ │ │ @@ -1288,15 +1288,15 @@ │ │ │ │ │ Bewegung der Maschine auf kartesischen Koordinaten unter Verwendung der Kinematik und nicht auf │ │ │ │ │ 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 │ │ │ │ │ Teleop-Modus ähnelt dem Joggen, mit dem Unterschied, dass sie im kartesischen Raum und nicht im │ │ │ │ │ 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ächen für diese │ │ │ │ │ Code einen ständigen Strom von ABORTs an den Bewegungsregler, um den Fehler zu beheben. Tausende von ihnen…. Das │ │ │ │ │ bedeutet, dass die Bewegungssteuerung anhaltende Fehler vermeiden sollte. Dies muss untersucht werden. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 17 / 76 │ │ │ │ │ │ │ │ │ │ Maschinen geben diesen Befehl möglicherweise nicht einmal aus. Bei nicht-trivialen Maschinen wie │ │ │ │ │ Robotern und Hexapoden wird der Teleop-Modus jedoch für die meisten vom Benutzer befohlenen │ │ │ │ │ Jog-Bewegungen verwendet. │ │ │ │ │ 3.8.3.1 Anforderungen │ │ │ │ │ @@ -1327,15 +1327,15 @@ │ │ │ │ │ Wenn sich die Maschine bereits im Koordinatenmodus befindet, geschieht nichts. Andernfalls wird die │ │ │ │ │ Maschine in den Koordinatenmodus versetzt. Der Kinematikcode wird aktiviert, die Interpolatoren │ │ │ │ │ werden entleert und geleert, und die Warteschlangen des Bahnplaners sind leer. Der Trajektorienplaner ist aktiv und wartet auf einen LINE-, CIRCLE- oder PROBE-Befehl. │ │ │ │ │ │ │ │ │ │ 3.8.5 ENABLE (AKTIVIEREN) │ │ │ │ │ Der Befehl ENABLE aktiviert den Motion Controller. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 18 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.5.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.5.2 Ergebnisse │ │ │ │ │ Wenn der Controller bereits aktiviert ist, passiert nichts. Ansonsten wird der Controller aktiviert. Warteschlangen und Interpolatoren werden geleert. Alle Bewegungs- oder Referenzfahrtvorgänge werden │ │ │ │ │ @@ -1360,15 +1360,15 @@ │ │ │ │ │ Derzeit nichts. (Ein Aufruf der alten extAmpEnable-Funktion ist derzeit auskommentiert.) Eventuell │ │ │ │ │ wird der Amp-Enable-HAL-Pin auf true gesetzt. │ │ │ │ │ │ │ │ │ │ 3.8.8 DISABLE_AMPLIFIER │ │ │ │ │ Der Befehl DISABLE_AMPLIFIER schaltet den Amp-Enable-Ausgang für einen einzelnen Verstärker │ │ │ │ │ aus, ohne etwas anderes zu ändern. Auch dies ist nützlich für Spindeldrehzahlregler. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 19 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.8.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.8.2 Ergebnisse │ │ │ │ │ Derzeit nichts. (Ein Aufruf der alten extAmpEnable Funktion ist derzeit auskommentiert.) Eventuell │ │ │ │ │ @@ -1392,15 +1392,15 @@ │ │ │ │ │ nicht. │ │ │ │ │ │ │ │ │ │ 3.8.11 ENABLE_WATCHDOG │ │ │ │ │ Der Befehl ENABLE_WATCHDOG aktiviert einen hardwarebasierten Watchdog (falls vorhanden). │ │ │ │ │ 3.8.11.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 20 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.11.2 Ergebnisse │ │ │ │ │ Derzeit nichts. Der alte Watchdog war ein seltsames Ding, das eine bestimmte Soundkarte verwendete. Möglicherweise wird in Zukunft eine neue Watchdog-Schnittstelle entwickelt. │ │ │ │ │ │ │ │ │ │ 3.8.12 DISABLE_WATCHDOG │ │ │ │ │ @@ -1423,15 +1423,15 @@ │ │ │ │ │ Der Befehl RESUME startet den Trajektorienplaner neu, wenn er angehalten wurde. Er hat keine │ │ │ │ │ Auswirkung im freien oder Teleop-Modus, oder wenn der Planer nicht angehalten ist. │ │ │ │ │ 3.8.14.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. │ │ │ │ │ 3.8.14.2 Ergebnisse │ │ │ │ │ Der Trajektorienplaner arbeitet weiter. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 21 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.15 STEP │ │ │ │ │ Der STEP-Befehl (engl. für Schritt) startet den Trajektorienplaner neu, wenn er angehalten wurde, und │ │ │ │ │ weist ihn an, wieder anzuhalten, wenn er einen bestimmten Punkt erreicht. Er hat keine Wirkung im │ │ │ │ │ freien oder Teleop-Modus. Zu diesem Zeitpunkt weiß ich nicht genau, wie das funktioniert. Ich werde │ │ │ │ │ @@ -1460,15 +1460,15 @@ │ │ │ │ │ 3.8.17.1 Anforderungen │ │ │ │ │ Keine. Der Befehl kann jederzeit erteilt werden und wird immer akzeptiert. (Ich denke, es sollte nur │ │ │ │ │ im freien Modus funktionieren.) │ │ │ │ │ 3.8.17.2 Ergebnisse │ │ │ │ │ Die Begrenzungen für alle Gelenke werden bis zum Ende des nächsten JOG-Befehls außer Kraft gesetzt. (Dies ist derzeit nicht möglich… sobald ein OVERRIDE_LIMITS-Befehl empfangen wird, werden │ │ │ │ │ die Begrenzungen ignoriert, bis ein weiterer OVERRIDE_LIMITS-Befehl sie wieder aktiviert.) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 22 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.18 HOME │ │ │ │ │ Der HOME-Befehl leitet eine Referenzfahrt an einem bestimmten Gelenk ein. Die tatsächliche Referenzierungssequenz wird durch eine Reihe von Konfigurationsparametern bestimmt und kann vom │ │ │ │ │ einfachen Setzen der aktuellen Position auf Null bis hin zu einer mehrstufigen Suche nach einem │ │ │ │ │ Referenzschalter und einem Indeximpuls, gefolgt von einer Bewegung zu einer beliebigen Referenzposition, reichen. Weitere Informationen über die Referenzfahrt-Sequenz finden Sie im Abschnitt Referenzfahrt des Integrator-Handbuchs. │ │ │ │ │ @@ -1494,15 +1494,15 @@ │ │ │ │ │ 3.8.20 JOG_INCR │ │ │ │ │ Der JOG_INCR-Befehl initiiert einen inkrementellen Tippbetrieb für ein einzelnes Gelenk. Inkrementelle Verfahrbewegungen sind kumulativ, d.h. wenn Sie zwei JOG_INCR-Befehle geben, die jeweils │ │ │ │ │ eine Bewegung von 0,100 Zoll erfordern, ergibt dies eine Bewegung von 0,200 Zoll, auch wenn der │ │ │ │ │ zweite Befehl gegeben wird, bevor der erste beendet ist. Normalerweise stoppen Inkremental-Jogs, │ │ │ │ │ wenn sie die gewünschte Strecke zurückgelegt haben, aber sie stoppen auch, wenn sie an eine Grenze │ │ │ │ │ stoßen, oder bei einem ABORT-Befehl. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 23 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.20.1 Anforderungen │ │ │ │ │ Der Befehlshandler lehnt den JOG_INCR-Befehl stillschweigend ab, wenn sich die Maschine nicht im │ │ │ │ │ freien Modus befindet, wenn ein Gelenk in Bewegung ist (GET_MOTION_INPOS_FLAG() == FALSE) │ │ │ │ │ oder wenn die Bewegung nicht aktiviert ist. Der Befehl wird auch ignoriert, wenn das Gelenk bereits │ │ │ │ │ @@ -1534,15 +1534,15 @@ │ │ │ │ │ und die Maschine fährt zur befohlenen Endposition. Der Planer im freien Modus beschleunigt zu │ │ │ │ │ Beginn der Bewegung mit der Gelenkbeschleunigungsgrenze und bremst mit der Gelenkbeschleunigungsgrenze ab, um an der Zielposition anzuhalten. │ │ │ │ │ │ │ │ │ │ 3.8.22 SET_LINE │ │ │ │ │ Der Befehl SET_LINE fügt eine gerade Linie in die Warteschlange des Trajektorienplaners ein. │ │ │ │ │ (Mehr dazu später) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 24 / 76 │ │ │ │ │ │ │ │ │ │ 3.8.23 SET_CIRCLE │ │ │ │ │ Der Befehl SET_CIRCLE fügt eine kreisförmige Bewegung in die Warteschlange des Trajektorienplaners ein. │ │ │ │ │ (Mehr dazu später) │ │ │ │ │ │ │ │ │ │ @@ -1572,15 +1572,15 @@ │ │ │ │ │ + Umkehrspiel- und Schraubenfehlerkompensation │ │ │ │ │ │ │ │ │ │ 3.10 Task-Controller (EMCTASK) │ │ │ │ │ 3.10.1 Zustand │ │ │ │ │ Die Aufgabe hat drei mögliche interne Zustände: Notaus (E-Stop), Notaus-Reset (E-Stop Reset) und │ │ │ │ │ Maschine Ein (Machine On). │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 25 / 76 │ │ │ │ │ │ │ │ │ │ 3.11 IO-Controller (EMCIO) │ │ │ │ │ Die E/A-Steuerung (engl. I/O controller) ist ein separates Modul, das NML-Befehle von TASK annimmt. │ │ │ │ │ Es interagiert mit externen E/A über HAL-Pins. iocontrol.cc wird über das linuxcnc-Skript vor TASK │ │ │ │ │ geladen. Derzeit gibt es zwei Versionen von iocontrol. Die zweite Version behandelt Hardware-Fehler │ │ │ │ │ @@ -1605,15 +1605,15 @@ │ │ │ │ │ #define EMC_TOOL_PREPARE_TYPE ((NMLTYPE) 1104) │ │ │ │ │ #define EMC_TOOL_LOAD_TYPE ((NMLTYPE) 1105) │ │ │ │ │ #define EMC_TOOL_UNLOAD_TYPE ((NMLTYPE) 1106) │ │ │ │ │ #define EMC_TOOL_LOAD_TOOL_TABLE_TYPE ((NMLTYPE) 1107) │ │ │ │ │ #define EMC_TOOL_SET_OFFSET_TYPE ((NMLTYPE) 1108) │ │ │ │ │ #define EMC_TOOL_SET_NUMBER_TYPE ((NMLTYPE) 1109) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 26 / 76 │ │ │ │ │ │ │ │ │ │ // die folgende Nachricht wird gleich zu Beginn eines M6 an io gesendet │ │ │ │ │ // noch bevor emccanon die Bewegung zur Werkzeugwechselposition ausgibt │ │ │ │ │ #define EMC_TOOL_START_CHANGE_TYPE ((NMLTYPE) 1110) │ │ │ │ │ │ │ │ │ │ @@ -1643,15 +1643,15 @@ │ │ │ │ │ Stellt einen Block von gemeinsamem Speicher zusammen mit einer Semaphore (geerbt von der Klasse │ │ │ │ │ Semaphore) bereit. Die Erstellung und Zerstörung der Semaphore wird durch den SharedMemoryKonstruktor und -Destruktor gehandhabt. │ │ │ │ │ │ │ │ │ │ 3.17 ShmBuffer │ │ │ │ │ Klasse zur Weitergabe von NML-Nachrichten zwischen lokalen Prozessen unter Verwendung eines │ │ │ │ │ gemeinsamen Speicherpuffers. Ein Großteil der internen Arbeitsweise wird von der CMS-Klasse geerbt. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 27 / 76 │ │ │ │ │ │ │ │ │ │ 3.18 Timer │ │ │ │ │ Die Klasse Timer bietet einen periodischen Timer, der nur durch die Auflösung der Systemuhr begrenzt ist. Wenn zum Beispiel ein Prozess alle 5 Sekunden ausgeführt werden muss, unabhängig von │ │ │ │ │ der Zeit, die für die Ausführung des Prozesses benötigt wird. Der folgende Codeschnipsel zeigt wie : │ │ │ │ │ main() │ │ │ │ │ @@ -1681,15 +1681,15 @@ │ │ │ │ │ NML verwendeten Funktionen enthält. Viele der internen Funktionen sind überladen, um spezifische │ │ │ │ │ hardwareabhängige Methoden der Datenübergabe zu ermöglichen. Letztlich dreht sich alles um einen zentralen Speicherblock (der als Nachrichtenpuffer oder einfach Puffer bezeichnet wird). Dieser │ │ │ │ │ Puffer kann ein gemeinsam genutzter Speicherblock sein, auf den andere CMS/NML-Prozesse zugreifen, oder ein lokaler und privater Puffer für Daten, die über Netzwerk- oder serielle Schnittstellen │ │ │ │ │ übertragen werden. │ │ │ │ │ Der Puffer wird zur Laufzeit dynamisch zugewiesen, um eine größere Flexibilität des CMS/NMLSubsystems zu ermöglichen. Die Puffergröße muss groß genug sein, um die größte Nachricht aufzunehmen, eine kleine Menge für den internen Gebrauch und die Möglichkeit, die Nachricht zu kodieren, wenn diese Option gewählt wird (auf kodierte Daten wird später eingegangen). Die folgende │ │ │ │ │ Abbildung zeigt eine interne Ansicht des Pufferspeichers. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 28 / 76 │ │ │ │ │ │ │ │ │ │ CMS-Puffer Die CMS-Basisklasse ist in erster Linie für die Erstellung der Kommunikationswege und │ │ │ │ │ der Schnittstellen zum Betriebssystem verantwortlich. │ │ │ │ │ │ │ │ │ │ 3.21 Format der Konfigurationsdatei │ │ │ │ │ @@ -1707,15 +1707,15 @@ │ │ │ │ │ • neut - ein boolescher Wert, der angibt, ob die Daten im Puffer in einem maschinenunabhängigen │ │ │ │ │ Format oder im Rohformat kodiert sind. │ │ │ │ │ • RPC# - Obsolet - Platzhalter nur noch aus Gründen der Abwärtskompatibilität. │ │ │ │ │ • buffer# - Eine eindeutige ID-Nummer, die verwendet wird, wenn ein Server mehrere Puffer kontrolliert. │ │ │ │ │ • max_procs - ist die maximale Anzahl von Prozessen, die sich mit diesem Puffer verbinden dürfen. │ │ │ │ │ • key - ist ein numerischer Bezeichner für einen gemeinsamen Speicherpuffer │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 29 / 76 │ │ │ │ │ │ │ │ │ │ 3.21.2 Typspezifische Konfigurationen │ │ │ │ │ Der Puffertyp impliziert zusätzliche Konfigurationsoptionen, während das Host-Betriebssystem bestimmte Kombinationen ausschließt. In dem Bemühen, die veröffentlichte Dokumentation in ein kohärentes Format zu bringen, wird nur der Puffertyp SHMEM behandelt. │ │ │ │ │ • mutex=os_sem - Standardmodus für die Bereitstellung von Semaphore-Sperren des Pufferspeichers. │ │ │ │ │ • mutex=none - Nicht verwendet │ │ │ │ │ @@ -1747,15 +1747,15 @@ │ │ │ │ │ • host - gibt an, wo im Netzwerk dieser Prozess ausgeführt wird. │ │ │ │ │ • ops - gibt dem Prozess nur Lese-, nur Schreib- oder Lese-/Schreibzugriff auf den Puffer. │ │ │ │ │ • server - gibt an, ob dieser Prozess einen Server für diesen Puffer betreiben wird. │ │ │ │ │ • timeout - legt die Timeout-Eigenschaften für Zugriffe auf den Puffer fest. │ │ │ │ │ • master - gibt an, ob dieser Prozess für die Erstellung und Löschung des Puffers verantwortlich ist. │ │ │ │ │ • c_num - eine Ganzzahl zwischen Null und (max_procs -1) │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 30 / 76 │ │ │ │ │ │ │ │ │ │ 3.21.4 Kommentare zur Konfiguration │ │ │ │ │ Einige der Konfigurationskombinationen sind ungültig, während andere bestimmte Beschränkungen │ │ │ │ │ mit sich bringen. Auf einem Linux-System ist GLOBMEM überflüssig, während PHANTOM nur in der │ │ │ │ │ Testphase einer Anwendung wirklich nützlich ist, gleiches gilt für FILEMEM. LOCMEM ist für eine │ │ │ │ │ @@ -1794,15 +1794,15 @@ │ │ │ │ │ 3.22 NML-Basisklasse │ │ │ │ │ Mehr zu Listen und die Beziehung zwischen NML, NMLmsg und den untergeordneten cms-Klassen. │ │ │ │ │ Nicht zu verwechseln mit NMLmsg, RCS_STAT_MSG, oder RCS_CMD_MSG. │ │ │ │ │ NML ist verantwortlich für das Parsen der Konfigurationsdatei, die Konfiguration der cms-Puffer und │ │ │ │ │ die Weiterleitung von Nachrichten an die richtigen Puffer. Zu diesem Zweck erstellt NML mehrere │ │ │ │ │ Listen für: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 31 / 76 │ │ │ │ │ │ │ │ │ │ • cms-Puffer, die erstellt oder die verbunden wurden. │ │ │ │ │ • Prozesse und die Puffer, mit denen sie verbunden sind │ │ │ │ │ • eine lange Liste von Formatfunktionen für jeden Nachrichtentyp │ │ │ │ │ Dieser letzte Punkt ist wahrscheinlich der Kern eines Großteils der schlechten Bewertung von libnml/rcslib und NML im Allgemeinen. Jede Nachricht, die über NML weitergegeben wird, erfordert neben │ │ │ │ │ @@ -1829,15 +1829,15 @@ │ │ │ │ │ übergibt. In format_xxx() findet die Arbeit des Aufbaus oder Abbaus der Nachricht statt. Eine Liste │ │ │ │ │ verschiedener Funktionen wird nacheinander aufgerufen, um verschiedene Teile des NML-Headers │ │ │ │ │ (nicht zu verwechseln mit dem cms-Header) in die richtige Reihenfolge zu bringen - die letzte aufgerufene Funktion ist emcFormat() in emc.cc. │ │ │ │ │ 3.22.1.3 NMLmsg und NML-Beziehungen │ │ │ │ │ NMLmsg ist die Basisklasse, von der alle Nachrichtenklassen abgeleitet sind. Für jede Nachrichtenklasse muss eine eindeutige ID definiert (und an den Konstruktor übergeben) werden sowie eine │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 32 / 76 │ │ │ │ │ │ │ │ │ │ im NML-Konstruktor deklariert worden sein. Durch die von NML erstellten verknüpften Listen ist es │ │ │ │ │ möglich, den cms-Zeiger auszuwählen, der an den Formatierer übergeben wird, und damit den zu │ │ │ │ │ verwendenden Puffer. │ │ │ │ │ │ │ │ │ │ @@ -1869,15 +1869,15 @@ │ │ │ │ │ Beispiele für nicht-zufällige Werkzeugwechsler sind der ”manuelle” Werkzeugwechsler, Drehautomaten und Regalwechsler. │ │ │ │ │ Wenn für einen nicht-zufälligen Werkzeugwechsler konfiguriert, ändert LinuxCNC die Platznummer in │ │ │ │ │ der Werkzeugtabellen-Datei nicht wenn Werkzeuge geladen bzw. entladen werden. LinuxCNC-intern │ │ │ │ │ werden bei einem Werkzeugwechsel die Werkzeug-Informationen von der Werkzeugtabelle kopiert │ │ │ │ │ von der jeweiligen Taschennummer der Quelle (der Ablage) zur Tasche mit der Nummer 0 (welche │ │ │ │ │ die Spindel darstellt). Dies ersetzt die vorherigen dort abgelegten Werkzeuginformationen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 33 / 76 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ In LinuxCNC configured for nonrandom toolchanger, tool 0 (T0) has special meaning: ”no tool”. T0 │ │ │ │ │ may not appear in the tool table file, and changing to T0 will result in LinuxCNC thinking it has got │ │ │ │ │ an empty spindle. │ │ │ │ │ @@ -1909,15 +1909,15 @@ │ │ │ │ │ • Wenn LinuxCNC für einen zufälligen Werkzeugwechsler konfiguriert ist, muss diese Zahl nichtnegativ sein. T0 ist in der Werkzeugtabelle erlaubt, und wird in der Regel verwendet, um ”kein │ │ │ │ │ Werkzeug”, d.h. die leere Tasche darstellen. │ │ │ │ │ Taschennummer │ │ │ │ │ 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ängig davon ob für zufällige und nicht-zufällige Werkzeugwechsler konfiguriert: │ │ │ │ │ • Wenn LinuxCNC für einen nicht-zufälligen 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ädt, so kann es │ │ │ │ │ einen Unterschied zwischen den Platznummern in der Werkzeugdatei und den internen Platznummern von LinuxCNC geben. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 34 / 76 │ │ │ │ │ │ │ │ │ │ • Wenn LinuxCNC für einen zufälligen Werkzeugwechsler konfiguriert ist, müssen die Platznummern in der Werkzeugdatei zwischen 0 und 1000, einschließlich sein. Pockets 1-1000 sind im │ │ │ │ │ Werkzeugwechsler, Tasche 0 ist die Spindel. │ │ │ │ │ Durchmesser │ │ │ │ │ Durchmesser des Werkzeugs in Maschineneinheiten. │ │ │ │ │ @@ -1948,15 +1948,15 @@ │ │ │ │ │ │ │ │ │ │ 3.24.3.2 M6 │ │ │ │ │ Weist den Werkzeugwechsler an, zum aktuell ausgewählten Werkzeug zu wechseln (ausgewählt durch │ │ │ │ │ den vorherigen Befehl Txxx). │ │ │ │ │ Wird von Interp::convert_tool_change() behandelt. │ │ │ │ │ 1. Die Maschine wird aufgefordert, zum ausgewählten Werkzeug zu wechseln, indem die CanonFunktion CHANGE_TOOL() mit settings->selected_pocket (einem Werkzeugdatenindex) aufgerufen wird. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 35 / 76 │ │ │ │ │ │ │ │ │ │ a. (saicanon) Sets sai’s _active_slot to the passed-in pocket number. Tool information is copied from the selected pocket of of the tool table (ie, from sai’s _tools[_active_slot]) to │ │ │ │ │ the spindle (aka sai’s _tools[0]). │ │ │ │ │ b. (emccanon) Sendet eine EMC_TOOL_LOAD Nachricht an Task, die diese an IO sendet. IO setzt │ │ │ │ │ emcioStatus.tool.toolInSpindle auf die Werkzeugnummer des Werkzeugs in der Tasche, │ │ │ │ │ @@ -1988,15 +1988,15 @@ │ │ │ │ │ wo sie zum Offset für zukünftige Bewegungen verwendet werden. │ │ │ │ │ 3. Zurück 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 │ │ │ │ │ wird. │ │ │ │ │ 3.24.3.4 G10 L1/L10/L11 │ │ │ │ │ Ändert die Werkzeugtabelle. │ │ │ │ │ Wird von Interp::convert_setup_tool() behandelt. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 36 / 76 │ │ │ │ │ │ │ │ │ │ 1. Wählt die Werkzeugnummer aus dem P-Wort im Block aus und findet die Tasche für dieses Werkzeug: │ │ │ │ │ a. Bei einer nicht-zufälligen Werkzeugwechsler-Konfiguration ist dies immer die Platznummer │ │ │ │ │ im Werkzeugwechsler (auch wenn sich das Werkzeug in der Spindel befindet). │ │ │ │ │ b. Bei einer zufälligen Werkzeugwechslerkonfiguration wird, wenn das Werkzeug gerade geladen ist, Platz 0 verwendet (Platz 0 bedeutet ”die Spindel”), und wenn das Werkzeug nicht │ │ │ │ │ @@ -2028,15 +2028,15 @@ │ │ │ │ │ 3.24.3.5 M61 │ │ │ │ │ Setze aktuelle Werkzeugnummer. Dies wechselt LinuxCNC’s interne Darstellung, welches Werkzeug │ │ │ │ │ in der Spindel ist, ohne tatsächlich bewegen den Werkzeugwechsler oder Austausch von Werkzeugen. │ │ │ │ │ Wird von Interp::convert_tool_change() behandelt. │ │ │ │ │ Canon: CHANGE_TOOL_NUMBER() │ │ │ │ │ settings->current_pocket wird dem Werkzeugdaten-Index zugewiesen, der das durch das Q-WortArgument angegebene Werkzeug enthält. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 37 / 76 │ │ │ │ │ │ │ │ │ │ 3.24.3.6 G41/G41.1/G42/G42.1 │ │ │ │ │ Aktiviert die Fräserradiuskompensation (engl. kurz cutter comp genannt). │ │ │ │ │ Wird von Interp::convert_cutter_compensation_on() behandelt. │ │ │ │ │ Kein Canon-Aufruf, die Fräser Kompensation erfolgt im Interpreter. Verwendet die Werkzeugtabelle │ │ │ │ │ @@ -2069,15 +2069,15 @@ │ │ │ │ │ settings.selected_pocket │ │ │ │ │ Tooldatenindex des zuletzt mit Txxx ausgewählten Werkzeugs. │ │ │ │ │ settings.current_pocket │ │ │ │ │ Ursprünglicher Werkzeugdatenindex des Werkzeugs, das sich gerade in der Spindel befindet. │ │ │ │ │ Mit anderen Worten: Von welchem Werkzeugdatenindex das Werkzeug geladen wurde, das sich │ │ │ │ │ gerade in der Spindel befindet. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 38 / 76 │ │ │ │ │ │ │ │ │ │ settings.tool_table[] │ │ │ │ │ Ein Array mit Werkzeuginformationen. Der Index im Array ist die ”Platznummer” (auch ”Slotnummer” genannt). Platz 0 ist die Spindel, die Plätze 1 bis (CANON_POCKETS_MAX-1) sind die │ │ │ │ │ Plätze des Werkzeugwechslers. │ │ │ │ │ settings.tool_offset_index │ │ │ │ │ @@ -2111,15 +2111,15 @@ │ │ │ │ │ Diese werden über INI-Variablen im Abschnitt [EMCIO] gesetzt und bestimmen, wie Werkzeugwechsel durchgeführt werden. │ │ │ │ │ │ │ │ │ │ 3.25 Parameter-Bestimmung von Gelenken und Achsen │ │ │ │ │ 3.25.1 Im Statuspuffer │ │ │ │ │ Der Statuspuffer wird vom Task-Modul und den Benutzeroberflächen verwendet. │ │ │ │ │ FIXME: axis_mask und axes überspezifizieren die Anzahl der Achsen │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 39 / 76 │ │ │ │ │ │ │ │ │ │ status.motion.traj.axis_mask │ │ │ │ │ A bitmask with a ”1” for the axes that are present and a ”0” for the axes that are not present. X is │ │ │ │ │ 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, │ │ │ │ │ a machine with X and Z axes would have an axis_mask of 0x5, an XYZ machine would have 0x7, │ │ │ │ │ @@ -2145,15 +2145,15 @@ │ │ │ │ │ Die Echtzeitkomponente des Motion Controllers erhält zunächst die Anzahl der Joints aus dem LoadTime-Parameter num_joints. Dieser bestimmt, wie viele Gelenke mit HAL-Pins beim Start erzeugt │ │ │ │ │ werden. │ │ │ │ │ Die Anzahl der Gelenke einer Bewegung kann zur Laufzeit mit dem Befehl EMCMOT_SET_NUM_JOINTS │ │ │ │ │ aus dem Task heraus geändert werden. │ │ │ │ │ Der Motion Controller arbeitet immer mit EMCMOT_MAX_AXIS-Achsen. Er erstellt immer neun Sätze von │ │ │ │ │ ”Achsen..”-Pins. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ Kapitel 4 │ │ │ │ │ │ │ │ │ │ NML-Nachrichten │ │ │ │ │ Liste der NML-Nachrichten. │ │ │ │ │ Für Einzelheiten siehe src/emc/nml_intf/emc.hh. │ │ │ │ │ │ │ │ │ │ @@ -2185,15 +2185,15 @@ │ │ │ │ │ EMC_JOINT_UNHOME_TYPE │ │ │ │ │ EMC_JOINT_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.3 ACHSE │ │ │ │ │ │ │ │ │ │ 40 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ EMC_AXIS_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.4 JOG │ │ │ │ │ EMC_JOG_CONT_TYPE │ │ │ │ │ EMC_JOG_INCR_TYPE │ │ │ │ │ EMC_JOG_ABS_TYPE │ │ │ │ │ @@ -2239,15 +2239,15 @@ │ │ │ │ │ EMC_TRAJ_RIGID_TAP_TYPE │ │ │ │ │ EMC_TRAJ_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.6 MOTION (engl. für Bewegung) │ │ │ │ │ │ │ │ │ │ 41 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 42 / 76 │ │ │ │ │ │ │ │ │ │ EMC_MOTION_INIT_TYPE │ │ │ │ │ EMC_MOTION_HALT_TYPE │ │ │ │ │ EMC_MOTION_ABORT_TYPE │ │ │ │ │ EMC_MOTION_SET_AOUT_TYPE │ │ │ │ │ @@ -2292,15 +2292,15 @@ │ │ │ │ │ EMC_TOOL_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.9 AUX (engl. Kurzform für ”andere Hilfsfunktionen”) │ │ │ │ │ EMC_AUX_ESTOP_ON_TYPE │ │ │ │ │ EMC_AUX_ESTOP_OFF_TYPE │ │ │ │ │ EMC_AUX_ESTOP_RESET_TYPE │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 43 / 76 │ │ │ │ │ │ │ │ │ │ EMC_AUX_INPUT_WAIT_TYPE │ │ │ │ │ EMC_AUX_STAT_TYPE │ │ │ │ │ │ │ │ │ │ 4.10 SPINDLE (engl. für Spindel) │ │ │ │ │ @@ -2335,28 +2335,28 @@ │ │ │ │ │ EMC_IO_ABORT_TYPE │ │ │ │ │ EMC_IO_SET_CYCLE_TIME_TYPE │ │ │ │ │ EMC_IO_STAT_TYPE │ │ │ │ │ EMC_IO_PLUGIN_CALL_TYPE │ │ │ │ │ │ │ │ │ │ 4.14 Andere │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ EMC_NULL_TYPE │ │ │ │ │ EMC_SET_DEBUG_TYPE │ │ │ │ │ EMC_SYSTEM_CMD_TYPE │ │ │ │ │ EMC_INIT_TYPE │ │ │ │ │ EMC_HALT_TYPE │ │ │ │ │ EMC_ABORT_TYPE │ │ │ │ │ EMC_STAT_TYPE │ │ │ │ │ EMC_EXEC_PLUGIN_CALL_TYPE │ │ │ │ │ │ │ │ │ │ 44 / 76 │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 45 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 5 │ │ │ │ │ │ │ │ │ │ Quellcode-Stil │ │ │ │ │ Dieses Kapitel beschreibt den vom LinuxCNC-Team bevorzugten Quellcode-Stil. │ │ │ │ │ @@ -2380,15 +2380,15 @@ │ │ │ │ │ │ │ │ │ │ 5.4 Setzen von Klammern │ │ │ │ │ Setzen Sie die öffnende Klammer zuletzt auf die Linie, und setzen Sie die schließende Klammer zuerst: │ │ │ │ │ if (x) { │ │ │ │ │ // macht irgendetwas der Situation Angepasstes │ │ │ │ │ } │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 46 / 76 │ │ │ │ │ │ │ │ │ │ Die schließende Klammer steht in einer eigenen Zeile, es sei denn, es folgt eine Fortsetzung derselben │ │ │ │ │ Anweisung, z. B. ein while in einer do-Anweisung oder ein else in einer if-Anweisung, wie hier: │ │ │ │ │ do { │ │ │ │ │ // etwas Wichtiges │ │ │ │ │ @@ -2422,15 +2422,15 @@ │ │ │ │ │ 5.6 Funktionen │ │ │ │ │ Funktionen sollten kurz und knapp sein und nur einen Zweck erfüllen. Sie sollten auf einen oder zwei │ │ │ │ │ Bildschirme voller Text passen (die ISO/ANSI-Bildschirmgröße beträgt 80x24, wie wir alle wissen) │ │ │ │ │ und nur eine Aufgabe erfüllen, und diese gut. │ │ │ │ │ Die maximale Länge einer Funktion ist umgekehrt proportional zur Komplexität und zum Grad der │ │ │ │ │ Einrückung dieser Funktion. Wenn Sie also eine konzeptionell einfache Funktion haben, die nur aus │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 47 / 76 │ │ │ │ │ │ │ │ │ │ einer einzigen langen (aber einfachen) Fallanweisung besteht, bei der Sie viele kleine Dinge für viele │ │ │ │ │ verschiedene Fälle tun müssen, ist es in Ordnung, eine längere Funktion zu haben. │ │ │ │ │ Wenn Sie jedoch eine komplexe Funktion haben und Sie vermuten, dass ein weniger begabter Anfänger nicht einmal versteht, worum es in der Funktion geht, sollten Sie sich um so mehr an die │ │ │ │ │ Höchstgrenzen halten. Verwenden Sie Hilfsfunktionen mit aussagekräftigen Namen (Sie können den │ │ │ │ │ @@ -2466,15 +2466,15 @@ │ │ │ │ │ awk-Aufruf als gawk oder mawk. │ │ │ │ │ │ │ │ │ │ 5.9 C++-Konventionen │ │ │ │ │ C++-Codierungsstile sind wiederholt Anlass für hitzige Debatten (ähnlich wie der Streit zwischen │ │ │ │ │ emacs und vi). Eines ist jedoch sicher: Ein gemeinsamer Stil, der von allen an einem Projekt Beteiligten │ │ │ │ │ verwendet wird, führt zu einheitlichem und lesbarem Code. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 48 / 76 │ │ │ │ │ │ │ │ │ │ Namenskonventionen: Konstanten entweder aus #defines oder aus Enumerationen sollten durchgehend in Großbuchstaben geschrieben werden. Begründung: Erleichtert das Erkennen von durch den │ │ │ │ │ Präprozessor substituierten Ausdrücke im Quellcode, z.B. EMC_MESSAGE_TYPE. │ │ │ │ │ Klassen und Namensräume (engl. namespace) sollten den ersten Buchstaben eines jeden Wortes │ │ │ │ │ groß schreiben und Unterstriche vermeiden. Begründung: Identifiziert Klassen, Konstruktoren und │ │ │ │ │ @@ -2510,15 +2510,15 @@ │ │ │ │ │ Implizite Tests auf Null sollten mit Ausnahme von booleschen Variablen nicht verwendet werden, z.B. │ │ │ │ │ if (spindle_speed != 0), NICHT if (spindle_speed). │ │ │ │ │ In einem for()-Konstrukt dürfen nur Anweisungen zur Schleifenkontrolle enthalten sein, z.B. sum = 0; │ │ │ │ │ for (i = 0; i < 10; i++) { sum += value[i]; } ̀+ NICHT: ̀ │ │ │ │ │ for (i=0, sum=0; i<10; i++) sum │ │ │ │ │ += value[i];. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 49 / 76 │ │ │ │ │ │ │ │ │ │ Ebenso müssen ausführbare Anweisungen in Konditionalen vermieden werden, z.B. ist if (fd = │ │ │ │ │ open(file_name)) böse. │ │ │ │ │ Komplexe bedingte Anweisungen sollten vermieden werden - führen Sie stattdessen temporäre boolesche Variablen ein. │ │ │ │ │ Klammern sollten in mathematischen Ausdrücken reichlich verwendet werden - Verlassen Sie sich │ │ │ │ │ @@ -2531,15 +2531,15 @@ │ │ │ │ │ Use the PEP 8 style for Python code. │ │ │ │ │ │ │ │ │ │ 5.11 Comp-Codierungs-Standards │ │ │ │ │ Im Deklarationsteil einer .comp-Datei beginnen Sie jede Deklaration mit der ersten Spalte. Fügen Sie │ │ │ │ │ zusätzliche Leerzeilen ein, wenn sie zur Gruppierung verwandter Elemente beitragen. │ │ │ │ │ Im Code-Teil einer .comp-Datei ist der normale C-Codierungsstil zu beachten. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 50 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 6 │ │ │ │ │ │ │ │ │ │ Kompilieren (”bauen”) von LinuxCNC │ │ │ │ │ 6.1 Einführung │ │ │ │ │ @@ -2565,15 +2565,15 @@ │ │ │ │ │ 6.2 Downloading source tree │ │ │ │ │ The LinuxCNC project git repository is at https://github.com/LinuxCNC/linuxcnc. GitHub is a popular │ │ │ │ │ git hosting service and code sharing website. │ │ │ │ │ To retrieve the source tree you have two options: │ │ │ │ │ Download tarball │ │ │ │ │ On the LinuxCNC project page in GitHub find a reference to the ”releases” or ”tags”, click that │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 51 / 76 │ │ │ │ │ │ │ │ │ │ hyperlink to the archive page and download the latest .tar file. You will find that file compressed │ │ │ │ │ as a .tar.xz or .tar.gz file. This file, commonly referred to as a ”tarball” is an archive very analogous │ │ │ │ │ to a .zip. Your Linux desktop will know how to treat that file when double-clicking on it. │ │ │ │ │ Prepare a local copy of the LinuxCNC repository │ │ │ │ │ @@ -2617,15 +2617,15 @@ │ │ │ │ │ │ │ │ │ │ 6.3 Unterstützte Plattformen │ │ │ │ │ The LinuxCNC project targets modern Debian-based distributions, including Debian, Ubuntu, and │ │ │ │ │ Mint. We continuously test on the platforms listed at http://buildbot.linuxcnc.org. │ │ │ │ │ LinuxCNC builds on most other Linux distributions, though dependency management will be more │ │ │ │ │ manual and less automatic. Patches to improve portability to new platforms are always welcome. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 52 / 76 │ │ │ │ │ │ │ │ │ │ 6.3.1 Echtzeit │ │ │ │ │ LinuxCNC is a machine tool controller, and it requires a realtime platform to do this job. This version │ │ │ │ │ of LinuxCNC supports the following platforms. The first three listed are realtime operating systems: │ │ │ │ │ RTAI │ │ │ │ │ @@ -2658,15 +2658,15 @@ │ │ │ │ │ The src/configure script configures how the source code will be compiled. It takes many optional │ │ │ │ │ arguments. List all arguments to src/configure by running this: │ │ │ │ │ $ cd linuxcnc-source-dir/src │ │ │ │ │ $ ./configure --help │ │ │ │ │ │ │ │ │ │ Die am häufigsten verwendeten Argumente sind: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 53 / 76 │ │ │ │ │ │ │ │ │ │ --with-realtime=uspace │ │ │ │ │ Build for any realtime platform, or for non-realtime. The resulting LinuxCNC executables will run │ │ │ │ │ on both a Linux kernel with Preempt-RT patches (providing realtime machine control) and on a │ │ │ │ │ vanilla (un-patched) Linux kernel (providing G-code simulation but no realtime machine control). │ │ │ │ │ @@ -2702,15 +2702,15 @@ │ │ │ │ │ in a Debian package, complete with dependency information. This process by default also includes │ │ │ │ │ the building of the documentation, which takes its time because of all the I/O for many languages, but │ │ │ │ │ that can be skipped. LinuxCNC is then installed as part of those packages on the same machines or on │ │ │ │ │ whatever machine of the same architecture that the .deb files are copied to. LinuxCNC cannot be run │ │ │ │ │ until the Debian packages are installed on a target machine and then the executables are available in │ │ │ │ │ /usr/bin and /usr/lib just like other regular software of the sytem. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 54 / 76 │ │ │ │ │ │ │ │ │ │ This build mode is primarily useful when packaging the software for delivery to end users, and when │ │ │ │ │ building the software for a machine that does not have the build environment installed, or that does │ │ │ │ │ not have internet access. │ │ │ │ │ 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’t have the build │ │ │ │ │ @@ -2748,15 +2748,15 @@ │ │ │ │ │ 6.4.2.1 LinuxCNC’s debian/configure arguments │ │ │ │ │ The LinuxCNC source tree has a debian directory with all the info about how the Debian package │ │ │ │ │ shall be built, but some key files within are only distributed as templates. The debian/configure │ │ │ │ │ script readies those build instructions for the regular Debian packaging utilities and must thus be run │ │ │ │ │ prior to dpkg-checkbuilddeps or dpkg-buildpackage. │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 55 / 76 │ │ │ │ │ │ │ │ │ │ no-docs │ │ │ │ │ Skip building documentation. │ │ │ │ │ uspace │ │ │ │ │ Konfigurieren Sie das Debian-Paket für Preempt-RT-Echtzeit oder für Nicht-Echtzeit (diese beiden sind kompatibel). │ │ │ │ │ @@ -2791,15 +2791,15 @@ │ │ │ │ │ This will prepare the file debian/control that contains lists of Debian packages to create with the │ │ │ │ │ runtime dependencies for those packages and for our cause also the build-dependencies for those │ │ │ │ │ to-be-created packages. │ │ │ │ │ The most straightforward way to get all build-dependencies installed is to just execute (from the same │ │ │ │ │ directory): │ │ │ │ │ sudo apt-get build-dep . │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 56 / 76 │ │ │ │ │ │ │ │ │ │ which will install all the dependencies required but available. The . is part of the command line, i.e. an │ │ │ │ │ instruction to retrieve the dependencies for the source tree at hand, not for dependencies of another │ │ │ │ │ package. This completes the installation of build-dependencies. │ │ │ │ │ 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. │ │ │ │ │ @@ -2836,15 +2836,15 @@ │ │ │ │ │ introduced above, the command has two extra options passed to it. Like for all good Linux tools, the │ │ │ │ │ man page has all the details with man dpkg-buildpackage. │ │ │ │ │ -uc │ │ │ │ │ Do not sign the resulting binaries. You would want to sign your packages with a GPG key of yours │ │ │ │ │ only if you would wanted to distribute them to others. Having that option not set and then failing │ │ │ │ │ to sign the package would not affect the .deb file. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 57 / 76 │ │ │ │ │ │ │ │ │ │ -b │ │ │ │ │ Only compiles the architecture-dependent packages (like the linuxcnc binaries and GUIs). This │ │ │ │ │ is very helpful to avoid compiling what is hardware-independent, which for LinuxCNC is the │ │ │ │ │ documentation. That documentation is available online anyway. │ │ │ │ │ @@ -2882,15 +2882,15 @@ │ │ │ │ │ effects on latency. Normally, locking memory into RAM is frowned upon, and the operating system │ │ │ │ │ places a strict limit on how much memory a user is allowed to have locked. │ │ │ │ │ Bei Verwendung der Preempt-RT-Echtzeitplattform läuft LinuxCNC mit genügend Privilegien, um seine Speichersperrgrenze selbst zu erhöhen. Bei Verwendung der RTAI-Echtzeit-Plattform hat es nicht │ │ │ │ │ genug Privilegien, und der Benutzer muss die Speichersperre Grenze zu erhöhen. │ │ │ │ │ Wenn LinuxCNC beim Start folgende Meldung zeigt, ist das Problem die für Ihre System konfigurierte │ │ │ │ │ Grenze des gesperrten Speichers: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 58 / 76 │ │ │ │ │ │ │ │ │ │ RTAPI: ERROR: failed to map shmem │ │ │ │ │ RTAPI: Locked memory limit is 32KiB, recommended at least 20480KiB. │ │ │ │ │ │ │ │ │ │ Um dieses Problem zu beheben, fügen Sie eine Datei namens /etc/security/limits.d/linuxcnc.conf │ │ │ │ │ @@ -2898,15 +2898,15 @@ │ │ │ │ │ Die Datei sollte die folgende Zeile enthalten: │ │ │ │ │ * - memlock 20480 │ │ │ │ │ │ │ │ │ │ Melden Sie sich ab und wieder an, damit die Änderungen wirksam werden. Überprüfen Sie mit dem │ │ │ │ │ folgenden Befehl, ob die Speichersperrgrenze angehoben wurde: │ │ │ │ │ $ ulimit -l │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 59 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 7 │ │ │ │ │ │ │ │ │ │ Hinzufügen von Konfigurationsauswahl │ │ │ │ │ elementen │ │ │ │ │ @@ -2917,15 +2917,15 @@ │ │ │ │ │ │ │ │ │ │ • Runtime settings — the configuration selector can also offer configuration subdirectories specified │ │ │ │ │ at runtime using an exported environamental variable (LINUXCNC_AUX_CONFIGS). This variable │ │ │ │ │ should be a path list of one or more configuration directories separated by a (:). Typically, this │ │ │ │ │ variable would be set in a shell starting linuxcnc or in a user’s ~/.profile startup script. Example: │ │ │ │ │ export LINUXCNC_AUX_CONFIGS=~/myconfigs:/opt/otherconfigs │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 60 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 8 │ │ │ │ │ │ │ │ │ │ Mitwirkung an LinuxCNC │ │ │ │ │ 8.1 Einführung │ │ │ │ │ @@ -2946,15 +2946,15 @@ │ │ │ │ │ All of the LinuxCNC source is maintained in the Git revision control system. │ │ │ │ │ │ │ │ │ │ 8.4.1 LinuxCNC offizielles Git Repository │ │ │ │ │ The official LinuxCNC git repo is at https://github.com/linuxcnc/linuxcnc/ │ │ │ │ │ Jeder kann eine schreibgeschützte Kopie des LinuxCNC-Quellbaums über git erhalten: │ │ │ │ │ git clone https://github.com/linuxcnc/linuxcnc linuxcnc-dev │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 61 / 76 │ │ │ │ │ │ │ │ │ │ Wenn Sie ein Entwickler mit Schreibrechten (genannt ”push” in Anlehnung an das git-Kommando) │ │ │ │ │ sind, folgen Sie den Anweisungen in github, um ein Repository einzurichten, von dem aus Sie pushen │ │ │ │ │ können. │ │ │ │ │ Beachten Sie, dass der Clone-Befehl das lokale LinuxCNC Repo in ein Verzeichnis namens linuxcnc-dev │ │ │ │ │ @@ -2987,15 +2987,15 @@ │ │ │ │ │ • git tutorial 2: https://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html │ │ │ │ │ │ │ │ │ │ • Alltägliches Git mit 20 Befehlen oder so: https://www.kernel.org/pub/software/scm/git/docs/giteveryday.ht │ │ │ │ │ • Git-Benutzerhandbuch: https://www.kernel.org/pub/software/scm/git/docs/user-manual.html │ │ │ │ │ For a more thorough documentation of git see the ”Pro Git” book: https://git-scm.com/book │ │ │ │ │ Ein weiteres Online-Tutorial, das empfohlen wurde, ist ”Git for the Lazy”: https://wiki.spheredev.org/index.php/Git_for_the_lazy │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 62 / 76 │ │ │ │ │ │ │ │ │ │ 8.5 Überblick über den Prozess │ │ │ │ │ Ein Überblick darüber, wie man Änderungen am Quelltext vornimmt, sieht folgendermaßen aus: │ │ │ │ │ • Communicate with the project developers and let us know what you’re hacking on. Explain what │ │ │ │ │ you are doing, and why. │ │ │ │ │ @@ -3027,15 +3027,15 @@ │ │ │ │ │ Benutzen Sie Ihren richtigen Namen und eine direkt nutzbare E-Mail Adresse. │ │ │ │ │ │ │ │ │ │ 8.7 Effektive Nutzung von Git │ │ │ │ │ 8.7.1 Commit-Inhalte │ │ │ │ │ Halten Sie Ihre Commits klein und auf den Punkt. Jeder Commit sollte eine logische Änderung am │ │ │ │ │ Projektarchiv bewirken. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 63 / 76 │ │ │ │ │ │ │ │ │ │ 8.7.2 Schreiben Sie gute Commit-Nachrichten │ │ │ │ │ Halten Sie die Commit-Meldungen etwa 72 Spalten breit (damit sie in einem Terminalfenster mit │ │ │ │ │ Standardgröße nicht umbrechen, wenn sie von git log angezeigt werden). │ │ │ │ │ Verwenden Sie die erste Zeile als Zusammenfassung der Absicht der Änderung (fast wie die Betreffzeile einer E-Mail). Danach folgt eine Leerzeile und dann eine längere Nachricht, in der die Änderung │ │ │ │ │ @@ -3067,15 +3067,15 @@ │ │ │ │ │ Entwicklern teilen │ │ │ │ │ Mit Git ist es möglich, jede Bearbeitung und jeden Fehlstart als separaten Commit aufzuzeichnen. │ │ │ │ │ Dies ist sehr praktisch, um während der Entwicklung Kontrollpunkte zu setzen, aber oft möchte man │ │ │ │ │ diese Fehlstarts nicht mit anderen teilen. │ │ │ │ │ Git bietet zwei Möglichkeiten, die Historie zu bereinigen, die beide frei durchgeführt werden können, │ │ │ │ │ bevor Sie die Änderung freigeben: │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 64 / 76 │ │ │ │ │ │ │ │ │ │ Mit git commit --amend können Sie zusätzliche Änderungen an dem letzten Commit vornehmen und │ │ │ │ │ optional auch die Commit-Nachricht ändern. Benutzen Sie dies, wenn Sie sofort merken, dass Sie │ │ │ │ │ etwas in der Commit-Nachricht vergessen haben, oder wenn Sie sich in der Commit-Nachricht vertippt │ │ │ │ │ haben. │ │ │ │ │ @@ -3114,30 +3114,30 @@ │ │ │ │ │ Verwenden Sie git pull --rebase anstelle von git pull, um eine schöne lineare Historie zu erhalten. Wenn Sie rebasen, behalten Sie Ihre Arbeit immer als Revisionen, die vor origin/master liegen, so │ │ │ │ │ dass Sie Dinge wie git format-patch ausführen können, um Entwicklungen mit anderen zu teilen, │ │ │ │ │ ohne sie in das zentrale Repository zu pushen. │ │ │ │ │ │ │ │ │ │ 8.8 Übersetzungen │ │ │ │ │ Das LinuxCNC-Projekt verwendet gettext, um die Software in viele Sprachen zu übersetzen. Wir begrüßen Beiträge und Hilfe in diesem Bereich! Das Verbessern und Erweitern der Übersetzungen ist │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 65 / 76 │ │ │ │ │ │ │ │ │ │ einfach: Sie müssen keine Programmierkenntnisse haben und Sie müssen keine speziellen Übersetzungsprogramme oder andere Software installieren. │ │ │ │ │ Der einfachste Weg, bei Übersetzungen zu helfen, ist die Nutzung von Weblate, einem Open-SourceWebdienst. Unser Übersetzungsprojekt finden Sie hier: https://hosted.weblate.org/projects/linuxcnc/ │ │ │ │ │ Die Dokumentation zur Verwendung von Weblate finden Sie hier: https://docs.weblate.org/en/latest/user/basic.html │ │ │ │ │ Wenn Webdienste nicht Ihr Ding sind, können Sie auch mit einer Reihe lokaler Gettext-ÜbersetzerApps wie gtranslator, poedit und vielen anderen an Übersetzungen arbeiten. │ │ │ │ │ │ │ │ │ │ 8.9 Andere Möglichkeiten, einen Beitrag zu leisten │ │ │ │ │ Es gibt viele Möglichkeiten, zu LinuxCNC beizutragen, die in diesem Dokument nicht behandelt werden. Diese Wege umfassen: │ │ │ │ │ • Beantwortung von Fragen im Forum, auf Mailinglisten und im IRC │ │ │ │ │ • Melden von Fehlern im Bug-Tracker, im Forum, auf Mailinglisten oder im IRC │ │ │ │ │ • Hilfe beim Testen experimenteller Funktionen │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 66 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 9 │ │ │ │ │ │ │ │ │ │ Glossar │ │ │ │ │ Eine Auflistung von Begriffen und deren Bedeutung. Einige Begriffe haben eine allgemeine Bedeutung │ │ │ │ │ @@ -3171,15 +3171,15 @@ │ │ │ │ │ Umkehrspiel-Kompensation │ │ │ │ │ Any technique that attempts to reduce the effect of backlash without actually removing it from │ │ │ │ │ the mechanical system. This is typically done in software in the controller. This can correct the │ │ │ │ │ final resting place of the part in motion but fails to solve problems related to direction changes │ │ │ │ │ while in motion (think circular interpolation) and motion that is caused when external forces │ │ │ │ │ (think cutting tool pulling on the work piece) are the source of the motion. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 67 / 76 │ │ │ │ │ │ │ │ │ │ Kugelumlaufspindel │ │ │ │ │ A type of lead-screw that uses small hardened steel balls between the nut and screw to reduce │ │ │ │ │ friction. Ball-screws have very low friction and backlash, but are usually quite expensive. │ │ │ │ │ Kugelmutter │ │ │ │ │ @@ -3219,15 +3219,15 @@ │ │ │ │ │ sinking electrode. │ │ │ │ │ EMC │ │ │ │ │ The Enhanced Machine Controller. Initially a NIST project. Renamed to LinuxCNC in 2012. │ │ │ │ │ EMCIO │ │ │ │ │ The module within LinuxCNC that handles general purpose I/O, unrelated to the actual motion │ │ │ │ │ of the axes. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 68 / 76 │ │ │ │ │ │ │ │ │ │ EMCMOT │ │ │ │ │ The module within LinuxCNC that handles the actual motion of the cutting tool. It runs as a │ │ │ │ │ real-time program and directly controls the motors. │ │ │ │ │ Encoder │ │ │ │ │ @@ -3270,15 +3270,15 @@ │ │ │ │ │ A text file that contains most of the information that configures LinuxCNC for a particular machine. │ │ │ │ │ Instanz │ │ │ │ │ One can have an instance of a class or a particular object. The instance is the actual object created │ │ │ │ │ at runtime. In programmer jargon, the ”Lassie” object is an instance of the ”Dog” class. │ │ │ │ │ Gelenk-Koordinaten │ │ │ │ │ These specify the angles between the individual joints of the machine. See also Kinematics │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 69 / 76 │ │ │ │ │ │ │ │ │ │ Jog (manuelle Bewegung) │ │ │ │ │ Manually moving an axis of a machine. Jogging either moves the axis a fixed amount for each │ │ │ │ │ key-press, or moves the axis at a constant speed as long as you hold down the key. In manual │ │ │ │ │ mode, jog speed can be set from the graphical interface. │ │ │ │ │ @@ -3323,15 +3323,15 @@ │ │ │ │ │ Python │ │ │ │ │ General-purpose, very high-level programming language. Used in LinuxCNC for the Axis GUI, │ │ │ │ │ the StepConf configuration tool, and several G-code programming scripts. │ │ │ │ │ Schnell │ │ │ │ │ Fast, possibly less precise motion of the tool, commonly used to move between cuts. If the tool │ │ │ │ │ meets the workpiece or the fixturing during a rapid, it is probably a bad thing! │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 70 / 76 │ │ │ │ │ │ │ │ │ │ Schnellauf-Geschwindigkeit │ │ │ │ │ The speed at which a rapid motion occurs. In auto or MDI mode, rapid rate is usually the maximum │ │ │ │ │ speed of the machine. It is often desirable to limit the rapid rate when testing a G-code program │ │ │ │ │ for the first time. │ │ │ │ │ @@ -3373,15 +3373,15 @@ │ │ │ │ │ Schrittmotor │ │ │ │ │ A type of motor that turns in fixed steps. By counting steps, it is possible to determine how far │ │ │ │ │ the motor has turned. If the load exceeds the torque capability of the motor, it will skip one or │ │ │ │ │ more steps, causing position errors. │ │ │ │ │ TASK (engl. für Aufgabe, auch Name des entsprechenden LinuxCNC Moduls) │ │ │ │ │ The module within LinuxCNC that coordinates the overall execution and interprets the part program. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 71 / 76 │ │ │ │ │ │ │ │ │ │ Tcl/Tk │ │ │ │ │ A scripting language and graphical widget toolkit with which several of LinuxCNCs GUIs and │ │ │ │ │ selection wizards were written. │ │ │ │ │ Traverse Bewegung │ │ │ │ │ @@ -3391,15 +3391,15 @@ │ │ │ │ │ Ganzzahl ohne Vorzeichen │ │ │ │ │ A whole number that has no sign. In HAL it is known as u32. (An unsigned 32-bit integer has a │ │ │ │ │ usable range of zero to 4,294,967,296.) │ │ │ │ │ Weltkoordinaten │ │ │ │ │ This is the absolute frame of reference. It gives coordinates in terms of a fixed reference frame │ │ │ │ │ that is attached to some point (generally the base) of the machine tool. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 72 / 76 │ │ │ │ │ │ │ │ │ │ Kapitel 10 │ │ │ │ │ │ │ │ │ │ Juristischer Abschnitt │ │ │ │ │ Die Übersetzungen dieser Datei im Quellbaum sind nicht rechtsverbindlich. │ │ │ │ │ @@ -3428,15 +3428,15 @@ │ │ │ │ │ für freie Software ist. │ │ │ │ │ Wir haben diese Lizenz entworfen, um sie für Handbücher für freie Software zu verwenden, weil freie │ │ │ │ │ Software freie Dokumentation braucht: ein freies Programm sollte mit Handbüchern geliefert werden, │ │ │ │ │ welche die gleichen Freiheiten bieten wie die Software. Aber diese Lizenz ist nicht auf SoftwareHandbücher beschränkt; sie kann für jedes textliche Werk verwendet werden, unabhängig vom Thema │ │ │ │ │ oder ob es als gedrucktes Buch veröffentlicht wird. Wir empfehlen diese Lizenz in erster Linie für │ │ │ │ │ Werke, deren Zweck die Anleitung oder das Nachschlagen ist. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 73 / 76 │ │ │ │ │ │ │ │ │ │ 1. APPLICABILITY AND DEFINITIONS │ │ │ │ │ Diese Lizenz gilt für jedes Handbuch oder andere Werk, das einen Hinweis des Urheberrechtsinhabers │ │ │ │ │ enthält, der besagt, dass es unter den Bedingungen dieser Lizenz verbreitet werden darf. Das ”Dokument”, unten, bezieht sich auf ein solches Handbuch oder Werk. Jedes Mitglied der Öffentlichkeit ist │ │ │ │ │ ein Lizenznehmer und wird als ”Sie” angesprochen. │ │ │ │ │ @@ -3470,15 +3470,15 @@ │ │ │ │ │ oder nicht kommerziell, vorausgesetzt, dass diese Lizenz, die Urheberrechtsvermerke und der Lizenzvermerk, der besagt, dass diese Lizenz für das Dokument gilt, in allen Kopien wiedergegeben │ │ │ │ │ werden, und dass Sie keine weiteren Bedingungen zu denen dieser Lizenz hinzufügen. Sie dürfen keine technischen Maßnahmen anwenden, um das Lesen oder weitere Kopieren der von Ihnen erstellten │ │ │ │ │ oder verbreiteten Kopien zu behindern oder zu kontrollieren. Sie dürfen jedoch eine Vergütung im │ │ │ │ │ Austausch für Kopien annehmen. Wenn Sie eine ausreichend große Anzahl von Kopien verbreiten, │ │ │ │ │ müssen Sie auch die Bedingungen in Abschnitt 3 einhalten. │ │ │ │ │ Sie können auch Kopien unter den oben genannten Bedingungen ausleihen und öffentlich ausstellen. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 74 / 76 │ │ │ │ │ │ │ │ │ │ 3. COPYING IN QUANTITY │ │ │ │ │ Wenn Sie mehr als 100 gedruckte Exemplare des Dokuments veröffentlichen und der Lizenzhinweis │ │ │ │ │ des Dokuments Umschlagtexte verlangt, müssen Sie die Exemplare in Umschläge einlegen, die deutlich und lesbar alle diese Umschlagtexte enthalten: Vorderseitentexte auf dem vorderen Umschlag │ │ │ │ │ und Rückseitentexte auf dem hinteren Umschlag. Auf beiden Umschlägen müssen Sie außerdem deutlich und leserlich als Verleger dieser Exemplare ausgewiesen sein. Der vordere Umschlag muss den │ │ │ │ │ @@ -3516,15 +3516,15 @@ │ │ │ │ │ bei. I. Behalten Sie den Abschnitt mit dem Titel Geschichte” und seinen Titel bei und fügen Sie │ │ │ │ │ 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 │ │ │ │ │ mit dem Titel ”Geschichte” in dem Dokument gibt, erstellen Sie einen, der den Titel, das Jahr, │ │ │ │ │ die Autoren und den Herausgeber des Dokuments angibt, wie auf der Titelseite angegeben, und │ │ │ │ │ fügen Sie dann einen Punkt hinzu, der die geänderte Version beschreibt, wie im vorherigen Satz │ │ │ │ │ angegeben. J. Bewahren Sie den im Dokument angegebenen Netzwerkstandort, falls vorhanden, │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 75 / 76 │ │ │ │ │ │ │ │ │ │ für den öffentlichen Zugang zu einer transparenten Kopie des Dokuments auf, und ebenso die im │ │ │ │ │ Dokument angegebenen Netzwerkstandorte für frühere Versionen, auf denen es basierte. Diese │ │ │ │ │ können im Abschnitt ”Historie” abgelegt werden. Sie können eine Netzwerkadresse für ein Werk │ │ │ │ │ weglassen, das mindestens vier Jahre vor dem Dokument selbst veröffentlicht wurde, oder wenn │ │ │ │ │ @@ -3564,15 +3564,15 @@ │ │ │ │ │ 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 │ │ │ │ │ is included in the collection, provided that you follow the rules of this License for verbatim copying of │ │ │ │ │ each of the documents in all other respects. │ │ │ │ │ You may extract a single document from such a collection, and distribute it individually under this │ │ │ │ │ License, provided you insert a copy of this License into the extracted document, and follow this License │ │ │ │ │ in all other respects regarding verbatim copying of that document. │ │ │ │ │ │ │ │ │ │ - Entwickler-Handbuch V2.9.7, 22 Oct 2025 │ │ │ │ │ + Entwickler-Handbuch V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 76 / 76 │ │ │ │ │ │ │ │ │ │ 7. AGGREGATION WITH INDEPENDENT WORKS │ │ │ │ │ A compilation of the Document or its derivatives with other separate and independent documents or │ │ │ │ │ works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified │ │ │ │ │ Version of the Document, provided no compilation copyright is claimed for the compilation. Such a │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ ├── ./usr/share/doc/linuxcnc/LinuxCNC_Documentation_de.pdf │ │ │ │ │┄ Document info │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ CreationDate: 'D:20251022224313Z' │ │ │ │ │ Creator: 'DBLaTeX-0.3.12' │ │ │ │ │ Producer: 'xdvipdfmx (20250410)' │ │ │ │ │ -Title: 'LinuxCNC V2.9.7, 22 Oct 2025' │ │ │ │ │ +Title: 'LinuxCNC V2.9.7, 23 Oct 2025' │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ -LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ +LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ ii │ │ │ │ │ │ │ │ │ │ Inhaltsverzeichnis │ │ │ │ │ │ │ │ │ │ I Erste Schritte & Konfiguration │ │ │ │ │ │ │ │ │ │ @@ -114,15 +114,15 @@ │ │ │ │ │ │ │ │ │ │ 8 │ │ │ │ │ │ │ │ │ │ 1.3.2.1 Raspberry Pi Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 8 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ iii │ │ │ │ │ │ │ │ │ │ 1.3.2.2 AMD-64 (x86-64, PC) Image using GUI tools │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ @@ -284,15 +284,15 @@ │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ 1.6.4 Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ iv │ │ │ │ │ │ │ │ │ │ 1.6.5 Module auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ @@ -447,15 +447,15 @@ │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ 2.3.2.2 Feed Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ v │ │ │ │ │ │ │ │ │ │ 2.3.2.3 Tool Radius Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 46 │ │ │ │ │ │ │ │ │ │ @@ -613,15 +613,15 @@ │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ 2.5.3.3 Optionaler Programm-Stopp-Schalter . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ vi │ │ │ │ │ │ │ │ │ │ 2.5.4 Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ @@ -779,15 +779,15 @@ │ │ │ │ │ │ │ │ │ │ 75 │ │ │ │ │ │ │ │ │ │ 2.7.13Hole And Small Shape Cutting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 75 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ vii │ │ │ │ │ │ │ │ │ │ 2.7.14I/O Pins For Plasma Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 76 │ │ │ │ │ │ │ │ │ │ @@ -941,15 +941,15 @@ │ │ │ │ │ │ │ │ │ │ 97 │ │ │ │ │ │ │ │ │ │ 3.1.8.3 Determining Spindle Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 97 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ viii │ │ │ │ │ │ │ │ │ │ 3.1.9 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . │ │ │ │ │ │ │ │ │ │ 98 │ │ │ │ │ │ │ │ │ │ @@ -1014,15 +1014,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ │ │ │ │ │ 4.1.4.6 Manuelle Abstimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ 4.1.5 RTAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ 4.1.5.1 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ ix │ │ │ │ │ │ │ │ │ │ 4.1.6 Computer/Machine Interface Hardware Options . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ 4.1.6.1 litehm2/rv901t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ 4.2 Latency Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ 4.2.1 What is latency? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 │ │ │ │ │ @@ -1070,15 +1070,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 │ │ │ │ │ │ │ │ │ │ 4.4.2.11 [KINS] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 │ │ │ │ │ 4.4.2.12 [AXIS_] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 │ │ │ │ │ 4.4.2.13 [JOINT_] Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ x │ │ │ │ │ │ │ │ │ │ 4.4.2.14 [SPINDLE_] Section(s)) . . . . . . . . . . . . . . . . . . . . . . . . . . 170 │ │ │ │ │ 4.4.2.15 [EMCIO] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 │ │ │ │ │ 4.5 Konfiguration der Referenzfahrt (engl. homing) │ │ │ │ │ │ │ │ │ │ @@ -1131,15 +1131,15 @@ │ │ │ │ │ 4.8 Stepper Schnellstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.1 Latenz-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.2 Sherline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.3 Xylotex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.4 Maschineninformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ 4.8.5 Informationen zur Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xi │ │ │ │ │ │ │ │ │ │ 4.8.6 Mechanische Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 │ │ │ │ │ 4.9 Stepper Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 │ │ │ │ │ 4.9.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 │ │ │ │ │ 4.9.2 Maximale Schrittgeschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 │ │ │ │ │ @@ -1177,15 +1177,15 @@ │ │ │ │ │ 5.1.3.2 Interconnection Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.3.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.3.4 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 │ │ │ │ │ 5.1.4 HAL Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 │ │ │ │ │ 5.1.5 HAL components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xii │ │ │ │ │ │ │ │ │ │ 5.1.6 Timing Issues In HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 │ │ │ │ │ 5.2 HAL Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 │ │ │ │ │ 5.2.1 HAL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 │ │ │ │ │ 5.2.1.1 loadrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 │ │ │ │ │ @@ -1233,15 +1233,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 │ │ │ │ │ │ │ │ │ │ 5.4.2.2 Befehl-Vervollständigung durch Tabulator-Taste . . . . . . . . . . . . . . . . 223 │ │ │ │ │ 5.4.2.3 Die RTAPI-Umgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 │ │ │ │ │ 5.4.3 Ein einfaches Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 │ │ │ │ │ 5.4.3.1 Laden einer Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xiii │ │ │ │ │ │ │ │ │ │ 5.4.3.2 Untersuchung der HAL │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 │ │ │ │ │ │ │ │ │ │ @@ -1291,15 +1291,15 @@ │ │ │ │ │ 5.6.2.1 Pins) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 │ │ │ │ │ 5.6.3 Achs- und Gelenkpins und Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ 5.6.4 iocontrol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ 5.6.4.1 Pins ) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xiv │ │ │ │ │ │ │ │ │ │ 5.6.5 INI-Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 │ │ │ │ │ 5.6.5.1 Pins ) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 │ │ │ │ │ @@ -1355,15 +1355,15 @@ │ │ │ │ │ 5.8.5.2 Parameter │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ │ │ │ │ │ 5.8.5.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ 5.8.6 Debounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xv │ │ │ │ │ │ │ │ │ │ 5.8.6.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 │ │ │ │ │ 5.8.6.2 Parameter │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 │ │ │ │ │ @@ -1410,15 +1410,15 @@ │ │ │ │ │ 5.9.13.6rand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 │ │ │ │ │ 5.9.13.7logic (using personality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 │ │ │ │ │ 5.9.13.8Allgemeine Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 │ │ │ │ │ 5.9.14Verwendung der Kommandozeile │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xvi │ │ │ │ │ │ │ │ │ │ 5.10HALTCL-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ 5.10.1Kompatibilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ 5.10.2Haltcl-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ 5.10.3Haltcl INI-Datei-Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 │ │ │ │ │ @@ -1468,15 +1468,15 @@ │ │ │ │ │ Werkzeug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 │ │ │ │ │ 5.12Halui Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 │ │ │ │ │ 5.12.1Ferngesteuerter Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 │ │ │ │ │ 5.12.2Pause & Fortsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 │ │ │ │ │ 5.13Creating Non-realtime Python Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 │ │ │ │ │ 5.13.1Basic usage example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xvii │ │ │ │ │ │ │ │ │ │ 5.13.2Non-realtime components and delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 │ │ │ │ │ 5.13.3Pins und Parameter erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 │ │ │ │ │ 5.13.3.1Ändern des Präfixes │ │ │ │ │ │ │ │ │ │ @@ -1531,15 +1531,15 @@ │ │ │ │ │ 5.15.3Halshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 │ │ │ │ │ 5.15.4Halscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 │ │ │ │ │ 5.15.5Sim-Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 │ │ │ │ │ 5.15.6simulate_probe (Sonde simulieren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 │ │ │ │ │ 5.15.7HAL Histogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 │ │ │ │ │ 5.15.8Halreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xviii │ │ │ │ │ │ │ │ │ │ 6 Hardware-Treiber │ │ │ │ │ │ │ │ │ │ 332 │ │ │ │ │ │ │ │ │ │ @@ -1599,15 +1599,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ │ │ │ │ │ 6.3.6 Status-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ 6.3.6.1 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 │ │ │ │ │ 6.3.6.2 RS485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.6.3 EMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xix │ │ │ │ │ │ │ │ │ │ 6.3.6.4 Booten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.6.5 Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.7 RS485 E/A-Erweiterungsmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 │ │ │ │ │ 6.3.7.1 Relais-Ausgangsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 │ │ │ │ │ @@ -1663,15 +1663,15 @@ │ │ │ │ │ 6.7.4 Laden von HostMot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 │ │ │ │ │ 6.7.5 Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.5.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.5.2 Parameter │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xx │ │ │ │ │ │ │ │ │ │ 6.7.6 HostMot2-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 │ │ │ │ │ 6.7.7 Pinbelegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 │ │ │ │ │ 6.7.8 PIN-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 │ │ │ │ │ 6.7.9 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 │ │ │ │ │ @@ -1734,15 +1734,15 @@ │ │ │ │ │ 6.8.5.2 fnct_02_read_discrete_inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.3 fnct_03_read_holding_registers │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ │ │ │ │ │ 6.8.5.4 fnct_04_read_input_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxi │ │ │ │ │ │ │ │ │ │ 6.8.5.5 fnct_05_write_single_coil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.6 fnct_06_write_single_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 │ │ │ │ │ 6.8.5.7 fnct_15_write_multiple_coils . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 │ │ │ │ │ 6.8.5.8 fnct_16_write_multiple_registers . . . . . . . . . . . . . . . . . . . . . . . . . . 390 │ │ │ │ │ @@ -1790,15 +1790,15 @@ │ │ │ │ │ 6.13.1.4LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.5Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.6PC-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 │ │ │ │ │ 6.13.1.7Neuerstellung der FPGA-Firmware . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.1.8Für weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.2Pluto-Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxii │ │ │ │ │ │ │ │ │ │ 6.13.2.1Pinbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 │ │ │ │ │ 6.13.2.2Input-Latching und Output-Aktualisierung . . . . . . . . . . . . . . . . . . . . 405 │ │ │ │ │ 6.13.2.3HAL-Funktionen, Pins und Parameter . . . . . . . . . . . . . . . . . . . . . . . 406 │ │ │ │ │ 6.13.2.4Kompatible Treiber-Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 │ │ │ │ │ @@ -1840,15 +1840,15 @@ │ │ │ │ │ 6.17.8Konfigurieren des VFS11 VFD für die Modbus-Nutzung . . . . . . . . . . . . . . . . . 417 │ │ │ │ │ 6.17.8.1Anschließen der seriellen Schnittstelle . . . . . . . . . . . . . . . . . . . . . . 417 │ │ │ │ │ 6.17.8.2Modbus-Einrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 │ │ │ │ │ 6.17.9Hinweis zur Programmierung │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxiii │ │ │ │ │ │ │ │ │ │ 7 Hardware-Beispiele │ │ │ │ │ │ │ │ │ │ 419 │ │ │ │ │ │ │ │ │ │ @@ -1894,15 +1894,15 @@ │ │ │ │ │ 8.2.5.4 Symbol-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 │ │ │ │ │ 8.2.5.5 Das Editor-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 │ │ │ │ │ 8.2.5.6 Konfigurationsfenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 │ │ │ │ │ 8.2.6 SPS Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ 8.2.6.1 KONTAKTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ 8.2.6.2 IEC-TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxiv │ │ │ │ │ │ │ │ │ │ 8.2.6.3 ZEITGLIEDER (engl. timers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 │ │ │ │ │ 8.2.6.4 KIPPSTUFEN (engl. monostables) . . . . . . . . . . . . . . . . . . . . . . . . . 442 │ │ │ │ │ 8.2.6.5 ZÄHLER (engl. counters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 │ │ │ │ │ 8.2.6.6 VERGLEICHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 │ │ │ │ │ @@ -1946,15 +1946,15 @@ │ │ │ │ │ 9.1.3.2 Inverse Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 │ │ │ │ │ 9.1.4 Details zur Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 │ │ │ │ │ 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp . . . . . . . 478 │ │ │ │ │ 9.2 Setting up ”modified” Denavit-Hartenberg (DH) parameters for genserkins . . . . . . . . 478 │ │ │ │ │ 9.2.1 Vorspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 │ │ │ │ │ 9.2.2 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxv │ │ │ │ │ │ │ │ │ │ 9.2.3 Modifizierte DH-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 │ │ │ │ │ 9.2.4 Modifizierte DH-Parameter, wie sie in Genserkins verwendet werden . . . . . . . . 479 │ │ │ │ │ 9.2.5 Nummerierung der Verbindungen und Parameter . . . . . . . . . . . . . . . . . . . . 480 │ │ │ │ │ 9.2.6 Wie fange ich an? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 │ │ │ │ │ @@ -1996,15 +1996,15 @@ │ │ │ │ │ 9.4.4.1 HAL-Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 │ │ │ │ │ 9.4.4.2 G-/M-Code-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 │ │ │ │ │ 9.4.4.3 INI file limit settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 │ │ │ │ │ 9.4.4.4 Überlegungen zum Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 │ │ │ │ │ 9.4.5 Simulationskonfigurationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 │ │ │ │ │ 9.4.6 Kinematische Bestimmungen des Benutzers . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxvi │ │ │ │ │ │ │ │ │ │ 9.4.7 Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ 9.4.8 Code Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 │ │ │ │ │ 9.5 PID Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 │ │ │ │ │ 9.5.1 PID-Regler (engl. PID controller) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 │ │ │ │ │ @@ -2041,15 +2041,15 @@ │ │ │ │ │ 9.6.5.8 Fehlerbehandlung: Umgang mit Abbrüchen . . . . . . . . . . . . . . . . . . . 543 │ │ │ │ │ 9.6.5.9 Fehlerbehandlung: Fehlschlagen einer NGC-Prozedur mit neu zugeordnetem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.6 Umschlüsselung anderer bestehender Codes: S, M0, M1, M60 . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.6.1 Automatic gear selection be remapping S (set spindle speed) . . . . . . . . 545 │ │ │ │ │ 9.6.6.2 Anpassen des Verhaltens von M0, M1, M60 . . . . . . . . . . . . . . . . . . . 545 │ │ │ │ │ 9.6.7 Creating new G-code cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxvii │ │ │ │ │ │ │ │ │ │ 9.6.8 Embedded Python konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ 9.6.8.1 Python plugin : INI file configuration . . . . . . . . . . . . . . . . . . . . . . . 546 │ │ │ │ │ 9.6.8.2 Executing Python statements from the interpreter . . . . . . . . . . . . . . . 547 │ │ │ │ │ 9.6.9 Programming Embedded Python in the RS274NGC Interpreter . . . . . . . . . . . . 547 │ │ │ │ │ @@ -2085,15 +2085,15 @@ │ │ │ │ │ 9.6.15.1Warum sollten Sie die Task-Ausführung ändern wollen? . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.15.2Ein Diagramm: task, interp, iocontrol, UI (??) . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16Modelle der Aufgaben (engl. task) -Ausführung . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.1Traditionelle Ausführung von iocontrol/iocontrolv2 . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.2IO-Verfahren neu definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.16.3Python-Prozeduren zur Ausführungszeit . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxviii │ │ │ │ │ │ │ │ │ │ 9.6.17Eine kurze Übersicht über die LinuxCNC-Programmausführung . . . . . . . . . . . 564 │ │ │ │ │ 9.6.17.1Zustand des Interpreters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 │ │ │ │ │ 9.6.17.2Task and Interpreter interaction, Queuing and Read-Ahead . . . . . . . . . 565 │ │ │ │ │ 9.6.17.3Predicting the machine position . . . . . . . . . . . . . . . . . . . . . . . . . . 565 │ │ │ │ │ @@ -2133,15 +2133,15 @@ │ │ │ │ │ 9.9.4 Related HAL Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 │ │ │ │ │ 9.9.4.1 eoffset_per_angle.comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 │ │ │ │ │ 9.9.5 Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6.1 eoffsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 │ │ │ │ │ 9.9.6.2 jwp_z.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxix │ │ │ │ │ │ │ │ │ │ 9.9.6.3 dynamische_offsets.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ 9.9.6.4 opa.ini (eoffset_per_angle) │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 │ │ │ │ │ @@ -2195,15 +2195,15 @@ │ │ │ │ │ 10.1.8Manueller Werkzeugwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 │ │ │ │ │ 10.1.9Python modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 │ │ │ │ │ 10.1.10 │ │ │ │ │ Using AXIS in Lathe Mode │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxx │ │ │ │ │ │ │ │ │ │ 10.1.11 │ │ │ │ │ Verwendung von AXIS im Modus Schaumstoffschneiden (engl. foam cutting mode) 608 │ │ │ │ │ 10.1.12 │ │ │ │ │ Erweiterte Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 │ │ │ │ │ @@ -2278,15 +2278,15 @@ │ │ │ │ │ 10.2GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 │ │ │ │ │ 10.2.1Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 │ │ │ │ │ 10.2.2Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 │ │ │ │ │ 10.2.3How to get GMOCCAPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 │ │ │ │ │ 10.2.4Basiseinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 │ │ │ │ │ 10.2.4.1Die DISPLAY-Sektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxi │ │ │ │ │ │ │ │ │ │ 10.2.4.2Der TRAJ Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 │ │ │ │ │ 10.2.4.3Makro-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 │ │ │ │ │ 10.2.4.4Embedded Tabs and Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 │ │ │ │ │ 10.2.4.5User Created Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 │ │ │ │ │ @@ -2333,15 +2333,15 @@ │ │ │ │ │ 10.2.11.2 │ │ │ │ │ Simulierte Jog-Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.3 │ │ │ │ │ Einstellungen Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.4 │ │ │ │ │ Simulierte Hardware-Taste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxii │ │ │ │ │ │ │ │ │ │ 10.2.11.5 │ │ │ │ │ Benutzer-Registerkarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ 10.2.11.6 │ │ │ │ │ Videos zur Werkzeugvermessung . . . . . . . . . . . . . . . . . . . . . . . . . 663 │ │ │ │ │ @@ -2387,15 +2387,15 @@ │ │ │ │ │ 10.5.2.2Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.3Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.4Override-Kontrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ 10.5.2.5Spindelsteuerungen │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxiii │ │ │ │ │ │ │ │ │ │ 10.5.2.6Jogging-Inkremente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 │ │ │ │ │ 10.5.2.7Jog-Geschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 │ │ │ │ │ 10.5.2.8Dialogsystem für Benutzermeldungen │ │ │ │ │ │ │ │ │ │ @@ -2479,15 +2479,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ │ │ │ │ │ 10.5.17.3 │ │ │ │ │ Registerkarte ”Offsets” │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxiv │ │ │ │ │ │ │ │ │ │ 10.5.17.4 │ │ │ │ │ Registerkarte ”Werkzeug” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ 10.5.17.5 │ │ │ │ │ Registerkarte ”Status” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 │ │ │ │ │ @@ -2543,15 +2543,15 @@ │ │ │ │ │ 10.6.8Erstellen eines Unterprogramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 │ │ │ │ │ 10.7TkLinuxCNC GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.1Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.2Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.2.1Eine typische Sitzung mit TkLinuxCNC . . . . . . . . . . . . . . . . . . . . . . 736 │ │ │ │ │ 10.7.3Elemente des TkLinuxCNC-Fensters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxv │ │ │ │ │ │ │ │ │ │ 10.7.3.1Die wichtigsten Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 │ │ │ │ │ 10.7.3.2Statusleiste der Offset-Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 │ │ │ │ │ 10.7.3.3Koordinatenanzeigebereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 │ │ │ │ │ 10.7.3.4TkLinuxCNC Interpreter / Automatic Program Control . . . . . . . . . . . . 738 │ │ │ │ │ @@ -2594,15 +2594,15 @@ │ │ │ │ │ 10.8.7.2Contact Bounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 │ │ │ │ │ 10.8.7.3Contact Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 │ │ │ │ │ 10.8.7.4Desktop-Starthilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 │ │ │ │ │ 10.8.7.5QtPlasmaC Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 │ │ │ │ │ 10.8.7.6INI File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 │ │ │ │ │ 10.8.8QtPlasmaC GUI Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxvi │ │ │ │ │ │ │ │ │ │ 10.8.8.1Beenden von QtPlasmaC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 │ │ │ │ │ 10.8.8.2HAUPT (engl. main)-Registerkarte (engl. tab) . . . . . . . . . . . . . . . . . . 765 │ │ │ │ │ 10.8.8.3Preview Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 │ │ │ │ │ 10.8.8.4CONVERSATIONAL Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 │ │ │ │ │ @@ -2660,15 +2660,15 @@ │ │ │ │ │ 10.8.9.29 │ │ │ │ │ Mesh Mode (Expanded Metal Cutting) . . . . . . . . . . . . . . . . . . . . . . 805 │ │ │ │ │ 10.8.9.30 │ │ │ │ │ Ignore Arc OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 │ │ │ │ │ 10.8.9.31 │ │ │ │ │ Cut Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxvii │ │ │ │ │ │ │ │ │ │ 10.8.9.32 │ │ │ │ │ Run From Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 │ │ │ │ │ 10.8.9.33 │ │ │ │ │ Scribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 │ │ │ │ │ @@ -2743,15 +2743,15 @@ │ │ │ │ │ 10.8.15.8 │ │ │ │ │ Zero Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ 10.8.15.9 │ │ │ │ │ Tuning Void Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ 10.8.15.10 │ │ │ │ │ Max Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxviii │ │ │ │ │ │ │ │ │ │ 10.8.15.11 │ │ │ │ │ Enable Tabs During Automated Motion . . . . . . . . . . . . . . . . . . . . . . 840 │ │ │ │ │ 10.8.15.12 │ │ │ │ │ Override Jog Inhibit Via Z+ Jog . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 │ │ │ │ │ @@ -2810,15 +2810,15 @@ │ │ │ │ │ 11.1.3Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 │ │ │ │ │ 11.1.4M2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.1.4.1Beispielprogramm mit G52-Offsets . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2Tool Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2.1Touch-Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 │ │ │ │ │ 11.2.1.1Verwendung von G10 L1/L10/L11 . . . . . . . . . . . . . . . . . . . . . . . . . 866 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xxxix │ │ │ │ │ │ │ │ │ │ 11.2.2Werkzeugtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 │ │ │ │ │ 11.2.2.1Werkzeugtabellen-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 │ │ │ │ │ 11.2.2.2Tool IO │ │ │ │ │ │ │ │ │ │ @@ -2869,15 +2869,15 @@ │ │ │ │ │ 11.4.13 │ │ │ │ │ Modal Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894 │ │ │ │ │ 11.4.14 │ │ │ │ │ Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 │ │ │ │ │ 11.4.15 │ │ │ │ │ Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xl │ │ │ │ │ │ │ │ │ │ 11.4.16 │ │ │ │ │ Probe Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 │ │ │ │ │ 11.4.17 │ │ │ │ │ Protokollierung (engl. logging) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 │ │ │ │ │ @@ -2949,15 +2949,15 @@ │ │ │ │ │ 11.5.21 │ │ │ │ │ G30, G30.1 Go/Set Predefined Position . . . . . . . . . . . . . . . . . . . . . . . . . . . 918 │ │ │ │ │ 11.5.22 │ │ │ │ │ G33 Spindle Synchronized Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918 │ │ │ │ │ 11.5.23 │ │ │ │ │ G33.1 Rigid Tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xli │ │ │ │ │ │ │ │ │ │ 11.5.24 │ │ │ │ │ G38.n Straight Probe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921 │ │ │ │ │ 11.5.25 │ │ │ │ │ G40 Compensation Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922 │ │ │ │ │ @@ -3036,15 +3036,15 @@ │ │ │ │ │ G87 Back Boring Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.52G88 Boring Cycle, Spindle Stop, Manual Out . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.53G89 Boring Cycle, Dwell, Feed Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 │ │ │ │ │ 11.5.54G90, G91 Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ 11.5.55 │ │ │ │ │ G90.1, G91.1 Arc Distance Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlii │ │ │ │ │ │ │ │ │ │ 11.5.56 │ │ │ │ │ G92 Coordinate System Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 │ │ │ │ │ 11.5.57G92.1, G92.2 Reset G92 Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 │ │ │ │ │ 11.5.58 │ │ │ │ │ @@ -3106,15 +3106,15 @@ │ │ │ │ │ │ │ │ │ │ 11.7O Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 │ │ │ │ │ 11.7.1Verwendung von O-Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 │ │ │ │ │ 11.7.2Nummerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ 11.7.3Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ 11.7.4Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xliii │ │ │ │ │ │ │ │ │ │ 11.7.4.1 Fanuc-Style Numbered Programs . . . . . . . . . . . . . . . . . . . . . . . . . 965 │ │ │ │ │ 11.7.5 Looping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967 │ │ │ │ │ 11.7.6 Conditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 │ │ │ │ │ 11.7.7 Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 │ │ │ │ │ @@ -3171,15 +3171,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ │ │ │ │ │ 11.10.4.10 │ │ │ │ │ Abtastmuster (engl. scan pattern) . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ 11.10.4.11 │ │ │ │ │ Scanrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xliv │ │ │ │ │ │ │ │ │ │ 11.10.4.12 │ │ │ │ │ Tiefe (engl. depth) (Einheiten) . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 │ │ │ │ │ 11.10.4.13 │ │ │ │ │ Schrittweite (engl. step over) (Pixel) . . . . . . . . . . . . . . . . . . . . . . . 979 │ │ │ │ │ @@ -3232,15 +3232,15 @@ │ │ │ │ │ 12.2.2Schwebende (engl. floating) Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 │ │ │ │ │ 12.2.3Beispiel für Jog-Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 │ │ │ │ │ 12.2.3.1Erstellen der Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 │ │ │ │ │ 12.2.3.2Verbindungen herstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 │ │ │ │ │ 12.2.4Port-Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012 │ │ │ │ │ 12.2.5GS2-Drehzahlmesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlv │ │ │ │ │ │ │ │ │ │ 12.2.5.1Das Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 │ │ │ │ │ 12.2.5.2Die Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 │ │ │ │ │ 12.2.6Referenzfahrt im Eilgang Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 │ │ │ │ │ 12.3GladeVCP: Glade Virtual Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 │ │ │ │ │ @@ -3293,15 +3293,15 @@ │ │ │ │ │ 12.3.6.16 │ │ │ │ │ Bars (engl. für Balken) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 │ │ │ │ │ 12.3.6.17 │ │ │ │ │ Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045 │ │ │ │ │ 12.3.6.18 │ │ │ │ │ HAL_Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlvi │ │ │ │ │ │ │ │ │ │ 12.3.6.19 │ │ │ │ │ Gremlin tool path preview for NGC files . . . . . . . . . . . . . . . . . . . . . 1047 │ │ │ │ │ 12.3.6.20 │ │ │ │ │ HAL_Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 │ │ │ │ │ @@ -3361,15 +3361,15 @@ │ │ │ │ │ 12.3.8.13 │ │ │ │ │ Manuelle Bearbeitung von INI-Dateien (.ini) . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ 12.3.8.14 │ │ │ │ │ Hinzufügen von HAL-Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ 12.3.8.15 │ │ │ │ │ Hinzufügen von Timern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlvii │ │ │ │ │ │ │ │ │ │ 12.3.8.16 │ │ │ │ │ HAL-Widget-Eigenschaften programmatisch einstellen . . . . . . . . . . . . 1079 │ │ │ │ │ 12.3.8.17 │ │ │ │ │ Value-changed callback with hal_glib . . . . . . . . . . . . . . . . . . . . . . . 1079 │ │ │ │ │ @@ -3415,15 +3415,15 @@ │ │ │ │ │ 12.5.5.2IMPORT Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.3Abschnitt INSTANTIATE BIBRARIES . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.4HANDLER CLASS Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.5INITIALIZE Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 │ │ │ │ │ 12.5.5.6Abschnitt zu BESONDEREN FUNKTIONEN . . . . . . . . . . . . . . . . . . . 1116 │ │ │ │ │ Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlviii │ │ │ │ │ │ │ │ │ │ 12.5.5.7STATUS CALLBACKS Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.8CALLBACKS FROM FORM Abschnitt . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.9GENERAL FUNCTIONS Section . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 │ │ │ │ │ 12.5.5.10 │ │ │ │ │ @@ -3467,15 +3467,15 @@ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . 1138 │ │ │ │ │ │ │ │ │ │ 12.7QtVCP Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139 │ │ │ │ │ 12.7.1Nur HAL-Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.1XEmbed - Widget zum Einbetten von Programmen . . . . . . . . . . . . . . . 1140 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ xlix │ │ │ │ │ │ │ │ │ │ 12.7.1.2Slider - HAL-Pin-Wert-Anpassungs-Widget . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.3LED - Indicator Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 │ │ │ │ │ 12.7.1.4CheckBox Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 │ │ │ │ │ 12.7.1.5RadioButton Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 │ │ │ │ │ @@ -3541,15 +3541,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . 1174 │ │ │ │ │ │ │ │ │ │ 12.7.2.21 │ │ │ │ │ MDILine - MDI-Befehlszeileneingabe-Widget . . . . . . . . . . . . . . . . . . . 1176 │ │ │ │ │ 12.7.2.22 │ │ │ │ │ MDIHistory - MDI-Befehlsverlaufs-Widget . . . . . . . . . . . . . . . . . . . . 1177 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ l │ │ │ │ │ │ │ │ │ │ 12.7.2.23 │ │ │ │ │ MDITouchy - Touchscreen-MDI-Eingabe-Widget . . . . . . . . . . . . . . . . . 1178 │ │ │ │ │ 12.7.2.24 │ │ │ │ │ OriginOffsetView - Ursprungsansicht und Einstellungs-Widget . . . . . . 1180 │ │ │ │ │ @@ -3608,15 +3608,15 @@ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ │ │ │ │ │ 12.7.6.3Facing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ 12.7.6.4Loch-Kreis (engl. hole circle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 │ │ │ │ │ 12.7.6.5Qt NGCGUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 │ │ │ │ │ 12.7.6.6Qt PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ li │ │ │ │ │ │ │ │ │ │ 12.7.6.7Qt Vismach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ 12.8QtVCP Libraries modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 │ │ │ │ │ 12.8.1Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206 │ │ │ │ │ 12.8.1.1Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206 │ │ │ │ │ @@ -3660,15 +3660,15 @@ │ │ │ │ │ 12.8.12.2 │ │ │ │ │ Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 │ │ │ │ │ 12.8.12.3 │ │ │ │ │ Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 │ │ │ │ │ 12.8.13 │ │ │ │ │ Virtuelle Tastatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ lii │ │ │ │ │ │ │ │ │ │ 12.8.14 │ │ │ │ │ Toolbar Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ 12.8.14.1 │ │ │ │ │ Aktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 │ │ │ │ │ @@ -3734,15 +3734,15 @@ │ │ │ │ │ 12.10.1.4 │ │ │ │ │ Aufräum-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 │ │ │ │ │ 12.10.2 │ │ │ │ │ Custom HAL Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 │ │ │ │ │ 12.10.3 │ │ │ │ │ Benutzerdefinierte Controller-Widgets mit STATUS . . . . . . . . . . . . . . . . . . . . 1240 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ liii │ │ │ │ │ │ │ │ │ │ 12.10.3.1 │ │ │ │ │ In The Imports Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241 │ │ │ │ │ 12.10.3.2 │ │ │ │ │ Im Abschnitt Bibliotheken instanziieren . . . . . . . . . . . . . . . . . . . . . 1242 │ │ │ │ │ @@ -3823,15 +3823,15 @@ │ │ │ │ │ 12.12.5 │ │ │ │ │ Idiosyncrasies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 │ │ │ │ │ 12.12.5.1 │ │ │ │ │ Error Code Collecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 │ │ │ │ │ 12.12.5.2 │ │ │ │ │ Jog Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ liv │ │ │ │ │ │ │ │ │ │ 12.12.5.3 │ │ │ │ │ Keybinding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ 12.12.5.4 │ │ │ │ │ Preference File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 │ │ │ │ │ @@ -3880,15 +3880,15 @@ │ │ │ │ │ 13.4.2Beispiel für einen GStat-Code │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ │ │ │ │ │ 13.4.2.1Codemuster für HAL-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ 13.4.2.2GladeVCP Python-Erweiterung Code-Muster . . . . . . . . . . . . . . . . . . 1300 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ lv │ │ │ │ │ │ │ │ │ │ 13.4.2.3QtVCP Python-Erweiterungscode-Muster │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . . . . . 1301 │ │ │ │ │ │ │ │ │ │ @@ -3934,23 +3934,23 @@ │ │ │ │ │ │ │ │ │ │ 1331 │ │ │ │ │ │ │ │ │ │ 17.1Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331 │ │ │ │ │ 17.1.1Namensänderung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 │ │ │ │ │ 17.1.2Zusätzliche Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 1 / 1332 │ │ │ │ │ │ │ │ │ │ Teil I │ │ │ │ │ │ │ │ │ │ Erste Schritte & Konfiguration │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 2 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 1 │ │ │ │ │ │ │ │ │ │ Erste Schritte mit LinuxCNC │ │ │ │ │ 1.1 About LinuxCNC │ │ │ │ │ @@ -3972,15 +3972,15 @@ │ │ │ │ │ Konfiguration für Ihre Maschine │ │ │ │ │ – eine mit Leiterdiagrammen programmierbare Software-SPS │ │ │ │ │ • Es bietet keine Zeichnungsfunktionen (CAD - Computer Aided Design) oder G-Code-Generierung │ │ │ │ │ aus der Zeichnung (CAM - Computer Automated Manufacturing). │ │ │ │ │ • Er kann bis zu 9 Achsen gleichzeitig bewegen und unterstützt eine Vielzahl von Schnittstellen. │ │ │ │ │ • 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 3 / 1332 │ │ │ │ │ │ │ │ │ │ • Zu den Funktionen der Bewegungssteuerung gehören: Fräserradius- und Längenkompensation, auf │ │ │ │ │ eine bestimmte Toleranz begrenzte Bahnabweichung, Gewindedrehen, synchronisierte Achsenbewegung, adaptiver Vorschub, Vorschubübersteuerung durch den Bediener und konstante Geschwindigkeitsregelung. │ │ │ │ │ • Unterstützung für nicht-kartesische Bewegungssysteme wird über benutzerdefinierte Kinematikmodule bereitgestellt. Zu den verfügbaren Architekturen gehören Hexapoden (Stewart-Plattformen │ │ │ │ │ und ähnliche Konzepte) und Systeme mit Drehgelenken für die Bewegung wie PUMA- oder SCARARoboter. │ │ │ │ │ @@ -4009,15 +4009,15 @@ │ │ │ │ │ für beide Seiten Zeit spart. │ │ │ │ │ Dateien teilen │ │ │ │ │ Die gängigste Art, Dateien im IRC auszutauschen, besteht darin, die Datei auf einen der folgenden oder einen ähnlichen Dienst hochzuladen und den Link einzufügen: │ │ │ │ │ • For text: https://pastebin.com/, http://pastie.org/, https://gist.github.com/ │ │ │ │ │ • For pictures: https://imagebin.org/, https://imgur.com/, https://bayimg.com/ │ │ │ │ │ • For files: https://filedropper.com/, https://filefactory.com/, https://1fichier.com/ │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 4 / 1332 │ │ │ │ │ │ │ │ │ │ 1.1.3.2 Mailingliste │ │ │ │ │ Eine Internet-Mailingliste ist eine Möglichkeit, Fragen zu stellen, die jeder auf dieser Liste sehen und │ │ │ │ │ nach Belieben beantworten kann. Auf einer Mailingliste können Sie Ihre Fragen besser stellen als │ │ │ │ │ im IRC, aber die Antworten dauern länger. Kurz gesagt: Sie senden eine Nachricht an die Liste und │ │ │ │ │ @@ -4050,15 +4050,15 @@ │ │ │ │ │ LinuxCNC und Debian Linux sollte einigermaßen gut auf einem Computer mit den folgenden minimalen Hardware-Spezifikationen laufen. Diese Zahlen sind nicht das absolute Minimum, sondern wird │ │ │ │ │ eine angemessene Leistung für die meisten Stepper-Systeme geben. │ │ │ │ │ • 700 MHz x86-Prozessor (1,2 GHz x86-Prozessor empfohlen) oder Raspberry Pi 4 oder besser. │ │ │ │ │ • LinuxCNC 2.8 or later from the Live CD expects a 64-bit capable system. │ │ │ │ │ • 512 MB of RAM, 4 GB with GUI to avoid surprises │ │ │ │ │ • No hard disk for Live CD, 8 GB or more for permanent installation │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 5 / 1332 │ │ │ │ │ │ │ │ │ │ • Graphics card capable of at least 1024x768 resolution, which is not using the NVidia or ATI fglrx │ │ │ │ │ proprietary drivers. Modern onboard graphic chipsets seem to generally be OK. │ │ │ │ │ • Internet connection (not strictly needed, but very useful for updates and for communicating with │ │ │ │ │ the LinuxCNC community) │ │ │ │ │ @@ -4093,15 +4093,15 @@ │ │ │ │ │ RTAI ist seit vielen Jahren die Hauptstütze der LinuxCNC-Distributionen. Es wird in der Regel die │ │ │ │ │ beste Echtzeit-Leistung in Bezug auf niedrige Latenz, aber möglicherweise schlechtere PeripherieUnterstützung und nicht so viele Bildschirmauflösungen haben. Ein RTAI-Kernel ist im LinuxCNCPaket-Repository verfügbar. Wenn Sie aus dem Live/Install-Image installiert haben, wird der Wechsel │ │ │ │ │ zwischen Kernel und LinuxCNC-Flavour in [Installing-RTAI] beschrieben. │ │ │ │ │ 1.2.2.3 Xenomai mit linuxcnc-uspace Paket │ │ │ │ │ Xenomai wird auch unterstützt, aber Sie müssen den Kernel finden oder bauen und LinuxCNC aus │ │ │ │ │ den Quellen kompilieren, um es zu nutzen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 6 / 1332 │ │ │ │ │ │ │ │ │ │ 1.2.2.4 RTAI mit linuxcnc-uspace-Paket │ │ │ │ │ It is also possible to run LinuxCNC with RTAI in user-space mode. As with Xenomai you will need to │ │ │ │ │ compile from source to do this. │ │ │ │ │ │ │ │ │ │ @@ -4133,15 +4133,15 @@ │ │ │ │ │ 2. Schreiben Sie das Image auf ein USB-Speichergerät oder eine DVD. │ │ │ │ │ 3. Booten Sie das Live-System, um LinuxCNC zu testen. │ │ │ │ │ 4. Booten Sie das Installationsprogramm, um LinuxCNC zu installieren. │ │ │ │ │ │ │ │ │ │ 1.3.1 Das Festplattenabbild (engl. kurz image) herunterladen │ │ │ │ │ This section describes some methods for downloading the Live/Install image. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 7 / 1332 │ │ │ │ │ │ │ │ │ │ 1.3.1.1 Normales Herunterladen │ │ │ │ │ Software for LinuxCNC to download is presented on the project’s Downloads page. Most users will aim │ │ │ │ │ for the disk image for Intel/AMD PCs, the URL will resemble https://www.linuxcnc.org/iso/linuxcnc_2.9.4amd64.hybrid.iso. │ │ │ │ │ For the Raspberry Pi, multiple images are provided to address differences between the RPi4 and RPi5. │ │ │ │ │ @@ -4178,15 +4178,15 @@ │ │ │ │ │ md5sum: 4547e8a72433efb033f0a5cf166a5cd2 │ │ │ │ │ sha256sum: ff3ba9b8dfb93baf1e2232746655f8521a606bc0fab91bffc04ba74cc3be6bf0 │ │ │ │ │ │ │ │ │ │ Überprüfen Sie md5sum auf Windows oder Mac Windows und Mac OS X werden nicht mit einem │ │ │ │ │ md5sum-Programm ausgeliefert, aber es gibt Alternativen. Weitere Informationen finden Sie unter: │ │ │ │ │ How To MD5SUM │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 8 / 1332 │ │ │ │ │ │ │ │ │ │ 1.3.2 Schreiben des Abbilds auf ein bootfähiges Gerät │ │ │ │ │ The LinuxCNC Live/Install ISO Image is a hybrid ISO image which can be written directly to a USB │ │ │ │ │ storage device (flash drive) or a DVD and used to boot a computer. The image is too large to fit on a │ │ │ │ │ CD. │ │ │ │ │ @@ -4218,15 +4218,15 @@ │ │ │ │ │ │ │ │ │ │ 4. Transfer the data with dd, as for Linux above. Note that the disk name has an added ”r” at the │ │ │ │ │ begining │ │ │ │ │ sudo dd if=linuxcnc_2.9.4-amd64.hybrid.iso of=/dev/rdiskN bs=1m │ │ │ │ │ │ │ │ │ │ 5. Bitte beachten Sie, dass dieser Vorgang sehr lange dauern kann und dass Sie während des Vorgangs keine Rückmeldung erhalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 9 / 1332 │ │ │ │ │ │ │ │ │ │ Schreiben des Abbilds auf eine DVD unter Linux │ │ │ │ │ 1. Legen Sie einen DVD-Rohling in Ihren Brenner ein. Ein Fenster ”CD/DVD Creator” oder ”Disc-Typ │ │ │ │ │ auswählen” wird angezeigt. Schließen Sie es, da wir es nicht verwenden werden. │ │ │ │ │ 2. Suchen Sie das heruntergeladene Bild im Dateibrowser. │ │ │ │ │ @@ -4258,15 +4258,15 @@ │ │ │ │ │ An diesem Punkt ist es nur wirklich sinnvoll, eine ”sim” Konfiguration zu wählen. Einige der Beispielkonfigurationen enthalten auf dem Bildschirm 3D simulierte Maschinen, suchen Sie nach ”Vismach”, │ │ │ │ │ um diese zu sehen. │ │ │ │ │ Um festzustellen, ob Ihr Computer für die Erzeugung von Software-Schrittimpulsen geeignet ist, führen Sie den Latenztest wie folgt aus: here. │ │ │ │ │ At the time of writing the Live Image is only available with the preempt-rt kernel and a matching │ │ │ │ │ LinuxCNC. On some hardware this might not offer good enough latency. There is an experimental │ │ │ │ │ version available using the RTAI realtime kernel which will often give better latency. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 10 / 1332 │ │ │ │ │ │ │ │ │ │ 1.3.4 LinuxCNC installieren │ │ │ │ │ To install LinuxCNC from the Live CD select Install (Graphical) at bootup. │ │ │ │ │ │ │ │ │ │ 1.3.5 Updates to LinuxCNC │ │ │ │ │ @@ -4354,15 +4354,15 @@ │ │ │ │ │ Maschinensteuerung │ │ │ │ │ und -simulation │ │ │ │ │ Maschinensteuerung │ │ │ │ │ und -simulation │ │ │ │ │ machine control │ │ │ │ │ simulation ONLY │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 11 / 1332 │ │ │ │ │ │ │ │ │ │ Preempt-RT-Kernel The Preempt-rt kernels are available for Debian from the regular debian.org │ │ │ │ │ archive. The package is called linux-image-rt-*. Simply install the package in the same way as any │ │ │ │ │ other package from the Synaptic Package manager or with apt-get at the command-line. │ │ │ │ │ RTAI-Kernel Die RTAI-Kernel stehen im linuxcnc.org-Debian-Archiv zum Download bereit. Die aptQuelle ist: │ │ │ │ │ @@ -4393,15 +4393,15 @@ │ │ │ │ │ 1. Install the Preempt-RT kernel and modules │ │ │ │ │ sudo apt-get install linux-image-rt-amd64 │ │ │ │ │ │ │ │ │ │ 2. Re-boot, and select the Linux 6.1.0-10-rt-amd64 kernel. The exact kernel version might be different, look for the ”-rt” suffix. This might be hidden in the ”Advanced options for Debian Bookworm” sub-menu in Grub. When you log in, verify that ̀PREEMPT RT ̀is reported by the following │ │ │ │ │ command. │ │ │ │ │ uname -v │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 12 / 1332 │ │ │ │ │ │ │ │ │ │ 3. Öffnen Sie Menü Anwendungen > System > Synaptic Package Manager, suchen Sie nach linuximage und klicken Sie mit der rechten Maustaste auf das ursprüngliche Nicht-rt und wählen │ │ │ │ │ Sie ”Zur vollständigen Entfernung markieren”. Neu starten. Damit wird das System gezwungen, │ │ │ │ │ vom RT-Kernel zu booten. Wenn Sie es vorziehen, beide Kernel beizubehalten, müssen die anderen Kernel nicht gelöscht werden, aber es sind Änderungen an der Grub-Boot-Konfiguration │ │ │ │ │ erforderlich, die den Rahmen dieses Dokuments sprengen. │ │ │ │ │ @@ -4431,15 +4431,15 @@ │ │ │ │ │ │ │ │ │ │ 1.4 Running LinuxCNC │ │ │ │ │ 1.4.1 Aufrufen von LinuxCNC │ │ │ │ │ Nach der Installation startet LinuxCNC wie jedes andere Linux-Programm: Führen Sie es aus dem │ │ │ │ │ terminal aus, indem Sie den Befehl linuxcnc eingeben, oder wählen Sie es im Menü Anwendungen -> │ │ │ │ │ CNC aus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 13 / 1332 │ │ │ │ │ │ │ │ │ │ 1.4.2 Configuration Launcher │ │ │ │ │ Beim Starten von LinuxCNC (aus dem CNC-Menü oder von der Kommandozeile ohne Angabe einer │ │ │ │ │ INI-Datei) startet der Dialog Kofigurations-Auswahl. │ │ │ │ │ Im Dialogfeld ”Konfigurationsauswahl” kann der Benutzer eine seiner vorhandenen Konfigurationen │ │ │ │ │ @@ -4471,15 +4471,15 @@ │ │ │ │ │ • tklinuxcnc - Keyboard and Mouse GUI (no longer maintained) │ │ │ │ │ • touchy - Touchscreen-GUI │ │ │ │ │ • woodpecker - Touch Screen GUI A GUI configuration directory may contain subdirectories with │ │ │ │ │ configurations that illustrate special situations or the embedding of other applications. │ │ │ │ │ Die by_interface-Konfigurationen sind um gängige, unterstützte Schnittstellen herum organisiert: │ │ │ │ │ • allgemeine Mechatronik │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 14 / 1332 │ │ │ │ │ │ │ │ │ │ • mesa │ │ │ │ │ • parport │ │ │ │ │ • pico │ │ │ │ │ • pluto │ │ │ │ │ @@ -4511,15 +4511,15 @@ │ │ │ │ │ • parport - Anwendungen zum Testen von parport. │ │ │ │ │ • pyvcp - Beispiele für pyvcp-Anwendungen. │ │ │ │ │ • xhc-hb04 – Anwendungen zum Testen eines drahtlosen USB-MPG xhc-hb04 │ │ │ │ │ Anmerkung │ │ │ │ │ Im Verzeichnis Apps werden nur Anwendungen zum Kopieren in das Benutzerverzeichnis angeboten, │ │ │ │ │ die vom Benutzer sinnvollerweise geändert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 15 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 1.1: LinuxCNC-Konfigurationsauswahl │ │ │ │ │ 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 │ │ │ │ │ starten. │ │ │ │ │ Wählen Sie ”Desktop-Verknüpfung erstellen” und klicken Sie dann auf ”OK”, um ein Symbol auf dem │ │ │ │ │ @@ -4534,15 +4534,15 @@ │ │ │ │ │ Konfiguration finden Sie im Integrator-Handbuch. │ │ │ │ │ │ │ │ │ │ 1.4.4 Simulator-Konfigurationen │ │ │ │ │ Alle unter Beispielkonfigurationen/Sim aufgeführten Konfigurationen können auf jedem Computer │ │ │ │ │ ausgeführt werden. Es ist keine spezielle Hardware erforderlich und Echtzeitunterstützung ist nicht │ │ │ │ │ notwendig. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 16 / 1332 │ │ │ │ │ │ │ │ │ │ Diese Konfigurationen sind nützlich, um einzelne Fähigkeiten oder Optionen zu untersuchen. Die │ │ │ │ │ Sim-Konfigurationen sind nach der in der Demonstration verwendeten grafischen Benutzeroberfläche geordnet. Das Verzeichnis für die Achse enthält die meisten Auswahlmöglichkeiten und Unterverzeichnisse, da es sich um die am häufigsten getestete grafische Benutzeroberfläche handelt. Die │ │ │ │ │ Fähigkeiten, die mit einer bestimmten grafischen Benutzeroberfläche demonstriert werden, sind möglicherweise auch in anderen grafischen Benutzeroberflächen verfügbar. │ │ │ │ │ │ │ │ │ │ @@ -4577,15 +4577,15 @@ │ │ │ │ │ To upgrade LinuxCNC from a version older than 2.8, you have to first upgrade your old install to 2.8, │ │ │ │ │ then follow these instructions to upgrade to the new version. │ │ │ │ │ Wenn Sie keine alte Version von LinuxCNC zu aktualisieren haben, dann sind Sie am besten aus │ │ │ │ │ machen eine frische Installation der neuen Version, wie im Abschnitt LinuxCNC erhalten beschrieben. │ │ │ │ │ Darüber hinaus ist es unter Ubuntu Precise oder Debian Wheezy eine Überlegung wert, ein Backup │ │ │ │ │ des ”linuxcnc”-Verzeichnisses auf einem Wechselmedium vorzunehmen und eine Neuinstallaion des │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 17 / 1332 │ │ │ │ │ │ │ │ │ │ neuesn Betriebsystems und der LinuxCNC version durchzuführen, da diese Versionen des OS 2017 │ │ │ │ │ bzw. 2018 ausliefen. Wenn Sie Ubuntu Lucid nutzen, dann werden Sie dies tun müssen, da Lucid nicht │ │ │ │ │ mehr von LinuxCNC unterstützt wird (es war EOL im Jahr 2013). │ │ │ │ │ To upgrade major versions like 2.8 to 2.9 when you have a network connection at the machine you need │ │ │ │ │ @@ -4625,15 +4625,15 @@ │ │ │ │ │ ∗ Klicken Sie in Synaptic auf das Menü Einstellungen und dann auf Repositories, um das │ │ │ │ │ Fenster Softwarequellen zu öffnen. │ │ │ │ │ • Wählen Sie im Fenster ”Software-Quellen” die Registerkarte ”Andere Software”. │ │ │ │ │ • Löschen oder deaktivieren Sie alle alten linuxcnc.org-Einträge (lassen Sie alle nicht-linuxcnc.orgZeilen unverändert). │ │ │ │ │ • Klicken Sie auf die Schaltfläche ”Hinzufügen” und fügen Sie eine neue apt-Zeile hinzu. Die Zeile │ │ │ │ │ wird auf den verschiedenen Plattformen etwas anders aussehen: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 18 / 1332 │ │ │ │ │ │ │ │ │ │ Tabelle 1.2: Tabular overview on variants of the Operating │ │ │ │ │ System and the corresponding configuration of the repository. The configuration can be performed in the GUI of │ │ │ │ │ the package manager or in the file /etc/apt/sources.list. │ │ │ │ │ OS / Realtime Version │ │ │ │ │ @@ -4646,29 +4646,29 @@ │ │ │ │ │ Repository │ │ │ │ │ deb https://linuxcnc.org buster base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org buster base 2.9-rt │ │ │ │ │ deb https://linuxcnc.org bullseye base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org bookworm base 2.9-uspace │ │ │ │ │ deb https://linuxcnc.org bookworm base 2.9-rt │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 19 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 1.2: Figure with a screenshot of the repository configuration of the synaptic package manager. │ │ │ │ │ • Klicken Sie im Fenster ”Softwarequellen” auf ”Quelle hinzufügen” und dann auf ”Schließen”. Wenn │ │ │ │ │ ein Fenster angezeigt wird, das Sie darüber informiert, dass die Informationen über die verfügbare │ │ │ │ │ Software veraltet sind, klicken Sie auf die Schaltfläche ”Neu laden”. │ │ │ │ │ 1.5.1.2 Upgrade auf die neue Version │ │ │ │ │ Da Ihr Computer nun weiß, wo er die neue Version der Software erhält, müssen wir sie nun installieren. │ │ │ │ │ Der Prozess unterscheidet sich wiederum je nach Plattform. │ │ │ │ │ Debian uses the Synaptic Package Manager. │ │ │ │ │ • Öffnen Sie Synaptic gemäß den Anweisungen in Festlegen der apt sources oben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 20 / 1332 │ │ │ │ │ │ │ │ │ │ • Klicken Sie auf die Schaltfläche ”Neu laden”. │ │ │ │ │ • Verwenden Sie die Suchfunktion, um nach linuxcnc zu suchen. │ │ │ │ │ • Das Paket heißt „linuxcnc“ für RTAI-Kernel und „linuxcnc-uspace“ für preempt-rt. │ │ │ │ │ • Click the check box to mark the new linuxcnc and linuxcnc-doc-* packages for upgrade. The package │ │ │ │ │ @@ -4704,15 +4704,15 @@ │ │ │ │ │ sudo dpkg -i linuxcnc_2.9.2.deb │ │ │ │ │ │ │ │ │ │ 1.5.3 Updating Configuration Files for 2.9 │ │ │ │ │ 1.5.3.1 Stricter handling of pluggable interpreters │ │ │ │ │ If you just run regular G-code and you don’t know what a pluggable interpreter is, then this section │ │ │ │ │ does not affect you. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 21 / 1332 │ │ │ │ │ │ │ │ │ │ A seldom-used feature of LinuxCNC is support for pluggable interpreters, controlled by the undocumented [TASK]INTERPRETER INI setting. │ │ │ │ │ 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. │ │ │ │ │ Since 2.9.0, an incorrect [TASK]INTERPRETER value will cause LinuxCNC to refuse to start up. Fix this │ │ │ │ │ condition by deleting the [TASK]INTERPRETER setting from your INI file, so that LinuxCNC will use │ │ │ │ │ @@ -4743,15 +4743,15 @@ │ │ │ │ │ 1.5.5.1 Non-Realtime │ │ │ │ │ │ │ │ │ │ mdro mqtt-publisher pi500_vfd pmx485-test qtplasmac-cfg2prefs qtplasmac-materials qtplasmac-plasmac2q │ │ │ │ │ qtplasmac-setup sim-torch svd-ps_vfd │ │ │ │ │ 1.5.5.2 Echtzeit │ │ │ │ │ anglejog div2 enum filter_kalman flipflop hal_parport homecomp limit_axis mesa_uart millturn scaled_s32_sums tof ton │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 22 / 1332 │ │ │ │ │ │ │ │ │ │ 1.5.6 New Drivers │ │ │ │ │ A framework for controlling ModBus devices using the serial ports on many Mesa cards has been │ │ │ │ │ introduced. http://linuxcnc.org/docs/2.9/html/drivers/mesa_modbus.html │ │ │ │ │ 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 │ │ │ │ │ @@ -4778,15 +4778,15 @@ │ │ │ │ │ Wenn Sie LinuxCNC mit der Ubuntu LiveCD installieren, ist die Voreinstellung, dass Sie sich jedes Mal │ │ │ │ │ anmelden müssen, wenn Sie den Computer einschalten. Um die automatische Anmeldung zu aktivieren, gehen Sie zu System > Administration > Login Window. Wenn es sich um eine Neuinstallation │ │ │ │ │ handelt, kann es eine oder drei Sekunden dauern, bis das Anmeldefenster erscheint. Sie benötigen Ihr │ │ │ │ │ Passwort, das Sie bei der Installation verwendet haben, um Zugang zum Fenster ”Einstellungen für │ │ │ │ │ das Anmeldefenster” zu erhalten. Aktivieren Sie auf der Registerkarte Sicherheit das Kontrollkästchen Automatische Anmeldung aktivieren und wählen Sie einen Benutzernamen aus der Liste (das │ │ │ │ │ wären Sie). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 23 / 1332 │ │ │ │ │ │ │ │ │ │ 1.6.2 Automatisches Starten │ │ │ │ │ Um LinuxCNC automatisch mit Ihrer Konfiguration nach dem Einschalten des Computers starten zu │ │ │ │ │ lassen, gehen Sie zu System > Preferences > Sessions > Startup Applications, klicken Sie auf Add. │ │ │ │ │ Navigieren Sie zu Ihrer Konfiguration und wählen Sie die .ini-Datei aus. Wenn sich der Dateiauswahldialog schließt, fügen Sie linuxcnc und ein Leerzeichen vor dem Pfad zu Ihrer .ini-Datei hinzu. │ │ │ │ │ @@ -4824,15 +4824,15 @@ │ │ │ │ │ Wenn Sie die Ausgabe von lsmod in eine Textdatei in einem Terminalfenster senden wollen, geben Sie │ │ │ │ │ ein: │ │ │ │ │ lsmod > mymod.txt │ │ │ │ │ │ │ │ │ │ Die resultierende Textdatei befindet sich im Home-Verzeichnis, wenn Sie beim Öffnen des TerminalFensters das Verzeichnis nicht gewechselt haben, und trägt den Namen mymod.txt oder den von Ihnen │ │ │ │ │ gewählten Namen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 24 / 1332 │ │ │ │ │ │ │ │ │ │ 1.6.6 Bearbeiten einer root-Datei │ │ │ │ │ Wenn Sie den Dateibrowser öffnen und sehen, dass der Eigentümer der Datei root ist, müssen Sie zusätzliche Schritte unternehmen, um diese Datei zu bearbeiten. Die Bearbeitung einiger root-Dateien │ │ │ │ │ kann zu schlechten Ergebnissen führen. Seien Sie vorsichtig, wenn Sie root-Dateien bearbeiten. Im │ │ │ │ │ Allgemeinen können Sie die meisten root-Dateien öffnen und anzeigen, aber sie bleiben schreibgeschützt. │ │ │ │ │ @@ -4862,15 +4862,15 @@ │ │ │ │ │ Um das Arbeitsverzeichnis in das eine Ebene höher liegende Verzeichnis, d.h. das übergeordnete │ │ │ │ │ Verzeichnis, zu wechseln, geben Sie im Terminalfenster ein: │ │ │ │ │ cd .. │ │ │ │ │ │ │ │ │ │ Um im Terminalfenster eine Ebene höher zu gehen, geben Sie ein: │ │ │ │ │ cd ../.. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 25 / 1332 │ │ │ │ │ │ │ │ │ │ Um direkt in Ihr Heimatverzeichnis zu wechseln, geben Sie im Terminalfenster den Befehl cd ohne │ │ │ │ │ Argumente ein: │ │ │ │ │ cd │ │ │ │ │ │ │ │ │ │ @@ -4909,15 +4909,15 @@ │ │ │ │ │ │ │ │ │ │ Dies findet alle Dateien, die den zu suchenden Text enthalten, im aktuellen Verzeichnis und allen Unterverzeichnissen darunter, wobei die Groß- und Kleinschreibung ignoriert wird. Die Option -i steht │ │ │ │ │ für Ignorieren der Groß- und Kleinschreibung und die Option -r für Rekursiv (schließt alle Unterverzeichnisse in die Suche ein). Die Option -l gibt eine Liste der Dateinamen zurück, wenn Sie die Option │ │ │ │ │ -l auslassen, erhalten Sie auch den Text, in dem jedes Vorkommen des zu suchenden Textes gefunden │ │ │ │ │ wird. Der * ist ein Platzhalter für die Suche in allen Dateien. Weitere Informationen finden Sie in der │ │ │ │ │ Manpage zu grep. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 26 / 1332 │ │ │ │ │ │ │ │ │ │ 1.6.7.6 Diagnosemeldungen │ │ │ │ │ Um die Diagnosemeldungen anzuzeigen, verwenden Sie ”dmesg” im Befehlsfenster. Um die Diagnosemeldungen in einer Datei zu speichern, verwenden Sie den Umleitungsoperator >, etwa so: │ │ │ │ │ dmesg > bootmsg.txt │ │ │ │ │ │ │ │ │ │ @@ -4948,29 +4948,29 @@ │ │ │ │ │ lspci -v │ │ │ │ │ │ │ │ │ │ 1.6.9.2 Monitor-Auflösung │ │ │ │ │ Während der Installation versucht Ubuntu, die Monitoreinstellungen zu erkennen. Wenn dies fehlschlägt, wird ein allgemeiner Monitor mit einer maximalen Auflösung von 800x600 verwendet. │ │ │ │ │ Eine Anleitung zur Behebung dieses Problems finden Sie hier: │ │ │ │ │ https://help.ubuntu.com/community/FixVideoResolutionHowto │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 27 / 1332 │ │ │ │ │ │ │ │ │ │ 1.6.10 Pfade │ │ │ │ │ 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ändnis der Linux-Pfadangaben. │ │ │ │ │ ./f0 ist dasselbe wie f0, z. B. eine Datei namens f0 im Startverzeichnis │ │ │ │ │ ../f1 bezieht sich auf eine Datei f1 im übergeordneten Verzeichnis │ │ │ │ │ ../../f2 bezieht sich auf eine Datei f2 im übergeordneten Verzeichnis des │ │ │ │ │ übergeordneten Verzeichnisses │ │ │ │ │ ../../../f3 usw. │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 28 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 2 │ │ │ │ │ │ │ │ │ │ Allgemeine Benutzerinformationen │ │ │ │ │ 2.1 User Foreword │ │ │ │ │ @@ -5000,15 +5000,15 @@ │ │ │ │ │ by making them connectable. We achieve connectability by setting up standard interfaces to sets of │ │ │ │ │ modules and following those standards. │ │ │ │ │ The Separation rule requires that we make distinct parts that do little things. By separating functions │ │ │ │ │ debugging is much easier and replacement modules can be dropped into the system and comparisons │ │ │ │ │ easily made. │ │ │ │ │ 1 Found at link:https://en.wikipedia.org/wiki/Separation_of_mechanism_and_policy, 2022-11-13 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 29 / 1332 │ │ │ │ │ │ │ │ │ │ What does the Unix way mean for you as a user of LinuxCNC. It means that you are able to make │ │ │ │ │ choices about how you will use the system. Many of these choices are a part of machine integration, │ │ │ │ │ but many also affect the way you will use your machine. As you read you will find many places where │ │ │ │ │ you will need to make comparisons. Eventually you will make choices, ”I’ll use this interface rather │ │ │ │ │ @@ -5046,15 +5046,15 @@ │ │ │ │ │ • the high level controllers that coordinate the generation and execution of motion control of the CNC │ │ │ │ │ machine, namely the motion controller (EMCMOT), the discrete input/output controller (EMCIO) │ │ │ │ │ and the task executor (EMCTASK). │ │ │ │ │ The below illustration is a simple block diagram showing what a typical 3-axis CNC mill with stepper │ │ │ │ │ motors might look like: │ │ │ │ │ 2 Found at link:https://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 30 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.1: Simple LinuxCNC Controlled Machine │ │ │ │ │ A computer running LinuxCNC sends a sequence of pulses via the parallel port to the stepper drives, │ │ │ │ │ each of which has one stepper motor connected to it. Each drive receives two independent signals; │ │ │ │ │ one signal to command the drive to move its associated stepper motor in a clockwise or anti-clockwise │ │ │ │ │ @@ -5076,15 +5076,15 @@ │ │ │ │ │ The INI file contains all the basic hardware information regarding the operation of the CNC mill, │ │ │ │ │ such as the number of steps each stepper motor must turn to complete one full revolution, the │ │ │ │ │ maximum rate at which each stepper may operate at, the limits of travel of each axis or the │ │ │ │ │ configuration and behaviour of limit switches on each axis. │ │ │ │ │ – My_CNC.hal │ │ │ │ │ This HAL file contains information that tells LinuxCNC how to link the internal virtual signals to │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 31 / 1332 │ │ │ │ │ │ │ │ │ │ physical connections beyond the computer. For example, specifying pin 4 on the parallel port to │ │ │ │ │ send out the Z axis step direction signal, or directing LinuxCNC to cease driving the X axis motor │ │ │ │ │ when a limit switch is triggered on parallel port pin 13. │ │ │ │ │ – custom.hal │ │ │ │ │ @@ -5111,85 +5111,85 @@ │ │ │ │ │ 2.2.3 Graphical User Interfaces │ │ │ │ │ A graphical user interface is the part of the LinuxCNC that the machine tool operator interacts with. │ │ │ │ │ LinuxCNC comes with several types of user interfaces which may be chosen from by editing certain │ │ │ │ │ fields contained in the INI file: │ │ │ │ │ ACHSE │ │ │ │ │ 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: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ Abbildung 2.2: AXIS, the standard keyboard GUI interface │ │ │ │ │ │ │ │ │ │ Touchy │ │ │ │ │ Touchy, a touch screens GUI: │ │ │ │ │ │ │ │ │ │ 32 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ Abbildung 2.3: Touchy, a touch screen GUI │ │ │ │ │ │ │ │ │ │ Gscreen │ │ │ │ │ Gscreen, a user-configurable touch screen GUI: │ │ │ │ │ │ │ │ │ │ 33 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 34 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.4: Gscreen, a configurable base touch screen GUI │ │ │ │ │ │ │ │ │ │ GMOCCAPY │ │ │ │ │ GMOCCAPY, a touch screen GUI based on Gscreen. GMOCCAPY is also designed to work equally │ │ │ │ │ well in applications where a keyboard and mouse are the preferred methods of controlling the │ │ │ │ │ GUI: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 35 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.5: GMOCCAPY, a touch screen GUI based on Gscreen │ │ │ │ │ │ │ │ │ │ NGCGUI │ │ │ │ │ NGCGUI, a subroutine GUI that provides wizard-style programming of G code. NGCGUI may be │ │ │ │ │ run as a standalone program or embedded into another GUI as a series of tabs. The following │ │ │ │ │ screenshot shows NGCGUI embedded into AXIS: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 36 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.6: NGCGUI, a graphical interface integrated into AXIS │ │ │ │ │ │ │ │ │ │ TkLinuxCNC │ │ │ │ │ TkLinuxCNC, another interface based on Tcl/Tk. Once the most popular interface after AXIS. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 37 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.7: TkLinuxCNC graphical interface │ │ │ │ │ │ │ │ │ │ QtDragon │ │ │ │ │ QtDragon, a touch screen GUI based on QtVCP using the PyQt5 library. It comes in two versions │ │ │ │ │ QtDragon and QtDragon_hd. They are very similar in features but QtDragon_hd is made for larger │ │ │ │ │ monitors. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 38 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.8: QtDragon, a touch screen GUI based on QtVCP │ │ │ │ │ │ │ │ │ │ QtPlasmaC │ │ │ │ │ QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP using the PyQt5 library. It comes │ │ │ │ │ in three aspect ratios, 16:9, 4:3, and 9:16. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 39 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.9: QtPlasmaC, a touch screen plasma cutting GUI based on QtVCP │ │ │ │ │ │ │ │ │ │ 2.2.4 Benutzerschnittstellen │ │ │ │ │ These User interfaces are a way to interact with LinuxCNC outside of the graphical user interfaces. │ │ │ │ │ @@ -5203,41 +5203,41 @@ │ │ │ │ │ add indicators, readouts, switches or sliders to the basic appearance of one of the GUIs for increased │ │ │ │ │ flexibility or functionality. Two styles of Virtual Control Panel are offered in LinuxCNC: │ │ │ │ │ PyVCP │ │ │ │ │ PyVCP, a Python-based virtual control panel that can be added to the AXIS GUI. PyVCP only │ │ │ │ │ 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 │ │ │ │ │ makes it an excellent choice if the user wants to add a Virtual Control Panel with minimal fuss. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 40 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.10: PyVCP Example Embedded Into AXIS GUI │ │ │ │ │ │ │ │ │ │ GladeVCP │ │ │ │ │ GladeVCP, a Glade-based virtual control panel that can be added to the AXIS or Touchy GUIs. │ │ │ │ │ GladeVCP has the advantage over PyVCP in that it is not limited to the display or control of HAL │ │ │ │ │ virtual signals, but can include other external interfaces outside LinuxCNC such as window or │ │ │ │ │ network events. GladeVCP is also more flexible in how it may be configured to appear on the │ │ │ │ │ GUI: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 41 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.11: GladeVCP Example Embedded Into AXIS GUI │ │ │ │ │ │ │ │ │ │ QtVCP │ │ │ │ │ QtVCP, a PyQt5-based virtual control panel that can be added to most GUIs or run as a standalone │ │ │ │ │ panel. QtVCP has the advantage over PyVCP in that it is not limited to the display or control of │ │ │ │ │ HAL virtual signals, but can include other external interfaces outside LinuxCNC such as window │ │ │ │ │ or network events by extending with python code. QtVCP is also more flexible in how it may be │ │ │ │ │ configured to appear on the GUI with many special widgets: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 42 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.12: QtVCP Example Embedded Into QtDragon GUI │ │ │ │ │ │ │ │ │ │ 2.2.6 Sprachen │ │ │ │ │ LinuxCNC uses translation files to translate LinuxCNC User Interfaces into many languages including │ │ │ │ │ @@ -5253,15 +5253,15 @@ │ │ │ │ │ lessons learned. A beautiful finish, tight tolerances and caution during the work are evidence of lessons │ │ │ │ │ learned. No machine nor program can replace human experience. │ │ │ │ │ Now that you start working with the LinuxCNC software, you have to put yourself in the shoes of an │ │ │ │ │ operator. You must be in the role of someone in charge of a machine. It’s a machine that will wait │ │ │ │ │ for your commands and then execute the orders that you will give it. In these pages, we will give the │ │ │ │ │ explanations which will help you to become a good CNC operator with LinuxCNC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 43 / 1332 │ │ │ │ │ │ │ │ │ │ 2.2.8 Modes of Operation │ │ │ │ │ When LinuxCNC is running, there are three different major modes used for inputting commands. │ │ │ │ │ These are Manual, Auto, and Manual Data Input (MDI). Changing from one mode to another makes │ │ │ │ │ a big difference in the way that the LinuxCNC control behaves. There are specific things that can be │ │ │ │ │ @@ -5303,15 +5303,15 @@ │ │ │ │ │ in your G-code can cause your machine to slow down and speed up for the longer moves if the naive │ │ │ │ │ cam detector is not employed with G64 Pn. │ │ │ │ │ The basic acceleration and deceleration described above is not complex and there is no compromise │ │ │ │ │ to be made. In the INI file the specified machine constraints, such as maximum axis velocity and axis │ │ │ │ │ acceleration, must be obeyed by the trajectory planner. │ │ │ │ │ Für weitere Informationen zu den Trajektorie-Panner INI-Optionen siehe den Abschnitt zu Trajektorien im INI Kapitel. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 44 / 1332 │ │ │ │ │ │ │ │ │ │ 2.3.1.2 Path Following │ │ │ │ │ A less straightforward problem is that of path following. When you program a corner in G-code, the │ │ │ │ │ trajectory planner can do several things, all of which are right in some cases: │ │ │ │ │ • Es kann genau an den Koordinaten der Kurve bis zum Stillstand abbremsen und dann in die neue │ │ │ │ │ @@ -5351,15 +5351,15 @@ │ │ │ │ │ that a specification of G64 P0 has the same effect as G64 alone (above), which is necessary for │ │ │ │ │ backward compatibility for old G-code programs. See the G64 section of the G-code chapter. │ │ │ │ │ Blending without tolerance │ │ │ │ │ The controlled point will touch each specified movement at at least one point. The machine will │ │ │ │ │ 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 │ │ │ │ │ the end point of the move is as large as it needs to be to keep up the best contouring feed. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 45 / 1332 │ │ │ │ │ │ │ │ │ │ Naive CAM Detector │ │ │ │ │ Successive G1 moves that involve only the XYZ axes that deviate less than Q- from a straight │ │ │ │ │ line are merged into a single straight line. This merged movement replaces the individual G1 │ │ │ │ │ movements for the purposes of blending with tolerance. Between successive movements, the │ │ │ │ │ @@ -5394,15 +5394,15 @@ │ │ │ │ │ the feed rate in units per second, the acceleration time is ta = F/A and the acceleration distance is │ │ │ │ │ da = F*ta /2. The deceleration time and distance are the same, making the critical distance d = da + │ │ │ │ │ dd = 2 * da = F2 /A. │ │ │ │ │ For example, for a feed rate of 1 inch per second and an acceleration of 10 inches/sec2 , the critical │ │ │ │ │ distance is 12 /10 = 1/10 = 0.1 inches. │ │ │ │ │ For a feed rate of 0.5 inch per second, the critical distance is 52 /100 = 25/100 = 0.025 inches. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 46 / 1332 │ │ │ │ │ │ │ │ │ │ 2.3.2 G-Code │ │ │ │ │ 2.3.2.1 Defaults │ │ │ │ │ When LinuxCNC first starts up many G- and M-codes are loaded by default. The current active G- and │ │ │ │ │ M-codes can be viewed on the MDI tab in the Active G-codes: window in the AXIS interface. These │ │ │ │ │ @@ -5434,15 +5434,15 @@ │ │ │ │ │ There are several options when doing manual tool changes. See the [EMCIO] section for information │ │ │ │ │ on configuration of these options. Also see the G28 and G30 section of the G-code chapter. │ │ │ │ │ │ │ │ │ │ 2.3.5 Koordinatensysteme │ │ │ │ │ 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 │ │ │ │ │ Coordinate Systems is in the Coordinate System section of this manual. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 47 / 1332 │ │ │ │ │ │ │ │ │ │ 2.3.5.1 G53 Machine Coordinate │ │ │ │ │ When you home LinuxCNC you set the G53 Machine Coordinate System to 0 for each axis homed. │ │ │ │ │ No other coordinate systems or tool offsets are changed by homing. │ │ │ │ │ The only time you move in the G53 machine coordinate system is when you program a G53 on the │ │ │ │ │ @@ -5474,22 +5474,22 @@ │ │ │ │ │ in relation to the material. │ │ │ │ │ Note also the position of the limit switches and the direction of activation of their cams. Several │ │ │ │ │ combinations are possible, for example it is possible (contrary to the drawing) to place a single fixed │ │ │ │ │ limit switch in the middle of the table and two mobile cams to activate it. In this case the limits will │ │ │ │ │ be reversed, +X will be on the right of the table and -X on the left. This inversion does not change │ │ │ │ │ anything from the point of view of the direction of movement of the tool. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 48 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.14: Typical Mill Configuration │ │ │ │ │ The following diagram shows a typical lathe showing direction of travel of the tool and limit switches. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ Abbildung 2.15: Typical Lathe Configuration │ │ │ │ │ │ │ │ │ │ 2.4 Starting LinuxCNC │ │ │ │ │ 2.4.1 Running LinuxCNC │ │ │ │ │ LinuxCNC is started with the script file linuxcnc. │ │ │ │ │ linuxcnc [options] [] │ │ │ │ │ @@ -5504,15 +5504,15 @@ │ │ │ │ │ $ linuxcnc [Options] path/to/your_ini_file │ │ │ │ │ Name the configuration INI file using its path │ │ │ │ │ $ linuxcnc [Options] -l │ │ │ │ │ Use the previously used configuration INI file │ │ │ │ │ │ │ │ │ │ 49 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 50 / 1332 │ │ │ │ │ │ │ │ │ │ Options: │ │ │ │ │ -d: Turn on ”debug” mode │ │ │ │ │ -v: Turn on ”verbose” mode │ │ │ │ │ -r: Disable redirection of stdout and stderr to ~/linuxcnc_print.txt and │ │ │ │ │ @@ -5538,15 +5538,15 @@ │ │ │ │ │ or GladeVCP objects with HAL pins you must use the postgui HAL file to make any connections to │ │ │ │ │ those pins. See the [HAL] section of the INI configuration for more information. │ │ │ │ │ 2.4.1.1 Configuration Selector │ │ │ │ │ If no INI file is passed to the linuxcnc script it loads the configuration selector so you can choose and │ │ │ │ │ save a sample configuration. Once a sample configuration has been saved it can be modified to suit │ │ │ │ │ your application. The configuration files are saved in linuxcnc/configs directory. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 51 / 1332 │ │ │ │ │ │ │ │ │ │ 2.5 CNC Machine Overview │ │ │ │ │ In diesem Abschnitt wird kurz beschrieben, wie eine CNC-Maschine von der Eingangs- und Ausgangsseite des Interpreters aus betrachtet wird. │ │ │ │ │ │ │ │ │ │ 2.5.1 Mechanische Bestandteile │ │ │ │ │ @@ -5555,15 +5555,15 @@ │ │ │ │ │ Interpreter interagieren, wie z. B. die Jog Buttons/ Tipptasten, werden hier nicht beschrieben, auch │ │ │ │ │ wenn sie die Steuerung beeinflussen. │ │ │ │ │ 2.5.1.1 Axes │ │ │ │ │ Jede CNC-Maschine hat eine oder mehrere Achsen. Verschiedene Arten von CNC-Maschinen haben │ │ │ │ │ unterschiedliche Kombinationen. Eine ”4-Achsen-Fräsmaschine” 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 ”Gantry”-Maschine mit zwei Motoren │ │ │ │ │ für eine Achse ist besser durch Kinematik als durch eine zweite lineare Achse behandelt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 52 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn die Bewegung der mechanischen Komponenten nicht unabhängig ist, wie z. B. bei HexapodMaschinen, können die RS274/NGC-Sprache und die kanonischen Bearbeitungsfunktionen immer │ │ │ │ │ noch verwendet werden, solange die unteren Steuerungsebenen wissen, wie die tatsächlichen Mechanismen zu steuern sind, um die gleiche relative Bewegung von Werkzeug und Werkstück zu erzeugen, wie sie von unabhängigen Achsen erzeugt würde. Dies wird als ”Kinematik” bezeichnet. │ │ │ │ │ │ │ │ │ │ @@ -5590,15 +5590,15 @@ │ │ │ │ │ Bearbeitung einen bestimmten Prozentsatz der programmierten Geschwindigkeit beträgt. │ │ │ │ │ 2.5.1.5 Schalter zum Löschen von Blöcken │ │ │ │ │ Eine CNC-Maschine kann einen Schalter zum Löschen von Blöcken haben. Siehe den Abschnitt BlockLösch-Schalter (engl. block delete switch). │ │ │ │ │ 2.5.1.6 Optionaler Programm-Stopp-Schalter │ │ │ │ │ Eine CNC-Maschine kann mit einem optionalen Programmstoppschalter ausgestattet sein. Siehe den │ │ │ │ │ Abschnitt Optionaler Programmstopp. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 53 / 1332 │ │ │ │ │ │ │ │ │ │ 2.5.2 Steuerungs- und Datenkomponenten │ │ │ │ │ 2.5.2.1 Lineare Achsen │ │ │ │ │ Die X-, Y- und Z-Achse bilden ein standardmäßiges rechtshändiges Koordinatensystem mit orthogonalen linearen Achsen. Die Positionen der drei linearen Bewegungsmechanismen werden durch Koordinaten auf diesen Achsen ausgedrückt. │ │ │ │ │ Die Achsen U, V und W bilden ebenfalls ein standardmäßiges rechtshändiges Koordinatensystem. X │ │ │ │ │ @@ -5629,15 +5629,15 @@ │ │ │ │ │ Um ein Werkzeug entlang einer bestimmten Bahn zu bewegen, muss ein Bearbeitungszentrum häufig │ │ │ │ │ die Bewegung mehrerer Achsen koordinieren. Wir verwenden den Begriff ”koordinierte lineare Bewegung”, 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 │ │ │ │ │ bewegen. Wenn sich nur die X-, Y- und Z-Achse (oder eine oder zwei von ihnen) bewegen, führt dies zu │ │ │ │ │ einer geradlinigen Bewegung, daher das Wort ”linear” in dem Begriff. Bei tatsächlichen Bewegungen │ │ │ │ │ ist es oft nicht möglich, eine konstante Geschwindigkeit beizubehalten, da am Anfang und/oder am │ │ │ │ │ Ende der Bewegung eine Beschleunigung oder Verzögerung erforderlich ist. Es ist jedoch möglich, │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 54 / 1332 │ │ │ │ │ │ │ │ │ │ die Achsen so zu steuern, dass jede Achse zu jedem Zeitpunkt den gleichen Teil ihrer erforderlichen │ │ │ │ │ Bewegung ausgeführt hat wie die anderen Achsen. Dadurch wird das Werkzeug auf demselben Weg │ │ │ │ │ bewegt, und wir nennen diese Art der Bewegung auch koordinierte lineare Bewegung. │ │ │ │ │ Koordinierte lineare Bewegungen können entweder mit der vorherrschenden Vorschubgeschwindigkeit oder mit der Verfahrgeschwindigkeit ausgeführt werden oder sie können mit der Spindelrotation synchronisiert werden. Wenn die gewünschte Geschwindigkeit aufgrund physikalischer Grenzen │ │ │ │ │ @@ -5664,15 +5664,15 @@ │ │ │ │ │ Die Einheiten für Abstände entlang der X-, Y- und Z-Achse können in Millimetern oder Zoll gemessen │ │ │ │ │ werden. Die Einheiten für alle anderen an der Maschinensteuerung beteiligten Größen können nicht │ │ │ │ │ geändert werden. Verschiedene Größen verwenden unterschiedliche spezifische Einheiten. Die Spindeldrehzahl wird in Umdrehungen pro Minute gemessen. Die Positionen der Rotationsachsen werden │ │ │ │ │ in Grad gemessen. Vorschubgeschwindigkeiten werden in aktuellen Längeneinheiten pro Minute oder │ │ │ │ │ Grad pro Minute oder Längeneinheiten pro Spindelumdrehung ausgedrückt, wie in Abschnitt G93 G94 │ │ │ │ │ G95 beschrieben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 55 / 1332 │ │ │ │ │ │ │ │ │ │ 2.5.2.9 Aktuelle Position │ │ │ │ │ Der kontrollierte Punkt befindet sich immer an einer Stelle, die als ”aktuelle Position” bezeichnet wird, │ │ │ │ │ und der Controller weiß immer, wo sich diese befindet. Die dargestellte aktuelle Position muss angepasst werden, selbst wenn keine Achsenbewegung stattfindet, wenn eines von mehreren Ereignissen │ │ │ │ │ eintritt: │ │ │ │ │ @@ -5703,15 +5703,15 @@ │ │ │ │ │ verlangsamt oder stoppt bei Bedarf an scharfen Ecken des Weges. │ │ │ │ │ kontinuierlicher Modus (continuous mode) │ │ │ │ │ Im kontinuierlichen Modus können scharfe Ecken der Bahn leicht abgerundet werden, damit die │ │ │ │ │ Vorschubgeschwindigkeit beibehalten werden kann (aber ohne Verletzung der Toleranzgrenzen, │ │ │ │ │ falls angegeben). │ │ │ │ │ Siehe Abschnitte G61 und G64. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 56 / 1332 │ │ │ │ │ │ │ │ │ │ 2.5.3 Interpreter-Interaktion mit Schaltern │ │ │ │ │ Der Interpreter interagiert mit mehreren Schaltern. In diesem Abschnitt werden die Interaktionen │ │ │ │ │ genauer beschrieben. In keinem Fall weiß der Interpreter, wie die Einstellung eines dieser Schalter │ │ │ │ │ ist. │ │ │ │ │ @@ -5745,15 +5745,15 @@ │ │ │ │ │ TOOL_TABLE = acme_300.tbl │ │ │ │ │ │ │ │ │ │ oder: │ │ │ │ │ TOOL_TABLE = EMC-AXIS-SIM.tbl │ │ │ │ │ │ │ │ │ │ Weitere Informationen zu den Besonderheiten des Formats der Werkzeugtabelle finden Sie im Abschnitt Werkzeugtabellen-Format. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 57 / 1332 │ │ │ │ │ │ │ │ │ │ 2.5.5 Parameter │ │ │ │ │ In der RS274/NGC-Sprachansicht verwaltet ein Bearbeitungszentrum eine Reihe von numerischen │ │ │ │ │ Parametern, die durch eine Systemdefinition (RS274NGC_MAX_PARAMETERS) festgelegt sind. Viele │ │ │ │ │ von ihnen haben spezifische Verwendungen, insbesondere bei der Definition von Koordinatensystemen. Die Anzahl der numerischen Parameter kann sich erhöhen, wenn die Entwicklung die Unterstützung für neue Parameter hinzufügt. Das Parameter-Array bleibt über die Zeit erhalten, auch wenn das │ │ │ │ │ @@ -5797,15 +5797,15 @@ │ │ │ │ │ (engl. home) │ │ │ │ │ │ │ │ │ │ Siehe den Abschnitt zu Parametern für weitere Informationen. │ │ │ │ │ │ │ │ │ │ 2.6 Lathe User Information │ │ │ │ │ Dieses Kapitel enthält Informationen speziell für Drehmaschinen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 58 / 1332 │ │ │ │ │ │ │ │ │ │ 2.6.1 Drehbank-Modus │ │ │ │ │ Wenn Ihre CNC-Maschine eine Drehmaschine ist, gibt es einige spezifische Änderungen, die Sie wahrscheinlich an Ihrer INI-Datei vornehmen möchten, um die besten Ergebnisse von LinuxCNC zu erzielen. │ │ │ │ │ Wenn Sie das AXIS-Display verwenden, müssen Sie dafür sorgen, dass AXIS Ihre Drehwerkzeuge │ │ │ │ │ richtig anzeigt. Siehe den Abschnitt INI Konfiguration für weitere Details. │ │ │ │ │ @@ -5836,25 +5836,25 @@ │ │ │ │ │ of the tool table format, see the Tool Table Section. │ │ │ │ │ │ │ │ │ │ 2.6.3 Lathe Tool Orientation │ │ │ │ │ Die folgende Abbildung zeigt die Ausrichtungen der Drehmeißel mit dem Winkel der Mittellinie jeder │ │ │ │ │ Ausrichtung und Informationen zu VORDERWINKEL und HINTERWINKEL. │ │ │ │ │ FRONTANGLE und BACKANGLE sind im Uhrzeigersinn beginnend an einer Linie parallel zu Z+. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 59 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.16: Ausrichtung des Drehwerkzeugs │ │ │ │ │ In AXIS zeigen die folgenden Abbildungen, wie die Werkzeugpositionen aussehen, wie sie in der Werkzeugtabelle eingegeben wurden. │ │ │ │ │ Werkzeugpositionen 1, 2, 3 & 4Werkzeugpositionen 123 & 4 23 & 4 3 & 4 │ │ │ │ │ │ │ │ │ │ Werkzeugpositionen 5, 6, 7 & 8Werkzeugpositionen 567 & 8 67 & 8 7 & 8 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 60 / 1332 │ │ │ │ │ │ │ │ │ │ 2.6.4 Werkzeug Touch Off │ │ │ │ │ When running in lathe mode in AXIS you can set the X and Z in the tool table using the Touch Off │ │ │ │ │ window. If you have a tool turret you normally have Touch off to fixture selected when setting up your │ │ │ │ │ turret. When setting the material Z zero you have Touch off to material selected. For more information │ │ │ │ │ @@ -5880,15 +5880,15 @@ │ │ │ │ │ Hinweis: Wenn Sie sich im Radiusmodus befinden, müssen Sie den Radius und nicht den Durchmesser │ │ │ │ │ eingeben. │ │ │ │ │ 2.6.4.2 Z Touch-Off │ │ │ │ │ Die Versätze der Z-Achse können anfangs etwas verwirrend sein, da der Z-Versatz aus zwei Elementen │ │ │ │ │ besteht. Es gibt den Werkzeugtischversatz und den Maschinenkoordinatenversatz. Zunächst werden │ │ │ │ │ wir uns mit den Versätzen auf dem Werkzeugtisch befassen. Eine Methode besteht darin, einen festen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 61 / 1332 │ │ │ │ │ │ │ │ │ │ Punkt auf Ihrer Drehmaschine zu verwenden und den Z-Versatz für alle Werkzeuge von diesem Punkt │ │ │ │ │ aus einzustellen. Manche verwenden die Spindelnase oder die Futterfläche. Auf diese Weise können │ │ │ │ │ Sie zu einem neuen Werkzeug wechseln und dessen Z-Versatz einstellen, ohne alle Werkzeuge neu │ │ │ │ │ einstellen zu müssen. │ │ │ │ │ @@ -5920,15 +5920,15 @@ │ │ │ │ │ │ │ │ │ │ 2.6.5 Spindelsynchronisierte Bewegung │ │ │ │ │ Spindle synchronized motion requires a quadrature encoder connected to the spindle with one index │ │ │ │ │ pulse per revolution. See the motion man page and the Spindle Control Example for more information. │ │ │ │ │ Gewinde-Drehen (engl. threading) Der Gewindeschneidzyklus G76 wird sowohl für Innen- als auch │ │ │ │ │ für Außengewinde verwendet. Weitere Informationen finden Sie im Abschnitt G76. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 62 / 1332 │ │ │ │ │ │ │ │ │ │ Konstante Oberflächengeschwindigkeit CSS or Constant Surface Speed uses the machine X origin │ │ │ │ │ modified by the tool X offset to compute the spindle speed in RPM. CSS will track changes in tool │ │ │ │ │ offsets. The X machine origin should be when the reference tool (the one with zero offset) is at the │ │ │ │ │ center of rotation. For more information see the G96 Section. │ │ │ │ │ @@ -5963,15 +5963,15 @@ │ │ │ │ │ The control point for the tool follows the programmed path. The control point is the intersection of a │ │ │ │ │ line parallel to the X and Z axis and tangent to the tool tip diameter, as defined when you touch off the │ │ │ │ │ X and Z axes for that tool. When turning or facing straight sided parts the cutting path and the tool │ │ │ │ │ edge follow the same path. When turning radius and angles the edge of the tool tip will not follow the │ │ │ │ │ programmed path unless cutter comp is in effect. In the following figures you can see how the control │ │ │ │ │ point does not follow the tool edge as you might assume. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 63 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.17: Kontrollpunkt │ │ │ │ │ │ │ │ │ │ 2.6.7.2 Schneidwinkel ohne Fräser Compensation │ │ │ │ │ Now imagine we program a ramp without cutter comp. The programmed path is shown in the following │ │ │ │ │ @@ -5979,29 +5979,29 @@ │ │ │ │ │ same as long as we are moving in an X or Z direction only. │ │ │ │ │ │ │ │ │ │ Abbildung 2.18: Rampe Eingang │ │ │ │ │ Now as the control point progresses along the programmed path the actual cutter edge does not follow │ │ │ │ │ the programmed path as shown in the following figure. There are two ways to solve this, cutter comp │ │ │ │ │ and adjusting your programmed path to compensate for tip radius. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 64 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 2.19: Rampenpfad │ │ │ │ │ Im obigen Beispiel ist es eine einfache Übung, die programmierte Bahn so anzupassen, dass sie die │ │ │ │ │ gewünschte tatsächliche Bahn ergibt, indem die programmierte Bahn für die Rampe um den Radius │ │ │ │ │ der Werkzeugspitze nach links verschoben wird. │ │ │ │ │ 2.6.7.3 Schneiden eines Radius │ │ │ │ │ In this example we will examine what happens during a radius cut without cutter comp. In the next │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ Abbildung 2.20: Turning Cut │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 65 / 1332 │ │ │ │ │ │ │ │ │ │ In this next figure you can see as the tool approaches the end of the part the control point still follows │ │ │ │ │ the path but the tool tip has left the part and is cutting air. You can also see that even though a radius │ │ │ │ │ has been programmed the part will actually end up with a square corner. │ │ │ │ │ │ │ │ │ │ @@ -6009,15 +6009,15 @@ │ │ │ │ │ Jetzt können Sie sehen, wie der Kontrollpunkt dem programmierten Radius folgt, die Werkzeugspitze │ │ │ │ │ hat das Teil verlassen und schneidet nun Luft. │ │ │ │ │ │ │ │ │ │ Abbildung 2.22: Radiusschnitt │ │ │ │ │ In the final figure we can see the tool tip will finish cutting the face but leave a square corner instead │ │ │ │ │ of a nice radius. Notice also that if you program the cut to end at the center of the part a small amount │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 66 / 1332 │ │ │ │ │ │ │ │ │ │ of material will be left from the radius of the tool. To finish a face cut to the center of a part you have │ │ │ │ │ to program the tool to go past center at least the nose radius of the tool. │ │ │ │ │ │ │ │ │ │ Abbildung 2.23: Face Cut │ │ │ │ │ @@ -6038,15 +6038,15 @@ │ │ │ │ │ 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 │ │ │ │ │ the separation of the material, plasma arc gouging is used to remove metals to a controlled depth and │ │ │ │ │ width. │ │ │ │ │ Plasma torches are similar in design to the automotive spark plug. They consist of negative and positive │ │ │ │ │ sections separated by a center insulator. Inside the torch, the pilot arc starts in the gap between the │ │ │ │ │ negatively charged electrode and the positively charged tip. Once the pilot arc has ionised the plasma │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 67 / 1332 │ │ │ │ │ │ │ │ │ │ gas, the superheated column of gas flows through the small orifice in the torch tip, which is focused │ │ │ │ │ on the metal to be cut. │ │ │ │ │ In a Plasma Cutting Torch a cool gas enters Zone B, where a pilot arc between the electrode and the │ │ │ │ │ torch tip heats and ionises the gas. The main cutting arc then transfers to the workpiece through the │ │ │ │ │ @@ -6061,15 +6061,15 @@ │ │ │ │ │ with the material is required), they are unsuited for CNC applications.. │ │ │ │ │ 2.7.2.1 Hochfrequenzstart │ │ │ │ │ This start type is widely employed, and has been around the longest. Although it is older technology, it │ │ │ │ │ works well, and starts quickly. But, because of the high frequency high voltage power that is required │ │ │ │ │ generated to ionise the air, it has some drawbacks. It often interferes with surrounding electronic │ │ │ │ │ circuitry, and can even damage components. Also a special circuit is needed to create a Pilot arc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 68 / 1332 │ │ │ │ │ │ │ │ │ │ Inexpensive models will not have a pilot arc, and require touching the consumable to the work to │ │ │ │ │ start. Employing a HF circuit also can increase maintenance issues, as there are usually adjustable │ │ │ │ │ points that must be cleaned and readjusted from time to time. │ │ │ │ │ 2.7.2.2 Blowback Start │ │ │ │ │ @@ -6094,15 +6094,15 @@ │ │ │ │ │ unknown state of the sheet makes it impossible to generate G-code that will cater for these variances │ │ │ │ │ in the material. │ │ │ │ │ A plasma Arc is oval in shape and the cutting height needs to be controlled to minimise bevelled edges. │ │ │ │ │ If the torch is too high or too low then the edges can become excessively bevelled. It is also critical │ │ │ │ │ that the torch is held perpendicular to the surface. │ │ │ │ │ • Torch to work distance can impact edge bevel │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 69 / 1332 │ │ │ │ │ │ │ │ │ │ • Negative cut angle: torch too low, increase torch to work distance. │ │ │ │ │ • Positive cut angle: torch too high, decrease torch to work distance. │ │ │ │ │ Anmerkung │ │ │ │ │ Eine leichte Abweichung der Schnittwinkel kann normal sein, solange sie innerhalb der Toleranz liegt. │ │ │ │ │ @@ -6126,15 +6126,15 @@ │ │ │ │ │ choose a suitable plasma machine. Failure to do this is likely to cause hours and hours of fruitless │ │ │ │ │ trouble shooting trying to work around the lack of what many would consider to be mandatory features. │ │ │ │ │ Obwohl Regeln dazu da sind, gebrochen zu werden, wenn man die Gründe für die Anwendung der │ │ │ │ │ Regel versteht, sind wir der Meinung, dass ein neuer Hersteller von Plasmatischen eine Maschine mit │ │ │ │ │ den folgenden Merkmalen auswählen sollte: │ │ │ │ │ • Blowback-Start zur Minimierung der elektrischen Geräusche und zur Vereinfachung der Konstruktion │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 70 / 1332 │ │ │ │ │ │ │ │ │ │ • Ein Maschinenbrenner wird bevorzugt, aber viele haben auch Handbrenner verwendet. │ │ │ │ │ • Eine vollständig abgeschirmte Brennerspitze, die eine ohmsche Abtastung ermöglicht │ │ │ │ │ Wenn Sie über das nötige Budget verfügen, können Sie sich für ein höherwertiges Gerät entscheiden: │ │ │ │ │ • Vom Hersteller bereitgestellte Schneidtabellen, die viele Stunden und Materialabfälle bei der Kalibrierung der Schneidparameter sparen │ │ │ │ │ @@ -6172,15 +6172,15 @@ │ │ │ │ │ people around the globe have been involved in testing and improving the feature set. QtPlasmaC is │ │ │ │ │ unique in that its design goal was to support all THCs including the simple bit bang ones through │ │ │ │ │ to sophisticated torch voltage control, if the voltage is made available to LinuxCNC via a THCAD or │ │ │ │ │ some other voltage sensor. What’s more, QtPlasmaC is designed to be a stand alone system that does │ │ │ │ │ not need any additional G-code subroutines and allows the user to define their own cut charts that │ │ │ │ │ are stored in the system and accessible by a drop-down. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 71 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.6 Lichtbogen-OK-Signal │ │ │ │ │ Plasma machines that have a CNC interface contain a set of dry contacts (eg a relay) that close when a │ │ │ │ │ valid arc is established and each side of these contacts are bought out onto pins on the CNC interface. │ │ │ │ │ A plasma table builder should connect one side of these pins to field power and the other to an input │ │ │ │ │ @@ -6220,15 +6220,15 @@ │ │ │ │ │ commands. If this is the case, then after initial probing, it is recommended to probe away from the │ │ │ │ │ surface until the probe signal is lost at a slower speed. Also, ensure the switch hysteresis is accounted │ │ │ │ │ for. │ │ │ │ │ Unabhängig von der verwendeten Sondierungsmethode wird dringend empfohlen, einen gleitenden │ │ │ │ │ Schalter einzubauen, damit ein Ausweich- oder Sekundärsignal vorhanden ist, um eine Beschädigung │ │ │ │ │ des Brenners bei einem Absturz zu vermeiden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 72 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.7.2 Ohmsche Erfassung │ │ │ │ │ Ohmic sensing relies on contact between the torch and the material acting as a switch to activate an │ │ │ │ │ electrical signal that is sensed by the CNC controller. Provided the material is clean, this can be a │ │ │ │ │ much more accurate method of sensing the material than a float switch which can cause deflection │ │ │ │ │ @@ -6259,15 +6259,15 @@ │ │ │ │ │ Encoder B and Encoder Index pins. This firmware is available for download for the 7I76E and 7I96 │ │ │ │ │ boards from the Mesa web site on the product pages. │ │ │ │ │ The THCAD is sensitive enough to see the ramp up in circuit voltage as contact pressure increases. │ │ │ │ │ The ohmic.comp component included in LinuxCNC can monitor the sensing voltage and set a voltage │ │ │ │ │ threshold above which it is deemed contact is made and an output is enabled. By monitoring the voltage, a lower “break circuit” threshold can be set to build in strong switch hysteresis. This minimises │ │ │ │ │ false triggering. In our testing, we found the material sensing using this method was more sensitive │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 73 / 1332 │ │ │ │ │ │ │ │ │ │ and robust as well as being simpler to implement the wiring. One further advantage is using software │ │ │ │ │ outputs instead of physical I/O pins is that it frees up pins to use for other purposes. This advantage │ │ │ │ │ is helpful to get the most out of the Mesa 7I96 which has limited I/O pins. │ │ │ │ │ Der folgende Schaltplan zeigt, wie eine Hypersensing-Schaltung realisiert werden kann. │ │ │ │ │ @@ -6279,15 +6279,15 @@ │ │ │ │ │ The following HAL code can be pasted into your QtPlasmaC’s custom.hal to enable Ohmic sensing on │ │ │ │ │ Encoder 2 of a 7I76E. Install the correct bit file and connect the THCAD to IDX+ and IDX-. Be sure to │ │ │ │ │ change the calibration settings to agree with your THCAD-5. │ │ │ │ │ # --- Load the Component --loadrt ohmic names=ohmicsense │ │ │ │ │ addf ohmicsense servo-thread │ │ │ │ │ # --- 7I76E ENCODER 2 SETUP FOR OHMIC SENSING--setp hm2_7i76e.0.encoder.02.scale -1 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 74 / 1332 │ │ │ │ │ │ │ │ │ │ setp hm2_7i76e.0.encoder.02.counter-mode 1 │ │ │ │ │ # --- Configure the component --setp ohmicsense.thcad-0-volt-freq │ │ │ │ │ 140200 │ │ │ │ │ setp ohmicsense.thcad-max-volt-freq 988300 │ │ │ │ │ @@ -6322,15 +6322,15 @@ │ │ │ │ │ Liegt die Schnittgeschwindigkeit am Ende dieser Verzögerung noch nicht in der Nähe der gewünschten Schnittgeschwindigkeit, sollte die Steuerung warten, bis diese erreicht ist, bevor sie die THC │ │ │ │ │ aktiviert. │ │ │ │ │ │ │ │ │ │ 2.7.9 Abtastung der Brennerspannung │ │ │ │ │ Anstatt sich auf die Schneidtabellen des Herstellers zu verlassen, um die gewünschte Brennerspannung einzustellen, ziehen es viele Leute (einschließlich des Verfassers) vor, die Spannung zu messen, │ │ │ │ │ wenn die THC aktiviert ist, und diese als Sollwert zu verwenden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 75 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.10 Brenner Behinderung (engl. torch breakaway) │ │ │ │ │ It is recommended that a mechanism is provided to allow the torch to “break away” or fall off in the │ │ │ │ │ case of impact with the material or a cut part that has tipped up. A sensor should be installed to allow │ │ │ │ │ the CNC controller to detect if this has occurred and pause the running program. Usually a break │ │ │ │ │ @@ -6360,15 +6360,15 @@ │ │ │ │ │ So it should be possible to compare the moving average with the dv/dt and halt THC operation once │ │ │ │ │ the dv/dt exceeds the normal range expected due to warpage. More work needs to be done in this │ │ │ │ │ area to come up with a working solution in LinuxCNC. │ │ │ │ │ │ │ │ │ │ 2.7.13 Hole And Small Shape Cutting │ │ │ │ │ It is recommended that you slow down cutting when cutting holes and small shapes. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 76 / 1332 │ │ │ │ │ │ │ │ │ │ John Moore says: “If you want details on cutting accurate small holes look up the sales sheets on │ │ │ │ │ Hypertherm’s True Hole Technology also look on PlasmaSpider, user seanp has posted extensively on │ │ │ │ │ his work using simple air plasma. │ │ │ │ │ The generally accepted method to get good holes from 37mm dia. and down to material thickness with │ │ │ │ │ @@ -6406,15 +6406,15 @@ │ │ │ │ │ overshoot the initial trigger point by 50-100 mm. If you use a shared home/limit switch, you have to │ │ │ │ │ move the sensor off the trigger point with the final HOME_OFFSET or you will trigger a limit switch │ │ │ │ │ fault as the machine comes out of homing. This means you could lose 50 mm or more of axis travel │ │ │ │ │ with shared home/limit switches. This does not happen if separate home and limit switches are used. │ │ │ │ │ The following pins are usually required (note that suggested connections may not be appropriate for │ │ │ │ │ a QtPlasmaC configuration): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 77 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.14.1 Arc OK (input) │ │ │ │ │ • Inverter closes dry contacts when a valid arc is established │ │ │ │ │ • Connect Field power to one Inverter ArcOK terminal. │ │ │ │ │ • Connect other Inverter Ok Terminal to input pin. │ │ │ │ │ @@ -6444,15 +6444,15 @@ │ │ │ │ │ 2.7.14.4 Ohmscher Sensor aktivieren (Ausgang) │ │ │ │ │ • Siehe den Schaltplan ohmic sensing. │ │ │ │ │ • Verbinden Sie den Ausgangspin mit einer Seite des Trennrelais und die andere Seite mit der Masse │ │ │ │ │ der Feldversorgung. │ │ │ │ │ • In a non-QtPlasmaC configuration, usually triggered by a ̀ ̀motion.digital-out- ̀ ̀ so it can be │ │ │ │ │ controlled in G-code by M62/M63/M64/M65. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 78 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.14.5 Ohmsche Sensorik (engl. ohmic sensing) (Eingang) │ │ │ │ │ • Beachten Sie das zuvor gezeigte Schema zu ohmic sensing. │ │ │ │ │ • Eine isolierte Stromversorgung löst ein Relais aus, wenn der Brennerschild das Material berührt. │ │ │ │ │ • Schließen Sie die Feldspannung an eine Ausgangsklemme und die andere an den Eingang an. │ │ │ │ │ @@ -6488,15 +6488,15 @@ │ │ │ │ │ M62 P2 will disable THC (synchronised with motion) │ │ │ │ │ M63 P2 will enable THC (synchronised with motion) │ │ │ │ │ M64 P2 will disable THC (immediately) │ │ │ │ │ M65 P2 will enable THC (immediately) │ │ │ │ │ │ │ │ │ │ Reduce Cutting Speeds: (e.g., for hole cutting) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 79 / 1332 │ │ │ │ │ │ │ │ │ │ M67 E3 Q0 würde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q40 würde die Geschwindigkeit auf 40% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q60 würde die Geschwindigkeit auf 60% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ M67 E3 Q100 würde die Geschwindigkeit auf 100% der angeforderten~Geschwindigkeit setzen │ │ │ │ │ @@ -6541,15 +6541,15 @@ │ │ │ │ │ [JOINT_n] │ │ │ │ │ MAX_VELOCITY = 60 │ │ │ │ │ MAX_ACCELERATION = 700 │ │ │ │ │ │ │ │ │ │ For further information about external offsets (for version 2.8 or later) please read the [AXIS_] │ │ │ │ │ Section of the INI file document and External Axis Offsets in the LinuxCNC documentation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 80 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.17 Reading Arc Voltage With The Mesa THCAD │ │ │ │ │ The Mesa THCAD board is a remarkably well priced and accurate voltage to frequency converter that │ │ │ │ │ is designed for the hostile noisy electrical environment associated with plasma cutting. Internally it │ │ │ │ │ has a 0-10 V range. This range can be simply extended by the addition of some resistors as described │ │ │ │ │ @@ -6591,15 +6591,15 @@ │ │ │ │ │ │ │ │ │ │ Power up your controller and open Halshow (AXIS: Show Homing Configuration), drill down to find │ │ │ │ │ the hm2_7i76e.0.encoder.00.velocity pin. With 0 Volts applied, it should be hovering around the │ │ │ │ │ 0 Volt frequency (3,800 in our example). Grab a 9 Volt battery and connect it to IN + and IN -. For a │ │ │ │ │ THCAD-10 you can now calculate the expected velocity (26,480 in our hypothetical example). If you │ │ │ │ │ pass this test, then you are ready to configure your LinuxCNC plasma controller. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 81 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.17.3 Which Model THCAD To Use? │ │ │ │ │ The THCAD-5 is useful if you intend to use it for ohmic sensing. There is no doubt the THCAD-10 │ │ │ │ │ is the more flexible device and it is easy to alter the scaling. However, there is one caveat that can │ │ │ │ │ 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 │ │ │ │ │ @@ -6632,15 +6632,15 @@ │ │ │ │ │ 2. Processed in CAM to generate final G-code that is loaded to the machine │ │ │ │ │ 3. Cutting the parts via CNC G-code commands. │ │ │ │ │ Some people achieve good results with Inkscape and G-code tools but SheetCam is a very well priced │ │ │ │ │ solution and there are a number of post processors available for LinuxCNC. SheetCam has a number │ │ │ │ │ of advanced features designed for plasma cutting and for the price, is a no brainer for anybody doing │ │ │ │ │ regular plasma cutting. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 82 / 1332 │ │ │ │ │ │ │ │ │ │ 2.7.19 Designing For Noisy Electrical Environments │ │ │ │ │ Plasma cutting is inherently an extremely hostile and noisy electrical environment. If you have EMI │ │ │ │ │ problems things won’t work correctly. You might fire the torch and the computer will reboot in a more │ │ │ │ │ obvious example, but you can have any number of other odd symptoms. They will pretty much all │ │ │ │ │ @@ -6687,15 +6687,15 @@ │ │ │ │ │ The minimum water level under the cut level of the torch should be around 40 mm, having space under │ │ │ │ │ slats is nice so the water can level and escape during cutting, having a bit of water above the metal │ │ │ │ │ plate being cut is really nice as it gets rid of the little bit of dust, running it submerged is the best way │ │ │ │ │ but not preferable for systems with part time use as it will corrode the torch. Adding baking soda to │ │ │ │ │ the water will keep the table in a nice condition for many years as it does not allow corrosion while │ │ │ │ │ the slats are under water and it also reduces the smell of water vapour. Some people use a water │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 83 / 1332 │ │ │ │ │ │ │ │ │ │ reservoir with a compressed air inlet so they can push the water from the reservoir up to the water │ │ │ │ │ table on demand and thus allow changes in water levels. │ │ │ │ │ │ │ │ │ │ 2.7.21 Downdraft Tables │ │ │ │ │ @@ -6734,15 +6734,15 @@ │ │ │ │ │ │ │ │ │ │ 2.7.25 Hypertherm RS485 Control │ │ │ │ │ Some Hypertherm plasma cutters have a RS485 interface to allow the controller (e.g., LinuxCNC) │ │ │ │ │ to set amps.pressure and mode. A number of people have used a non-realtime component written in │ │ │ │ │ Python to achieve this. More recently, QtPlasmaC now supports this interface natively. Refer to the │ │ │ │ │ QtPlasmaC documentation for how to use it. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 84 / 1332 │ │ │ │ │ │ │ │ │ │ The combination of a slow baud rate used by Hypertherm and the non-realtime component, make this │ │ │ │ │ fairly slow to alter machine states so it generally not viable to change settings on the fly while cutting. │ │ │ │ │ When selecting a RS485 interface to use at the PC end, users have reported that USB to RS485 │ │ │ │ │ interfaces are not reliable. Good reliable results have been achieved using a hardware based RS232 │ │ │ │ │ @@ -6762,15 +6762,15 @@ │ │ │ │ │ and allows you to configure toolsets and code snippets to suit your needs. SheetCam post processors │ │ │ │ │ are text files written in the Lua programming language and are generally easy to modify to suit your │ │ │ │ │ exact requirements. For further information, consult the SheetCam web site and their support forum. │ │ │ │ │ Another popular post-processor is included with the popular Fusion360 package but the included │ │ │ │ │ post-processors will need some customisation. │ │ │ │ │ LinuxCNC is a CNC application and discussions of CAM techniques other than this introductory discussion are out of scope of LinuxCNC. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 85 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 3 │ │ │ │ │ │ │ │ │ │ Konfigurationsassistenten │ │ │ │ │ 3.1 Stepper Configuration Wizard │ │ │ │ │ @@ -6781,15 +6781,15 @@ │ │ │ │ │ StepConf wird bei der Installation von LinuxCNC mitinstalliert und befindet sich im CNC-Menü. │ │ │ │ │ StepConf legt eine Datei im Verzeichnis linuxcnc/config ab, um die Auswahlmöglichkeiten für jede von │ │ │ │ │ Ihnen erstellte Konfiguration zu speichern. Wenn Sie etwas ändern, müssen Sie die Datei auswählen, │ │ │ │ │ die dem Namen Ihrer Konfiguration entspricht. Die Dateierweiterung lautet .stepconf. │ │ │ │ │ Der StepConf-Assistent funktioniert am besten bei einer Bildschirmauflösung von mindestens 800 x │ │ │ │ │ 600. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 86 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.2 Startseite │ │ │ │ │ │ │ │ │ │ Abbildung 3.1: StepConf Einstiegsseite │ │ │ │ │ Die ersten drei Optionsfelder sind selbsterklärend: │ │ │ │ │ @@ -6801,15 +6801,15 @@ │ │ │ │ │ • Importieren (engl. import) - Importieren Sie eine Mach-Konfigurationsdatei und versucht, sie in eine │ │ │ │ │ LinuxCNC-Konfigurationsdatei zu konvertieren. Nach dem Import gehen Sie durch die Seiten von │ │ │ │ │ StepConf, um die Einträge zu bestätigen/zu ändern. Die ursprüngliche Mach-XML-Datei wird nicht │ │ │ │ │ verändert. │ │ │ │ │ Diese folgenden Optionen werden in einer Einstellungsdatei für den nächsten Lauf von StepConf │ │ │ │ │ gespeichert. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 87 / 1332 │ │ │ │ │ │ │ │ │ │ • Desktop-Verknüpfung erstellen (engl. Create Desktop Shortcut) - Damit wird eine Verknüpfung auf │ │ │ │ │ Ihrem Desktop zu den Dateien erstellt. │ │ │ │ │ • Desktop Launcher erstellen (engl. Create Desktop Launcher) - Damit wird ein Launcher auf Ihrem │ │ │ │ │ Desktop platziert, um Ihre Anwendung zu starten. │ │ │ │ │ @@ -6819,15 +6819,15 @@ │ │ │ │ │ │ │ │ │ │ Abbildung 3.2: Seite mit grundlegenden Informationen │ │ │ │ │ • Simulierte Hardware erstellen (engl. Create Simulated Hardware) - Damit können Sie eine Konfiguration zum Testen erstellen, auch wenn Sie nicht über die tatsächliche Hardware verfügen’. │ │ │ │ │ • Machine Name - Choose a name for your machine. Use only uppercase letters, lowercase letters, │ │ │ │ │ digits, - and _. │ │ │ │ │ • Axis Configuration - Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 88 / 1332 │ │ │ │ │ │ │ │ │ │ • Machine Units - Choose Inch or mm. All subsequent entries will be in the chosen units. Changing │ │ │ │ │ this also changes the default values in the Axes section. If you change this after selecting values in │ │ │ │ │ any of the axes sections, they will be over-written by the default values of the selected units. │ │ │ │ │ • Driver Type - If you have one of the stepper drivers listed in the pull down box, choose it. Otherwise, │ │ │ │ │ @@ -6863,15 +6863,15 @@ │ │ │ │ │ Test mindestens ein paar Minuten laufen. Je länger Sie den Test laufen lassen, desto eher werden auch │ │ │ │ │ seltene Ereignisse erfasst, die möglicherweise in kürzeren Abständen auftreten. Dies ist ein Test nur │ │ │ │ │ für Ihren Computer, es muss also keine Hardware angeschlossen sein, um den Test durchzuführen. │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ Versuchen Sie nicht, LinuxCNC zu starten, während der Latenztest läuft. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 89 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.3: Latenz-Test │ │ │ │ │ Die Latenzzeit gibt an, wie lange der PC braucht, um seine Arbeit zu unterbrechen und auf eine externe │ │ │ │ │ Anfrage zu reagieren. In unserem Fall ist die Anfrage der periodische Herzschlag (engl. heartbeat), │ │ │ │ │ der als Zeitreferenz für die Schrittimpulse dient. Je geringer die Latenzzeit ist, desto schneller kann │ │ │ │ │ @@ -6889,15 +6889,15 @@ │ │ │ │ │ If your Max Jitter number is less than about 15-20 µs (15000-20000 ns), the computer should give very │ │ │ │ │ nice results with software stepping. If the max latency is more like 30-50 µs, you can still get good │ │ │ │ │ results, but your maximum step rate might be a little disappointing, especially if you use microstepping │ │ │ │ │ or have very fine pitch leadscrews. If the numbers are 100 µs or more (100,000 ns), then the PC is not │ │ │ │ │ a good candidate for software stepping. Numbers over 1 millisecond (1,000,000 ns) mean the PC is │ │ │ │ │ not a good candidate for LinuxCNC, regardless of whether you use software stepping or not. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 90 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.5 Einrichtung der parallelen Schnittstelle │ │ │ │ │ │ │ │ │ │ Abbildung 3.4: Parallele Schnittstelle Setup-Seite │ │ │ │ │ Sie können die Adresse als Hexadezimalwert (oft 0x378) oder als Linux’s Standard-Portnummer (wahrscheinlich 0) angeben │ │ │ │ │ @@ -6906,15 +6906,15 @@ │ │ │ │ │ • Ausgangspinout-Voreinstellungen - Automatische Einstellung der Pins 2 bis 9 gemäß dem SherlineStandard (Richtung auf Pins 2, 4, 6, 8) oder dem Xylotex-Standard (Richtung auf Pins 3, 5, 7, 9). │ │ │ │ │ • „Eingänge und Ausgänge“ – Wenn der Ein- oder Ausgang nicht verwendet wird, setzen Sie die │ │ │ │ │ Option auf „Nicht verwendet“. │ │ │ │ │ • Externes Notaus (engl. external E-Stop) - Dies kann aus einem Dropdown-Feld für den Eingangsstift ausgewählt werden. Eine typische Notaus-Kette verwendet alle normalerweise geschlossenen │ │ │ │ │ Kontakte. │ │ │ │ │ • Referenzpunkt- & Endschalter - Diese können bei den meisten Konfigurationen aus einem DropdownFeld für den Eingangspin ausgewählt werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 91 / 1332 │ │ │ │ │ │ │ │ │ │ • Charge Pump - Wenn Ihre Treiberplatine ein Ladungspumpensignal benötigt, wählen Sie Charge │ │ │ │ │ Pump aus der Dropdown-Liste für den Ausgangspin, den Sie mit Ihrem Ladungspumpeneingang │ │ │ │ │ verbinden möchten. Der Ausgang der Ladungspumpe ist über StepConf mit dem Basisgewinde verbunden. Der Ausgang der Ladungspumpe entspricht etwa der Hälfte der maximalen Schrittrate, die │ │ │ │ │ auf der Seite ”Basic Machine Configuration” angegeben ist. │ │ │ │ │ @@ -6927,15 +6927,15 @@ │ │ │ │ │ Abbildung 3.5: Einrichten von Parallel Port 2 │ │ │ │ │ Der zweite Parallelport (falls ausgewählt) kann auf dieser Seite konfiguriert und seine Pins zugewiesen │ │ │ │ │ werden. Es können keine Schritt- und Richtungssignale ausgewählt werden. Sie können ”in” oder │ │ │ │ │ ”out” wählen, um die Anzahl der verfügbaren Eingangs-/Ausgangs-Pins zu maximieren. Sie können │ │ │ │ │ die Adresse als Hexadezimalwert (oft 0x378) oder als Linux’s Standard-Portnummer (wahrscheinlich │ │ │ │ │ 1) angeben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 92 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.7 Konfiguration der Achsen │ │ │ │ │ │ │ │ │ │ Abbildung 3.6: Achsenkonfiguration am Bildschirm │ │ │ │ │ • Motor Steps Per Revolution - The number of full steps per motor revolution. If you know how many │ │ │ │ │ @@ -6946,15 +6946,15 @@ │ │ │ │ │ If not, enter 1:1. │ │ │ │ │ • Leadscrew Pitch - Enter the pitch of the leadscrew here. If you chose Inch units, enter the number │ │ │ │ │ of threads per inch. If you chose mm units, enter the number of millimeters per revolution (e.g., │ │ │ │ │ enter 2 for 2mm/rev). If the machine travels in the wrong direction, enter a negative number here │ │ │ │ │ instead of a positive number, or invert the direction pin for the axis. │ │ │ │ │ • Maximum Velocity - Enter the maximum velocity for the axis in units per second. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 93 / 1332 │ │ │ │ │ │ │ │ │ │ • 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 │ │ │ │ │ set the acceleration. │ │ │ │ │ • Home Location - The position the machine moves to after completing the homing procedure for this │ │ │ │ │ axis. For machines without home switches, this is the location the operator manually moves the │ │ │ │ │ @@ -6983,15 +6983,15 @@ │ │ │ │ │ Pulse rate at max speed determines the BASE_PERIOD. Values above 20000Hz may lead to slow │ │ │ │ │ response time or even lockups (the fastest usable pulse rate varies from computer to computer) │ │ │ │ │ • Axis SCALE - Die Zahl, die in der INI-Datei [SCALE] Einstellung verwendet wird. Die Anzahl Schritte │ │ │ │ │ pro Benutzereinheit. │ │ │ │ │ • Test this axis - This will open a window to allow testing for each axis. This can be used after filling │ │ │ │ │ out all the information for this axis. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 94 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.7: Achsen-Test │ │ │ │ │ Der Achsen-Test ist ein einfacher Test, für den nur Schritt- und Richtungssignale ausgegeben werden, │ │ │ │ │ um verschiedene Werte für Beschleunigung und Geschwindigkeit zu testen. │ │ │ │ │ Wichtig │ │ │ │ │ @@ -7014,15 +7014,15 @@ │ │ │ │ │ Wenn die Maschine nicht offensichtlich zum Stillstand gekommen ist, klicken Sie auf die Schaltfläche │ │ │ │ │ Ausführen. Die Achse kehrt nun zu der Position zurück, an der sie gestartet ist. Wenn die Position │ │ │ │ │ nicht korrekt ist, dann ist die Achse während des Tests stehen geblieben oder hat Schritte verloren. │ │ │ │ │ Verringern Sie die Geschwindigkeit und starten Sie den Test erneut. │ │ │ │ │ Wenn sich die Maschine nicht bewegt, stehen bleibt oder Schritte verliert, egal wie niedrig Sie die │ │ │ │ │ Geschwindigkeit einstellen, überprüfen Sie Folgendes: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 95 / 1332 │ │ │ │ │ │ │ │ │ │ • Korrigieren Sie das Timing der Schrittwellenform │ │ │ │ │ • Korrekte Pinbelegung, einschließlich Invert auf Step-Pins │ │ │ │ │ • Korrekte, gut geschirmte Verkabelung │ │ │ │ │ • Physikalische Probleme mit dem Motor, der Motorkupplung, der Leitspindel usw. │ │ │ │ │ @@ -7032,15 +7032,15 @@ │ │ │ │ │ 3.1.7.2 Finding Maximum Acceleration │ │ │ │ │ Geben Sie mit der im vorherigen Schritt ermittelten Höchstgeschwindigkeit den zu testenden Beschleunigungswert ein. Passen Sie den Beschleunigungswert wie oben beschrieben nach oben oder │ │ │ │ │ unten an. Bei diesem Test ist es wichtig, dass die Kombination aus Beschleunigung und Testbereich es │ │ │ │ │ der Maschine ermöglicht, die ausgewählte Geschwindigkeit zu erreichen. Sobald Sie einen Wert gefunden haben, bei dem die Achse während dieses Testverfahrens nicht ins Stocken gerät oder Schritte │ │ │ │ │ verliert, reduzieren Sie ihn um 10 % und verwenden Sie diesen Wert als maximale Beschleunigung │ │ │ │ │ der Achse. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 96 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.8 Spindel-Konfiguration │ │ │ │ │ │ │ │ │ │ Abbildung 3.8: Seite zur Spindelkonfiguration │ │ │ │ │ Diese Seite erscheint nur, wenn Spindle PWM auf der Seite Parallel Port Pinout für einen der Ausgänge │ │ │ │ │ @@ -7051,15 +7051,15 @@ │ │ │ │ │ ein, der für die Erzeugung einer analogen Steuerspannung nützlich ist. Den entsprechenden Wert │ │ │ │ │ finden Sie in der Dokumentation zu Ihrem Spindelcontroller. │ │ │ │ │ • Drehzahl 1 und 2, PWM 1 und 2 - Die generierte Konfigurationsdatei verwendet eine einfache lineare │ │ │ │ │ Beziehung, um den PWM-Wert für einen bestimmten Drehzahlwert zu bestimmen. Wenn die Werte │ │ │ │ │ nicht bekannt sind, können sie bestimmt werden. Weitere Informationen finden Sie unter Festlegung │ │ │ │ │ der Spindle Kalibrierung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 97 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.8.2 Spindle-synchronized motion │ │ │ │ │ Wenn die entsprechenden Signale von einem Spindel-Encoder an LinuxCNC über HAL verbunden │ │ │ │ │ sind, unterstützt LinuxCNC Drehmaschine Gewindeschneiden. Diese Signale sind: │ │ │ │ │ • Spindle Index – Ist ein Impuls, der einmal pro Spindelumdrehung auftritt. │ │ │ │ │ @@ -7102,28 +7102,28 @@ │ │ │ │ │ zu berücksichtigen: │ │ │ │ │ • Stellen Sie sicher, dass die beiden Kalibrierungsdrehzahlen nicht zu nahe beieinander liegen. │ │ │ │ │ • Vergewissern Sie sich, dass die beiden Kalibrierungsgeschwindigkeiten im Bereich der Geschwindigkeiten liegen, die Sie normalerweise beim Fräsen verwenden. │ │ │ │ │ Wenn Ihre Spindel z. B. von 0 U/min bis 8000 U/min läuft, Sie aber in der Regel Drehzahlen zwischen │ │ │ │ │ 400 U/min (10 %) und 4000 U/min (100 %) verwenden, dann suchen Sie die PWM-Werte, die 1600 │ │ │ │ │ U/min (40 %) und 2800 U/min (70 %) ergeben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 98 / 1332 │ │ │ │ │ │ │ │ │ │ 3.1.9 Optionen │ │ │ │ │ │ │ │ │ │ Abbildung 3.9: Erweiterte Optionen bei der Konfiguration │ │ │ │ │ • Include Halui - Damit wird die Halui-Benutzerschnittstellenkomponente hinzugefügt. Siehe das HALUI Kapitel für weitere Informationen hierzu. │ │ │ │ │ • Include PyVCP - Diese Option fügt die PyVCP-Panel-Basisdatei oder eine Beispieldatei zum Arbeiten │ │ │ │ │ hinzu. Siehe das PyVCP Kapitel für weitere Informationen. │ │ │ │ │ • Include ClassicLadder PLC - Diese Option fügt die ClassicLadder PLC (Speicherprogrammierbare │ │ │ │ │ Steuerung) hinzu. Weitere Informationen finden Sie im Kapitel >. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 99 / 1332 │ │ │ │ │ │ │ │ │ │ • 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 │ │ │ │ │ in der Regel nur sinnvoll, wenn Sie voreinstellbaren Werkzeugen haben. │ │ │ │ │ │ │ │ │ │ 3.1.10 Complete Machine Configuration │ │ │ │ │ @@ -7143,15 +7143,15 @@ │ │ │ │ │ angetroffen wird, schaltet LinuxCNC den Motorverstärker ab. Der Abstand zwischen dem harten Anschlag und Endschalter muss lang genug sein, um einen unbestromten Motor zum Stillstand zu bringen. │ │ │ │ │ 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 │ │ │ │ │ weiche Grenze überschreiten würde, wird es nicht ausgeführt. Wenn eine manuelle Steuerung die │ │ │ │ │ Softgrenze überschreiten würde, wird diese an der Softgrenze beendet. │ │ │ │ │ Der Referenzschalter (engl. home switch) kann an einer beliebigen Stelle innerhalb des Verfahrwegs │ │ │ │ │ (zwischen harten Anschlägen) platziert werden. Solange die externe Hardware die Motorverstärker │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 100 / 1332 │ │ │ │ │ │ │ │ │ │ nicht deaktiviert, wenn der Endschalter erreicht wird, kann einer der Endschalter als Referenzschalter │ │ │ │ │ verwendet werden. │ │ │ │ │ Die Nullposition ist die Stelle auf der Achse, die im Maschinenkoordinatensystem 0 ist. Normalerweise │ │ │ │ │ liegt die Nullposition innerhalb der weichen Grenzen. Bei Drehmaschinen erfordert der Modus Konstante Schnittgeschwindigkeit, dass X=0 dem Zentrum der Spindeldrehung entspricht, wenn keine │ │ │ │ │ @@ -7176,15 +7176,15 @@ │ │ │ │ │ The figures below show the general idea of wiring multiple switches to a single input pin. In each │ │ │ │ │ case, when one switch is actuated, the value seen on INPUT goes from logic HIGH to LOW. However, │ │ │ │ │ LinuxCNC expects a TRUE value when a switch is closed, so the corresponding Invert box must be │ │ │ │ │ checked on the pinout configuration page. The pull up resistor show in the diagrams pulls the input │ │ │ │ │ high until the connection to ground is made and then the input goes low. Otherwise the input might │ │ │ │ │ float between on and off when the circuit is open. Typically for a parallel port you might use 47 kΩ;. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 101 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.11: Normalerweise geschlossene Schalter (engl. normally closed, N/C) in Reihe verdrahtet (vereinfachtes Diagramm) │ │ │ │ │ │ │ │ │ │ Abbildung 3.12: Normalerweise offene Schalter (engl. normally open switches, N/O) parallel verdrahtet (vereinfachte Darstellung) │ │ │ │ │ Die folgenden Kombinationen von Schaltern sind in StepConf zulässig: │ │ │ │ │ @@ -7195,15 +7195,15 @@ │ │ │ │ │ • Kombinieren eines Endschalters und des Referenzschalters für eine Achse │ │ │ │ │ Die letzten beiden Kombinationen sind auch geeignet, wenn der Typ Kontakt │ │ │ │ │ Referenz verwendet wird. │ │ │ │ │ │ │ │ │ │ 3.2 Mesa-Konfigurationsassistent │ │ │ │ │ PnCconf wurde entwickelt, um Konfigurationen zu erstellen, die bestimmte Mesa Anything I/O Produkte verwenden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 102 / 1332 │ │ │ │ │ │ │ │ │ │ It can configure closed loop servo systems or hardware stepper systems. It uses a similar wizard │ │ │ │ │ approach as StepConf (used for software stepping, parallel port driven systems). │ │ │ │ │ PnCconf befindet sich noch im Entwicklungsstadium (Beta), daher gibt es noch einige Bugs und fehlende Funktionen. Bitte melden Sie Fehler und Vorschläge auf der LinuxCNC Forumsseite oder über │ │ │ │ │ die Mailing-Liste. │ │ │ │ │ @@ -7214,15 +7214,15 @@ │ │ │ │ │ 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 │ │ │ │ │ PnCconf’s scope or just want to tinker with / learn about LinuxCNC. │ │ │ │ │ Mit den Schaltflächen ”Vor”, ”Zurück” und ”Abbrechen” können Sie durch die Seiten des Assistenten │ │ │ │ │ navigieren. Außerdem gibt es eine Hilfeschaltfläche, die einige Informationen zu den Seiten, Diagrammen und einer Ausgabeseite enthält. │ │ │ │ │ Tipp │ │ │ │ │ Die Hilfeseite von PnCconf sollte die aktuellsten Informationen und zusätzliche Details enthalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 103 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.1 Schritt für Schritt Anleitung │ │ │ │ │ │ │ │ │ │ Abbildung 3.13: PnCconf Startfenster │ │ │ │ │ │ │ │ │ │ @@ -7234,15 +7234,15 @@ │ │ │ │ │ places a note in those files. It also allows you to select desktop shortcut / launcher options. A desktop │ │ │ │ │ shortcut will place a folder icon on the desktop that points to your new configuration files. Otherwise │ │ │ │ │ you would have to look in your home folder under linuxcnc/configs. │ │ │ │ │ A Desktop launcher will add an icon to the desktop for starting your config directly. You can also │ │ │ │ │ launch it from the main menu by using the Configuration Selector LinuxCNC found in CNC menu and │ │ │ │ │ selecting your config name. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 104 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.3 Grundlegende Informationen zur Maschine │ │ │ │ │ │ │ │ │ │ Abbildung 3.14: PnCconf Basic │ │ │ │ │ │ │ │ │ │ @@ -7254,15 +7254,15 @@ │ │ │ │ │ Tipp │ │ │ │ │ Standardwerte werden bei der Verwendung in metrisch nicht konvertiert, stellen Sie also sicher, dass │ │ │ │ │ es sich um vernünftige Werte handelt! │ │ │ │ │ │ │ │ │ │ Reaktionszeit des Computers │ │ │ │ │ The servo period sets the heart beat of the system. Latency refers to the amount of time the │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 105 / 1332 │ │ │ │ │ │ │ │ │ │ computer can be longer then that period. Just like a railroad, LinuxCNC requires everything │ │ │ │ │ on a very tight and consistent time line or bad things happen. LinuxCNC requires and uses a │ │ │ │ │ real time operating system, which just means it has a low latency ( lateness ) response time │ │ │ │ │ when LinuxCNC requires its calculations and when doing LinuxCNCs calculations it cannot be │ │ │ │ │ @@ -7309,15 +7309,15 @@ │ │ │ │ │ Up to 3 parallel ports (referred to as parports) can be used as simple I/O. You must set the address │ │ │ │ │ of the parport. You can either enter the Linux parallel port numbering system (0,1,or 2) or enter │ │ │ │ │ the actual address. The address for an on board parport is often 0x0278 or 0x0378 (written in │ │ │ │ │ hexadecimal) but can be found in the BIOS page. The BIOS page is found when you first start │ │ │ │ │ your computer you must press a key to enter it (such as F2). On the BIOS page you can find │ │ │ │ │ the parallel port address and set the mode such as SPP, EPP, etc on some computers this info is │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 106 / 1332 │ │ │ │ │ │ │ │ │ │ displayed for a few seconds during start up. For PCI parallel port cards the address can be found │ │ │ │ │ by pressing the parport address search button. This pops up the help output page with a list of │ │ │ │ │ all the PCI devices that can be found. In there should be a reference to a parallel port device with │ │ │ │ │ a list of addresses. One of those addresses should work. Not all PCI parallel ports work properly. │ │ │ │ │ @@ -7347,15 +7347,15 @@ │ │ │ │ │ • hat kein grafisches Fenster │ │ │ │ │ • Das Aussehen kann mit benutzerdefinierten Designs geändert werden │ │ │ │ │ QtPlasmaC │ │ │ │ │ • voll funktionsfähige Plasmac-Konfiguration auf der Grundlage der QtVCP-Infrastruktur. │ │ │ │ │ • Maus-/Tastaturbedienung oder Touchscreen-Bedienung │ │ │ │ │ • keine VCP-Integration │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 107 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.4 Externe Konfiguration │ │ │ │ │ Auf dieser Seite können Sie externe Steuerungen auswählen, z. B. für Jogging oder Overrides. │ │ │ │ │ │ │ │ │ │ Abbildung 3.15: Externe Steuerelemente │ │ │ │ │ @@ -7365,15 +7365,15 @@ │ │ │ │ │ a pulse generator (MPG) or switches (such as a rotary dial). External buttons might be used with a │ │ │ │ │ switch based OEM joystick. │ │ │ │ │ Joystick-Joggen │ │ │ │ │ Requires a custom device rule to be installed in the system. This is a file that LinuxCNC uses to │ │ │ │ │ connect to Linux’s device list. PnCconf will help to prepare this file. │ │ │ │ │ • Suche nach Geräteregeln durchsucht das System nach Regeln. Sie können diese Funktion verwenden, um den Namen von Geräten zu finden, die Sie bereits mit PnCconf erstellt haben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 108 / 1332 │ │ │ │ │ │ │ │ │ │ • Mit Add a device rule können Sie ein neues Gerät konfigurieren, indem Sie den Aufforderungen │ │ │ │ │ folgen. Sie müssen Ihr Gerät zur Verfügung haben. │ │ │ │ │ • Mit test device können Sie ein Gerät laden, dessen Pin-Namen sehen und seine Funktionen mit │ │ │ │ │ halmeter überprüfen. │ │ │ │ │ @@ -7391,15 +7391,15 @@ │ │ │ │ │ Neufestlegungen (engl. overrides) │ │ │ │ │ PnCconf ermöglicht die Neufestsetzung von Vorschubgeschwindigkeiten und/oder Spindeldrehzahlen über ein Handrad (MPG) oder Schalter (z. B. Drehschalter). │ │ │ │ │ │ │ │ │ │ 3.2.5 GUI-Konfiguration │ │ │ │ │ Hier können Sie die Standardeinstellungen für die Bildschirme, fügen Sie virtuelle Bedienfelder (VCP), │ │ │ │ │ und stellen Sie einige LinuxCNC Optionen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 109 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.16: GUI-Konfiguration │ │ │ │ │ │ │ │ │ │ Front-End GUI-Optionen │ │ │ │ │ Die Standardoptionen ermöglichen die Auswahl allgemeiner Standardeinstellungen für jeden Anzeigebildschirm. │ │ │ │ │ @@ -7410,15 +7410,15 @@ │ │ │ │ │ Touchy defaults are options specific to Touchy. Most of Touchy’s options can be changed while Touchy │ │ │ │ │ is running using the preference page. Touchy uses GTK to draw its screen, and GTK supports themes. │ │ │ │ │ Themes controls the basic look and feel of a program. You can download themes from the net or edit │ │ │ │ │ them yourself. There are a list of the current themes on the computer that you can pick from. To help │ │ │ │ │ some of the text to stand out PnCconf allows you to override the Themes’s defaults. The position and │ │ │ │ │ force max options can be used to move Touchy to a second monitor if the system is capable. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 110 / 1332 │ │ │ │ │ │ │ │ │ │ QtPlasmaC-Optionen sind spezifisch für QtPlasmac, alle allgemeinen Optionen, die nicht benötigt werden, sind deaktiviert. Wenn QtPlasmac ausgewählt wird, ist der folgende Bildschirm ein Bildschirm │ │ │ │ │ zur Einstellung der Benutzertasten, der spezifisch für QtPlasmaC ist, und die VCP-Optionen sind nicht │ │ │ │ │ verfügbar. │ │ │ │ │ VCP Optionen │ │ │ │ │ @@ -7454,15 +7454,15 @@ │ │ │ │ │ Unter „Anzeigeoptionen“ können Größe, Position und max. Kraft auf einem „eigenständigen“ Panel │ │ │ │ │ verwendet werden, um beispielsweise den Bildschirm auf einem zweiten Monitor zu platzieren, wenn │ │ │ │ │ das System dazu in der Lage ist. │ │ │ │ │ Sie können ein GTK-Thema auswählen, welches das grundlegende Erscheinungsbild des Panels festlegt. Normalerweise möchten Sie, dass dies mit dem Front-End-Bildschirm übereinstimmt. Diese Optionen werden verwendet, wenn Sie auf die Schaltfläche ”Beispiel anzeigen” klicken. Mit GladeVCP │ │ │ │ │ können Sie je nach Front-End-Bildschirm auswählen, wo das Panel angezeigt werden soll. │ │ │ │ │ Bei AXIS kann er in der Mitte oder auf der rechten Seite stehen, bei Touchy in der Mitte. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 111 / 1332 │ │ │ │ │ │ │ │ │ │ Standardeinstellungen und Optionen │ │ │ │ │ • Referenzfahrt vor Manueller Dateneingabe / Ausführung erforderlich machen │ │ │ │ │ – Wenn Sie möchten, dass die Maschine vor der Referenzfahrt bewegt werden kann, deaktivieren Sie dieses Kontrollkästchen. │ │ │ │ │ • Popup-Tool-Eingabeaufforderung │ │ │ │ │ @@ -7478,15 +7478,15 @@ │ │ │ │ │ – Wird für Werkzeugwechsler verwendet, die das Werkzeug nicht in dieselbe Tasche zurückbringen. Um Werkzeugwechsler zu unterstützen, müssen Sie einen eigenen HAL-Code hinzufügen. │ │ │ │ │ │ │ │ │ │ 3.2.6 Mesa-Konfiguration │ │ │ │ │ Die Mesa-Konfigurationsseiten erlauben es, verschiedene Firmwares zu verwenden. Auf der Basisseite │ │ │ │ │ haben Sie eine Mesa-Karte ausgewählt. Hier wählen Sie die verfügbare Firmware aus und bestimmen, │ │ │ │ │ welche und wie viele Komponenten verfügbar sind. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 112 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.17: Mesa Board Konfiguration │ │ │ │ │ Parport address is used only with Mesa parport card, the 7i43. An on board parallel port usually uses │ │ │ │ │ 0x278 or 0x378 though you should be able to find the address from the BIOS page. The 7i43 requires │ │ │ │ │ the parallel port to use the EPP mode, again set in the BIOS page. If using a PCI parallel port the │ │ │ │ │ @@ -7496,15 +7496,15 @@ │ │ │ │ │ │ │ │ │ │ PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. If using Mesa │ │ │ │ │ daughter boards the docs for the board should give recommendations. │ │ │ │ │ │ │ │ │ │ Wichtig │ │ │ │ │ Es ist wichtig, diese zu beachten, um Schäden zu vermeiden und die beste Leistung zu erzielen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 113 / 1332 │ │ │ │ │ │ │ │ │ │ Der 7i33 benötigt PDM und eine PDM-Basisfrequenz von 6 MHz │ │ │ │ │ Der 7i29 benötigt PWM und eine PWM-Basisfrequenz von 20 kHz │ │ │ │ │ Das 7i30 erfordert PWM und eine PWM-Basisfrequenz von 20 kHz │ │ │ │ │ Das 7i40 erfordert PWM und eine PWM-Basisfrequenz von 50 kHz │ │ │ │ │ @@ -7528,48 +7528,48 @@ │ │ │ │ │ After choosing all these options press the Accept Component Changes button and PnCconf will update │ │ │ │ │ the I/O setup pages. Only I/O tabs will be shown for available connectors, depending on the Mesa │ │ │ │ │ board. │ │ │ │ │ │ │ │ │ │ 3.2.7 Mesa I/O-Einrichtung │ │ │ │ │ Die Registerkarten werden zur Konfiguration der Eingangs- und Ausgangspins der Mesa-Karten verwendet. Mit PnCconf können Sie benutzerdefinierte Signalnamen zur Verwendung in benutzerdefinierten HAL-Dateien erstellen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 114 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.18: Mesa I/O C2 Einrichtung │ │ │ │ │ Auf dieser Registerkarte mit dieser Firmware sind die Komponenten für eine 7i33 Tochterplatine eingestellt, die normalerweise mit Servos mit geschlossenem Regelkreis verwendet wird. Beachten Sie, │ │ │ │ │ dass die Komponentennummern der Encoderzähler und PWM-Treiber nicht in numerischer Reihenfolge sind. Dies entspricht den Anforderungen für die Tochterkarte. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 115 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.19: Mesa I/O C3 Einrichtung │ │ │ │ │ Auf dieser Registerkarte sind alle Pins GPIO. Beachten Sie die 3-stelligen Nummern - sie entsprechen │ │ │ │ │ der HAL-Pin-Nummer. GPIO-Pins können als Eingang oder Ausgang gewählt werden und können invertiert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 116 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.20: Mesa I/O C4 Einrichtung │ │ │ │ │ On this tab there are a mix of step generators and GPIO. Step generators output and direction pins │ │ │ │ │ can be inverted. Note that inverting a Step Gen-A pin (the step output pin) changes the step timing. │ │ │ │ │ It should match what your controller expects. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 117 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.8 Konfiguration des parallelen Anschlusses │ │ │ │ │ │ │ │ │ │ Der Parallelport kann für einfache E/A verwendet werden, ähnlich wie die GPIO-Pins von Mesa’s. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 118 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.9 Konfiguration der Achsen │ │ │ │ │ │ │ │ │ │ Abbildung 3.21: Konfiguration des Achsantriebs │ │ │ │ │ Diese Seite ermöglicht das Konfigurieren und Testen der Motor- und/oder Encoderkombination. Bei │ │ │ │ │ @@ -7582,15 +7582,15 @@ │ │ │ │ │ Handbook 1 standards or AXIS graphical display will not make much sense. Hopefully the help │ │ │ │ │ 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 │ │ │ │ │ lower DAC numbers. By moving the axis a known distance one can confirm the encoder scaling. │ │ │ │ │ The encoder should count even without the amp enabled depending on how power is supplied to │ │ │ │ │ the encoder. │ │ │ │ │ 1 ”axis nomenclature” in the chapter ”Numerical Control” in the ”Machinery’s Handbook” published by Industrial Press. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 119 / 1332 │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ Wenn Motor und Encoder die Zählrichtung nicht übereinstimmen, läuft das Servo bei PIDRegelung weg. │ │ │ │ │ │ │ │ │ │ Da die PID-Einstellungen derzeit nicht in PnCconf getestet werden können, sind die Einstellungen │ │ │ │ │ @@ -7631,15 +7631,15 @@ │ │ │ │ │ 9.87 │ │ │ │ │ 10.07 │ │ │ │ │ │ │ │ │ │ • Führen 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 │ │ │ │ │ • Beachten Sie, dass wir eine Rohausgabe wünschen, bei der das gemessene Ergebnis mit der befohlenen Ausgabe identisch ist. Das bedeutet │ │ │ │ │ – cmd=a*raw+b │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 120 / 1332 │ │ │ │ │ │ │ │ │ │ – raw=(cmd-b)/a │ │ │ │ │ • Folglich können die Koeffizienten a und b aus der linearen Anpassung direkt als Skala und Offset │ │ │ │ │ für den Regler verwendet werden. │ │ │ │ │ MAX OUTPUT │ │ │ │ │ @@ -7659,25 +7659,25 @@ │ │ │ │ │ speed. │ │ │ │ │ Bürstenlose Motorsteuerung │ │ │ │ │ These options are used to allow low level control of brushless motors using special firmware and │ │ │ │ │ daughter boards. It also allows conversion of HALL sensors from one manufacturer to another. │ │ │ │ │ It is only partially supported and will require one to finish the HAL connections. Contact the │ │ │ │ │ mail-list or forum for more help. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 121 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.22: Berechnung der Achsenskala │ │ │ │ │ The scale settings can be directly entered or one can use the calculate scale button to assist. Use the │ │ │ │ │ check boxes to select appropriate calculations. Note that pulley teeth requires the number of teeth │ │ │ │ │ not the gear ratio. Worm turn ratio is just the opposite it requires the gear ratio. If your happy with │ │ │ │ │ the scale press apply otherwise push cancel and enter the scale directly. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 122 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.23: Konfiguration der Achsen │ │ │ │ │ Also refer to the diagram tab for two examples of home and limit switches. These are two examples │ │ │ │ │ of many different ways to set homing and limits. │ │ │ │ │ │ │ │ │ │ @@ -7688,15 +7688,15 @@ │ │ │ │ │ Denken Sie daran, dass sich positive und negative Richtungen auf das WERKZEUG und nicht auf den │ │ │ │ │ Tisch beziehen, wie im Maschinenhandbuch beschrieben. │ │ │ │ │ Bei einer typischen Knie- oder Bettfräse │ │ │ │ │ • Wenn sich die TABLE nach außen bewegt, ist das die positive Y-Richtung │ │ │ │ │ • Wenn sich die TABLE nach links bewegt, ist das die positive X-Richtung │ │ │ │ │ • Wenn sich die TABLE nach unten bewegt, ist das die positive Z-Richtung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 123 / 1332 │ │ │ │ │ │ │ │ │ │ • Wenn sich der KOPF nach oben bewegt, ist das die positive Z-Richtung │ │ │ │ │ Bei einer typischen Drehmaschine │ │ │ │ │ • wenn sich das WERKZEUG nach rechts, weg vom Futter, bewegt │ │ │ │ │ • das ist die positive Z-Richtung │ │ │ │ │ @@ -7740,15 +7740,15 @@ │ │ │ │ │ Fahren Sie die Achse zum Ursprung. Markieren Sie eine Referenz auf dem beweglichen Schlitten │ │ │ │ │ und dem unbeweglichen Träger (so dass sie in einer Linie liegen) und fahren Sie die Maschine │ │ │ │ │ bis zum Ende der Grenzen. Messen Sie den Abstand zwischen den Markierungen, der einer der │ │ │ │ │ Verfahrwege ist. Bewegen Sie den Tisch an das andere Ende des Verfahrwegs. Messen Sie die │ │ │ │ │ Markierungen erneut. Das ist der andere Verfahrweg. Wenn sich der URSPRUNG an einer der │ │ │ │ │ Begrenzungen befindet, ist dieser Verfahrweg gleich Null. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 124 / 1332 │ │ │ │ │ │ │ │ │ │ (Maschinen-)URSPRUNG │ │ │ │ │ Der Ursprung ist der MASCHINENNullpunkt. (nicht der Nullpunkt Sie Ihre Cutter / Material auf). │ │ │ │ │ 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 │ │ │ │ │ die Ursprungs-Position zu bestimmen (bei Verwendung von Home-Schalter oder muss manuell │ │ │ │ │ @@ -7790,29 +7790,29 @@ │ │ │ │ │ Ermöglicht die Einstellung der Verriegelungsrichtung auf die gleiche oder entgegengesetzte │ │ │ │ │ Richtung wie die Suchrichtung. │ │ │ │ │ Encoder-Index für Referenzpunkt verwenden │ │ │ │ │ LinuxCNC sucht während der Latch-Phase der Referenzfahrt nach einem Encoder-Indeximpuls. │ │ │ │ │ Kompensationsdatei verwenden │ │ │ │ │ Ermöglicht die Angabe eines Komp-Dateinamens und -typs. Ermöglicht eine anspruchsvolle Kompensation. Siehe den> des INI Kapitels. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 125 / 1332 │ │ │ │ │ │ │ │ │ │ Verwenden des Umkehrspiel-Ausgleichs │ │ │ │ │ Ermöglicht die Einstellung einer einfachen Kompensation des Umkehrspiels. Kann nicht mit Kompensationsdatei verwendet werden. Siehe den > des │ │ │ │ │ INI Kapitels. │ │ │ │ │ │ │ │ │ │ Abbildung 3.24: AXIS-Hilfsdiagramm │ │ │ │ │ Das Diagramm soll helfen, ein Beispiel für Endschalter und Standard-Achsbewegungsrichtungen zu │ │ │ │ │ demonstrieren. In diesem Beispiel wurde die Z-Achse mit zwei Endschaltern versehen, wobei der │ │ │ │ │ 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 │ │ │ │ │ Grenzwert und die rechte der positive Grenzwert. Die ENDGÜLTIGE HOME-POSITION soll 4 Zoll │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 126 / 1332 │ │ │ │ │ │ │ │ │ │ vom ORIGIN auf der positiven Seite entfernt sein. Wenn der Schlitten an die positive Grenze bewegt │ │ │ │ │ würde, würden wir 10 Zoll zwischen der negativen Grenze und dem negativen Auslösestift messen. │ │ │ │ │ │ │ │ │ │ 3.2.10 Spindel-Konfiguration │ │ │ │ │ @@ -7822,15 +7822,15 @@ │ │ │ │ │ Option ausgewählt wurde! │ │ │ │ │ │ │ │ │ │ Abbildung 3.25: Spindelmotor/Encoder-Konfiguration │ │ │ │ │ Diese Seite ähnelt der Seite zur Konfiguration der Achsenmotoren. │ │ │ │ │ Es gibt einige Unterschiede: │ │ │ │ │ • Sofern man sich nicht für eine schrittgetriebene Spindel entschieden hat, gibt es keine Beschleunigungsoder Geschwindigkeitsbegrenzung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 127 / 1332 │ │ │ │ │ │ │ │ │ │ • Es gibt keine Unterstützung für Gangschaltungen oder Bereiche. │ │ │ │ │ • Wenn Sie eine VCP-Spindelanzeigeoption gewählt haben, können die Skala für die Spindeldrehzahl │ │ │ │ │ und die Filtereinstellungen angezeigt werden. │ │ │ │ │ • Spindle-at-Speed ermöglicht LinuxCNC zu warten, bis die Spindel auf die gewünschte Geschwindigkeit vor dem Bewegen der Achse ist. Dies ist besonders praktisch auf Drehmaschinen mit konstantem Oberflächenvorschub und große Geschwindigkeit Durchmesseränderungen. Es erfordert │ │ │ │ │ @@ -7847,26 +7847,26 @@ │ │ │ │ │ Dies ermöglicht die Einstellung von HALUI-Befehlen und das Laden von ClassicLadder- und BeispielSPS-Programme. Wenn Sie GladeVCP-Optionen ausgewählt haben, z. B. zum Nullstellen der Achse, │ │ │ │ │ werden Befehle angezeigt. Im Kapitel HALUI finden Sie weitere Informationen zur Verwendung benutzerdefinierter halcmds. Es gibt mehrere Optionen für Kontaktplanprogramme. Das Notaus (engl. │ │ │ │ │ E-stop)-Programm ermöglicht es einem externen Notaus-Schalter oder dem GUI-Frontend, ein Notaus auszulösen. Es verfügt auch über ein zeitgesteuertes Schmiermittelpumpensignal. Das Z-AutoTouch-Off-Programm verfügt über eine Touch-Off-Platte, die GladeVCP-Touch-Off-Taste und spezielle │ │ │ │ │ HALUI-Befehle, um den aktuellen Benutzerursprung auf Null zu setzen und schnell zu löschen. Das │ │ │ │ │ serielle Modbus-Programm ist im Grunde eine leere Programmvorlage, die ClassicLadder für seriellen │ │ │ │ │ Modbus einrichtet. Siehe das Kapitel > im Handbuch. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 128 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.26: PnCconf, erweiterte Optionen │ │ │ │ │ │ │ │ │ │ 3.2.12 HAL-Komponenten │ │ │ │ │ Auf dieser Seite können Sie zusätzliche HAL-Komponenten hinzufügen, die Sie für benutzerdefinierte │ │ │ │ │ HAL-Dateien benötigen. Auf diese Weise sollte man die Haupt-HAL-Datei nicht von Hand bearbeiten │ │ │ │ │ müssen, aber dennoch die vom Benutzer benötigten Komponenten bei der Konfiguration berücksichtigen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 129 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 3.27: HAL-Komponenten │ │ │ │ │ Die erste Auswahl sind Komponenten, die PnCconf intern verwendet. Sie können pncconf so konfigurieren, dass zusätzliche Instanzen der Komponenten für Ihre eigene HAL-Datei geladen werden. │ │ │ │ │ Wählen Sie die Anzahl der Instanzen, die Ihre benutzerdefinierte Datei benötigt, PnCconf fügt die │ │ │ │ │ benötigten Instanzen danach hinzu. │ │ │ │ │ @@ -7874,15 +7874,15 @@ │ │ │ │ │ letzte verwenden. │ │ │ │ │ Benutzerdefinierte Komponenten-Befehle │ │ │ │ │ Mit dieser Auswahl können Sie HAL-Komponenten laden, die PnCconf nicht verwendet. Fügen │ │ │ │ │ Sie den Befehl loadrt oder loadusr unter der Überschrift loading command hinzu. Fügen Sie den │ │ │ │ │ Befehl addf unter der Überschrift Thread-Befehl hinzu. Die Komponenten werden dem Thread │ │ │ │ │ zwischen dem Lesen von Eingaben und dem Schreiben von Ausgaben in der Reihenfolge hinzugefügt, in der Sie sie im Befehl ”thread” schreiben. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 130 / 1332 │ │ │ │ │ │ │ │ │ │ 3.2.13 PnCconf für Fortgeschrittene │ │ │ │ │ PnCconf ist bestrebt, flexible Anpassungen durch den Benutzer zu ermöglichen. PnCconf unterstützt │ │ │ │ │ benutzerdefinierte Signalnamen, benutzerdefiniertes Laden von Komponenten, benutzerdefinierte HALDateien und benutzerdefinierte Firmware. │ │ │ │ │ Es gibt auch Signalnamen, die PnCconf immer bereitstellt, unabhängig von den gewählten Optionen │ │ │ │ │ @@ -7908,15 +7908,15 @@ │ │ │ │ │ GPIO-Pins werden einfach mit dem eingegebenen Signalnamen verbunden │ │ │ │ │ Auf diese Weise kann man sich mit diesen Signalen in den benutzerdefinierten HAL-Dateien verbinden │ │ │ │ │ und hat trotzdem die Möglichkeit, sie später zu verschieben. │ │ │ │ │ Benutzerdefinierte Signalnamen │ │ │ │ │ Die Seite mit HAL Komponenten kann verwendet werden, um Komponenten zu laden, die ein │ │ │ │ │ Benutzer für die Anpassung benötigt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 131 / 1332 │ │ │ │ │ │ │ │ │ │ Laden der benutzerdefinierten Firmware │ │ │ │ │ PnCconf sucht auf dem System nach Firmware und sucht dann nach der XML-Datei, die es in das │ │ │ │ │ konvertieren kann, was es versteht. Diese XML-Dateien werden nur für offiziell freigegebene │ │ │ │ │ Firmware vom LinuxCNC-Team bereitgestellt. Um benutzerdefinierte Firmware zu verwenden, │ │ │ │ │ @@ -7935,15 +7935,15 @@ │ │ │ │ │ • custom.hal ist für HAL-Befehle, die nicht nach dem Laden des GUI-Frontends ausgeführt werden müssen. Es wird diese erst nach der HAL-Datei mit dem Konfigurationsnamen ausgeführt. │ │ │ │ │ • custom_postgui.hal ist für Befehle gedacht, die ausgeführt werden müssen, nachdem AXIS │ │ │ │ │ geladen wurde oder eine eigenständige PyVCP-Anzeige geladen wurde. │ │ │ │ │ • custom_gvcp.hal ist für Befehle, die ausgeführt werden müssen, nachdem GladeVCP geladen │ │ │ │ │ wurde. │ │ │ │ │ • shutdown.hal ist für Befehle, die ausgeführt werden, wenn LinuxCNC kontrolliert herunterfährt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 132 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 4 │ │ │ │ │ │ │ │ │ │ Konfiguration │ │ │ │ │ 4.1 Integrator-Konzepte │ │ │ │ │ @@ -7962,15 +7962,15 @@ │ │ │ │ │ • /home/fred/linuxcnc/nc_files │ │ │ │ │ • /home/fred/linuxcnc/configs/mill │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.ini │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.hal │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/mill.var │ │ │ │ │ – /home/fred/linuxcnc/configs/mill/tool.tbl │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 133 / 1332 │ │ │ │ │ │ │ │ │ │ 4.1.1.2 Befehlszeile │ │ │ │ │ Wenn Sie LinuxCNC von der Kommandozeile aus und geben Sie den Namen und den Speicherort der │ │ │ │ │ INI-Datei können die Dateispeicherorte in einem anderen Ort sein. Um die Optionen für die Ausführung von LinuxCNC von der Kommandozeile laufen linuxcnc -h. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -8002,15 +8002,15 @@ │ │ │ │ │ Software-Schrittgenerator, ob es Zeit für einen weiteren Schrittimpuls ist. Eine kürzere Periode ermöglicht es Ihnen, mehr Impulse pro Sekunde zu erzeugen, innerhalb von Grenzen. Wenn Sie jedoch │ │ │ │ │ eine zu kurze Periode wählen, verbringt Ihr Computer so viel Zeit mit der Erzeugung von Schrittimpulsen, dass alles andere langsamer wird oder vielleicht sogar zum Stillstand kommt. Die Latenzzeit │ │ │ │ │ und die Anforderungen an die Schrittmotorsteuerung beeinflussen die kürzeste Zeitspanne, die Sie │ │ │ │ │ verwenden können. │ │ │ │ │ 1 Dieser Abschnitt bezieht sich auf die Verwendung stepgen, LinuxCNCs eingebauten Schritt-Generator. Einige HardwareGeräte haben ihre eigenen Schritt-Generator und nicht mit LinuxCNC ’ s built-in ein. In diesem Fall, verweisen wir auf Ihr │ │ │ │ │ Hardware-Handbuch │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 134 / 1332 │ │ │ │ │ │ │ │ │ │ Im schlimmsten Fall treten Latenzzeiten nur ein paar Mal pro Minute auf und die Wahrscheinlichkeit, │ │ │ │ │ dass eine schlechte Latenz genau dann auftritt, wenn der Motor die Richtung ändert, ist gering. Es │ │ │ │ │ kann also zu sehr seltenen Fehlern kommen, die hin und wieder ein Teil ruinieren und bei denen eine │ │ │ │ │ Fehlerbehebung unmöglich ist. │ │ │ │ │ @@ -8046,15 +8046,15 @@ │ │ │ │ │ Servosysteme sind in der Lage, eine höhere Geschwindigkeit und Genauigkeit zu erreichen als entsprechende Schrittmachersysteme, sind aber teurer und komplexer. Im Gegensatz zu Schrittmotorensystemen benötigen Servosysteme eine Art von Positionsrückmeldung und müssen eingestellt oder getunt werden, da sie nicht wie Schrittmotorensysteme direkt nach dem Auspacken funktionieren. Diese │ │ │ │ │ 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 │ │ │ │ │ ist. │ │ │ │ │ 2 steplen refers to a parameter that adjusts the performance of LinuxCNC’s built-in step generator, stepgen, which is a HAL │ │ │ │ │ component. This parameter adjusts the length of the step pulse itself. Keep reading, all will be explained eventually. │ │ │ │ │ 3 dirhold refers to a parameter that adjusts the length of the direction hold time. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 135 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.1: Servo Loop │ │ │ │ │ Dieses Diagramm zeigt, dass das Eingangssignal (und das Rückkopplungssignal) den Summierverstärker antreibt, der Summierverstärker den Leistungsverstärker antreibt, der Leistungsverstärker den │ │ │ │ │ Motor antreibt, der Motor die Last (und das Rückkopplungsgerät) antreibt und das Rückkopplungsgerät (und das Eingangssignal) den Motor antreibt. Dies sieht aus wie ein Kreis (eine geschlossene │ │ │ │ │ Schleife), in dem A B, B C, C D und D A steuert. │ │ │ │ │ @@ -8069,15 +8069,15 @@ │ │ │ │ │ PID steht für Proportional, Integral und Derivativ. Der Proportionalwert bestimmt die Reaktion auf │ │ │ │ │ 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 │ │ │ │ │ der Fehler geändert hat. Sie sind drei gemeinsame mathematische Techniken, die auf die Aufgabe, │ │ │ │ │ einen Arbeitsprozess, um einen Sollwert zu folgen angewendet werden. Im Fall von LinuxCNC ist der │ │ │ │ │ Prozess, den wir steuern wollen, die tatsächliche Achsenposition und der Sollwert ist die befohlene │ │ │ │ │ Achsenposition. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 136 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.2: PID-Schleife │ │ │ │ │ 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ässt │ │ │ │ │ sich beschreiben anhand des Ansprechens des Reglers auf eine Regelabweichung, des Ausmaßes, in │ │ │ │ │ dem der Regler über den Sollwert hinausschießt, und des Grades der Systemschwingung. │ │ │ │ │ @@ -8097,15 +8097,15 @@ │ │ │ │ │ korrigiert werden müssen. Der kumulierte Fehler wird dann mit der Integralverstärkung multipliziert │ │ │ │ │ und zum Reglerausgang addiert. │ │ │ │ │ Der Integral-Anteil (wenn er zum Proportional-Anteil (kurz P-Anteil) hinzugefügt wird) beschleunigt │ │ │ │ │ die Bewegung des Prozesses in Richtung Sollwert und beseitigt den verbleibenden stationären Fehler, der bei einem reinen Proportionalregler auftritt. Da der Integral-Anteil jedoch auf akkumulierte │ │ │ │ │ Fehler aus der Vergangenheit reagiert, kann er dazu führen, dass der aktuelle Wert über den Sollwert hinausschießt (den Sollwert überschreitet und dann eine Abweichung in die andere Richtung │ │ │ │ │ erzeugt). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 137 / 1332 │ │ │ │ │ │ │ │ │ │ 4.1.4.4 Differenzierender-Anteil (D-Anteil) │ │ │ │ │ Die Änderungsrate des Prozessfehlers wird berechnet, indem die Steigung des Fehlers nach der Zeit │ │ │ │ │ (d. h. seine erste Ableitung nach der Zeit) bestimmt und diese Änderungsrate mit der Ableitungsverstärkung multipliziert wird. │ │ │ │ │ Der Derivationsanteil verlangsamt die Änderungsrate des Reglerausgangs, und dieser Effekt ist in │ │ │ │ │ @@ -8132,15 +8132,15 @@ │ │ │ │ │ die beste Echtzeitleistung (RT) zu erzielen. Mit dem gepatchten RTAI-Kernel können Sie Anwendungen mit strengen Zeitvorgaben schreiben. RTAI gibt Ihnen die Möglichkeit, Dinge wie die SoftwareSchritterzeugung durchzuführen, die ein präzises Timing erfordern. │ │ │ │ │ 4.1.5.1 ACPI │ │ │ │ │ Das Advanced Configuration and Power Interface (ACPI) hat viele verschiedene Funktionen, von denen die meisten die RT-Leistung beeinträchtigen (z. B.: Energieverwaltung, CPU-Abschaltung, CPUFrequenzskalierung usw.). Der LinuxCNC-Kernel (und wahrscheinlich alle RTAI-gepatchten Kernel) │ │ │ │ │ hat ACPI deaktiviert. ACPI kümmert sich auch um das Herunterfahren des Systems, nachdem ein │ │ │ │ │ Shutdown gestartet wurde, und deshalb müssen Sie möglicherweise den Netzschalter drücken, um │ │ │ │ │ Ihren Computer vollständig auszuschalten. Die RTAI-Gruppe hat dies in den letzten Versionen verbessert, so dass sich Ihr LinuxCNC-System vielleicht doch von selbst ausschaltet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 138 / 1332 │ │ │ │ │ │ │ │ │ │ 4.1.6 Computer/Machine Interface Hardware Options │ │ │ │ │ 4.1.6.1 litehm2/rv901t │ │ │ │ │ Litehm2 is a board-agnostic port of the HostMot2 FPGA firmware. The first board it supports is the │ │ │ │ │ linsn rv901t, which was originally built as a LED controller board, but due to the available I/O it is │ │ │ │ │ @@ -8171,15 +8171,15 @@ │ │ │ │ │ │ │ │ │ │ 4.2.2 Latency Tests │ │ │ │ │ LinuxCNC includes several latency tests. They all produce equivalent information. Running these tests │ │ │ │ │ will help determine if a computers is suitable for driving a CNC machine. │ │ │ │ │ Anmerkung │ │ │ │ │ Do not run LinuxCNC or StepConf while the latency test is running. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 139 / 1332 │ │ │ │ │ │ │ │ │ │ 4.2.2.1 Latenz-Test │ │ │ │ │ To run the test, open a terminal window (in Ubuntu, from Applications → Accessories → Terminal) and │ │ │ │ │ run the following command: │ │ │ │ │ latency-test │ │ │ │ │ @@ -8202,15 +8202,15 @@ │ │ │ │ │ Herz und Nieren zu prüfen, während der Latenztest den schlimmsten Fall ermittelt. │ │ │ │ │ The important number for software stepping is the max jitter of the base thread. In the example │ │ │ │ │ above, that is 6693 nanoseconds (ns), or 6.693 microseconds (µs). Record this number, and enter it in │ │ │ │ │ StepConf when it is requested. │ │ │ │ │ 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’t happen very often, or only happens when you │ │ │ │ │ do some particular action. For instance, one Intel motherboard worked pretty well most of the time, but │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 140 / 1332 │ │ │ │ │ │ │ │ │ │ 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 │ │ │ │ │ Was bedeuten also die Ergebnisse? Wenn Ihre Max-Jitter-Zahl weniger als 15-20 Mikrosekunden │ │ │ │ │ (15000-20000 Nanosekunden) beträgt, sollte der Computer mit Software-Stepping sehr gute Ergebnisse liefern. Wenn die maximale Latenzzeit eher bei 30-50 Mikrosekunden liegt, können Sie immer │ │ │ │ │ noch gute Ergebnisse erzielen, aber Ihre maximale Schrittrate könnte etwas enttäuschend sein, insbesondere wenn Sie Mikroschrittverfahren verwenden oder sehr feine Spindelsteigungen haben. Wenn │ │ │ │ │ @@ -8238,15 +8238,15 @@ │ │ │ │ │ 25000) │ │ │ │ │ --servo nS (servo thread interval, default: 1000000) │ │ │ │ │ --time mS (report interval, default: 1000) │ │ │ │ │ --relative (relative clock time (default)) │ │ │ │ │ --actual │ │ │ │ │ (actual clock time) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 141 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.4: latency-plot-Fenster │ │ │ │ │ │ │ │ │ │ 4.2.2.3 Latenz-Histogramm │ │ │ │ │ latency-histogram zeigt ein Histogramm der Latenz (Jitter) für einen Basis- und einen Servo-Thread │ │ │ │ │ @@ -8271,15 +8271,15 @@ │ │ │ │ │ LinuxCNC and HAL should not be running, stop with halrun -U. │ │ │ │ │ Large number of bins and/or small binsizes will slow updates. │ │ │ │ │ For single thread, specify --nobase (and options for servo thread). │ │ │ │ │ Measured latencies outside of the +/- bin range are reported │ │ │ │ │ with special end bars. Use --show to show count for │ │ │ │ │ the off-chart [pos|neg] bin │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 142 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.5: Latenz-Histogramm-Fenster │ │ │ │ │ │ │ │ │ │ 4.2.3 Latency tuning │ │ │ │ │ LinuxCNC can run on many different hardware platforms and with many different realtime kernels, │ │ │ │ │ @@ -8295,15 +8295,15 @@ │ │ │ │ │ BIOS, boot Linux, and run the latency test (potentially for a long time) to see what effects your BIOS │ │ │ │ │ change had. Then repeat for all the other BIOS settings you want to try. │ │ │ │ │ Because BIOSes are all different and non-standard, providing a detailed BIOS tuning guide is not │ │ │ │ │ practical. In general, some things to try tuning in the BIOS are: │ │ │ │ │ • Disable ACPI, APM, and any other power-saving features. This includes anything related to power │ │ │ │ │ saving, suspending, CPU sleep states, CPU frequency scaling, etc. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 143 / 1332 │ │ │ │ │ │ │ │ │ │ • Disable CPU ”turbo” mode. │ │ │ │ │ • Disable CPU hyperthreading. │ │ │ │ │ • Disable (or otherwise control) System Management Interrupt (SMI). │ │ │ │ │ • Disable any hardware you do not intend to use. │ │ │ │ │ @@ -8331,15 +8331,15 @@ │ │ │ │ │ erzeugten Schrittimpulse auszugeben. Die Software-Schrittimpulse haben jedoch auch einige Nachteile: │ │ │ │ │ • begrenzte maximale Schrittfrequenz │ │ │ │ │ • Jitter (variierende zeitliche Abstände) in den erzeugten Impulsen │ │ │ │ │ • belastet die CPU │ │ │ │ │ In diesem Kapitel finden Sie einige Schritte, die Ihnen dabei helfen können, die besten Ergebnisse │ │ │ │ │ aus softwaregenerierten Schritten zu erzielen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 144 / 1332 │ │ │ │ │ │ │ │ │ │ 4.3.1.1 Führen Sie einen Latenztest durch │ │ │ │ │ Die CPU ist nicht der einzige Faktor, der die Latenzzeit bestimmt. Motherboards, Grafikkarten, USBAnschlüsse und viele andere Dinge können die Latenz beeinträchtigen. Der beste Weg, um zu wissen, │ │ │ │ │ was man von einem PC erwarten kann, ist, die RT-Latenztests durchzuführen. │ │ │ │ │ Führen Sie den Latenztest wie im Kapitel Latenz-Test beschrieben durch. │ │ │ │ │ @@ -8378,15 +8378,15 @@ │ │ │ │ │ Schrittfrequenz: 0 bis 333 kHz │ │ │ │ │ Schrittimpuls ”0” Zeit: 2.0 µs min (Schritt bei steigender Flanke) │ │ │ │ │ Schrittimpuls ”1” Zeit: 1.0 µs min │ │ │ │ │ Direction Setup: │ │ │ │ │ 200 ns (0.2 µs) before step pulse rising edge │ │ │ │ │ 200 ns (0.2 µs) hold after step pulse rising edge │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 145 / 1332 │ │ │ │ │ │ │ │ │ │ Aus dem Xylotex-Datenblatt: │ │ │ │ │ Minimale DIR-Setup-Zeit vor steigender Flanke des STEP-Impulses 200 ns Minimale │ │ │ │ │ DIR-Haltezeit nach steigender Flanke des STEP-Pulses 200 ns │ │ │ │ │ Minimale STEP-Impuls-Hochzeit 2,0 µs │ │ │ │ │ @@ -8427,15 +8427,15 @@ │ │ │ │ │ müssen im nächsten Abschnitt noch einige Optimierungen vornehmen.) │ │ │ │ │ Beim Xylotex sind die Setup- und Haltezeiten mit jeweils 200 ns (0,2 µs) sehr kurz. Die längste Zeit ist │ │ │ │ │ die 2-µs-High-Zeit. Wenn Sie eine Latenzzeit von 11 µs haben, dann können Sie die BASE_PERIOD auf │ │ │ │ │ 11+2=13 µs einstellen. Die lange Haltezeit von 20 µs entfällt, was sehr hilfreich ist! Bei einer Periode │ │ │ │ │ von 13 µs dauert ein kompletter Schritt 2x13 = 26 µs, und die maximale Schrittrate beträgt 38.461 │ │ │ │ │ Schritte pro Sekunde! │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 146 / 1332 │ │ │ │ │ │ │ │ │ │ Aber Sie können noch nicht mit dem Feiern anfangen. Beachten Sie, dass 13 µs ein sehr kurzer Zeitraum ist. Wenn Sie versuchen, die Schritt-Generator alle 13 µs laufen, könnte es nicht genug Zeit │ │ │ │ │ übrig, um etwas anderes laufen, und Ihr Computer wird einfrieren. Wenn Sie für Zeiträume von weniger als 25 µs anstreben, sollten Sie bei 25 µs oder mehr beginnen, führen Sie LinuxCNC, und sehen, │ │ │ │ │ wie die Dinge reagieren. Wenn alles gut ist, können Sie allmählich den Zeitraum zu verringern. Wenn │ │ │ │ │ der Mauszeiger beginnt immer träge, und alles andere auf dem PC verlangsamt, ist Ihr Zeitraum ein │ │ │ │ │ @@ -8474,15 +8474,15 @@ │ │ │ │ │ größeren Latenzzeit, z. B. 20 oder 25 µs, durcharbeiten, wird die Spitzenschrittrate sowohl für den │ │ │ │ │ Xylotex als auch für den Gecko niedriger sein. Es gelten jedoch dieselben Formeln für die Berechnung │ │ │ │ │ der optimalen BASE_PERIOD und für die Anpassung der Dirhold- oder anderer Schrittgeneratorparameter. │ │ │ │ │ 4.3.1.5 Nicht raten! │ │ │ │ │ Um ein schnelles UND zuverlässiges softwarebasiertes Steppersystem zu erhalten, können Sie die │ │ │ │ │ Perioden und andere Konfigurationsparameter nicht einfach erraten. Sie müssen auf Ihrem Computer │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 147 / 1332 │ │ │ │ │ │ │ │ │ │ Messungen vornehmen und die Berechnungen durchführen, um sicherzustellen, dass Ihre Antriebe │ │ │ │ │ die benötigten Signale erhalten. │ │ │ │ │ To make the math easier, I’ve created an Open Office spreadsheet Step Timing Calculator. You enter │ │ │ │ │ your latency test result and your stepper drive timing requirements and the spreadsheet calculates │ │ │ │ │ @@ -8522,15 +8522,15 @@ │ │ │ │ │ carelessly edits a list like this and leaves two of the lines uncommented, the first one encountered will │ │ │ │ │ be used. │ │ │ │ │ Beachten Sie, dass die Zeichen ”#” und ”;” innerhalb einer Variablen nicht für Kommentare stehen: │ │ │ │ │ FALSCH = Wert # und ein Kommentar │ │ │ │ │ # Korrekter Kommentar │ │ │ │ │ CORRECT = Wert │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 4.4.1.2 │ │ │ │ │ │ │ │ │ │ 148 / 1332 │ │ │ │ │ │ │ │ │ │ Sections │ │ │ │ │ │ │ │ │ │ @@ -8577,15 +8577,15 @@ │ │ │ │ │ │ │ │ │ │ boolsche Variablen Boolesche Werte können eines von TRUE, YES oder 1 für wahr/aktiviert und eines │ │ │ │ │ von FALSE, NO oder 0 für falsch/deaktiviert sein. Der Fall wird ignoriert. │ │ │ │ │ In den folgenden Abschnitten wird jeder Abschnitt der Konfigurationsdatei anhand von Beispielwerten │ │ │ │ │ für die Konfigurationszeilen erläutert. │ │ │ │ │ Variables that are used by LinuxCNC must always use the section names and variable names as shown. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 4.4.1.4 │ │ │ │ │ │ │ │ │ │ 149 / 1332 │ │ │ │ │ │ │ │ │ │ Custom Sections and Variables │ │ │ │ │ │ │ │ │ │ @@ -8633,15 +8633,15 @@ │ │ │ │ │ Durch die Angabe einer #INCLUDE-Anweisung in einer INI-Datei kann der Computer dazu angehalten │ │ │ │ │ werden, an dieser Stelle zunächst den Inhalt der angegebenen Datei zu berücksichtigen. │ │ │ │ │ #INCLUDE Format │ │ │ │ │ #INCLUDE filename │ │ │ │ │ │ │ │ │ │ Der Dateiname kann wie folgt angegeben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 150 / 1332 │ │ │ │ │ │ │ │ │ │ • eine Datei in demselben Verzeichnis wie die INI-Datei │ │ │ │ │ • eine Datei, die sich relativ zum Arbeitsverzeichnis befindet │ │ │ │ │ • ein absoluter Dateiname (beginnt mit einem /) │ │ │ │ │ • einen Dateinamen, der sich auf den Wohnort des Benutzers bezieht (beginnt mit ~) │ │ │ │ │ @@ -8687,15 +8687,15 @@ │ │ │ │ │ • POSITION_OFFSET = RELATIVE - The coordinate system (RELATIVE or MACHINE) to show on the DRO │ │ │ │ │ when the user interface starts. The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets currently in effect. │ │ │ │ │ • POSITION_FEEDBACK = COMMANDED - The coordinate value (COMMANDED or ACTUAL) to show on the │ │ │ │ │ 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 │ │ │ │ │ position of the motors if they have feedback like most servo systems. Typically the COMMANDED │ │ │ │ │ value is used. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 151 / 1332 │ │ │ │ │ │ │ │ │ │ • 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 │ │ │ │ │ 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 │ │ │ │ │ be raised if the format can not accept a floating-point value. │ │ │ │ │ • 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 │ │ │ │ │ @@ -8725,15 +8725,15 @@ │ │ │ │ │ – deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden. │ │ │ │ │ • MIN_SPINDLE_0_SPEED = 1000 - The minimum 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. │ │ │ │ │ – deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden. │ │ │ │ │ • 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. │ │ │ │ │ – deprecated - stattdessen den Abschnitt [SPINDLE_n] verwenden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 152 / 1332 │ │ │ │ │ │ │ │ │ │ • 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 │ │ │ │ │ listed in [RS274]SUBROUTINE_PATH and [RS274]USER_M_PATH. │ │ │ │ │ • INTRO_GRAPHIC = emc2.gif - The image shown on the splash screen. │ │ │ │ │ • INTRO_TIME = 5 - The maximum time to show the splash screen, in seconds. │ │ │ │ │ @@ -8769,15 +8769,15 @@ │ │ │ │ │ INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry. │ │ │ │ │ • GRIDS = 10 mm, 1 in, ... - Defines the preset values for grid lines. The value is interpreted the │ │ │ │ │ same way as INCREMENTS. │ │ │ │ │ • OPEN_FILE = /full/path/to/file.ngc - The file to show in the preview plot when AXIS starts. │ │ │ │ │ Use a blank string ”” and no file will be loaded at start up. GMOCCAPY will not use this setting, as │ │ │ │ │ it offers a corresponding entry on its settings page. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 153 / 1332 │ │ │ │ │ │ │ │ │ │ • EDITOR = gedit - The editor to use when selecting File > Edit to edit the G-code from the AXIS │ │ │ │ │ menu. This must be configured for this menu item to work. Another valid entry is gnome-terminal │ │ │ │ │ -e vim. This entry does not apply to GMOCCAPY, as GMOCCAPY has an integrated editor. │ │ │ │ │ • TOOL_EDITOR = tooledit - The editor to use when editing the tool table (for example by selecting │ │ │ │ │ @@ -8819,15 +8819,15 @@ │ │ │ │ │ for liveplots only — 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> == │ │ │ │ │ 1. If nonzero offsets exist at startup due to persistence, offsets should be zeroed and preview │ │ │ │ │ reloaded. │ │ │ │ │ Anmerkung │ │ │ │ │ If no [DISPLAY]GEOMETRY is included in the INI file, a default is provided by the [DISPLAY]DISPLAY │ │ │ │ │ GUI program (typically ”XYZABCUVW”). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 154 / 1332 │ │ │ │ │ │ │ │ │ │ • ARCDIVISION = 64 - Set the quality of preview of arcs. Arcs are previewed by dividing them into │ │ │ │ │ a number of straight lines; a semicircle is divided into ARCDIVISION parts. Larger values give a │ │ │ │ │ more accurate preview, but take longer to load and result in a more sluggish display. Smaller values │ │ │ │ │ give a less accurate preview, but take less time to load and may result in a faster display. The default │ │ │ │ │ @@ -8871,15 +8871,15 @@ │ │ │ │ │ │ │ │ │ │ Die folgenden Zeilen fügen Unterstützung hinzu für die Bild-zu-G-Code-Konverterung mit LinuxCNC. │ │ │ │ │ PROGRAM_EXTENSION = .png,.gif,.jpg # Greyscale Depth Image │ │ │ │ │ png = image-to-gcode │ │ │ │ │ gif = image-to-gcode │ │ │ │ │ jpg = image-to-gcode │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 155 / 1332 │ │ │ │ │ │ │ │ │ │ Ein Beispiel für einen benutzerdefinierten G-Code-Konverter, der sich im Verzeichnis linuxcnc befindet. │ │ │ │ │ PROGRAM_EXTENSION = .gcode 3D Printer │ │ │ │ │ gcode = /home/mill/linuxcnc/convert.py │ │ │ │ │ │ │ │ │ │ @@ -8921,15 +8921,15 @@ │ │ │ │ │ else: │ │ │ │ │ file_out.append(line) │ │ │ │ │ for item in file_out: │ │ │ │ │ print(”%s” % item) │ │ │ │ │ if __name__ == ”__main__”: │ │ │ │ │ main(sys.argv[1:]) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 156 / 1332 │ │ │ │ │ │ │ │ │ │ • FILTER_PROGRESS=%d + │ │ │ │ │ If the environment variable AXIS_PROGRESS_BAR is set, then lines written to stderr of the form │ │ │ │ │ above sets the AXIS progress bar to the given percentage. This feature should be used by any filter │ │ │ │ │ that runs for a long time. │ │ │ │ │ @@ -8983,15 +8983,15 @@ │ │ │ │ │ See G-code Parameters. │ │ │ │ │ • HAL_PIN_VARS = 1 (Default: 1) │ │ │ │ │ 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. │ │ │ │ │ • RETAIN_G43 = 0 (Default: 0) │ │ │ │ │ When set, you can turn on G43 after loading the first tool, and then not worry about it through the │ │ │ │ │ program. When you finally unload the last tool, G43 mode is canceled. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 157 / 1332 │ │ │ │ │ │ │ │ │ │ • OWORD_NARGS = 0 (Default: 0) │ │ │ │ │ If this feature is enabled then a called subroutine can determine the number of actual positional │ │ │ │ │ parameters passed by inspecting the # parameter. │ │ │ │ │ • NO_DOWNCASE_OWORD = 0 (Default: 0) │ │ │ │ │ @@ -9032,15 +9032,15 @@ │ │ │ │ │ from this section to load the motion controller. For more information on the motion controller see the │ │ │ │ │ Motion section. │ │ │ │ │ • EMCMOT = motmod - the motion controller name is typically used here. │ │ │ │ │ • BASE_PERIOD = 50000 - the Base task period in nanoseconds. │ │ │ │ │ • SERVO_PERIOD = 1000000 - This is the ”Servo” task period in nanoseconds. │ │ │ │ │ • TRAJ_PERIOD = 100000 - This is the Trajectory Planner task period in nanoseconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 158 / 1332 │ │ │ │ │ │ │ │ │ │ • 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). │ │ │ │ │ • HOMEMOD = alternate_homing_module [home_parms=value] The HOMEMOD variable is optional. If │ │ │ │ │ specified, use a specified (user-built) module instead of the default (homemod). Module parameters │ │ │ │ │ (home_parms) may be included if supported by the named module. The setting may be overridden │ │ │ │ │ @@ -9081,15 +9081,15 @@ │ │ │ │ │ arg2, etc. as argv list. Files with a .tcl suffix are processed as above but use haltcl for processing. │ │ │ │ │ See the HALTCL Chapter for more information. │ │ │ │ │ • 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 │ │ │ │ │ directory. │ │ │ │ │ • HALFILE = LIB:sys_texample.tcl [arg1 [arg2 …]] - Execute the system library file sys_texample.tcl │ │ │ │ │ at start up. Explicit use of the LIB: prefix causes use of the system library HALFILE without searching the INI file directory. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 159 / 1332 │ │ │ │ │ │ │ │ │ │ HALFILE items specify files that loadrt HAL components and make signal connections between component pins. Common mistakes are │ │ │ │ │ 1. omission of the addf statement needed to add a component’s function(s) to a thread, │ │ │ │ │ 2. incomplete signal (net) specifiers. │ │ │ │ │ Omission of required addf statements is almost always an error. Signals usually include one or more │ │ │ │ │ @@ -9128,15 +9128,15 @@ │ │ │ │ │ 4.4.2.8 │ │ │ │ │ │ │ │ │ │ [HALUI] section │ │ │ │ │ │ │ │ │ │ • MDI_COMMAND = G53 G0 X0 Y0 Z0 - An MDI command can be executed by using halui.mdi-command-00. │ │ │ │ │ Increment the number for each command listed in the [HALUI] section. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 4.4.2.9 │ │ │ │ │ │ │ │ │ │ 160 / 1332 │ │ │ │ │ │ │ │ │ │ [APPLICATIONS] Section │ │ │ │ │ │ │ │ │ │ @@ -9181,15 +9181,15 @@ │ │ │ │ │ Der Abschnitt [TRAJ] enthält allgemeine Parameter für das Trajektorienplanungsmodul in motion. │ │ │ │ │ • ARC_BLEND_ENABLE = 1 - Turn on new TP. If set to 0 TP uses parabolic blending (1 segment look │ │ │ │ │ ahead) (Default: 1). │ │ │ │ │ • ARC_BLEND_FALLBACK_ENABLE = 0 - Optionally fall back to parabolic blends if the estimated speed is │ │ │ │ │ faster. However, this estimate is rough, and it seems that just disabling it gives better performance │ │ │ │ │ (Default: 0). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 161 / 1332 │ │ │ │ │ │ │ │ │ │ • ARC_BLEND_OPTIMIZATION_DEPTH = 50 - Look ahead depth in number of segments. │ │ │ │ │ Um dies ein wenig zu erweitern, können Sie diesen Wert einigermaßen willkürlich wählen. Hier’s │ │ │ │ │ eine Formel, um zu schätzen, wie viel Tiefe Sie für eine bestimmte Konfiguration benötigen: │ │ │ │ │ # n = v_max / (2.0 * a_max * t_c) │ │ │ │ │ @@ -9232,15 +9232,15 @@ │ │ │ │ │ nur einen geringen Leistungsgewinn bringt. Mit dieser Einstellung lässt sich dieses Ruckeln bei │ │ │ │ │ kurzen Segmenten vermeiden. │ │ │ │ │ Basically, if a segment will complete in less time than 1 / ARC_BLEND_RAMP_FREQ, we don’t bother with a trapezoidal velocity profile on that segment, and use constant acceleration. (Setting │ │ │ │ │ ARC_BLEND_RAMP_FREQ = 1000 is equivalent to always using trapezoidal acceleration, if the servo │ │ │ │ │ loop is 1 kHz). │ │ │ │ │ Sie können den schlimmsten Leistungsverlust charakterisieren, indem Sie die maximale Geschwindigkeit eines trapezförmiges Profils vergleichen mit der durch eine Rampe zu erreichenden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 162 / 1332 │ │ │ │ │ │ │ │ │ │ # v_ripple = a_max / (4.0 * f) │ │ │ │ │ # wobei: │ │ │ │ │ # v_ripple = durchschnittliche Geschwindigkeit ”Verlust” aufgrund von Rampen │ │ │ │ │ # a_max = maximale Achsenbeschleunigung │ │ │ │ │ @@ -9285,15 +9285,15 @@ │ │ │ │ │ for more details. │ │ │ │ │ • NO_FORCE_HOMING = 1 - The default behavior is for LinuxCNC to force the user to home the machine │ │ │ │ │ before any MDI command or a program is run. Normally, only jogging is allowed before homing. │ │ │ │ │ For configurations using identity kinematics, setting NO_FORCE_HOMING = 1 allows the user to make │ │ │ │ │ MDI moves and run programs without homing the machine first. Interfaces using identity kinematics │ │ │ │ │ without homing ability will need to have this option set to 1. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 163 / 1332 │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ LinuxCNC will not know your joint travel limits when using NO_FORCE_HOMING = 1. │ │ │ │ │ │ │ │ │ │ • HOME = 0 0 0 0 0 0 0 0 0 - World home position needed for kinematics modules that compute │ │ │ │ │ @@ -9337,15 +9337,15 @@ │ │ │ │ │ limit is exceeded, the controller aborts axis motion. The axis must be homed before MAX_LIMIT is │ │ │ │ │ in force. For a rotary axis (A,B,C typ) with unlimited rotation having no MAX_LIMIT for that axis in │ │ │ │ │ the [AXIS_] section a value of 1e99 is used. │ │ │ │ │ • WRAPPED_ROTARY = 1 - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 │ │ │ │ │ degrees. Positive Numbers will move the axis in a positive direction and negative numbers will │ │ │ │ │ move the axis in the negative direction. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 164 / 1332 │ │ │ │ │ │ │ │ │ │ • LOCKING_INDEXER_JOINT = 4 - This value selects a joint to use for a locking indexer for the specified │ │ │ │ │ axis . In this example, the joint is 4 which would correspond to the B axis for a XYZAB │ │ │ │ │ system with trivkins (identity) kinematics. When set, a G0 move for this axis will initiate an unlock │ │ │ │ │ with the joint.4.unlock pin then wait for the joint.4.is-unlocked pin then move the joint at │ │ │ │ │ @@ -9384,15 +9384,15 @@ │ │ │ │ │ Other kinematics modules with identity kinematics are available to support configurations with partial │ │ │ │ │ sets of axes. For example, using trivkins with coordinates=XZ, the joint-axes relationships are: │ │ │ │ │ • JOINT_0 = X │ │ │ │ │ • JOINT_1 = Z │ │ │ │ │ For more information on kinematics modules see the manpage kins (on the UNIX terminal type man │ │ │ │ │ kins). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 165 / 1332 │ │ │ │ │ │ │ │ │ │ • TYPE = LINEAR - The type of joint, either LINEAR or ANGULAR. │ │ │ │ │ │ │ │ │ │ • UNITS = INCH - If specified, this setting overrides the related [TRAJ] UNITS setting, e.g., [TRAJ]LINEAR_UN │ │ │ │ │ if the TYPE of this joint is LINEAR, [TRAJ]ANGULAR_UNITS if the TYPE of this joint is ANGULAR. │ │ │ │ │ @@ -9433,15 +9433,15 @@ │ │ │ │ │ • 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 │ │ │ │ │ for that joint in the [JOINT_N] section a the value 1e99 is used. │ │ │ │ │ Anmerkung │ │ │ │ │ For identity kinematics, the [JOINT_N]MIN_LIMIT/MAX_LIMIT settings must equal or exceed the │ │ │ │ │ corresponding (one-to-one identity) [AXIS_L] limits. These settings are verified at startup when the │ │ │ │ │ trivkins kinematics modules is specified. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 166 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ 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 │ │ │ │ │ (coordinate letter) jogging and by the trajectory planning used for G-code moves (programs and MDI │ │ │ │ │ commands). The trajectory planner works in Cartesian space (XYZABCUVW) and has no information │ │ │ │ │ @@ -9481,15 +9481,15 @@ │ │ │ │ │ provision for this signal you may set it to yes. When it is yes, it will affect the kind of home pattern │ │ │ │ │ used. Currently, you can’t home to index with steppers unless you’re using StepGen in velocity mode │ │ │ │ │ and PID. │ │ │ │ │ • HOME_INDEX_NO_ENCODER_RESET = NO - Use YES if the encoder used for this joint does not reset │ │ │ │ │ its counter when an index pulse is detected after assertion of the joint index_enable HAL pin. │ │ │ │ │ Applicable only for HOME_USE_INDEX = YES. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 167 / 1332 │ │ │ │ │ │ │ │ │ │ • HOME_IGNORE_LIMITS = NO - When you use the limit switch as a home switch and the limit switch │ │ │ │ │ this should be set to YES. When set to YES the limit switch for this joint is ignored when homing. │ │ │ │ │ You must configure your homing so that at the end of your home move the home/limit switch is not │ │ │ │ │ in the toggled state you will get a limit switch error after the home move. │ │ │ │ │ @@ -9527,15 +9527,15 @@ │ │ │ │ │ begrenzen, wenn Sie können. │ │ │ │ │ Be careful about going below 1 encoder count, since you may create a condition where there is no │ │ │ │ │ place that your servo is happy. This can go beyond hunting (slow) to nervous (rapid), and even to │ │ │ │ │ squealing which is easy to confuse with oscillation caused by improper tuning. Better to be a count │ │ │ │ │ or two loose here at first, until you’ve been through gross tuning at least. │ │ │ │ │ Example of calculating machine units per encoder pulse to use in deciding DEADBAND value: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 168 / 1332 │ │ │ │ │ │ │ │ │ │ • BIAS = 0.000 - This is used by hm2-servo and some others. Bias is a constant amount that is added │ │ │ │ │ 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. │ │ │ │ │ Bias is turned off when the PID loop is disabled, just like all other components of the output. │ │ │ │ │ • 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 │ │ │ │ │ @@ -9564,15 +9564,15 @@ │ │ │ │ │ linearize a DAC. Specifically, when writing outputs, the LinuxCNC first converts the desired output │ │ │ │ │ in quasi-SI units to raw actuator values, e.g., Volts for an amplifier DAC. This scaling looks like: │ │ │ │ │ │ │ │ │ │ The value for scale can be obtained analytically by doing a unit analysis, i.e., units are [output │ │ │ │ │ SI units]/[actuator units]. For example, on a machine with a velocity mode amplifier such that 1 V │ │ │ │ │ results in 250 mm/s velocity. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 169 / 1332 │ │ │ │ │ │ │ │ │ │ Note that the units of the offset are in machine units, e.g. mm/s, and they are pre-subtracted from │ │ │ │ │ the sensor readings. The value for this offset is obtained by finding the value of your output which │ │ │ │ │ yields 0.0 for the actuator output. If the DAC is linearized, this offset is normally 0.0. │ │ │ │ │ Skalierung und Offset können auch zur Linearisierung des DAC verwendet werden. Diese Werte spigeln dann die kombinierten Auswirkungen von Verstärkung, Nicht-Linearität des DAC, DACEinheiten usw. wider. │ │ │ │ │ @@ -9614,15 +9614,15 @@ │ │ │ │ │ section. For a linear joint one machine unit will be equal to the setting of LINEAR_UNITS. For an angular │ │ │ │ │ joint one unit is equal to the setting in ANGULAR_UNITS. A second number, if specified, is ignored. For │ │ │ │ │ example, on a 2000 counts per rev encoder, and 10 revs/inch gearing, and desired units of inch, we │ │ │ │ │ have: │ │ │ │ │ │ │ │ │ │ Diese Parameter sind relevant für Gelenke, die von Schrittmotoren gesteuert werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 170 / 1332 │ │ │ │ │ │ │ │ │ │ Warnung │ │ │ │ │ The following are custom INI file entries that you may find in a sample INI file or a wizard │ │ │ │ │ generated file. These are not used by the LinuxCNC software and meant only to put all the │ │ │ │ │ settings in one place. For more information on custom INI file entries see the Custom Sections │ │ │ │ │ @@ -9663,15 +9663,15 @@ │ │ │ │ │ The specifies the spindle number 0 … (num_spindles-1) │ │ │ │ │ The value of num_spindles is set by [TRAJ]SPINDLES= . │ │ │ │ │ By default maximum velocity of the spindle in forward and reverse is approximately 2147483000 RPM. │ │ │ │ │ By default minimum velocity of the spindle in forward and reverse is 0 RPM. │ │ │ │ │ By default the increment is 100 RPM. │ │ │ │ │ You change these default by setting the following INI variables: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 171 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ These settings are for the motion controller component. Control screens can limit these settings │ │ │ │ │ further. │ │ │ │ │ • MAX_FORWARD_VELOCITY = 20000 The maximum spindle speed (in rpm) for the specified spindle. │ │ │ │ │ @@ -9713,15 +9713,15 @@ │ │ │ │ │ • TOOL_CHANGE_QUILL_UP = 1 - The Z axis will be moved to machine zero prior to the tool change │ │ │ │ │ when the value is 1. This is the same as issuing a G0 G53 Z0. │ │ │ │ │ • 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. │ │ │ │ │ • RANDOM_TOOLCHANGER = 1 - This is for machines that cannot place the tool back into the pocket it │ │ │ │ │ came from. For example, machines that exchange the tool in the active pocket with the tool in the │ │ │ │ │ spindle. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 172 / 1332 │ │ │ │ │ │ │ │ │ │ 4.5 Konfiguration der Referenzfahrt (engl. homing) │ │ │ │ │ 4.5.1 Übersicht │ │ │ │ │ Die Referenzfahrt legt den Nullpunkt der G53-Maschinenkoordinaten fest. Softlimits werden relativ │ │ │ │ │ zum Maschinenursprung definiert. Eine korrekt konfigurierte und funktionierende Maschine bewegt │ │ │ │ │ @@ -9757,15 +9757,15 @@ │ │ │ │ │ • If using a separate homing switch, it is possible to start homing on the wrong side of the home │ │ │ │ │ switch, which combined with HOME_IGNORE_LIMITS option will lead to a hard crash. You can │ │ │ │ │ avoid this by making the home switch toggle its state when the trip dog is on a particular side until │ │ │ │ │ it returns passed the trip point again. Said another way, the home switch state must represent the │ │ │ │ │ position of the dog relative to the switch (ie before or after the switch), and must stay that way even │ │ │ │ │ if the dog coasts past the switch in the same direction. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 173 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ While it is possible to use LinuxCNC with the G53 machine origin outside the soft machine limits, if │ │ │ │ │ you use G28 or G30 without setting the parameters it goes to the origin by default. This would trip │ │ │ │ │ the limit switches before getting to position. │ │ │ │ │ @@ -9783,15 +9783,15 @@ │ │ │ │ │ • A<->B ist die negative weiche Grenze (MIN_LIMITS) = -3 Einheiten │ │ │ │ │ • B<->C ist der Home_Offset (HOME_OFFSET) = -2,3 Einheiten │ │ │ │ │ • B<->D ist die positive weiche Grenze (MAX_LIMITS) = 7 Einheiten │ │ │ │ │ • A<->D ist der gesamte Weg = 10 Einheiten │ │ │ │ │ • Der Abstand zwischen den Endschaltern und Soft Limits (-L<->A und D<-+L) wird in diesem Beispiel vergrößert │ │ │ │ │ • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 174 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Die Referenzfahrt legt das G53-Koordinatensystem fest. Der Maschinenursprung (Nullpunkt) kann an │ │ │ │ │ einer beliebigen Stelle liegen, aber wenn Sie den Nullpunkt auf die negative weiche Grenze setzen, │ │ │ │ │ werden alle G53-Koordinaten positiv, was wahrscheinlich am einfachsten zu merken ist. Dazu setzen │ │ │ │ │ @@ -9812,32 +9812,32 @@ │ │ │ │ │ • B<->C ist der Home_Offset (HOME_OFFSET) = -0,7 Einheiten. │ │ │ │ │ • B<->D ist die positive weiche Grenze (MAX_LIMITS) 10 Einheiten. │ │ │ │ │ • A<->D ist der gesamte Weg = 10 Einheiten. │ │ │ │ │ • Der Abstand zwischen den Endschaltern und den Soft Limits (-L<->A und D<->+L) wird in diesem │ │ │ │ │ Beispiel vergrößert. │ │ │ │ │ • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 175 / 1332 │ │ │ │ │ │ │ │ │ │ 4.5.5 Referenzfahrt Abfolge │ │ │ │ │ │ │ │ │ │ There are four possible homing sequences defined by the sign of HOME_SEARCH_VEL and HOME_LATCH_V │ │ │ │ │ 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 │ │ │ │ │ signs. For a more detailed description of what each configuration parameter does, see the following │ │ │ │ │ section. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 176 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.8: Referenzfahrt-Abläufe │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 177 / 1332 │ │ │ │ │ │ │ │ │ │ 4.5.6 Konfiguration │ │ │ │ │ Im Folgenden wird genau festgelegt, wie sich die Stammfolge verhält. Sie werden in einem [JOINT_n]Abschnitt der INI-Datei definiert. │ │ │ │ │ Referenzfahrt │ │ │ │ │ Typ │ │ │ │ │ @@ -9895,15 +9895,15 @@ │ │ │ │ │ 4.5.6.3 HOME_FINAL_VEL │ │ │ │ │ Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde. │ │ │ │ │ Sie gibt die Geschwindigkeit an, die LinuxCNC verwendet, wenn es seine Bewegung von HOME_OFFSET │ │ │ │ │ zur HOME-Position durchführt. Wenn die HOME_FINAL_VEL in der INI-Datei fehlt, dann wird die │ │ │ │ │ maximale Gelenkgeschwindigkeit verwendet, um diese Bewegung zu machen. Der Wert muss eine │ │ │ │ │ positive Zahl sein. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 178 / 1332 │ │ │ │ │ │ │ │ │ │ 4.5.6.4 HOME_IGNORE_LIMITS │ │ │ │ │ Can hold the values YES / NO. The default value for this parameter is NO. This flag determines whether │ │ │ │ │ LinuxCNC will ignore the limit switch input for this joint while homing. This setting will not ignore │ │ │ │ │ limit inputs for other joints. If you do not have a separate home switch set this to YES and connect the │ │ │ │ │ @@ -9935,15 +9935,15 @@ │ │ │ │ │ switch or home switch then index pulse (depending on configuration), and setting the coordinate of │ │ │ │ │ that point to HOME_OFFSET, LinuxCNC makes a move to HOME as the final step of the homing │ │ │ │ │ process. The default value is zero. Note that even if this parameter is the same as HOME_OFFSET, │ │ │ │ │ the joint will slightly overshoot the latched position as it stops. Therefore there will always be a small │ │ │ │ │ move at this time (unless HOME_SEARCH_VEL is zero, and the entire search/latch stage was skipped). │ │ │ │ │ This final move will be made at the joint’s maximum velocity unless HOME_FINAL_VEL has been set. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 179 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Der Unterschied zwischen HOME_OFFSET und HOME besteht darin, dass HOME_OFFSET zunächst die │ │ │ │ │ Ursprungsposition und den Maßstab auf der Maschine festlegt, indem der HOME_OFFSET -Wert auf │ │ │ │ │ die Position angewendet wird, an der die Ausgangsposition gefunden wurde, und dann HOME angibt, │ │ │ │ │ @@ -9978,15 +9978,15 @@ │ │ │ │ │ Wenn HOME_SEQUENCE nicht angegeben ist, wird das Gelenk nicht durch die HOME ALL-Sequenz referenziert (sondern kann durch einzelne gelenkspezifische Referenzierungsbefehle referenziert werden). │ │ │ │ │ │ │ │ │ │ Die anfängliche HOME_SEQUENCE-Nummer kann 0, 1 (oder -1) sein. Der absolute Wert der Sequenznummern muss um eins erhöht werden - das Überspringen von Sequenznummern wird nicht unterstützt. Wenn eine Sequenznummer weggelassen wird, stoppt HOME ALL die Referenzfahrt nach │ │ │ │ │ Abschluss der letzten gültigen Sequenznummer. │ │ │ │ │ Negative HOME_SEQUENCE values indicate that joints in the sequence should synchronize the │ │ │ │ │ final move to [JOINT_n]HOME by waiting until all joints in the sequence are ready. If any joint has a │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 180 / 1332 │ │ │ │ │ │ │ │ │ │ negative HOME_SEQUENCE value, then all joints with the same absolute value (positive or negative) │ │ │ │ │ of the HOME_SEQUENCE item value will synchronize the final move. │ │ │ │ │ Eine negative HOME_SEQUENCE gilt auch für das Ausführen einer Referenzfahrt eines einzelnen │ │ │ │ │ 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 │ │ │ │ │ @@ -10029,15 +10029,15 @@ │ │ │ │ │ If this setting is true, this joint becomes unhomed whenever the machine transitions into the OFF │ │ │ │ │ state. This is appropriate for any joint that does not maintain position when the joint drive is off. Some │ │ │ │ │ stepper drives, especially microstep drives, may need this. │ │ │ │ │ 4.5.6.13 LOCKING_INDEXER │ │ │ │ │ Handelt es sich bei diesem Gelenk um einen verriegelnden Drehindexer, wird es vor der Referenzfahrt │ │ │ │ │ entriegelt und danach verriegelt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 181 / 1332 │ │ │ │ │ │ │ │ │ │ 4.5.6.14 Immediate Homing │ │ │ │ │ If a joint does not have home switches or does not have a logical home position like a rotary joint and │ │ │ │ │ you want that joint to home at the current position when the ”Home All” button is pressed in the AXIS │ │ │ │ │ GUI, then the following INI entries for that joint are needed. │ │ │ │ │ @@ -10080,15 +10080,15 @@ │ │ │ │ │ net home_seq_s32 => ini.1.home_sequence │ │ │ │ │ ... │ │ │ │ │ # allow_jjog: von einem virtuellen Bedienfeld oder Hardware-Schalter erzeugter Pin │ │ │ │ │ net hsequence_select <= allow_jog │ │ │ │ │ net hsequence_select => home_sequence_mux.sel │ │ │ │ │ net hsequence_select => motion.homing-inhibit │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 182 / 1332 │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ INI HAL-Pins (wie ini.N.home_sequence) sind nicht verfügbar, bis milltask startet, so dass die Ausführung der oben genannten HAL-Befehle mit Hilfe einer postgui HAL-Datei oder eines verzögerten │ │ │ │ │ [APPLICATION]APP=-Skripts verschoben werden sollte. │ │ │ │ │ │ │ │ │ │ @@ -10118,15 +10118,15 @@ │ │ │ │ │ wird ein Handshake erwartet, um zuverlässige Signalisierung zu gewährleisten, und optional lockstep Verhalten zu erzwingen. Handshaking ist optional und kann in HAL überbrückt werden, wenn │ │ │ │ │ es nicht benötigt wird. │ │ │ │ │ • Rückwärtskompatibilität: Ein Werkzeugwechsler, der die iocontrol emc-abort-Zeile ignoriert und an │ │ │ │ │ der alten Handhabung festhält, wird ”weiterhin funktionieren” (vorbehaltlich einer Race Condition) │ │ │ │ │ Wenn Sie strenge Zeitvorgaben haben oder einfach mehr E/A benötigen, sollten Sie stattdessen die │ │ │ │ │ Echtzeit-E/A verwenden, die von motion bereitgestellt wird. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 183 / 1332 │ │ │ │ │ │ │ │ │ │ 4.6.2 Anwendung │ │ │ │ │ INI-Datei Optionen: │ │ │ │ │ [EMCIO] Abschnitt │ │ │ │ │ PROTOCOL_VERSION = 2 │ │ │ │ │ @@ -10157,15 +10157,15 @@ │ │ │ │ │ • iocontrol.0.tool-number (s32, out) Current tool number │ │ │ │ │ • iocontrol.0.tool-prep-number (s32, out) The number of the next tool, from the RS274NGC T-word │ │ │ │ │ • 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. │ │ │ │ │ • iocontrol.0.tool-prepare (bit, out) TRUE when a Tn tool prepare is requested. │ │ │ │ │ • iocontrol.0.tool-prepared (bit, in) Should be driven TRUE when a tool prepare is completed. │ │ │ │ │ • iocontrol.0.user-enable-out (bit, out) FALSE when an internal E-stop condition exists │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 184 / 1332 │ │ │ │ │ │ │ │ │ │ • iocontrol.0.user-request-enable (bit, out) TRUE when the user has requested that E-stop be cleared │ │ │ │ │ Zusätzliche Pins hinzugefügt durch I/O Control V2 │ │ │ │ │ • emc-abort: (bit, out) signals emc-originated abort to toolchanger. │ │ │ │ │ • 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. │ │ │ │ │ @@ -10198,15 +10198,15 @@ │ │ │ │ │ die Abort-Handshake-Funktion nicht benötigen, jumpen Sie sie wie folgt: │ │ │ │ │ net emc-abort-ack iocontrol.0.emc-abort iocontrol.0.emc-abort-ack │ │ │ │ │ │ │ │ │ │ Der emc-reason-Pin wird als gültig angesehen, wenn emc-abort TRUE ist. │ │ │ │ │ Die Auslöser-Codes sind wie folgt für LinuxCNC intern generiert Abbrüche (siehe emc.hh ca Zeile │ │ │ │ │ 321): │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 185 / 1332 │ │ │ │ │ │ │ │ │ │ • EMC_ABORT_TASK_EXEC_ERROR = 1, │ │ │ │ │ • EMC_ABORT_AUX_ESTOP = 2, │ │ │ │ │ • EMC_ABORT_MOTION_OR_IO_RCS_ERROR = 3, │ │ │ │ │ • EMC_ABORT_TASK_STATE_OFF = 4, │ │ │ │ │ @@ -10237,15 +10237,15 @@ │ │ │ │ │ die Standardebene zu ändern, fügen Sie die folgende Zeile in die INI-Datei im Abschnitt RS274NGC │ │ │ │ │ ein. │ │ │ │ │ RS274NGC_STARTUP_CODE = G18 │ │ │ │ │ │ │ │ │ │ Die obigen Angaben können in einem G-Code-Programm überschrieben werden, daher sollten Sie │ │ │ │ │ wichtige Dinge immer in der Präambel der G-Code-Datei festlegen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 186 / 1332 │ │ │ │ │ │ │ │ │ │ 4.7.2 INI-Einstellungen │ │ │ │ │ Die folgenden INI-Einstellungen werden für den Drehmaschinenmodus in Axis zusätzlich zu den normalen Einstellungen in der INI-Datei benötigt oder ersetzen diese. Diese historischen Einstellungen │ │ │ │ │ verwenden die Identitätskinematik (trivkins) und drei Gelenke (0,1,2) entsprechend den Koordinaten │ │ │ │ │ x, y, z. Das Gelenk 1 für die unbenutzte y-Achse ist erforderlich, wird aber in diesen historischen Konfigurationen nicht verwendet. Simulierte Drehmaschinen-Konfigurationen können diese historischen │ │ │ │ │ @@ -10287,15 +10287,15 @@ │ │ │ │ │ [JOINT_1] │ │ │ │ │ ... │ │ │ │ │ [AXIS_X] │ │ │ │ │ ... │ │ │ │ │ [AXIS_Z] │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 187 / 1332 │ │ │ │ │ │ │ │ │ │ 4.8 Stepper Schnellstart │ │ │ │ │ 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 │ │ │ │ │ and get the latest updates for LinuxCNC and Ubuntu before continuing. │ │ │ │ │ │ │ │ │ │ @@ -10355,15 +10355,15 @@ │ │ │ │ │ 10 │ │ │ │ │ │ │ │ │ │ Typ. │ │ │ │ │ Wenn UnterFunktion │ │ │ │ │ schiedlich │ │ │ │ │ X End/Referenzschalter │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 188 / 1332 │ │ │ │ │ │ │ │ │ │ AusgangsPin │ │ │ │ │ 2 │ │ │ │ │ │ │ │ │ │ Typ. │ │ │ │ │ @@ -10448,15 +10448,15 @@ │ │ │ │ │ • Motor Teeth and Leadscrew Teeth - ist, wenn Sie eine Untersetzung (Zahnrad, Kette, Zahnriemen │ │ │ │ │ usw.) zwischen Motor und Leitspindel haben. Wenn nicht, setzen Sie beide auf 1. │ │ │ │ │ • Leitspindelsteigung’ - 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 │ │ │ │ │ Millimetern einstellen, sind es Millimeter pro Umdrehung. │ │ │ │ │ Das Nettoergebnis, nach dem Sie suchen, ist die Anzahl der CNC-Ausgabeschritte, die erforderlich │ │ │ │ │ sind, um eine Benutzereinheit (Zoll oder mm) zu bewegen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 189 / 1332 │ │ │ │ │ │ │ │ │ │ Beispiel 4.1 Einheiten Zoll │ │ │ │ │ Stepper = 200 Schritte pro Umdrehung │ │ │ │ │ Antrieb = 10 Mikroschritte pro Schritt │ │ │ │ │ Motorverzahnung = 20 │ │ │ │ │ @@ -10484,15 +10484,15 @@ │ │ │ │ │ This chapter describes some of the more common settings for manually setting up a stepper based │ │ │ │ │ system. These systems are using stepper motors with drives that accept step & direction signals. │ │ │ │ │ Es ist eines der einfacheren Systeme, da die Motoren im offenen Regelkreis laufen (keine Rückmeldung von den Motoren), aber das System muss richtig konfiguriert werden, damit die Motoren nicht │ │ │ │ │ abgewürgt werden oder Schritte verlieren. │ │ │ │ │ Most of this chapter is based on a sample config released along with LinuxCNC. The config is called │ │ │ │ │ stepper_inch, and can be found by running the Configuration Picker. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 190 / 1332 │ │ │ │ │ │ │ │ │ │ 4.9.2 Maximale Schrittgeschwindigkeit │ │ │ │ │ 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’ MAX_VELOCITY and │ │ │ │ │ its INPUT_SCALE. If the requested step rate is not attainable, following errors will occur, particularly │ │ │ │ │ during fast jogs and G0 moves. │ │ │ │ │ @@ -10530,15 +10530,15 @@ │ │ │ │ │ loadrt hal_parport cfg=”0x0378” │ │ │ │ │ # │ │ │ │ │ # als nächstes die Parport-Funktionen mit den Threads verbinden │ │ │ │ │ # lese zuerst die Eingänge │ │ │ │ │ addf parport.0.read base-thread 1 │ │ │ │ │ # Ausgaben zuletzt schreiben │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 191 / 1332 │ │ │ │ │ │ │ │ │ │ addf parport.0.write base-thread -1 │ │ │ │ │ # │ │ │ │ │ # schließlich physische Pins mit den Signalen verbinden Netz │ │ │ │ │ net Xstep => parport.0.pin-03-out │ │ │ │ │ @@ -10587,15 +10587,15 @@ │ │ │ │ │ ### Beispiel für separate Endschalter auf der X-Achse (Achse 0) │ │ │ │ │ ### │ │ │ │ │ # net X-neg-limit parport.0.pin-11-in => joint.0.neg-lim-sw-in │ │ │ │ │ # net X-pos-limit parport.0.pin-12-in => joint.0.pos-lim-sw-in │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 192 / 1332 │ │ │ │ │ │ │ │ │ │ ### │ │ │ │ │ ### Genau wie beim Beispiel der gemeinsamen Referenzschalter können Sie auch │ │ │ │ │ ### Endschalter miteinander verbinden. Achten Sie darauf, wenn Sie einen auslösen, wird ←LinuxCNC stoppen, │ │ │ │ │ ### kann Ihnen aber nicht sagen, welche Schalter/Achse verantwortlich ist. Seien Sie ←vorsichtig, wenn die den Betrieb │ │ │ │ │ @@ -10628,15 +10628,15 @@ │ │ │ │ │ Tipp: Achten Sie darauf, dass Sie nicht mehr als ein Signal an denselben Pin anschließen. │ │ │ │ │ 4.9.3.4 Ändern der Polarität eines Signals │ │ │ │ │ If external hardware expects an ”active low” signal, set the corresponding -invert parameter. For │ │ │ │ │ instance, to invert the spindle control signal: │ │ │ │ │ setp parport.0.pin-09-invert TRUE │ │ │ │ │ 4 The fastest thread in the LinuxCNC setup, usually the code gets executed every few tens of microseconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 193 / 1332 │ │ │ │ │ │ │ │ │ │ 4.9.3.5 Hinzufügen einer PWM-Spindeldrehzahlregelung │ │ │ │ │ Wenn Ihre Spindel durch ein PWM-Signal gesteuert werden kann, verwenden Sie die Komponente │ │ │ │ │ „pwmgen“, um das Signal zu erzeugen: │ │ │ │ │ loadrt pwmgen output_type=0 │ │ │ │ │ @@ -10673,15 +10673,15 @@ │ │ │ │ │ 4.10.1 Häufige Probleme │ │ │ │ │ 4.10.1.1 Stepper bewegt sich einen Schritt │ │ │ │ │ Der häufigste Grund, warum sich ein Schrittmotor bei einer Neuinstallation nicht bewegt, ist, dass die │ │ │ │ │ Schritt- und Richtungssignale vertauscht sind. Wenn Sie die Tasten ”Tippen vorwärts” und ”Tippen │ │ │ │ │ rückwärts” abwechselnd drücken und der Schrittmotor sich jedes Mal um einen Schritt und in dieselbe │ │ │ │ │ Richtung bewegt, haben Sie einen Anhaltspunkt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 194 / 1332 │ │ │ │ │ │ │ │ │ │ 4.10.1.2 Keine Stepper bewegen sich │ │ │ │ │ Viele Laufwerke haben einen Freigabe-Pin oder benötigen eine Ladungspumpe, um den Ausgang zu │ │ │ │ │ aktivieren. │ │ │ │ │ 4.10.1.3 Abstand nicht korrekt │ │ │ │ │ @@ -10717,15 +10717,15 @@ │ │ │ │ │ usually an indication that the BASE_PERIOD in the [EMCMOT] section of the ini file is set too low. You │ │ │ │ │ should run the Latency Test for an extended period of time to see if you have any delays that would │ │ │ │ │ cause this problem. If you used the StepConf Wizard, run it again, and test the Base Period Jitter again, │ │ │ │ │ and adjust the Base Period Maximum Jitter on the Basic Machine Information page. You might have to │ │ │ │ │ leave the test running for an extended period of time to find out if some hardware causes intermittent │ │ │ │ │ problems. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 195 / 1332 │ │ │ │ │ │ │ │ │ │ LinuxCNC verfolgt die Anzahl der CPU-Zyklen zwischen den Aufrufen des Echtzeit-Threads. Wenn ein │ │ │ │ │ Element Ihrer Hardware verursacht Verzögerungen oder Ihre Echtzeit-Threads zu schnell eingestellt │ │ │ │ │ sind, werden Sie diesen Fehler erhalten. │ │ │ │ │ Anmerkung │ │ │ │ │ @@ -10769,15 +10769,15 @@ │ │ │ │ │ #1000 = [#1000 - 1] │ │ │ │ │ o101 endwhile │ │ │ │ │ ( msg, Done...Z sollte genau .5” über dem Tisch liegen ) │ │ │ │ │ M2 │ │ │ │ │ │ │ │ │ │ ←- │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 196 / 1332 │ │ │ │ │ │ │ │ │ │ 4.11 Filter-Programme │ │ │ │ │ 4.11.1 Einführung │ │ │ │ │ Die meisten Bildschirme von LinuxCNC haben die Möglichkeit, geladene Dateien durch ein ”Filterprogramm” zu senden oder das Filterprogramm zu verwenden, um G-Code zu machen. Ein solcher Filter │ │ │ │ │ kann jede gewünschte Aufgabe erledigen: Etwas so Einfaches wie sicherzustellen, dass die Datei mit │ │ │ │ │ @@ -10798,15 +10798,15 @@ │ │ │ │ │ Es ist auch möglich, einen Interpreter anzugeben: │ │ │ │ │ PROGRAM_EXTENSION = .py Python Script │ │ │ │ │ py = python │ │ │ │ │ │ │ │ │ │ Auf diese Weise kann jedes Python-Skript geöffnet werden, und seine Ausgabe wird als G-Code behandelt. Ein solches Beispielskript ist unter ”nc_files/holecircle.py” verfügbar. Dieses Skript erzeugt │ │ │ │ │ G-Code für das Bohren einer Reihe von Löchern entlang des Umfangs eines Kreises. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 197 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 4.9: Kreisförmige Löcher │ │ │ │ │ Wenn das Filterprogramm Zeilen in der folgenden Form an stderr sendet: │ │ │ │ │ FILTER_PROGRESS=10 │ │ │ │ │ │ │ │ │ │ @@ -10826,15 +10826,15 @@ │ │ │ │ │ time.sleep(.1) │ │ │ │ │ # Ausgabe einer Zeile G-Code │ │ │ │ │ print(’G0 X1’, file=sys.stdout) │ │ │ │ │ # Fortschritt aktualisieren │ │ │ │ │ print(’FILTER_PROGRESS={}’.format(i), file=sys.stderr) │ │ │ │ │ except: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 198 / 1332 │ │ │ │ │ │ │ │ │ │ # Dies führt zu einer Fehlermeldung │ │ │ │ │ print(’Fehler; Aber das war nur ein Test’, file=sys.stderr) │ │ │ │ │ raise SystemExit(1) │ │ │ │ │ │ │ │ │ │ @@ -10876,15 +10876,15 @@ │ │ │ │ │ print(’You asked to cancel before finished.’, file=sys.stderr) │ │ │ │ │ raise SystemExit(1) │ │ │ │ │ def process(self): │ │ │ │ │ try: │ │ │ │ │ # nächste Codezeile erhalten │ │ │ │ │ codeLine = self.temp[self.line] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 199 / 1332 │ │ │ │ │ │ │ │ │ │ # die Zeile irgendwie verarbeiten │ │ │ │ │ # Verarbeiteten Code ausgeben │ │ │ │ │ print(codeLine, file=sys.stdout) │ │ │ │ │ self.line +=1 │ │ │ │ │ @@ -10907,15 +10907,15 @@ │ │ │ │ │ else: │ │ │ │ │ path = None │ │ │ │ │ app = QApplication(sys.argv) │ │ │ │ │ w = CustomDialog(path=path) │ │ │ │ │ w.show() │ │ │ │ │ sys.exit( app.exec_() ) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 200 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 5 │ │ │ │ │ │ │ │ │ │ HAL (Hardware Abstraction Layer) │ │ │ │ │ 5.1 HAL Introduction │ │ │ │ │ @@ -10939,15 +10939,15 @@ │ │ │ │ │ of what CNC machines need to do, or space craft. │ │ │ │ │ Any machine controller needs to know: │ │ │ │ │ • about its internal state and how this maps to the environment (machine coordinates, state of switches/regulators), │ │ │ │ │ • how actuators are expected to change that state, │ │ │ │ │ • how allow for updates of the internal state by sensors (encoders, probes). │ │ │ │ │ The HAL layer consists of parts (referred to as ”components”) that │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 201 / 1332 │ │ │ │ │ │ │ │ │ │ • are connected with each other, e.g., to update position data or have the planning algorithm tell the │ │ │ │ │ motors about the next step. │ │ │ │ │ • may know how to communicate with hardware, │ │ │ │ │ • may simply process incoming data and provide data outputs to other components, │ │ │ │ │ @@ -10980,15 +10980,15 @@ │ │ │ │ │ • from within C/C++ programs, │ │ │ │ │ but none of these interfaces are HAL itself. │ │ │ │ │ HAL itself is not a program, it consists of one or more lists of loaded programs (the components) that │ │ │ │ │ are periodically executed (in strict sequence), and an area of shared-memory that these components │ │ │ │ │ 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 │ │ │ │ │ between them (the ”signals” and ”pins”). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 202 / 1332 │ │ │ │ │ │ │ │ │ │ In principle multiple machines could share a common HAL to allow them to inter-operate, however │ │ │ │ │ the current implementation of LinuxCNC is limited to a single interpreter and a single Task module. │ │ │ │ │ Currently this is almost always a G-code interpreter and ”milltask” (which was found to also work well │ │ │ │ │ for lathes and adequately for robots) but these modules are selectable at load-time. With an increasing │ │ │ │ │ @@ -11029,15 +11029,15 @@ │ │ │ │ │ number of components that know a lot about CNC and present that information via pins. There are │ │ │ │ │ pins representing │ │ │ │ │ • static information about the machine │ │ │ │ │ • the current state of the machine │ │ │ │ │ – end switches │ │ │ │ │ – positions counted by steppers or as measured by encoders │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 203 / 1332 │ │ │ │ │ │ │ │ │ │ • recipients for instructions │ │ │ │ │ – manual control of machine position (”jogging”) │ │ │ │ │ – positions that stepper motors should take next │ │ │ │ │ In a analogy to electronic cables, pins can be wired, so the value changing in one pin serves as input to │ │ │ │ │ @@ -11079,15 +11079,15 @@ │ │ │ │ │ – developing over time. │ │ │ │ │ │ │ │ │ │ 5.1.3 HAL System Design │ │ │ │ │ HAL basiert auf traditionellen Systementwurfstechniken. HAL is based on the same principles │ │ │ │ │ that are used to design hardware circuits and systems, so it is useful to examine those principles first. │ │ │ │ │ Any system, including a CNC machine, consists of interconnected components. For the CNC machine, │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 204 / 1332 │ │ │ │ │ │ │ │ │ │ those components might be the main controller, servo amps or stepper drives, motors, encoders, limit │ │ │ │ │ switches, pushbutton pendants, perhaps a VFD for the spindle drive, a PLC to run a toolchanger, etc. │ │ │ │ │ The machine builder must aselect, mount and wire these pieces together to make a complete system. │ │ │ │ │ │ │ │ │ │ @@ -11109,15 +11109,15 @@ │ │ │ │ │ black boxes. During the design stage, he decides which parts he is going to use - steppers or servos, │ │ │ │ │ which brand of servo amp, what kind of limit switches and how many, etc. The integrator’s decisions │ │ │ │ │ about which specific components to use is based on what that component does and the specifications │ │ │ │ │ supplied by the manufacturer of the device. The size of a motor and the load it must drive will affect the │ │ │ │ │ choice of amplifier needed to run it. The choice of amplifier may affect the kinds of feedback needed │ │ │ │ │ by the amp and the velocity or position signals that must be sent to the amp from a control. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 205 / 1332 │ │ │ │ │ │ │ │ │ │ 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 │ │ │ │ │ pulses, PLC functionality, and a wide variety of other tasks. │ │ │ │ │ 5.1.3.2 Interconnection Design │ │ │ │ │ The designer of a hardware system not only selects the parts, he also decides how those parts will be │ │ │ │ │ @@ -11143,15 +11143,15 @@ │ │ │ │ │ HAL provides the software equivalents of a voltmeter, oscilloscope, signal generator, and other tools │ │ │ │ │ needed for testing and tuning a system. The same commands used to build the system can be used to │ │ │ │ │ make changes as needed. │ │ │ │ │ 5.1.3.5 Summary │ │ │ │ │ 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 │ │ │ │ │ section in the HAL UI Examples documentation. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 206 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.2: Remote-Start-Beispiel (Schema) │ │ │ │ │ The traditional hardware design as described above ends at the edge of the main control. Outside the │ │ │ │ │ control are a bunch of relatively simple boxes, connected together to do whatever is needed. Inside, │ │ │ │ │ the control is a big mystery — one huge black box that we hope works. │ │ │ │ │ @@ -11176,15 +11176,15 @@ │ │ │ │ │ because these terms are not arranged in alphabetical order. They are arranged by their relationship │ │ │ │ │ or flow in the HAL way of things. │ │ │ │ │ Komponente │ │ │ │ │ When we talked about hardware design, we referred to the individual pieces as parts, building │ │ │ │ │ blocks, black boxes, etc. The HAL equivalent is a component or HAL component. This document │ │ │ │ │ uses HAL component when there is likely to be confusion with other kinds of components, but │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 207 / 1332 │ │ │ │ │ │ │ │ │ │ normally just uses component. A HAL component is a piece of software with well-defined inputs, │ │ │ │ │ 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 │ │ │ │ │ be connected to a physical pin on the device to communicate with it, hence the names. But most │ │ │ │ │ often this is not the case. Imagine a retrofit of a manual lathe/mill. What LinuxCNC implements │ │ │ │ │ @@ -11224,15 +11224,15 @@ │ │ │ │ │ Both pins and signals have types, and signals can only be connected to pins of ffvthe same type. │ │ │ │ │ Currently there are 4 types, as follows: │ │ │ │ │ • bit - ein einzelner TRUE/FALSE- oder ON/OFF-Wert │ │ │ │ │ • float - eine 64-Bit-Fließkommazahl mit einer Auflösung von etwa 53 Bit und einem Dynamikbereich von über 1000 Bit. │ │ │ │ │ • u32 - eine 32-Bit-Ganzzahl ohne Vorzeichen, zulässige Werte sind 0 bis 4.294.967.295 │ │ │ │ │ • s32 - eine 32-Bit-Ganzzahl mit Vorzeichen, zulässige Werte sind -2.147.483.647 bis +2.147.483.647 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 208 / 1332 │ │ │ │ │ │ │ │ │ │ Funktion │ │ │ │ │ Real hardware components tend to act immediately on their inputs. For example, if the input │ │ │ │ │ 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 │ │ │ │ │ do whatever that component is supposed to do. In some cases, that code simply runs as part of │ │ │ │ │ @@ -11274,15 +11274,15 @@ │ │ │ │ │ de-energizes the coil. So the relay still switches rapidly between on and off, but at a rate determined │ │ │ │ │ by how often the PLC evaluates the rung. │ │ │ │ │ In HAL, the function is the code that evaluates the rung(s). In fact, the HAL-aware realtime version │ │ │ │ │ of ClassicLadder exports a function to do exactly that. Meanwhile, a thread is the thing that runs the │ │ │ │ │ function at specific time intervals. Just like you can choose to have a PLC evaluate all its rungs every │ │ │ │ │ 10 ms, or every second, you can define HAL threads with different periods. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 209 / 1332 │ │ │ │ │ │ │ │ │ │ What distinguishes one thread from another is not what the thread does - that is determined by which │ │ │ │ │ functions are connected to it. The real distinction is simply how often a thread runs. │ │ │ │ │ In LinuxCNC you might have a 50 µs thread and a 1 ms thread. These would be created based on │ │ │ │ │ BASE_PERIOD and SERVO_PERIOD, the actual times depend on the values in your INI file. │ │ │ │ │ @@ -11296,15 +11296,15 @@ │ │ │ │ │ 5.2.1 HAL Commands │ │ │ │ │ Ausführlichere Informationen finden Sie in der Manpage für halcmd: führen Sie man halcmd in einem │ │ │ │ │ Terminalfenster aus. │ │ │ │ │ To see the HAL configuration and check the status of pins and parameters use the HAL Configuration │ │ │ │ │ window on the Machine menu in AXIS. To watch a pin status open the Watch tab and click on each │ │ │ │ │ pin you wish to watch and it will be added to the watch window. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 210 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.3: HAL-Konfigurationsfenster │ │ │ │ │ │ │ │ │ │ 5.2.1.1 │ │ │ │ │ │ │ │ │ │ @@ -11324,15 +11324,15 @@ │ │ │ │ │ The addf command adds a function to a real-time thread. If the StepConf wizard was used to create │ │ │ │ │ the configuration, two threads have been created ( ̀ ̀base-thread ̀ ̀ and ̀ ̀servo-thread ̀ ̀). │ │ │ │ │ addf adds function functname to thread threadname. Default is to add the function in the order they │ │ │ │ │ are in the file. If position is specified, adds the function to that spot in the thread. A negative position │ │ │ │ │ indicates the position with respect to the end of the thread. For example 1 is start of thread, -1 is the │ │ │ │ │ end of the thread, -3 is third from the end. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 211 / 1332 │ │ │ │ │ │ │ │ │ │ For some functions it is important to load them in a certain order, like the parport read and write │ │ │ │ │ functions. The function name is usually the component name plus a number. In the following example │ │ │ │ │ the component or2 is loaded and show function shows the name of the or2 function. │ │ │ │ │ $ halrun │ │ │ │ │ @@ -11403,15 +11403,15 @@ │ │ │ │ │ ausgegangen, dass die Komponente denselben Namen hat wie das erste │ │ │ │ │ Argument des Befehls. │ │ │ │ │ um auf die Komponente zu warten, die den angegebenen haben wird. │ │ │ │ │ Dies gilt nur, wenn die Komponente eine Namensoption hat. │ │ │ │ │ um zu warten, bis das Programm beendet wird │ │ │ │ │ um den Rückgabewert des Programms zu ignorieren (mit -w) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ -n │ │ │ │ │ │ │ │ │ │ 212 / 1332 │ │ │ │ │ │ │ │ │ │ Benennt eine Komponente, sofern dies eine zulässige Option für diese │ │ │ │ │ Komponente ist. │ │ │ │ │ @@ -11443,15 +11443,15 @@ │ │ │ │ │ • Ein IN-Pin kann immer mit einem Signal verbunden werden. │ │ │ │ │ • Ein IO-Pin kann angeschlossen werden, sofern kein ein OUT-Pin am Signal anliegt. │ │ │ │ │ • Ein OUT-Pin kann nur angeschlossen werden, wenn es keine anderen OUT- oder IO-Pins am Signal │ │ │ │ │ gibt. │ │ │ │ │ Derselbe Signal-Name kann in mehreren Netzbefehlen verwendet werden, um zusätzliche Pins zu │ │ │ │ │ verbinden, solange die obigen Regeln beachtet werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 213 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.4: Signalrichtung (engl. signal direction) │ │ │ │ │ This example shows the signal xStep with the source being stepgen.0.out and with two readers, │ │ │ │ │ parport.0.pin-02-out and parport.0.pin-08-out. Basically the value of stepgen.0.out is sent to │ │ │ │ │ the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. │ │ │ │ │ @@ -11478,15 +11478,15 @@ │ │ │ │ │ │ │ │ │ │ The command setp sets the value of a pin or parameter. The valid values will depend on the type of │ │ │ │ │ the pin or parameter. It is an error if the data types do not match. │ │ │ │ │ Some components have parameters that need to be set before use. Parameters can be set before use │ │ │ │ │ or while running as needed. You cannot use setp on a pin that is connected to a signal. │ │ │ │ │ Syntax and Examples of setp │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 214 / 1332 │ │ │ │ │ │ │ │ │ │ setp │ │ │ │ │ setp parport.0.pin-08-out TRUE │ │ │ │ │ │ │ │ │ │ 5.2.1.6 │ │ │ │ │ @@ -11529,15 +11529,15 @@ │ │ │ │ │ linkps parport.0.pin-02-out X-Step │ │ │ │ │ │ │ │ │ │ The linkps command has been superseded by the net command. │ │ │ │ │ the command newsig creates a new HAL signal by the name and the data type of . │ │ │ │ │ Type must be bit, s32, u32 or float. Error if already exists. │ │ │ │ │ Syntax and Examples of newsig │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 215 / 1332 │ │ │ │ │ │ │ │ │ │ newsig │ │ │ │ │ newsig Xstep bit │ │ │ │ │ │ │ │ │ │ Weitere Informationen finden Sie im HAL-Handbuch oder in den Man Pages für halrun. │ │ │ │ │ @@ -11577,15 +11577,15 @@ │ │ │ │ │ geändert werden, wenn Sie den Stepper-Konfigurationsassistenten verwendet haben. │ │ │ │ │ • custom.hal This file is loaded next and before the GUI loads. This is where you put your custom HAL │ │ │ │ │ commands that you want loaded before the GUI is loaded. │ │ │ │ │ • custom_postgui.hal This file is loaded after the GUI loads. This is where you put your custom HAL │ │ │ │ │ commands that you want loaded after the GUI is loaded. Any HAL commands that use PyVCP widgets │ │ │ │ │ need to be placed here. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 216 / 1332 │ │ │ │ │ │ │ │ │ │ 5.2.4 HAL Parameter │ │ │ │ │ Two parameters are automatically added to each HAL component when it is created. These parameters │ │ │ │ │ allow you to scope the execution time of a component. │ │ │ │ │ .time │ │ │ │ │ @@ -11636,15 +11636,15 @@ │ │ │ │ │ │ │ │ │ │ out │ │ │ │ │ False │ │ │ │ │ False │ │ │ │ │ False │ │ │ │ │ True │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 5.2.5.2 │ │ │ │ │ │ │ │ │ │ 217 / 1332 │ │ │ │ │ │ │ │ │ │ not │ │ │ │ │ │ │ │ │ │ @@ -11700,15 +11700,15 @@ │ │ │ │ │ │ │ │ │ │ out │ │ │ │ │ True │ │ │ │ │ True │ │ │ │ │ True │ │ │ │ │ False │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 5.2.5.4 │ │ │ │ │ │ │ │ │ │ 218 / 1332 │ │ │ │ │ │ │ │ │ │ xor2 │ │ │ │ │ │ │ │ │ │ @@ -11763,15 +11763,15 @@ │ │ │ │ │ │ │ │ │ │ The weighted sum converts a group of bits into an integer. The conversion is the sum of the weights of │ │ │ │ │ the bits present plus any offset. It’s similar to binary coded decimal but with more options. The hold │ │ │ │ │ bit interrupts the input processing, so that the sum value no longer changes. │ │ │ │ │ Syntax for loading component weighted_sum │ │ │ │ │ loadrt weighted_sum wsum_sizes=size[,size,...] │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 219 / 1332 │ │ │ │ │ │ │ │ │ │ Creates groups of ̀ ̀weighted_sum ̀ ̀s, each with the given number of input bits (size). │ │ │ │ │ Um die ”weighted_sum” zu aktualisieren, muss der ”process_wsums” an einen Thread angehängt │ │ │ │ │ werden. │ │ │ │ │ Add process_wsums to servo thread │ │ │ │ │ @@ -11861,15 +11861,15 @@ │ │ │ │ │ loadrt and2 count=3 │ │ │ │ │ │ │ │ │ │ Configurations are more readable if you specify with the names= option for components where it is │ │ │ │ │ supported, e.g.: │ │ │ │ │ Example load command resulting in explicitly named components aa, ab, ac. │ │ │ │ │ loadrt and2 names=aa,ab,ac │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 220 / 1332 │ │ │ │ │ │ │ │ │ │ It can be a maintenance problem to keep track of the components and their names, since when you │ │ │ │ │ add (or remove) a component, you must find and update the single loadrt directive applicable to the │ │ │ │ │ component. │ │ │ │ │ TWOPASS processing is enabled by including an INI file parameter in the [HAL] section, │ │ │ │ │ @@ -11905,15 +11905,15 @@ │ │ │ │ │ In einem zweiten Durchlauf werden dann alle anderen in den HALFILES angegebenen LinuxCNCBefehle ausgeführt. Die addf-Befehle verknüpfen die Funktionen einer Komponente mit der ThreadAusführung und werden in diesem zweiten Durchgang in der Reihenfolge ihres Erscheinens zusammen mit anderen Befehlen ausgeführt. │ │ │ │ │ Die Optionen ”count=” und ”names=” können zwar verwendet werden, schließen sich aber gegenseitig aus - für ein bestimmtes Modul kann nur ein Typ angegeben werden. │ │ │ │ │ Die TWOPASS-Verarbeitung ist am effektivsten, wenn die Option ”names=” verwendet wird. Mit dieser Option können Sie eindeutige Namen vergeben, die als Gedächtnisstütze dienen oder anderweitig │ │ │ │ │ für die Konfiguration relevant sind. Wenn Sie z. B. eine Ableitungskomponente zur Schätzung der Geschwindigkeiten und Beschleunigungen an jeder (x,y,z)-Koordinate verwenden, führt die Verwendung │ │ │ │ │ der count=-Methode zu obskuren Komponentennamen wie ddt.0, ddt.1, ddt.2, usw. │ │ │ │ │ Alternativ können Sie auch die Option names= verwenden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 221 / 1332 │ │ │ │ │ │ │ │ │ │ loadrt ddt names=xvel,yvel,zvel │ │ │ │ │ ... │ │ │ │ │ loadrt ddt names=xaccel,yaccel,zaccel │ │ │ │ │ │ │ │ │ │ @@ -11955,15 +11955,15 @@ │ │ │ │ │ 5.3.3 Ausschließen von HAL-Dateien │ │ │ │ │ TWOPASS processing converts .hal files to equivalent .tcl files and uses haltcl to find loadrt and addf │ │ │ │ │ commands in order to accumulate and consolidate their usage. Loadrt parameters that conform to │ │ │ │ │ the simple names= (or count=) parameters accepted by the HAL Component Generator (halcompile) │ │ │ │ │ are expected. More complex parameter items included in specialized LinuxCNC components may not │ │ │ │ │ be handled properly. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 222 / 1332 │ │ │ │ │ │ │ │ │ │ A .hal file may be excluded from TWOPASS processing by including a magic comment line anywhere in │ │ │ │ │ the .hal file. The magic comment line must begin with the string: #NOTWOPASS. Files specified with this │ │ │ │ │ magic comment are sourced by halcmd using the -k (keep going if failure) and -v (verbose) options. │ │ │ │ │ Diese Ausschlussbestimmung kann verwendet werden, um Probleme zu isolieren oder um spezielle │ │ │ │ │ @@ -11998,15 +11998,15 @@ │ │ │ │ │ │ │ │ │ │ 5.4 HAL Tutorial │ │ │ │ │ 5.4.1 Einführung │ │ │ │ │ Die Konfiguration geht von der Theorie zum Gerät über - dem HAL-Gerät. Für diejenigen, die nur ein │ │ │ │ │ wenig Erfahrung mit Computerprogrammierung haben, ist dieser Abschnitt das ”Hello World” des │ │ │ │ │ HAL. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 223 / 1332 │ │ │ │ │ │ │ │ │ │ halrun kann verwendet werden, um ein funktionierendes System zu erstellen. Es ist ein Kommandozeilenoder Textdateiwerkzeug für Konfiguration und Tuning. │ │ │ │ │ │ │ │ │ │ 5.4.2 Halcmd │ │ │ │ │ halcmd ist ein Befehlszeilentool zum Manipulieren von HAL. Eine vollständigere Manpage existiert │ │ │ │ │ @@ -12046,15 +12046,15 @@ │ │ │ │ │ Linux. Unfortunately, each RTOS does things a little differently. │ │ │ │ │ Um diese Unterschiede zu beseitigen, hat das LinuxCNC-Team die RTAPI entwickelt, die einen einheitlichen Weg für Programme bietet, um mit dem RTOS zu kommunizieren. Wenn Sie ein Programmierer │ │ │ │ │ sind, der an den Interna von LinuxCNC arbeiten will, sollten Sie vielleicht linuxcnc/src/rtapi/rtapi.h │ │ │ │ │ studieren, um die API zu verstehen. Aber wenn Sie eine normale Person sind, ist alles, was Sie über │ │ │ │ │ RTAPI wissen müssen, dass es (und das RTOS) in den Speicher Ihres Computers geladen werden muss, │ │ │ │ │ bevor Sie etwas mit HAL machen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 224 / 1332 │ │ │ │ │ │ │ │ │ │ 5.4.3 Ein einfaches Beispiel │ │ │ │ │ 5.4.3.1 Laden einer Komponente │ │ │ │ │ Für dieses Tutorial gehen wir davon aus, dass Sie die Live-CD erfolgreich installiert haben und, falls │ │ │ │ │ Sie eine RIP footnote: [Run In Place, wenn die Quelldateien in ein Benutzerverzeichnis heruntergeladen wurden und direkt von dort aus kompiliert und ausgeführt werden] Installation verwenden, das │ │ │ │ │ @@ -12103,15 +12103,15 @@ │ │ │ │ │ halcmd at the same time (in different terminal windows for example), so the PID is added to the end of │ │ │ │ │ the name to make it unique. The list also shows the siggen component that we installed in the previous │ │ │ │ │ step. The RT under Type indicates that siggen is a realtime component. The User under Type indicates │ │ │ │ │ it is a non-realtime component. │ │ │ │ │ Next, let’s see what pins siggen makes available: │ │ │ │ │ Pins anzeigen │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 225 / 1332 │ │ │ │ │ │ │ │ │ │ halcmd: show pin │ │ │ │ │ Component Pins: │ │ │ │ │ Owner │ │ │ │ │ Type │ │ │ │ │ @@ -12206,15 +12206,15 @@ │ │ │ │ │ to any threads, so users is zero 1 . │ │ │ │ │ 5.4.3.3 Echtzeitcode zum Laufen bringen │ │ │ │ │ To actually run the code contained in the function siggen.0.update, we need a realtime thread. The │ │ │ │ │ component called threads that is used to create a new thread. Lets create a thread called ”test-thread” │ │ │ │ │ with a period of 1 ms (1,000 µs or 1,000,000 ns): │ │ │ │ │ 1 CodeAddr and Arg fields were used during development and should probably disappear. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 226 / 1332 │ │ │ │ │ │ │ │ │ │ halcmd: loadrt threads name1=test-thread period1=1000000 │ │ │ │ │ │ │ │ │ │ Mal sehen, ob das funktioniert: │ │ │ │ │ Threads anzeigen │ │ │ │ │ @@ -12309,15 +12309,15 @@ │ │ │ │ │ Owner │ │ │ │ │ Type Dir │ │ │ │ │ │ │ │ │ │ Value │ │ │ │ │ │ │ │ │ │ Name │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ 3 │ │ │ │ │ @@ -12430,15 +12430,15 @@ │ │ │ │ │ Das meiste, was wir bisher mit halcmd gemacht haben, war einfach das Anzeigen von Dingen mit dem │ │ │ │ │ show-Befehl. Zwei der Befehle haben jedoch tatsächlich Dinge verändert. Wenn wir komplexere Systeme mit HAL entwerfen, werden wir viele Befehle verwenden, um die Dinge genau so zu konfigurieren, │ │ │ │ │ wie wir sie haben wollen. HAL hat ein Gedächtnis wie ein Elefant und behält diese Konfiguration bei, │ │ │ │ │ bis wir es abschalten. Aber was ist beim nächsten Mal? Wir wollen nicht jedes Mal, wenn wir das │ │ │ │ │ System benutzen wollen, eine Reihe von Befehlen manuell eingeben. │ │ │ │ │ Saving the configuration of the entire HAL with a single command. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 228 / 1332 │ │ │ │ │ │ │ │ │ │ halcmd: save │ │ │ │ │ # Komponenten │ │ │ │ │ loadrt threads name1=test-thread period1=1000000 │ │ │ │ │ loadrt siggen │ │ │ │ │ @@ -12474,15 +12474,15 @@ │ │ │ │ │ file saved.hal to add it there). │ │ │ │ │ 5.4.3.8 HAL aus dem Speicher entfernen │ │ │ │ │ Wenn eine HAL-Sitzung unerwartet beendet wird, müssen Sie möglicherweise HAL entladen, bevor │ │ │ │ │ eine neue Sitzung beginnen kann. Geben Sie dazu den folgenden Befehl in ein Terminalfenster ein. │ │ │ │ │ Removing HAL │ │ │ │ │ halrun -U │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 5.4.4 │ │ │ │ │ │ │ │ │ │ 229 / 1332 │ │ │ │ │ │ │ │ │ │ Halmeter │ │ │ │ │ │ │ │ │ │ @@ -12520,27 +12520,27 @@ │ │ │ │ │ halcmd: start │ │ │ │ │ halcmd: setp siggen.0.amplitude 5 │ │ │ │ │ │ │ │ │ │ At this point we have the siggen component loaded and running. It’s time to start halmeter. │ │ │ │ │ Halmeter starten │ │ │ │ │ halcmd: loadusr halmeter │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 230 / 1332 │ │ │ │ │ │ │ │ │ │ The first window you will see is the ”Select Item to Probe” window. │ │ │ │ │ │ │ │ │ │ Abbildung 5.5: Halmeter Auswahlfenster │ │ │ │ │ This dialog has three tabs. The first tab displays all of the HAL pins in the system. The second one │ │ │ │ │ displays all the signals, and the third displays all the parameters. We would like to look at the pin │ │ │ │ │ siggen.0.cosine first, so click on it then click the ”Close” button. The probe selection dialog will │ │ │ │ │ close, and the meter looks something like the following figure. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 231 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.6: Halmeter-Fenster │ │ │ │ │ To change what the meter displays press the ”Select” button which brings back the ”Select Item to │ │ │ │ │ Probe” window. │ │ │ │ │ Sie sollten sehen, wie sich der Wert ändert, wenn siggen seine Kosinuswelle erzeugt. Das Halmeter │ │ │ │ │ @@ -12570,15 +12570,15 @@ │ │ │ │ │ The first command loads two step generators, both configured to generate stepping type 0. The second │ │ │ │ │ command loads our old friend siggen, and the third one creates two threads, a fast one with a period │ │ │ │ │ of 50 microseconds (µs) and a slow one with a period of 1 millisecond (ms). The fast thread doesn’t │ │ │ │ │ support floating point functions. │ │ │ │ │ As before, we can use halcmd show to take a look at the HAL. This time we have a lot more pins and │ │ │ │ │ parameters than before: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 232 / 1332 │ │ │ │ │ │ │ │ │ │ halcmd: show pin │ │ │ │ │ Component Pins: │ │ │ │ │ Owner │ │ │ │ │ Type Dir │ │ │ │ │ @@ -12760,15 +12760,15 @@ │ │ │ │ │ stepgen.capture-position.time │ │ │ │ │ stepgen.capture-position.tmax │ │ │ │ │ stepgen.make-pulses.time │ │ │ │ │ stepgen.make-pulses.tmax │ │ │ │ │ stepgen.update-freq.time │ │ │ │ │ stepgen.update-freq.tmax │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 233 / 1332 │ │ │ │ │ │ │ │ │ │ 5.4.5.2 Verbinden von Pins mit Signalen │ │ │ │ │ Wir haben also zwei Schrittimpulsgeneratoren und einen Signalgenerator. Nun ist es an der Zeit, │ │ │ │ │ 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ürden. Wir wollen den │ │ │ │ │ Tisch im Kreis bewegen. Dazu senden wir ein Kosinussignal an die X-Achse und ein Sinussignal an die │ │ │ │ │ @@ -12826,15 +12826,15 @@ │ │ │ │ │ signal comes from pin siggen.0.cosine, and goes to pin stepgen.0.velocity-cmd. │ │ │ │ │ 5.4.5.3 Einrichten der Echtzeitausführung - Threads und Funktionen │ │ │ │ │ Thinking about data flowing through ”wires” makes pins and signals fairly easy to understand. Threads │ │ │ │ │ and functions are a little more difficult. Functions contain the computer instructions that actually get │ │ │ │ │ things done. Thread are the method used to make those instructions run when they are needed. First │ │ │ │ │ let’s look at the functions available to us. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 234 / 1332 │ │ │ │ │ │ │ │ │ │ halcmd: show funct │ │ │ │ │ Exported Functions: │ │ │ │ │ Owner │ │ │ │ │ CodeAddr Arg │ │ │ │ │ @@ -12918,15 +12918,15 @@ │ │ │ │ │ ( │ │ │ │ │ slow ( │ │ │ │ │ │ │ │ │ │ Time, Max-Time ) │ │ │ │ │ 0, │ │ │ │ │ 0 ) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 49849 │ │ │ │ │ │ │ │ │ │ NO │ │ │ │ │ │ │ │ │ │ 1 siggen.0.update │ │ │ │ │ 2 stepgen.update-freq │ │ │ │ │ @@ -12977,41 +12977,41 @@ │ │ │ │ │ │ │ │ │ │ 5.4.6 Halscope │ │ │ │ │ Das vorherige Beispiel erzeugt einige sehr interessante Signale. Aber vieles von dem, was passiert, │ │ │ │ │ ist viel zu schnell, um es mit dem Halmeter zu sehen. Um einen genaueren Blick auf die Vorgänge │ │ │ │ │ im Inneren des HAL zu werfen, brauchen wir ein Oszilloskop. Glücklicherweise verfügt HAL über ein │ │ │ │ │ solches, genannt halscope. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 236 / 1332 │ │ │ │ │ │ │ │ │ │ Halscope has two parts - a realtime part that reads the HAL signals, and a non-realtime part that │ │ │ │ │ provides the GUI and display. However, you don’t need to worry about this because the non-realtime │ │ │ │ │ part will automatically load the realtime part when needed. │ │ │ │ │ With LinuxCNC running in a terminal you can start halscope with the following command. │ │ │ │ │ Halscope starten │ │ │ │ │ halcmd loadusr halscope │ │ │ │ │ │ │ │ │ │ Wenn LinuxCNC nicht läuft oder die Datei autosave.halscope nicht mit den Pins übereinstimmt, die │ │ │ │ │ im aktuell laufenden LinuxCNC verfügbar sind, öffnet sich das Scope-GUI-Fenster, unmittelbar gefolgt von einem Dialog Realtime function not linked, der wie die folgende Abbildung aussieht. Um die │ │ │ │ │ Abtastrate zu ändern, klicken Sie mit der linken Maustaste auf das Feld Samples. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 237 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.7: Dialog Echtzeitfunktion nicht verknüpft │ │ │ │ │ This dialog is where you set the sampling rate for the oscilloscope. For now we want to sample once │ │ │ │ │ per millisecond, so click on the 1.00 ms thread slow and leave the multiplier at 1. We will also leave │ │ │ │ │ the record length at 4000 samples, so that we can use up to four channels at one time. When you │ │ │ │ │ select a thread and then click OK, the dialog disappears, and the scope window looks something like │ │ │ │ │ the following figure. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 238 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.8: Fenster für den anfänglichen Geltungsbereich │ │ │ │ │ │ │ │ │ │ 5.4.6.1 Anschließen der Oszilloskop-Sonden │ │ │ │ │ An diesem Punkt ist Halscope einsatzbereit. Wir haben bereits eine Abtastrate und eine Aufzeichnungslänge gewählt, so dass der nächste Schritt darin besteht, zu entscheiden, was wir uns ansehen wollen. Dies ist gleichbedeutend mit dem Anschließen von ”virtuellen Oszilloskop-Sonden” an │ │ │ │ │ @@ -13020,34 +13020,34 @@ │ │ │ │ │ die Aufzeichnung verfügbare Speicher auf etwa 16.000 Samples festgelegt ist. │ │ │ │ │ Die Kanalschaltflächen befinden sich am unteren Rand des Halskop-Bildschirms. Wenn Sie auf die │ │ │ │ │ Schaltfläche ”1” klicken, wird das Dialogfeld ”Select Channel Source” (Kanalquelle auswählen) angezeigt, wie in der folgenden Abbildung dargestellt. Dieser Dialog ist dem von Halmeter verwendeten │ │ │ │ │ Dialog sehr ähnlich. Wir möchten uns die Signale ansehen, die wir zuvor definiert haben, also klicken │ │ │ │ │ wir auf die Registerkarte ”Signale”, und der Dialog zeigt alle Signale im HAL an (in diesem Beispiel │ │ │ │ │ nur zwei). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 239 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.9: Kanalquelle auswählen │ │ │ │ │ Um ein Signal auszuwählen, klicken Sie es einfach an. In diesem Fall möchten wir, dass auf Kanal 1 │ │ │ │ │ das Signal ”X-vel” angezeigt wird. Klicken Sie auf die Registerkarte ”Signale” und dann auf ”X-vel”. │ │ │ │ │ Das Dialogfeld schließt sich und der Kanal ist nun ausgewählt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 240 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.10: Signal auswählen │ │ │ │ │ Die Taste für Kanal 1 wird gedrückt, und die Kanalnummer 1 und die Bezeichnung ”X-vel” erscheinen │ │ │ │ │ unter der Tastenreihe. Diese Anzeige zeigt immer den ausgewählten Kanal an - Sie können mehrere │ │ │ │ │ Kanäle auf dem Bildschirm haben, aber der ausgewählte Kanal ist hervorgehoben, und die verschiedenen Steuerelemente wie vertikale Position und Skalierung funktionieren immer für den ausgewählten │ │ │ │ │ Kanal. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 241 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.11: Halscope │ │ │ │ │ To add a signal to channel 2, click the 2 button. When the dialog pops up, click the Signals tab, then │ │ │ │ │ click on Y-vel. We also want to look at the square and triangle wave outputs. There are no signals │ │ │ │ │ connected to those pins, so we use the Pins tab instead. For channel 3, select siggen.0.triangle and │ │ │ │ │ @@ -13057,15 +13057,15 @@ │ │ │ │ │ haben und 1000 Samples pro Sekunde erfassen, wird halscope etwa 2 Sekunden brauchen, um die │ │ │ │ │ Hälfte seines Puffers zu füllen. Während dieser Zeit zeigt ein Fortschrittsbalken direkt über dem │ │ │ │ │ Hauptbildschirm an, dass der Puffer gefüllt 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ösen, │ │ │ │ │ klicken Sie auf die Schaltfläche ”Erzwingen” im Abschnitt ”Auslöser” oben rechts. Sie sollten sehen, │ │ │ │ │ wie sich der Rest des Puffers füllt, und dann werden die erfassten Wellenformen auf dem Bildschirm │ │ │ │ │ angezeigt. Das Ergebnis sieht ungefähr so aus wie in der folgenden Abbildung. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 242 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.12: Erfasste Wellenformen │ │ │ │ │ The Selected Channel box at the bottom tells you that the purple trace is the currently selected one, │ │ │ │ │ channel 4, which is displaying the value of the pin siggen.0.square. Try clicking channel buttons 1 │ │ │ │ │ through 3 to highlight the other three traces. │ │ │ │ │ @@ -13074,30 +13074,30 @@ │ │ │ │ │ verwenden wir die ”Vertikal”-Steuerungen in der Box auf der rechten Seite des Bildschirms. Diese │ │ │ │ │ Regler wirken sich auf den aktuell ausgewählten Kanal aus. Bei der Einstellung der Verstärkung ist │ │ │ │ │ zu beachten, dass sie einen riesigen Bereich abdeckt - im Gegensatz zu einem echten Oszilloskop kann │ │ │ │ │ dieses Gerät Signale von sehr kleinen (Pico-Einheiten) bis zu sehr großen (Tera-Einheiten) anzeigen. │ │ │ │ │ Mit dem Positionsregler wird die angezeigte Kurve nur über die Höhe des Bildschirms nach oben und │ │ │ │ │ unten bewegt. Für größere Einstellungen sollte die Offset-Taste verwendet werden. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 243 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.13: Vertikale Einstellung │ │ │ │ │ Die große Schaltfläche Ausgewählter Kanal am unteren Rand zeigt an, dass Kanal 1 der aktuell ausgewählte Kanal ist und dass er mit dem X-vel-Signal übereinstimmt. Versuchen Sie, auf die anderen │ │ │ │ │ Kanäle zu klicken, um ihre Spuren sichtbar zu machen und sie mit dem Pos-Cursor verschieben zu │ │ │ │ │ können. │ │ │ │ │ 5.4.6.4 Triggering (automatisches Auslösen) │ │ │ │ │ Die Verwendung des Button ”Erzwingen” ist eine eher unbefriedigende Art, das Oszilloskop auszulösen. Um eine echte Triggerung einzurichten, klicken Sie auf die Schaltfläche ”Quelle” unten rechts. │ │ │ │ │ Daraufhin wird das Dialogfeld ”Trigger Source” (Triggerquelle) angezeigt, das einfach eine Liste aller │ │ │ │ │ derzeit angeschlossenen Sonden enthält. Wählen Sie eine Sonde für die Triggerung aus, indem Sie │ │ │ │ │ auf sie klicken. In diesem Beispiel verwenden wir Kanal 3, die Dreieckswelle, wie in der folgenden │ │ │ │ │ Abbildung dargestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 244 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.14: Dialogfeld Triggerquelle (engl. trigger source) │ │ │ │ │ Nachdem Sie die Triggerquelle eingestellt haben, können Sie den Triggerpegel und die Triggerposition mit den Schiebereglern im Feld ”Trigger” am rechten Rand einstellen. Der Pegel kann vom │ │ │ │ │ oberen bis zum unteren Rand des Bildschirms eingestellt werden und wird unter den Schiebereglern │ │ │ │ │ angezeigt. Die Position ist die Lage des Auslösepunkts innerhalb der gesamten Aufzeichnung. Ist der │ │ │ │ │ @@ -13106,15 +13106,15 @@ │ │ │ │ │ dem Auslösen passiert ist. Der Triggerpunkt ist als vertikale Linie in der Fortschrittsanzeige über │ │ │ │ │ dem Bildschirm sichtbar. Die Triggerpolarität kann durch Klicken auf die Schaltfläche direkt unter │ │ │ │ │ der Triggerpegelanzeige geändert werden. Sie wird dann absteigend. Beachten Sie, dass die Änderung der Triggerposition das Oszilloskop anhält, sobald die Position angepasst wurde, starten Sie das │ │ │ │ │ Oszilloskop erneut, indem Sie auf die Schaltfläche Normal des Run-Modus der Gruppe klicken. │ │ │ │ │ Nachdem wir nun die vertikalen Regler und die Triggerung eingestellt haben, sieht die Anzeige des │ │ │ │ │ Oszilloskops etwa wie in der folgenden Abbildung aus. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 245 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.15: Wellenformen mit Triggerung │ │ │ │ │ │ │ │ │ │ 5.4.6.5 Horizontale Anpassungen │ │ │ │ │ To look closely at part of a waveform, you can use the zoom slider at the top of the screen to expand │ │ │ │ │ @@ -13123,15 +13123,15 @@ │ │ │ │ │ the sampling rate. For example, we would like to look at the actual step pulses that are being generated │ │ │ │ │ in our example. Since the step pulses may be only 50 µs long, sampling at 1 kHz isn’t fast enough. To │ │ │ │ │ change the sample rate, click on the button that displays the number of samples and sample rate to │ │ │ │ │ bring up the Select Sample Rate dialog figure. For this example, we will click on the 50 µs thread, │ │ │ │ │ fast, which gives us a sample rate of about 20 kHz. Now instead of displaying about 4 seconds worth │ │ │ │ │ of data, one record is 4000 samples at 20 kHz, or about 0.20 seconds. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 246 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.16: Dialogfeld für Abtastrate │ │ │ │ │ │ │ │ │ │ 5.4.6.6 Weitere Kanäle │ │ │ │ │ Now let’s look at the step pulses. Halscope has 16 channels, but for this example we are using only │ │ │ │ │ @@ -13143,15 +13143,15 @@ │ │ │ │ │ channel 5, and choose pin stepgen.0.dir, then channel 6, and select stepgen.0.step. Then click run │ │ │ │ │ mode Normal to start the scope, and adjust the horizontal zoom to 5 ms per division. You should see │ │ │ │ │ the step pulses slow down as the velocity command (channel 1) approaches zero, then the direction │ │ │ │ │ pin changes state and the step pulses speed up again. You might want toincrease the gain on channel │ │ │ │ │ 1 to about 20 milli per division to better see the change in the velocity command. The result should │ │ │ │ │ look like the following figure. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 247 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 5.17: Schrittimpulse │ │ │ │ │ │ │ │ │ │ 5.4.6.7 Weitere Samples │ │ │ │ │ Wenn Sie mehr Samples auf einmal aufnehmen wollen, starten Sie realtime neu und laden Sie halscope │ │ │ │ │ @@ -13171,15 +13171,15 @@ │ │ │ │ │ 5.5.1 Verbinden von zwei Ausgängen │ │ │ │ │ To connect two outputs to an input you can use the or2 component. The or2 works like this, if either │ │ │ │ │ input to or2 is on then the or2 output is on. If neither input to or2 is on the or2 output is off. │ │ │ │ │ For example to have two PyVCP buttons both connected to one LED. │ │ │ │ │ The .xml file to instruct PyVCP to prepare a GUI that features two buttons (named ”button-1” │ │ │ │ │ and ”button-2”) and an LED (named ”led-1”). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 248 / 1332 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Starten Sie nun Ihre Konfiguration und sie sollte so aussehen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 470 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 8.26: AXIS Notaus │ │ │ │ │ Beachten Sie, dass Sie in diesem Beispiel wie im wirklichen Leben den ferngesteuerten Notaus (simuliert durch das Kontrollkästchen) deaktivieren müssen, bevor der AXIS Notaus oder der externe │ │ │ │ │ Reset Sie in den AUS-Modus versetzt. Wenn der Not-Aus-Schalter auf dem AXIS-Bildschirm gedrückt │ │ │ │ │ wurde, müssen Sie ihn erneut drücken, um ihn zu deaktivieren. Nach einem Notaus in AXIS können │ │ │ │ │ Sie keinen externen Reset durchführen. │ │ │ │ │ │ │ │ │ │ 8.3.4 Beispiel für Timer/Bedienung │ │ │ │ │ In diesem Beispiel verwenden wir den Operate-Block, um der Timer-Voreinstellung einen Wert zuzuweisen, der davon abhängt, ob ein Eingang ein- oder ausgeschaltet ist. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 471 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 8.27: Beispiel für Timer/Bedienung │ │ │ │ │ In diesem Fall ist %I0 wahr, so dass der voreingestellte Wert des Timers 10 ist. Wäre %I0 falsch, wäre │ │ │ │ │ der voreingestellte Zeitgeberwert 5. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 472 / 1332 │ │ │ │ │ │ │ │ │ │ Kapitel 9 │ │ │ │ │ │ │ │ │ │ Fortgeschrittene Themen │ │ │ │ │ 9.1 Kinematik │ │ │ │ │ @@ -23463,15 +23463,15 @@ │ │ │ │ │ X, joint 1 along axis Y, joint 2 along axis Z), and these machines are called Cartesian machines (or │ │ │ │ │ machines with Trivial Kinematics). These are the most common machines used in milling, but are not │ │ │ │ │ very common in other domains of machine control (e.g. welding: puma-typed robots). │ │ │ │ │ LinuxCNC unterstützt Achsen mit Namen: X Y Z A B C U V W. Die X Y Z-Achsen beziehen sich normalerweise auf die üblichen 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ätzliche Koordinaten, die │ │ │ │ │ üblicherweise kolinear zu den X-Y-Z-Achsen angeordnet sind. │ │ │ │ │ 1 Kinematics: a two way function to transform from Cartesian space to joint space. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 473 / 1332 │ │ │ │ │ │ │ │ │ │ 9.1.2 Triviale Kinematik │ │ │ │ │ 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ächlichen Aktoren der Maschine) trivial. Es handelt sich um │ │ │ │ │ eine einfache 1:1-Abbildung: │ │ │ │ │ pos->tran.x = joints[0]; │ │ │ │ │ @@ -23522,15 +23522,15 @@ │ │ │ │ │ bewerkstelligen, sofern die verwendeten Achsenbuchstaben keine Lücken aufweisen. │ │ │ │ │ Etwas komplizierter wird es, wenn der Maschine ein oder mehrere Achsenbuchstaben fehlen. Das │ │ │ │ │ Problem der fehlenden Achsenbuchstaben wird durch die Verwendung des Modulparameters coordinates= mit dem Modul trivkins gelöst. Jeder angegebenen Koordinate werden fortlaufend Gelenknummern zugewiesen. Eine Drehmaschine kann mit coordinates=xz beschrieben werden. Die Gelenkzuweisungen lauten dann: │ │ │ │ │ 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ält, ist die vorherige Behauptung falsch. Weil wir derzeit haben (Gelenk0 = │ │ │ │ │ X, Gelenk 1 = Z, Gelenk 2 = A), die davon ausgeht, dass Gelenk 1 = Y. Um dies in LinuxCNC zum Laufen zu bringen, definieren │ │ │ │ │ Sie einfach alle Achsen (XYZA), LinuxCNC verwendet dann eine einfache Schleife in HAL für nicht verwendete Y-Achse. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 474 / 1332 │ │ │ │ │ │ │ │ │ │ joints[0] = pos->tran.x │ │ │ │ │ joints[1] = pos->tran.z │ │ │ │ │ │ │ │ │ │ Die Verwendung des Parameters coordinates= wird für Konfigurationen empfohlen, bei denen die Achsenbuchstaben weggelassen werden. Fußnote:[ In der Vergangenheit unterstützte das Modul trivkins │ │ │ │ │ @@ -23551,15 +23551,15 @@ │ │ │ │ │ 9.1.3 Nicht-triviale Kinematik │ │ │ │ │ There can be quite a few types of machine setups (robots: puma, scara; hexapods etc.). Each of them is │ │ │ │ │ set up using linear and rotary joints. These joints don’t usually match with the Cartesian coordinates, │ │ │ │ │ therefore we need a kinematics function which does the conversion (actually 2 functions: forward and │ │ │ │ │ inverse kinematics function). │ │ │ │ │ Zur Veranschaulichung der obigen Ausführungen werden wir eine einfache Kinematik namens Zweibein (eine vereinfachte Version des Dreibeins, das eine vereinfachte Version des Hexapods ist) analysieren. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 475 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.1: Zweibein-Einrichtung │ │ │ │ │ Das Zweibein (engl. bipod), um das es hier geht, besteht aus zwei Motoren, die an einer Wand angebracht sind und an denen ein Gerät mit einem Draht aufgehängt ist. Die Gelenke sind in diesem Fall │ │ │ │ │ die Abstände zwischen den Motoren und dem Gerät (in der Abbildung mit AD und BD bezeichnet). │ │ │ │ │ Die Position der Motoren ist per Konvention festgelegt. Motor A befindet sich in (0,0), was bedeutet, │ │ │ │ │ @@ -23572,15 +23572,15 @@ │ │ │ │ │ 9.1.3.1 Vorwärts-Transformation │ │ │ │ │ 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) │ │ │ │ │ und das Dreieck (Dx,0), (Bx,0) und (Dx,Dy) bestimmt werden). │ │ │ │ │ Wir können leicht erkennen, dass: │ │ │ │ │ │ │ │ │ │ ebenso: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 476 / 1332 │ │ │ │ │ │ │ │ │ │ Wenn wir das eine von dem anderen abziehen, erhalten wir: │ │ │ │ │ │ │ │ │ │ und deshalb: │ │ │ │ │ │ │ │ │ │ @@ -23612,15 +23612,15 @@ │ │ │ │ │ 9.1.4 Details zur Implementierung │ │ │ │ │ Ein Kinematikmodul ist als HAL-Komponente implementiert und darf Pins und Parameter exportieren. │ │ │ │ │ Es besteht aus mehreren ”C”-Funktionen (im Gegensatz zu HAL-Funktionen): │ │ │ │ │ int kinematicsForward(const double *joint, EmcPose *world, │ │ │ │ │ const KINEMATICS_FORWARD_FLAGS *fflags, │ │ │ │ │ KINEMATICS_INVERSE_FLAGS *iflags) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 477 / 1332 │ │ │ │ │ │ │ │ │ │ Implementiert die forward kinematics function. │ │ │ │ │ int kinematicsInverse(const EmcPose * world, double *joints, │ │ │ │ │ const KINEMATICS_INVERSE_FLAGS *iflags, │ │ │ │ │ KINEMATICS_FORWARD_FLAGS *fflags) │ │ │ │ │ @@ -23655,15 +23655,15 @@ │ │ │ │ │ int rtapi_app_main(void) │ │ │ │ │ void rtapi_app_exit(void) │ │ │ │ │ │ │ │ │ │ Dies sind die Standardfunktionen zum Auf- und Abbauen von RTAPI-Modulen. │ │ │ │ │ Wenn sie in einer einzigen Quelldatei enthalten sind, können Kinematikmodule mit halcompile kompiliert und installiert werden. Weitere Informationen finden Sie in der Manpage halcompile(1) oder │ │ │ │ │ im HAL-Handbuch. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 478 / 1332 │ │ │ │ │ │ │ │ │ │ 9.1.4.1 Kinematikmodul unter Verwendung der Vorlage userkins.comp │ │ │ │ │ Eine weitere Möglichkeit, ein benutzerdefiniertes Kinematikmodul zu erstellen, ist die Anpassung der │ │ │ │ │ HAL Komponente userkins. Diese Vorlagenkomponente kann von einem Benutzer lokal geändert und │ │ │ │ │ mit halcompile erstellt werden. │ │ │ │ │ @@ -23693,15 +23693,15 @@ │ │ │ │ │ des Endeffektors in Bezug auf ein Referenzkoordinatensystem, wenn die Gelenkwinkel bekannt sind │ │ │ │ │ (vorwärtsgerichtete Kinematik), sowie die komplexere umgekehrte Berechnung der erforderlichen │ │ │ │ │ Gelenkwinkel für eine bestimmte Position und Ausrichtung des Endeffektors in Bezug auf das Referenzkoordinatensystem (inverse Kinematik). Die mathematischen Standardwerkzeuge, die für diese │ │ │ │ │ Berechnungen verwendet werden, sind Matrizen, d. h. Tabellen mit Parametern und Formeln, die den │ │ │ │ │ Umgang mit den Rotationen und Translationen erleichtern, die bei der Berechnung der Vorwärts- und │ │ │ │ │ Rückwärtskinematik erforderlich sind. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 479 / 1332 │ │ │ │ │ │ │ │ │ │ Detaillierte Kenntnisse der Mathematik sind für einen Serienroboter nicht erforderlich, da LinuxCNC │ │ │ │ │ ein Kinematikmodul bereitstellt, das einen Algorithmus namens ”genserkins” implementiert, um die │ │ │ │ │ Vorwärts- und Rückwärtskinematik für 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 │ │ │ │ │ tun kann. │ │ │ │ │ @@ -23736,15 +23736,15 @@ │ │ │ │ │ system” │ │ │ │ │ 2. a : positive distance, along X, between two joint axes specified in machine units (mm or inch) │ │ │ │ │ defined in the system’s INI file. │ │ │ │ │ 3. d : positive or negative length along Z (also in machine units) │ │ │ │ │ Die Parametersätze werden immer in der gleichen Reihenfolge abgeleitet und ein Satz wird durch │ │ │ │ │ das Setzen des d-Parameters abgeschlossen. Dadurch bleibt die Z-Achse unseres CS nicht auf das │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 480 / 1332 │ │ │ │ │ │ │ │ │ │ nächste Gelenk ausgerichtet! Dies mag verwirrend erscheinen, aber wenn man sich an diese Regel │ │ │ │ │ hält, erhält man einen funktionierenden Satz von Parametern. Sobald der d-Parameter gesetzt ist, │ │ │ │ │ muss die X-Achse unseres CS auf die Achse des nächsten Gelenks zeigen. │ │ │ │ │ │ │ │ │ │ @@ -23772,87 +23772,87 @@ │ │ │ │ │ │ │ │ │ │ 9.2.8 Detailliertes Beispiel (RV-6SL) │ │ │ │ │ Im Folgenden wird eine Methode beschrieben, wie man die erforderlichen ”modifizierten DH-Parameter” │ │ │ │ │ für einen Mitsubishi RV-6SDL ableitet und wie man die Parameter in der HAL-Datei einstellt, um sie │ │ │ │ │ mit der ”genserkins”-Kinematik in LinuxCNC zu verwenden. Die erforderlichen Abmessungen werden │ │ │ │ │ am besten aus einer vom Hersteller des Roboters zur Verfügung gestellten Maßzeichnung entnommen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 481 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 482 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 483 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 484 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 485 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 486 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 487 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 488 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 489 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 490 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 491 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 492 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 493 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 494 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 495 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 496 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 497 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 498 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 499 / 1332 │ │ │ │ │ │ │ │ │ │ 9.2.9 Danksagungen │ │ │ │ │ Vielen Dank an den Benutzer Aciera für den gesamten Text und die Grafiken für den RV-6SL-Roboter! │ │ │ │ │ │ │ │ │ │ 9.3 5-Axis Kinematics │ │ │ │ │ @@ -23883,29 +23883,29 @@ │ │ │ │ │ CAD/CAM-Systeme werden in der Regel verwendet, um die 3D-CAD-Modelle des Werkstücks sowie │ │ │ │ │ die CAM-Daten für die Eingabe in die CNC-5-Achsen-Maschine zu erzeugen. Die Daten zur Werkzeugoder Fräserposition (CL) setzen sich aus der Position der Fräserspitze und der Ausrichtung des Fräsers │ │ │ │ │ relativ zum Werkstückkoordinatensystem zusammen. Zwei Vektoren, wie sie von den meisten CAMSystemen erzeugt werden und in Abb. 1 dargestellt sind, enthalten diese Informationen: │ │ │ │ │ │ │ │ │ │ Der K-Vektor entspricht dem dritten Vektor der Pose-Matrix E6 , die in der 6-Achsen-Roboterkinematik │ │ │ │ │ [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 ”.nci” enthalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 500 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.2: Standortdaten des Fräsers │ │ │ │ │ │ │ │ │ │ 9.3.4 Translations- und Rotationsmatrizen │ │ │ │ │ Homogene Transformationen bieten eine einfache Möglichkeit, die Mathematik der Mehrachsenkinematik von Maschinen zu beschreiben. Eine Transformation des Raums H ist eine 4x4-Matrix und kann │ │ │ │ │ Translations- und Rotationstransformationen darstellen. Wird ein Punkt x,y,x durch einen Vektor u = │ │ │ │ │ {x,y,z,1}T beschrieben, so wird seine Transformation v durch das Matrixprodukt │ │ │ │ │ │ │ │ │ │ Es gibt vier grundlegende Transformationsmatrizen, auf die sich die 5-Achsen-Kinematik stützen │ │ │ │ │ kann: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 501 / 1332 │ │ │ │ │ │ │ │ │ │ Die Matrix T(a,b,c) impliziert eine Verschiebung in den Koordinatenrichtungen X, Y und Z um die │ │ │ │ │ Beträge a, b bzw. c. Die R-Matrizen implizieren Rotationen des Winkels theta um die X-, Y- bzw. ZKoordinatenachse. Die Symbole ”C” und ”S” beziehen sich auf die Kosinus- bzw. Sinusfunktionen. │ │ │ │ │ │ │ │ │ │ 9.3.5 Tisch Dreh-/Schwenkkonfigurationen mit 5 Achsen (engl. Table Rotary/Tilting 5-Axis Configurations) │ │ │ │ │ @@ -23913,15 +23913,15 @@ │ │ │ │ │ montiert. Typischerweise werden zwei Formen verwendet: │ │ │ │ │ • Ein Drehtisch, der sich um die vertikale Z-Achse dreht (C-Drehung, sekundär), ist auf einem Kipptisch montiert, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, primär). Das Werkstück │ │ │ │ │ ist auf dem Drehtisch montiert. │ │ │ │ │ • Ein Kipptisch, der sich um die X- oder Y-Achse dreht (A- oder B-Drehung, sekundär), ist auf einem │ │ │ │ │ Drehtisch montiert, der sich um die Z-Achse dreht (C-Drehung, primär), wobei das Werkstück auf │ │ │ │ │ dem Kipptisch liegt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 502 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.3: Allgemeine Konfiguration und Koordinatensysteme │ │ │ │ │ Eine mehrachsige Maschine kann als eine Reihe von Gliedern betrachtet werden, die durch Gelenke │ │ │ │ │ verbunden sind. Durch die Einbettung eines Koordinatenrahmens in jedes Glied der Maschine und │ │ │ │ │ die Verwendung homogener Transformationen können wir die relative Position und Orientierung zwischen diesen Koordinatenrahmen beschreiben │ │ │ │ │ @@ -23931,46 +23931,46 @@ │ │ │ │ │ Im Allgemeinen kann eine solche Transformation wie folgt aussehen: │ │ │ │ │ │ │ │ │ │ wobei jede Matrix i-1 Aj eine Translationsmatrix T oder eine Rotationsmatrix R der Form (2,3) ist. │ │ │ │ │ Die Matrixmultiplikation ist ein einfacher Vorgang, bei dem die Elemente jeder Zeile der linken Matrix │ │ │ │ │ A mit den Elementen jeder Spalte der rechten Matrix B multipliziert und summiert werden, um ein │ │ │ │ │ Element der Ergebnismatrix C zu erhalten. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 503 / 1332 │ │ │ │ │ │ │ │ │ │ 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 │ │ │ │ │ werden tatsächlich in einer Werkzeugmaschine verwendet. │ │ │ │ │ Zunächst werden wir die Transformationen für die erste der oben erwähnten Konfigurationen entwickeln, d. h. einen Tisch vom Typ Kippen/Drehen (trt) ohne Drehachsenversatz. Wir können ihr den │ │ │ │ │ Namen xyzac-trt-Konfiguration geben. │ │ │ │ │ Wir entwickeln auch die Transformationen für den gleichen Typ (xyzac-trt), aber mit rotierenden Achsenversätzen. │ │ │ │ │ Dann entwickeln wir die Transformationen für eine xyzbc-trt-Konfiguration mit Rotationsachsen-Offsets. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 504 / 1332 │ │ │ │ │ │ │ │ │ │ 9.3.5.1 Transformationen für eine xyzac-trt-Werkzeugmaschine mit Werkstückversatz │ │ │ │ │ │ │ │ │ │ Abbildung 9.4: vismach-Modell von xyzac-trt mit übereinstimmenden Drehachsen │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 505 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.5: Kipp-/Drehkonfiguration des Tisches │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Lx , Ly , Lz die Verschiebungen des Drehpunktes der beiden Drehachsen A und C relativ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 506 / 1332 │ │ │ │ │ │ │ │ │ │ relativen Abstände des Drehpunkts zur Position der Fräserspitze, die auch als ”Gelenkkoordinaten” │ │ │ │ │ des Drehpunkts bezeichnet werden können. 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ückkoordinatenachsen negativ sind (beachten Sie, dass sin(-theta) = │ │ │ │ │ -sin(theta), cos(-theta) = cos(theta)). │ │ │ │ │ Multipliziert mit (5) ergibt sich das Ergebnis: │ │ │ │ │ @@ -23989,58 +23989,58 @@ │ │ │ │ │ schreiben: │ │ │ │ │ │ │ │ │ │ Der Vektor auf der rechten Seite kann auch als das Produkt einer Matrix und eines Vektors geschrieben │ │ │ │ │ werden, was folgendes ergibt: │ │ │ │ │ │ │ │ │ │ Dies kann wie folgt erweitert werden │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 507 / 1332 │ │ │ │ │ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (13) als ”P = (Q AP )-1 * Q” berechnen. Die quadratische Matrix ist eine homogene 4x4-Matrix, die eine Rotationsmatrix R und einen Translationsvektor q enthält, deren │ │ │ │ │ Umkehrung wie folgt geschrieben werden kann: │ │ │ │ │ │ │ │ │ │ wobei R^T die Transponierung von R ist (Zeilen und Spalten vertauscht). Wir erhalten also: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 508 / 1332 │ │ │ │ │ │ │ │ │ │ 9.3.5.2 Transformationen für eine xyzac-trt-Maschine mit Drehachsenverschiebungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.6: Vismach-Modell von xyzac-trt mit Rotationsachsenversatz (positiv) │ │ │ │ │ Wir haben es hier mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse und die │ │ │ │ │ Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dy aufweisen. Außerdem gibt es │ │ │ │ │ zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der Dz genannt │ │ │ │ │ wird. Ein Vismach-Modell ist in Abb. 5 dargestellt, und die Offsets sind in Abb. 6 gezeigt (positive │ │ │ │ │ Offsets in diesem Beispiel). Um die Konfiguration zu vereinfachen, werden die Versätze Lx , Ly , Lz des │ │ │ │ │ vorherigen Falls nicht berücksichtigt. Sie sind wahrscheinlich nicht notwendig, wenn man die G54 │ │ │ │ │ Offsets in LinuxCNC mit Hilfe der ”touch of”-Funktion verwendet. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 509 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.7: Kipp-/Drehkonfiguration des Tisches xyzac-trt, mit Achsenversatz │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Dy , Dz die Verschiebungen des Drehpunktes der Drehachsen A relativ │ │ │ │ │ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die relativen Abstände │ │ │ │ │ des Drehpunkts zur Position der Schneidenspitze, die auch als ”Gelenkkoordinaten” des Drehpunkts │ │ │ │ │ bezeichnet werden können. Der Drehpunkt liegt auf der Drehachse A. │ │ │ │ │ Bei Multiplikation gemäß (18) erhalten wir: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 510 / 1332 │ │ │ │ │ │ │ │ │ │ Wir können nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor │ │ │ │ │ K gleichsetzen, d. h.: │ │ │ │ │ │ │ │ │ │ Aus diesen Gleichungen lassen sich die Drehwinkel thetaA , thetaC ermitteln. Aus der dritten Zeile │ │ │ │ │ @@ -24059,42 +24059,42 @@ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (25) als ”P = (Q AP )-1 * Q” lösen, indem wir wie zuvor (15) verwenden. Wir │ │ │ │ │ erhalten somit: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 511 / 1332 │ │ │ │ │ │ │ │ │ │ 9.3.5.3 Transformationen für eine xyzbc-trt-Maschine mit Drehachsenverschiebungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.8: Vismach-Modell von xyzbc-trt mit Rotationsachsenversatz (negativ) │ │ │ │ │ Wir haben es hier wieder mit einer erweiterten Konfiguration zu tun, bei der sich die Kippachse (um │ │ │ │ │ die y-Achse) und die Drehachse nicht in einem Punkt schneiden, sondern einen Versatz Dx haben. Außerdem gibt es zwischen den beiden Koordinatensystemen Ows und Owp aus Abb. 2 einen z-Versatz, der │ │ │ │ │ Dz genannt wird. Ein Vismach-Modell ist in Abb. 7 dargestellt (negative Versätze in diesem Beispiel), │ │ │ │ │ und die positiven Versätze sind in Abb. 8 dargestellt. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 512 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.9: Kipp-/Drehkonfiguration des Tisches xyzbc-trt, mit Achsenversatz │ │ │ │ │ Die Transformation kann durch die sequentielle Multiplikation der Matrizen definiert werden: │ │ │ │ │ │ │ │ │ │ wobei die Matrizen wie folgt aufgebaut sind: │ │ │ │ │ │ │ │ │ │ In diesen Gleichungen definieren Dx , Dz die Verschiebungen des Drehpunkts der Drehachsen B relativ │ │ │ │ │ zum Ursprung des Werkstückkoordinatensystems. Außerdem sind Px , Py , Pz die relativen Abstände │ │ │ │ │ des Drehpunkts zur Position der Schneidenspitze, die auch als ”Gelenkkoordinaten” des Drehpunkts │ │ │ │ │ bezeichnet werden können. Der Drehpunkt liegt auf der B-Drehachse. │ │ │ │ │ Bei Multiplikation gemäß (29) erhalten wir: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 513 / 1332 │ │ │ │ │ │ │ │ │ │ Wir können nun die dritte Spalte dieser Matrix mit unserem gegebenen Werkzeugorientierungsvektor │ │ │ │ │ K gleichsetzen, d. h.: │ │ │ │ │ │ │ │ │ │ Aus diesen Gleichungen lassen sich die Drehwinkel thetaB , thetaC ermitteln. Aus der dritten Zeile │ │ │ │ │ @@ -24113,15 +24113,15 @@ │ │ │ │ │ was die Vorwärtstransformation der Kinematik darstellt. │ │ │ │ │ Wir können P aus Gleichung (37) als ”P = (Q AP )-1 * Q” lösen. │ │ │ │ │ Mit dem gleichen Ansatz wie zuvor, erhalten wir: │ │ │ │ │ │ │ │ │ │ Die gewünschten Gleichungen für die inverse Transformation der Kinematik können somit wie folgt │ │ │ │ │ geschrieben werden: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 514 / 1332 │ │ │ │ │ │ │ │ │ │ 9.3.6 Beispiele für Dreh-/Kipptische │ │ │ │ │ LinuxCNC enthält Kinematik-Module für die ”xyzac-trt” und ”xyzbc-trt” Topologien in der Mathematik oben beschrieben. Für interessierte Benutzer ist der Quellcode im Git-Baum im Verzeichnis │ │ │ │ │ ”src/emc/kinematics/” verfügbar. │ │ │ │ │ Beispielkonfigurationen für xyzac-trt und xyzbc-trt befinden sich im Verzeichnis Beispielkonfigurationen (configs/sim/axis/vismach/5axis/table-rotary-tilting/). │ │ │ │ │ @@ -24157,15 +24157,15 @@ │ │ │ │ │ net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset │ │ │ │ │ │ │ │ │ │ wo: │ │ │ │ │ :tool-offset ---------------- Signalname │ │ │ │ │ motion.tooloffset.z --------- Ausgang HAL-Pin von LinuxCNC Bewegungsmodul │ │ │ │ │ xyzac-trt-kins.tool-offset -- Eingang HAL-Pin zu xyzac-trt-kins │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 515 / 1332 │ │ │ │ │ │ │ │ │ │ 9.3.7 Kundenspezifische Kinematik-Komponenten │ │ │ │ │ LinuxCNC implementiert Kinematik mit einer HAL-Komponente, die beim Starten von LinuxCNC geladen wird. Die häufigste Kinematik-Modul, trivkins, implementiert Identität (trivial) Kinematik, wo │ │ │ │ │ es eine eins-zu-eins-Korrespondenz zwischen einer Achse Koordinate Buchstaben und einem Motor │ │ │ │ │ Gelenk. Zusätzliche Kinematik-Module für komplexere Systeme (einschließlich ”xyzac-trt” und ”xyzbctrt” oben beschrieben) sind verfügbar. │ │ │ │ │ @@ -24193,29 +24193,29 @@ │ │ │ │ │ verwendet werden, erstellt werden. Diese Pins können mit einem Signal zur dynamischen Steuerung │ │ │ │ │ verbunden werden oder einmalig mit HAL-Verbindungen wie: │ │ │ │ │ # Offset-Parameter einstellen │ │ │ │ │ net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset │ │ │ │ │ setp xyzac-trt-kins.y-versatz 0 │ │ │ │ │ setp xyzac-trt-kins.z-versatz 20 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 9.3.8 Abbildungen │ │ │ │ │ │ │ │ │ │ Abbildung 9.10: Kipp-/Drehkonfiguration des Tisches │ │ │ │ │ │ │ │ │ │ 516 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ Abbildung 9.11: Spindel-/Tischkippkonfiguration │ │ │ │ │ │ │ │ │ │ 517 / 1332 │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 518 / 1332 │ │ │ │ │ │ │ │ │ │ Abbildung 9.12: Kipp-/Drehkonfiguration der Spindel │ │ │ │ │ │ │ │ │ │ 9.3.9 VERWEISE │ │ │ │ │ 1. AXIS MACHINE TOOLS: Kinematics and Vismach Implementation in LinuxCNC, RJ du Preez, │ │ │ │ │ @@ -24231,15 +24231,15 @@ │ │ │ │ │ 9.4 Schaltbare Kinematik (switchkins) │ │ │ │ │ 9.4.1 Einführung │ │ │ │ │ Eine Reihe von Kinematikmodulen unterstützt die Umschaltung von Kinematikberechnungen. Diese Module unterstützen eine Standard-Kinematikmethode (Typ0), eine zweite eingebaute Methode │ │ │ │ │ (Typ1) und (optional) eine vom Benutzer bereitgestellte Kinematikmethode (Typ2). Für die Typ1Methode wird in der Regel die Identitätskinematik verwendet. │ │ │ │ │ Die Switchkins-Funktionalität kann für Maschinen verwendet werden, bei denen eine Steuerung der │ │ │ │ │ Gelenke nach der Referenzfahrt während des Einrichtens erforderlich ist oder um Bewegungen in der │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 519 / 1332 │ │ │ │ │ │ │ │ │ │ Nähe von Singularitäten aus dem G-Code zu vermeiden. Solche Maschinen verwenden für die meisten │ │ │ │ │ Vorgänge spezifische Kinematikberechnungen, können aber für die Steuerung einzelner Gelenke nach │ │ │ │ │ der Referenzfahrt auf Identitätskinematik umgestellt werden. │ │ │ │ │ Die Auswahl des Kinematik-Typs erfolgt über einen Motion-Modul-HAL-Pin, der über ein G-CodeProgramm oder über interaktive MDI-Befehle aktualisiert werden kann. Die halui-Bestimmungen für │ │ │ │ │ @@ -24273,15 +24273,15 @@ │ │ │ │ │ KINEMATICS = genhexkins coordinates=xyzabc │ │ │ │ │ # custom identity ordering: joint0==c, joint1==b, ... │ │ │ │ │ KINEMATICS = genhexkins coordinates=cbazyx │ │ │ │ │ │ │ │ │ │ Anmerkung │ │ │ │ │ Wenn der Parameter coordinates= weggelassen wird, lauten die Standard-Zuordnungen der Gelenkbuchstaben joint0==x,joint1=y,…. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 520 / 1332 │ │ │ │ │ │ │ │ │ │ Die Gelenkzuweisungen für Identitäts-Kinematiken bei Verwendung des Koordinatenparameters sind │ │ │ │ │ identisch mit denen für das Modul trivkins. Die Duplizierung von Achsenbuchstaben zur Zuweisung │ │ │ │ │ mehrerer Gelenke für einen Koordinatenbuchstaben ist jedoch im Allgemeinen nicht für serielle oder │ │ │ │ │ parallele Kinematiken (wie genserkins, pumakins, genhexkins usw.) geeignet, bei denen es keine einfache Beziehung zwischen Gelenken und Koordinaten gibt. │ │ │ │ │ @@ -24314,15 +24314,15 @@ │ │ │ │ │ 9.4.4.1 HAL-Verbindungen │ │ │ │ │ Die Switchkins-Funktionalität wird durch den Pin motion.switchkins-type aktiviert. Normalerweise │ │ │ │ │ wird dieser Pin von einem analogen Ausgangspin wie motion.analog-out-03 gespeist, so dass er durch │ │ │ │ │ M68-Befehle gesetzt werden kann. Beispiel: │ │ │ │ │ net :kinstype-select <= motion.analog-out-03 │ │ │ │ │ net :kinstype-select => motion.switchkins-type │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 521 / 1332 │ │ │ │ │ │ │ │ │ │ 9.4.4.2 G-/M-Code-Befehle │ │ │ │ │ Die Auswahl des Kinstype wird verwaltet über G-Code-Sequenzen wie: │ │ │ │ │ ... │ │ │ │ │ M68 E3 Q1 ;analog-out-03 aktualisieren, um Kinstype 1 auszuwählen │ │ │ │ │ @@ -24359,15 +24359,15 @@ │ │ │ │ │ LinuxCNC Bahnplanung verwendet Grenzen für die Position (min, max), Geschwindigkeit und Beschleunigung für jede anwendbare Koordinaten-Buchstaben in der Konfiguration INI-Datei angegeben. Beispiel für den Buchstaben L (im Satz XYZABCUVW): │ │ │ │ │ [AXIS_L] │ │ │ │ │ MIN_LIMIT = │ │ │ │ │ MAX_LIMIT = │ │ │ │ │ MAX_VELOCITY = │ │ │ │ │ MIN_ACCELERATION = │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 522 / 1332 │ │ │ │ │ │ │ │ │ │ Die angegebenen INI-Datei-Grenzwerte gelten für die Standardkinematik vom Typ 0, die beim Start │ │ │ │ │ aktiviert wird. Beim Umschalten auf eine andere Kinematik sind diese Grenzen möglicherweise nicht │ │ │ │ │ anwendbar. Da jedoch beim Umschalten der Kinematik eine Synchronisierung zwischen Interpreter │ │ │ │ │ und Bewegung erforderlich ist, können INI-HAL-Pins verwendet werden, um Grenzwerte für einen │ │ │ │ │ @@ -24411,15 +24411,15 @@ │ │ │ │ │ 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ätskinematik (Typ1) │ │ │ │ │ umgeschaltet werden kann, um einzelne Gelenke mit den herkömmlichen Buchstaben aus dem Satz │ │ │ │ │ XYZABCUVW zu manipulieren. Die Einstellungen in der INI-Datei ([AXIS_L]) sind beim Betrieb mit │ │ │ │ │ Identitätskinematik (Typ1) nicht anwendbar. Um diesem Anwendungsfall gerecht zu werden, können │ │ │ │ │ die Benutzer-M-code-Skripte wie folgt gestaltet werden: │ │ │ │ │ M129 (Switch to identity type1) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 523 / 1332 │ │ │ │ │ │ │ │ │ │ 1. INI-Datei lesen und auswerten (”parsen”) │ │ │ │ │ 2. hal: setzt die INI-HAL Grenzstifte für jeden Achsenbuchstaben ([AXIS_L]) entsprechend der identitätsbezogenen Gelenknummer INI-Datei ([JOINT_N]) │ │ │ │ │ 3. HAL: setp motion.switchkins-type 1 │ │ │ │ │ 4. MDI: Ausführen eines Synchronisations-G-Codes (M66E0L0) │ │ │ │ │ @@ -24446,15 +24446,15 @@ │ │ │ │ │ 2. 5axis/table-rotary-tilting/xyzbc-trt.ini (xyzac-trt-kins) │ │ │ │ │ 3. 5axis/bridgemill/5axis.ini (5axiskins) │ │ │ │ │ 4. scara/scara.ini (scarakins) │ │ │ │ │ 5. puma/puma560.ini (genserkins) │ │ │ │ │ 6. puma/puma.ini (pumakins) │ │ │ │ │ 7. hexapod-sim/hexapod.ini (genhexkins) │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 524 / 1332 │ │ │ │ │ │ │ │ │ │ 9.4.6 Kinematische Bestimmungen des Benutzers │ │ │ │ │ Benutzerdefinierte Kinematiken können auf Run-In-Place (”RIP”) 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 │ │ │ │ │ Kinematik mit kinstype==2 bereitzustellen. │ │ │ │ │ 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). │ │ │ │ │ @@ -24480,15 +24480,15 @@ │ │ │ │ │ von Konfigurationseinstellungen. │ │ │ │ │ Nach dem Aufruf von switchkinsSetup() prüft rtapi_app_main() die übergebenen Parameter, erstellt │ │ │ │ │ eine HAL Komponente und ruft dann die für jeden Kinstype (0,1,2) identifizierte Setup-Routine auf. │ │ │ │ │ Jede Kinstype (0,1,2) Setup-Routine kann (optional) HAL Pins erzeugen und auf Standardwerte setzen. │ │ │ │ │ Wenn alle Setup-Routinen abgeschlossen sind, gibt rtapi_app_main() hal_ready() für die Komponente │ │ │ │ │ aus, um die Erstellung des Moduls abzuschließen. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 525 / 1332 │ │ │ │ │ │ │ │ │ │ 9.5 PID Tuning │ │ │ │ │ 9.5.1 PID-Regler (engl. PID controller) │ │ │ │ │ A proportional-integral-derivative controller (PID controller) is a common feedback loop component │ │ │ │ │ in industrial control systems. 3 │ │ │ │ │ @@ -24522,15 +24522,15 @@ │ │ │ │ │ Ein PID-Regler kann zur Regelung jeder messbaren Größe verwendet werden, die durch die Beeinflussung einer anderen Prozessgröße beeinflusst werden kann. Er kann zum Beispiel zur Regelung │ │ │ │ │ von Temperatur, Druck, Durchfluss, chemischer Zusammensetzung, Geschwindigkeit oder anderen │ │ │ │ │ Variablen eingesetzt werden. Ein Beispiel für einen Prozess außerhalb der Industrie, bei dem eine │ │ │ │ │ grobe PID-Regelung zum Einsatz kommt, ist die Geschwindigkeitsregelung von Autos. │ │ │ │ │ Einige Regelsysteme ordnen PID-Regler in Kaskaden oder Netzwerken an. Das heißt, ein ”Master”Regler erzeugt Signale, die von ”Slave”-Reglern verwendet werden. Eine häufige Situation sind Motorsteuerungen: Oft soll der Motor eine geregelte Drehzahl haben, wobei der ”Slave”-Regler (oft in einen │ │ │ │ │ 3 This Subsection is taken from an much more extensive article found at https://en.wikipedia.org/wiki/PID_controller │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 526 / 1332 │ │ │ │ │ │ │ │ │ │ Frequenzumrichter eingebaut) die Drehzahl direkt auf der Grundlage eines proportionalen Eingangs │ │ │ │ │ steuert. Dieser Slave-Eingang wird vom Ausgang des Master-Reglers gespeist, der auf der Grundlage │ │ │ │ │ einer verwandten Variablen regelt. │ │ │ │ │ 9.5.1.2 Theorie │ │ │ │ │ @@ -24568,15 +24568,15 @@ │ │ │ │ │ weisen einen gewissen Grad an Nichtlinearität auf, so dass Parameter, die unter Volllastbedingungen │ │ │ │ │ gut funktionieren, beim Anfahren des Prozesses im Leerlauf nicht funktionieren. In diesem Abschnitt │ │ │ │ │ werden einige herkömmliche manuelle Methoden zur Regelkreisabstimmung beschrieben. │ │ │ │ │ Es gibt mehrere Methoden zur Abstimmung einer PID-Schleife. Die Wahl der Methode hängt weitgehend davon ab, ob die Schleife für die Abstimmung ”offline” genommen werden kann oder nicht, │ │ │ │ │ sowie von der Reaktionsgeschwindigkeit des Systems. Wenn das System offline geschaltet werden │ │ │ │ │ kann, besteht die beste Abstimmungsmethode oft darin, das System einer sprunghaften Änderung │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 527 / 1332 │ │ │ │ │ │ │ │ │ │ des Eingangs zu unterziehen, den Ausgang als Funktion der Zeit zu messen und diese Reaktion zur │ │ │ │ │ Bestimmung der Regelparameter zu verwenden. │ │ │ │ │ Einfache Methode Wenn das System am Netz bleiben muss, besteht eine Abstimmungsmethode │ │ │ │ │ darin, zunächst die Werte für I und D auf Null zu setzen. Erhöhen Sie den P-Wert, bis der Ausgang │ │ │ │ │ @@ -24652,15 +24652,15 @@ │ │ │ │ │ 9.6 Neuzuordnung (engl. remap) für das Erweitern von G-Code │ │ │ │ │ 9.6.1 Einführung: Erweiterung des RS274NGC-Interpreters durch Remapping von Codes │ │ │ │ │ 9.6.1.1 Eine Definition: Neuzuordnung von Codes │ │ │ │ │ Mit ”Neuzuordnung” (engl. Remapping) von Codes meinen wir eine der folgenden Optionen: │ │ │ │ │ 1. Definition der Semantik neuer - d.h. derzeit nicht zugewiesener - M- oder G-Codes │ │ │ │ │ 2. Definieren Sie die Semantik eines - derzeit begrenzten - Satzes bestehender Codes neu. │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 528 / 1332 │ │ │ │ │ │ │ │ │ │ 9.6.1.2 Warum sollten Sie den RS274NGC Interpreter erweitern? │ │ │ │ │ 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. │ │ │ │ │ In particular, some of these codes implement a fixed sequence of steps to be executed. While some of │ │ │ │ │ these, like M6, can be moderately configured by activating or skipping some of these steps through │ │ │ │ │ @@ -24696,15 +24696,15 @@ │ │ │ │ │ procedure. │ │ │ │ │ This glue code is impossible to write as an O-word procedure itself, since the RS274NGC language │ │ │ │ │ lacks the introspective capabilities and access into interpreter internal data structures to achieve │ │ │ │ │ the required effect. Doing the glue code in - again - C/C+\+ would be an inflexible and therefore │ │ │ │ │ unsatisfactory solution. │ │ │ │ │ Wie sich Embedded Python einfügt Um eine einfache Situation einfach und eine komplexe Situation lösbar zu machen, wird das Problem des Glue Codes als Zwischenebene wie folgt angegangen: │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 529 / 1332 │ │ │ │ │ │ │ │ │ │ • For simple situations, a built-in glue procedure (argspec) covers most common parameter passing │ │ │ │ │ requirements. │ │ │ │ │ • For remapping T,M6,M61,S,F there is some standard Python glue which should cover most situations, see Standard Glue. │ │ │ │ │ • For more complex situations, one can write your own Python glue to implement new behavior. │ │ │ │ │ @@ -24738,15 +24738,15 @@ │ │ │ │ │ M-codes section. │ │ │ │ │ • Informationen zu unbelegten G-Codes finden Sie hier. │ │ │ │ │ • Existing codes that can be reassigned are listed in the remappable codes section. │ │ │ │ │ Derzeit gibt es zwei vollständige, nur in Python verfügbare Remaps, die in stdglue.py verfügbar sind: │ │ │ │ │ • ignore_m6 │ │ │ │ │ • index_lathe_tool_with_wear │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 530 / 1332 │ │ │ │ │ │ │ │ │ │ Diese sind für die Verwendung mit Drehmaschinen gedacht. Drehbänke verwenden nicht M6, um die │ │ │ │ │ Werkzeuge zu indexieren, sondern den Befehl T. │ │ │ │ │ This remap also adds wear offsets to the tool offset, e.g. T201 would index to tool 2 (with tool 2’s tool │ │ │ │ │ offset) and adds wear offset 1. In the tool table, tools numbers above 10000 are wear offsets, e.g. in │ │ │ │ │ @@ -24781,15 +24781,15 @@ │ │ │ │ │ of which might be required, others might be optional. We have the following options to feed values to │ │ │ │ │ the procedure: │ │ │ │ │ 1. Extracting words from the current block and pass them to the procedure as parameters (like │ │ │ │ │ X22.34 or P47), │ │ │ │ │ 2. referring to INI file variables, │ │ │ │ │ 3. referring to global variables (like #2200 = 47.11 or #<_global_param> = 315.2). │ │ │ │ │ │ │ │ │ │ - LinuxCNC V2.9.7, 22 Oct 2025 │ │ │ │ │ + LinuxCNC V2.9.7, 23 Oct 2025 │ │ │ │ │ │ │ │ │ │ 531 / 1332 │ │ │ │ │ │ │ │ │ │ The first method is preferred for parameters of dynamic nature, like positions. You need to define │ │ │ │ │ which words on the current block have any meaning for your new code, and specify how that is passed │ │ │ │ │ to the NGC procedure. Any easy way is to use the argspec statement. A custom prolog might provide │ │ │ │ │ better error messages. │ │ │ │ │ @@ -24825,15 +24825,15 @@ │ │ │ │ │ block are ignored with respect to the M400 code. If the P word is not present, fail execution with an │ │ │ │ │ error. │ │ │ │ │ • When an M400 code is encountered, execute myprocedure.ngc along the other modal group 10 Mcodes as per order of execution. │ │ │ │ │ • The value of P, and Q are available in the procedure as local named parameters. The may be referred │ │ │ │ │ to as #

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