cncjs 1.10.5 → 1.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +16 -16
  2. package/dist/cncjs/app/i18n/cs/resource.json +27 -1
  3. package/dist/cncjs/app/i18n/de/resource.json +27 -1
  4. package/dist/cncjs/app/i18n/en/resource.json +27 -1
  5. package/dist/cncjs/app/i18n/es/controller.json +11 -11
  6. package/dist/cncjs/app/i18n/es/gcode.json +21 -21
  7. package/dist/cncjs/app/i18n/es/resource.json +292 -266
  8. package/dist/cncjs/app/i18n/fr/resource.json +27 -1
  9. package/dist/cncjs/app/i18n/hu/resource.json +27 -1
  10. package/dist/cncjs/app/i18n/it/resource.json +27 -1
  11. package/dist/cncjs/app/i18n/ja/resource.json +27 -1
  12. package/dist/cncjs/app/i18n/nb/resource.json +27 -1
  13. package/dist/cncjs/app/i18n/nl/resource.json +27 -1
  14. package/dist/cncjs/app/i18n/pt/resource.json +27 -1
  15. package/dist/cncjs/app/i18n/pt-br/resource.json +27 -1
  16. package/dist/cncjs/app/i18n/ru/resource.json +27 -1
  17. package/dist/cncjs/app/i18n/tr/resource.json +27 -1
  18. package/dist/cncjs/app/i18n/uk/resource.json +27 -1
  19. package/dist/cncjs/app/i18n/zh-cn/resource.json +27 -1
  20. package/dist/cncjs/app/i18n/zh-tw/resource.json +28 -2
  21. package/dist/cncjs/app/index.hbs +1 -1
  22. package/dist/cncjs/app/main.71477df11b7b848880dd.bundle.js +2 -0
  23. package/dist/cncjs/app/{main.3a2174f535aa563904f8.bundle.js.LICENSE.txt → main.71477df11b7b848880dd.bundle.js.LICENSE.txt} +0 -4
  24. package/dist/cncjs/app/main.css +9 -8
  25. package/dist/cncjs/package.json +3 -4
  26. package/dist/cncjs/server/access-control.js +2 -2
  27. package/dist/cncjs/server/api/api.machines.js +1 -1
  28. package/dist/cncjs/server/api/api.mdi.js +3 -3
  29. package/dist/cncjs/server/api/api.state.js +10 -8
  30. package/dist/cncjs/server/api/api.tool.js +47 -0
  31. package/dist/cncjs/server/api/api.users.js +2 -2
  32. package/dist/cncjs/server/api/index.js +3 -1
  33. package/dist/cncjs/server/app.js +4 -0
  34. package/dist/cncjs/server/controllers/Grbl/GrblController.js +311 -104
  35. package/dist/cncjs/server/controllers/Grbl/GrblLineParserResultParserState.js +2 -2
  36. package/dist/cncjs/server/controllers/Grbl/GrblRunner.js +7 -0
  37. package/dist/cncjs/server/controllers/Marlin/MarlinController.js +330 -119
  38. package/dist/cncjs/server/controllers/Marlin/MarlinRunner.js +15 -2
  39. package/dist/cncjs/server/controllers/Marlin/interpret.js +2 -3
  40. package/dist/cncjs/server/controllers/Smoothie/SmoothieController.js +313 -92
  41. package/dist/cncjs/server/controllers/Smoothie/SmoothieLineParserResultParserState.js +2 -2
  42. package/dist/cncjs/server/controllers/Smoothie/SmoothieLineParserResultStatus.js +6 -7
  43. package/dist/cncjs/server/controllers/Smoothie/SmoothieRunner.js +7 -0
  44. package/dist/cncjs/server/controllers/TinyG/TinyGController.js +334 -136
  45. package/dist/cncjs/server/controllers/TinyG/TinyGRunner.js +24 -3
  46. package/dist/cncjs/server/controllers/constants.js +16 -1
  47. package/dist/cncjs/server/controllers/utils/builtin-command.js +21 -0
  48. package/dist/cncjs/server/controllers/utils/gcode.js +47 -0
  49. package/dist/cncjs/server/controllers/utils/units.js +70 -0
  50. package/dist/cncjs/server/index.js +2 -3
  51. package/dist/cncjs/server/lib/MessageSlot.js +38 -0
  52. package/dist/cncjs/server/lib/json-stringify.js +15 -0
  53. package/dist/cncjs/server/services/cncengine/CNCEngine.js +4 -4
  54. package/dist/cncjs/server/services/configstore/index.js +5 -4
  55. package/package.json +7 -7
  56. package/dist/cncjs/app/main.3a2174f535aa563904f8.bundle.js +0 -2
  57. package/dist/cncjs/server/lib/ensure-positive-number.js +0 -15
  58. package/dist/cncjs/server/lib/ensure-type.js +0 -27
package/README.md CHANGED
@@ -122,7 +122,7 @@ Check out [https://github.com/cncjs/cncjs/wiki/Installation](https://github.com/
122
122
 
123
123
  ### Upgrade
124
124
 
125
- Run `npm install -g cncjs@latest` to install the latest version. To determine the version, use `cncjs -V`.
125
+ Run `npm install -g cncjs@latest` to install the latest version. To determine the version, use `cncjs --version`.
126
126
 
127
127
  ### Usage
128
128
 
@@ -136,7 +136,7 @@ pi@rpi3$ cncjs -h
136
136
 
137
137
  Options:
138
138
 
139
- -V, --version output the version number
139
+ --version output the version number
140
140
  -p, --port <port> Set listen port (default: 8000)
141
141
  -H, --host <host> Set listen address or hostname (default: 0.0.0.0)
142
142
  -b, --backlog <backlog> Set listen backlog (default: 511)
@@ -281,20 +281,20 @@ You can help translate resource files in both of [app](https://github.com/cncjs/
281
281
 
282
282
  Locale | Language | Status | Contributors
283
283
  :----- | :------- | :----- | :-----------
284
- [cs](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/cs) | Čeština (Czech) | ✔ | [Miroslav Zuzelka](https://github.com/dronecz)
285
- [de](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/de) | Deutsch (German) | ✔ | [Thorsten Godau](https://github.com/dl9sec), [Max B.](https://github.com/mbs38)
286
- [es](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/es) | Español (Spanish) | ✔ | [Juan Biondi](https://github.com/yeyeto2788)
287
- [fr](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/fr) | Français (French) | ✔ | [Simon Maillard](https://github.com/maisim), [CorentinBrulé](https://github.com/CorentinBrule)
288
- [hu](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/hu) | Magyar (Hungarian) | ✔ | Sipos Péter
289
- [it](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/it) | Italiano (Italian) | ✔ | [vince87](https://github.com/vince87)
290
- [ja](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/ja) | 日本語 (Japanese) | ✔ | [Naoki Okamoto](https://github.com/toonaoki)
291
- [nl](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/nl) | Nederlands (Netherlands) | ✔ | [dutchpatriot](https://github.com/dutchpatriot)
292
- [pt-br](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/pt-br) | Português (Brasil) | ✔ | [cmsteinBR](https://github.com/cmsteinBR)
293
- [ru](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/ru) | Ру́сский (Russian) | ✔ | [Denis Yusupov](https://github.com/minithc)
294
- [uk](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/uk) | українська (Ukrainian) | ✔ | [khvalera](https://github.com/khvalera)
295
- [tr](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/tr) | Türkçe (Turkish) | ✔ | Ali GÜNDOĞDU
296
- [zh-cn](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/zh-cn) | 简体中文 (Simplified Chinese) | ✔ | [Mandy Chien](https://github.com/MandyChien), [Terry Lee](https://github.com/TerryShampoo)
297
- [zh-tw](https://github.com/cncjs/cncjs/tree/master/src/web/i18n/zh-tw) | 繁體中文 (Traditional Chinese) | ✔ | [Cheton Wu](https://github.com/cheton)
284
+ [cs](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/cs) | Čeština (Czech) | ✔ | [Miroslav Zuzelka](https://github.com/dronecz)
285
+ [de](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/de) | Deutsch (German) | ✔ | [Thorsten Godau](https://github.com/dl9sec), [Max B.](https://github.com/mbs38)
286
+ [es](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/es) | Español (Spanish) | ✔ | [Juan Biondi](https://github.com/yeyeto2788), [hasecilu](https://github.com/hasecilu)
287
+ [fr](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/fr) | Français (French) | ✔ | [Simon Maillard](https://github.com/maisim), [CorentinBrulé](https://github.com/CorentinBrule)
288
+ [hu](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/hu) | Magyar (Hungarian) | ✔ | Sipos Péter
289
+ [it](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/it) | Italiano (Italian) | ✔ | [vince87](https://github.com/vince87)
290
+ [ja](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/ja) | 日本語 (Japanese) | ✔ | [Naoki Okamoto](https://github.com/toonaoki)
291
+ [nl](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/nl) | Nederlands (Netherlands) | ✔ | [dutchpatriot](https://github.com/dutchpatriot)
292
+ [pt-br](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/pt-br) | Português (Brasil) | ✔ | [cmsteinBR](https://github.com/cmsteinBR)
293
+ [ru](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/ru) | Ру́сский (Russian) | ✔ | [Denis Yusupov](https://github.com/minithc)
294
+ [uk](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/uk) | українська (Ukrainian) | ✔ | [khvalera](https://github.com/khvalera)
295
+ [tr](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/tr) | Türkçe (Turkish) | ✔ | Ali GÜNDOĞDU
296
+ [zh-cn](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/zh-cn) | 简体中文 (Simplified Chinese) | ✔ | [Mandy Chien](https://github.com/MandyChien), [Terry Lee](https://github.com/TerryShampoo)
297
+ [zh-tw](https://github.com/cncjs/cncjs/tree/master/src/app/i18n/zh-tw) | 繁體中文 (Traditional Chinese) | ✔ | [Cheton Wu](https://github.com/cheton)
298
298
 
299
299
  ## Donate
300
300
 
@@ -540,5 +540,31 @@
540
540
  "Use RTS/CTS flow control": "Použijte řízení toku RTS/CTS",
541
541
  "Data Collection": "Sběr dat",
542
542
  "Enable anonymous usage data collection": "Povolit sběr anonymních dat o používání",
543
- "Display language:": "Zobrazovací jazyk:"
543
+ "Display language:": "Zobrazovací jazyk:",
544
+ "Tool Widget": "Nástrojový widget",
545
+ "This widget manages workflows for tool changes.": "Tento widget spravuje pracovní postupy pro výměnu nástrojů.",
546
+ "Tool": "Nástroj",
547
+ "No available tool configuration": "Žádná dostupná konfigurace nástroje",
548
+ "Tool Change Policy": "Zásady výměny nástroje",
549
+ "Ignore M6 commands (Default)": "Ignorovat příkazy M6 (Výchozí)",
550
+ "Send M6 commands": "Odesílat příkazy M6",
551
+ "Manual Tool Change (WCS)": "Manuální výměna nástroje (WCS)",
552
+ "Manual Tool Change (TLO)": "Manuální výměna nástroje (TLO)",
553
+ "This will send the line exactly as it is to the controller.": "Tímto se odešle řádek přesně tak, jak je, do řídicí jednotky.",
554
+ "Tool Change Position": "Pozice pro výměnu nástroje",
555
+ "Use the current machine position as the tool change position.": "Použít aktuální pozici stroje jako pozici pro výměnu nástroje.",
556
+ "Tool Probe Position": "Pozice nástroje pro sondování",
557
+ "Use the current machine position as the tool probe position.": "Použít aktuální pozici stroje jako pozici nástroje pro sondování.",
558
+ "Custom Tool Probe Commands": "Vlastní příkazy pro sondování nástroje",
559
+ "Probe Distance": "Vzdálenost sondování",
560
+ "Touch Plate Height": "Výška dotykové desky",
561
+ "Tool Probe Commands": "Příkazy pro sondování nástroje",
562
+ "Copied": "Zkopírováno",
563
+ "Copy": "Kopírovat",
564
+ "Import predefined tool probe commands to update the Z-axis offset in the Work Coordinate System (WCS)": "Importujte předdefinované příkazy pro sondování nástroje k aktualizaci posunu osy Z v pracovním souřadnicovém systému (WCS).",
565
+ "Import predefined tool probe commands to update the Tool Length Offset (TLO)": "Importujte předdefinované příkazy pro sondování nástroje k aktualizaci posunu délky nástroje (TLO).",
566
+ "Warning: No custom tool probe commands are defined": "Upozornění: Nejsou definovány žádné vlastní příkazy pro sondování nástroje.",
567
+ "Connect to the controller to view the tool probe commands.": "Připojte se k řadiči, abyste zobrazili příkazy pro sondování nástroje.",
568
+ "Manual Tool Change (Custom Probing)": "Manuální výměna nástroje (Vlastní sondování)",
569
+ "This option skips the M6 command and pauses controller operations, giving you full manual control over the tool change process.": "Tato možnost přeskočí příkaz M6 a pozastaví operace řadiče, čímž vám poskytne plnou manuální kontrolu nad procesem výměny nástroje."
544
570
  }
@@ -540,5 +540,31 @@
540
540
  "Use RTS/CTS flow control": "Verwende RTS/CTS-Flusskontrolle",
541
541
  "Data Collection": "Datensammlung",
542
542
  "Enable anonymous usage data collection": "Anonyme Datenerfassung aktivieren",
543
- "Display language:": "Anzeigesprache:"
543
+ "Display language:": "Anzeigesprache:",
544
+ "Tool Widget": "Werkzeug-Widget",
545
+ "This widget manages workflows for tool changes.": "Dieses Widget verwaltet Workflows für Werkzeugwechsel.",
546
+ "Tool": "Werkzeug",
547
+ "No available tool configuration": "Keine verfügbare Werkzeugkonfiguration",
548
+ "Tool Change Policy": "Richtlinie für Werkzeugwechsel",
549
+ "Ignore M6 commands (Default)": "M6-Befehle ignorieren (Standard)",
550
+ "Send M6 commands": "M6-Befehle senden",
551
+ "Manual Tool Change (WCS)": "Manueller Werkzeugwechsel (WKS)",
552
+ "Manual Tool Change (TLO)": "Manueller Werkzeugwechsel (TLO)",
553
+ "This will send the line exactly as it is to the controller.": "Dies sendet die Zeile genau so, wie sie ist, an den Controller.",
554
+ "Tool Change Position": "Werkzeugwechselposition",
555
+ "Use the current machine position as the tool change position.": "Verwenden Sie die aktuelle Maschinenposition als Werkzeugwechselposition.",
556
+ "Tool Probe Position": "Werkzeugtastposition",
557
+ "Use the current machine position as the tool probe position.": "Verwenden Sie die aktuelle Maschinenposition als Werkzeugtastposition.",
558
+ "Custom Tool Probe Commands": "Benutzerdefinierte Werkzeugtastbefehle",
559
+ "Probe Distance": "Taststrecke",
560
+ "Touch Plate Height": "Höhe der Tastplatte",
561
+ "Tool Probe Commands": "Werkzeugtastbefehle",
562
+ "Copied": "Kopiert",
563
+ "Copy": "Kopieren",
564
+ "Import predefined tool probe commands to update the Z-axis offset in the Work Coordinate System (WCS)": "Vordefinierte Werkzeugabtastbefehle importieren, um den Z-Achsen-Versatz im Werkstück-Koordinatensystem (WKS) zu aktualisieren.",
565
+ "Import predefined tool probe commands to update the Tool Length Offset (TLO)": "Vordefinierte Werkzeugabtastbefehle importieren, um den Werkzeuglängenkorrekturwert (TLO) zu aktualisieren.",
566
+ "Warning: No custom tool probe commands are defined": "Warnung: Es sind keine benutzerdefinierten Werkzeugabtastbefehle definiert.",
567
+ "Connect to the controller to view the tool probe commands.": "Verbinden Sie sich mit dem Controller, um die Werkzeugabtastbefehle anzuzeigen.",
568
+ "Manual Tool Change (Custom Probing)": "Manuelle Werkzeugwechsel (Benutzerdefiniertes Sondieren)",
569
+ "This option skips the M6 command and pauses controller operations, giving you full manual control over the tool change process.": "Diese Option überspringt den M6-Befehl und pausiert die Steuerbefehle, sodass Sie die vollständige manuelle Kontrolle über den Werkzeugwechselprozess haben."
544
570
  }
@@ -540,5 +540,31 @@
540
540
  "Use RTS/CTS flow control": "Use RTS/CTS flow control",
541
541
  "Data Collection": "Data Collection",
542
542
  "Enable anonymous usage data collection": "Enable anonymous usage data collection",
543
- "Display language:": "Display language:"
543
+ "Display language:": "Display language:",
544
+ "Tool Widget": "Tool Widget",
545
+ "This widget manages workflows for tool changes.": "This widget manages workflows for tool changes.",
546
+ "Tool": "Tool",
547
+ "No available tool configuration": "No available tool configuration",
548
+ "Tool Change Policy": "Tool Change Policy",
549
+ "Ignore M6 commands (Default)": "Ignore M6 commands (Default)",
550
+ "Send M6 commands": "Send M6 commands",
551
+ "Manual Tool Change (WCS)": "Manual Tool Change (WCS)",
552
+ "Manual Tool Change (TLO)": "Manual Tool Change (TLO)",
553
+ "This will send the line exactly as it is to the controller.": "This will send the line exactly as it is to the controller.",
554
+ "Tool Change Position": "Tool Change Position",
555
+ "Use the current machine position as the tool change position.": "Use the current machine position as the tool change position.",
556
+ "Tool Probe Position": "Tool Probe Position",
557
+ "Use the current machine position as the tool probe position.": "Use the current machine position as the tool probe position.",
558
+ "Custom Tool Probe Commands": "Custom Tool Probe Commands",
559
+ "Probe Distance": "Probe Distance",
560
+ "Touch Plate Height": "Touch Plate Height",
561
+ "Tool Probe Commands": "Tool Probe Commands",
562
+ "Copied": "Copied",
563
+ "Copy": "Copy",
564
+ "Import predefined tool probe commands to update the Z-axis offset in the Work Coordinate System (WCS)": "Import predefined tool probe commands to update the Z-axis offset in the Work Coordinate System (WCS)",
565
+ "Import predefined tool probe commands to update the Tool Length Offset (TLO)": "Import predefined tool probe commands to update the Tool Length Offset (TLO)",
566
+ "Warning: No custom tool probe commands are defined": "Warning: No custom tool probe commands are defined",
567
+ "Connect to the controller to view the tool probe commands.": "Connect to the controller to view the tool probe commands.",
568
+ "Manual Tool Change (Custom Probing)": "Manual Tool Change (Custom Probing)",
569
+ "This option skips the M6 command and pauses controller operations, giving you full manual control over the tool change process.": "This option skips the M6 command and pauses controller operations, giving you full manual control over the tool change process."
544
570
  }
@@ -4,15 +4,15 @@
4
4
  "initializing": "Inicializando",
5
5
  "ready": "Listo",
6
6
  "alarm": "Alarma",
7
- "stop": "Detener Programa",
8
- "end": "Fin del Programa",
9
- "run": "Ejecutar",
10
- "hold": "Sostener",
7
+ "stop": "Detener programa",
8
+ "end": "Finalizar programa",
9
+ "run": "Iniciar",
10
+ "hold": "Pausar",
11
11
  "probe": "Sonda",
12
12
  "cycle": "Ciclo",
13
- "homing": "Homaje",
14
- "jog": "Movimiento Manual",
15
- "interlock": "Interbloqueo",
13
+ "homing": "Mover a inicio",
14
+ "jog": "Mover",
15
+ "interlock": "Parado",
16
16
  "shutdown": "Apagar",
17
17
  "panic": "Pánico"
18
18
  }
@@ -21,10 +21,10 @@
21
21
  "activeState": {
22
22
  "idle": "Inactivo",
23
23
  "run": "Ejecutar",
24
- "hold": "Sostener",
24
+ "hold": "Pausar",
25
25
  "door": "Puerta",
26
26
  "home": "Inicio",
27
- "sleep": "Dormir",
27
+ "sleep": "Suspender",
28
28
  "alarm": "Alarma",
29
29
  "check": "Comprobar"
30
30
  }
@@ -33,11 +33,11 @@
33
33
  "activeState": {
34
34
  "idle": "Inactivo",
35
35
  "run": "Ejecutar",
36
- "hold": "Sostener",
36
+ "hold": "Pausar",
37
37
  "door": "Puerta",
38
38
  "home": "Inicio",
39
39
  "alarm": "Alarma",
40
40
  "check": "Comprobar"
41
41
  }
42
42
  }
43
- }
43
+ }
@@ -1,13 +1,13 @@
1
1
  {
2
- "Rapid Move (G0)": "Movimiento Rápido (G0)",
3
- "Linear Move (G1)": "Movimiento Lineal (G1)",
4
- "CW Arc (G2)": "Arco en Sentido Horario (G2)",
5
- "CCW Arc (G3)": "Arco en Sentido Antihorario (G3)",
2
+ "Rapid Move (G0)": "Movimiento rápido (G0)",
3
+ "Linear Move (G1)": "Movimiento lineal (G1)",
4
+ "CW Arc (G2)": "Arco en sentido horario (G2)",
5
+ "CCW Arc (G3)": "Arco en sentido antihorario (G3)",
6
6
  "Probing (G38.2)": "Sondeo (G38.2)",
7
7
  "Probing (G38.3)": "Sondeo (G38.3)",
8
8
  "Probing (G38.4)": "Sondeo (G38.4)",
9
9
  "Probing (G38.5)": "Sondeo (G38.5)",
10
- "Cancel Mode (G80)": "Cancelar Modo (G80)",
10
+ "Cancel Mode (G80)": "Modo cancelar (G80)",
11
11
  "P1 (G54)": "P1 (G54)",
12
12
  "P2 (G55)": "P2 (G55",
13
13
  "P3 (G56)": "P3 (G56)",
@@ -19,23 +19,23 @@
19
19
  "YZ Plane (G19)": "Plano YZ (G19)",
20
20
  "Inches (G20)": "Pulgadas (G20)",
21
21
  "Millimeters (G21)": "Milímetros (G21)",
22
- "Exact Path (G61)": "Ruta Exacta (G61)",
23
- "Exact Stop (G61.1)": "Parada Exacta (G61.1)",
22
+ "Exact Path (G61)": "Ruta exacta (G61)",
23
+ "Exact Stop (G61.1)": "Parada exacta (G61.1)",
24
24
  "Continuous (G64)": "Continuo (G64)",
25
25
  "Absolute (G90)": "Absoluto (G90)",
26
26
  "Relative (G91)": "Relativo (G91)",
27
- "Inverse Time (G93)": "Tiempo Inverso (G93)",
28
- "Units/Min (G94)": "Unidades/Minuto (G94)",
29
- "Active Tool Offset (G43.1)": "Desplazamiento Activo de la Herramienta (G43.1)",
30
- "No Tool Offset (G49)": "Sin Desplazamiento de la Herramienta (G49)",
31
- "Program Stop (M0)": "Detener Programa (M0)",
32
- "Optional Program Stop (M1)": "Parada Opcional del Programa (M1)",
33
- "Program End (M2)": "Fin del Programa (M2)",
34
- "Program End and Rewind (M30)": "Fin de Programa y Rebobinar (M30)",
35
- "Spindle On, CW (M3)": "Husillo Encendido, Sentido Horario (M3)",
36
- "Spindle On, CCW (M4)": "Husillo Encendido, Sentido Antihorario (M4)",
37
- "Spindle Off (M5)": "Husillo Apagado (M5)",
38
- "Mist Coolant On (M7)": "Refrigerante de Niebla Encendido (M7)",
39
- "Flood Coolant On (M8)": "Refrigerante de Inundación Encendido (M8)",
40
- "Coolant Off (M9)": "Refrigerante Apagado (M9)"
27
+ "Inverse Time (G93)": "Tiempo inverso (G93)",
28
+ "Units/Min (G94)": "Unidades/Min (G94)",
29
+ "Active Tool Offset (G43.1)": "Desplazamiento activo de la herramienta (G43.1)",
30
+ "No Tool Offset (G49)": "Sin desplazamiento de la herramienta (G49)",
31
+ "Program Stop (M0)": "Detener programa (M0)",
32
+ "Optional Program Stop (M1)": "Parada opcional del programa (M1)",
33
+ "Program End (M2)": "Fin del programa (M2)",
34
+ "Program End and Rewind (M30)": "Fin de programa y rebobinar (M30)",
35
+ "Spindle On, CW (M3)": "Encender herramienta, sentido horario (M3)",
36
+ "Spindle On, CCW (M4)": "Encender herramienta, sentido antihorario (M4)",
37
+ "Spindle Off (M5)": "Apagar herramienta (M5)",
38
+ "Mist Coolant On (M7)": "Nebulizar refrigerante encendido (M7)",
39
+ "Flood Coolant On (M8)": "Inundar refrigerante encendido (M8)",
40
+ "Coolant Off (M9)": "Refrigerante apagado (M9)"
41
41
  }