LinuxCNC Documentation
This page is 84% translated. Untranslated text is shown in English.

LinuxCNC (the Enhanced Machine Control) is a software system for computer control of machine tools such as milling machines and lathes, robots such as puma and scara and other computer controlled machines up to 9 axes. LinuxCNC is free software with open source code. Current versions of LinuxCNC are entirely licensed under the GNU General Public License and Lesser GNU General Public License (GPL and LGPL).

To lower the entry-hurdle, LinuxCNC provides:

  • easy discovery and testing without installation with the Live Image,

  • easy installation from the Live Image,

  • asistentes de configuración gráficos fáciles de usar para crear rápidamente una configuración específica de la máquina,

  • directly availability as regular packages of recent releases of Debian (since Bookworm) and Ubuntu (since Kinetic Kudu).

LinuxCNC provides a graphical user interface with many flavours to choose from to match your personal preferences and technical needs. Advanced users may directly exploit

  • graphical interface creation tools (Glade, Qt),

  • the interpreter for G-code (the RS-274 machine tool programming language),

  • operación de la electrónica de bajo nivel de la máquina, como sensores y motores,

  • una capa "tablero prototipo" fácil de usar, para crear rápidamente una configuración única para su máquina,

  • un PLC en software programable con diagramas de escalera.

Under the hood, LinuxCNC provides

  • un sistema de planificación de movimiento en tiempo real con análisis de instrucción siguiente,

  • support for non-Cartesian motion systems is provided via custom kinematics modules. Available architectures include hexapods (Stewart platforms and similar concepts) and systems with rotary joints to provide motion such as PUMA or SCARA robots.

  • support for a variety of hardware interfaces. The control can operate true servos (analog or PWM) with the feedback loop closed by the LinuxCNC software at the computer, or open loop with step-servos or stepper motors.

  • Las características de control de movimiento incluyen: compensación de radio de corte y de longitud de herramienta, desviación de trayectoria limitada a una tolerancia especificada, roscado en torno, movimientos de eje sincronizados, avance adaptativo, control de ajuste de avance por el operador y control de velocidad constante.

  • LinuxCNC runs on Linux using real-time extensions.

LinuxCNC expects G-code that if not entered manually is provided by another software, which supports CAM (Computer Automated Manufacturing) and determines what tool shall be used at what speed for what geometry. Many prominent CAD (Computer Automated Design) tools that determine the desired final shape of your work piece (or the assembly of multiple work pieces that area to be produced individually) offer a CAM module.

1. Architecture - Context diagram

LinuxCNC Architecture - Context diagram
Figure 1. Roles of operators, integrators, developers and hardware

The diagram presents the components and players of the LinuxCNC ecosystem and how they interact. It is not intended to help you understand the functionality of LinuxCNC. Please refer to the following chapters for this.

Operator

One a machine is set up, its operator will only use one of the many graphical user interfaces that LinuxCNC and external groups are providing. The requirements for the operator are determined by how the integrator has set up the machine. The integrator has the option of setting up the machine so that the operator only presses one button to start the machining process, or leaves the GUI in its default state and the operator will fully control the CNC machine using the GUI functionality and G,M,O-codes. The integrator may or may not create a physical or virtual panel for the operator with various buttons and various indicators.

Integrator

It is on an integrator (machine builder) to ensure that the LinuxCNC configuration matches the hardware setup both in the wiring and the protocols spoken on those wires. The integrator can choose whether to set up the machine using the Wizard or to configure it manually. If the Wizard is used, the integrator’s knowledge of LinuxCNC is minimal. It is enough to understand the machine hardware. If the integrator wants to use the maximum potential of LinuxCNC, he must be able to create or edit configuration files manually. To do this, it is enough to have knowledge of HAL, INI configuration and ideally the creation of custom HAL components or embedded panels. This knowledge will allow the connection of various hardware combinations with LCNC. Using INI, the integrator selects the GUI (Gmoccapy, Axis, Qt, …​), kinematics, number of axes, parameters (velocities, acceleration, distance, …​). Using HAL, the integrator selects the hardware control method (velocity mode / position mode, on-off control / analog control, without / with feedback, …​). Using a suitable HAL module, various components can be controlled via various buses (PCI, USB, Ethernet, EtherCAT, Modbus RTU/TCP, Parallel port, …​)

Developer

The LinuxCNC developers may be coming up with drivers for new hardware or other new features in the GUI and anything in between a mouse click and a motor turning. For testing, monitoring or possibly also the communication between multiple machines, also a text-based interface to LinuxCNC is available. Since LinuxCNC is an Open-source project, you can modify it in any way you like, provided you meet the very benevolent license conditions. You can create these modifications for the official LinuxCNC community, or for your own needs. Both paths have their advantages and disadvantages. If you offer your modification or improvement to the official developers, if they are interested, they can help you improve it even more and you will receive feedback. If you keep your modification to yourself, you do not have to worry about whether it will interest the official developers, but it may be a problem in the future if someone unfamiliar with these modifications were to maintain the machine you built (modifications, updates, fixes, …​). Of course, the developers modify all the code that is part of LinuxCNC, but the diagram only shows the links for which the developer’s skills are necessary (C, C++, Python, Bash, GTK, Glade, QT, Linux OS, GitHub, PC hardware, …​)

Wizard

Wizards are standalone programs that LinuxCNC and external groups are providing. They can work without other LinuxCNC components. The main output of Wizards are configuration files (*.ini, *.hal and others). Therefore, it is possible to do your first machine setup using the Wizard and only later, after a deeper study of the LCNC configuration, can you edit the files generated by the Wizard.

2. El sistema operativo

LinuxCNC is available as ready-to-use packages for Debian distributions.

3. Conseguir ayuda

3.1. Foro web

A web forum can be found at https://forum.linuxcnc.org or by following the link at the top of the linuxcnc.org home page.

Es bastante activo, pero la demografia está más sesgada al usuario que la lista de correo. Si desea asegurarse de que su mensaje sea visto por los desarrolladores, entonces es preferible la lista de correo.

3.2. IRC

IRC stands for Internet Relay Chat. It is a live connection to other LinuxCNC users. The LinuxCNC IRC channel is #linuxcnc on libera.chat.

La forma más sencilla de acceder al IRC es usar el cliente web incrustado en libera.

Reglas de comportamiento en IRC
  • Haga preguntas específicas …​ Evite preguntas como "¿Alguien puede ayudarme?".

  • Si es realmente nuevo en todo esto, piense un poco su pregunta antes de escribirla. Asegúrese de dar información suficiente para que alguien pueda contestar su pregunta o resolver su problema.

  • Tenga paciencia al esperar una respuesta; a veces lleva tiempo formular una respuesta, o todos pueden estar ocupados en el trabajo o en otra cosa.

  • Configure su cuenta IRC con su nombre único para que las personas sepan quién es usted. Si usa el cliente java, use el mismo nombre cada vez que inicie sesión. Esto ayuda a las personas a recordar quién es usted y si ha estado conectado antes, muchos recordarán las discusiones pasadas, lo que ahorrará tiempo a todos.

Compartir archivos

La forma más común de compartir archivos en el IRC es cargar el archivo a uno de los siguientes servicios, o similares, y pegar el enlace:

3.3. Lista de correo

Una lista de correo de internet es una forma de hacer preguntas a todos los miembros de esa lista para que las vean y respondan a su conveniencia. Es mejor la exposición de sus preguntas en una lista de correo que en el IRC pero las respuestas tardan más. En pocas palabras, envíe un mensaje de correo electrónico a la lista y reciba resúmenes diarios o respuestas individuales dependiendo de cómo ha configurado usted su cuenta.

Puede suscribirse a la lista de correo emc-users en: https://lists.sourceforge.net/lists/listinfo/emc-users.

3.4. Foro web

Puede encontrar un foro web en https://forum.linuxcnc.org/ o siguiendo el enlace en parte superior de la página de inicio de https://linuxcnc.org/.

Es bastante activo, pero la demografia está más sesgada al usuario que la lista de correo. Si desea asegurarse de que su mensaje sea visto por los desarrolladores, entonces es preferible la lista de correo.

3.5. Wiki de LinuxCNC

Un sitio Wiki es un sitio web mantenido por usuarios en el que cualquiera puede agregar o editar.

El sitio Wiki LinuxCNC mantenido por usuarios contiene abundante información y consejos en: http://wiki.linuxcnc.org

3.6. Reportar errores

Report bugs on the LinuxCNC Github github bug tracker.