Spread the love
CNC machine control software is the bridge that connects your model to reality. This is what you need to combine your motors, rails and 3D model. All CNC routers and virtually all other types of CNC machines use software to control the process of converting a drawing or model into motor movement.
In general terms, we can divide the CNC machining process into four stages: first the user designs or receives the model, then the G-code is generated. The step and direction pulses are determined from the G-code, and finally the stepper motors of the machine control the sequences.
The design phase is often completed using CAD software and is a subject in its own right. It generates and interprets G-code, which is usually handled by dedicated CNC software.
Some programs allow you to edit and input your G-code and create all the math, all the step (direction) pulses and send them at exactly the right time to the stepper motor drivers. Others divide the work and simply send the G-code and leave the rest of the calculations to the machine's firmware (on a separate board).
The exception to these two methods is Mach software, which is an intermediate option. Mach interprets the G-code on your computer, but sends special low-level commands to the external board, rather than trying to time the step (direction) pulses.
BEST SOFTWARE FOR CNC MACHINE
Here we have compiled a list of the best CNC software options. Due to the variety of machines and uses, the way CNC machines create and interpret G code can vary. For this reason, we will separate our selections based on different approaches.
We have chosen a variety of programs, but have made sure that they all comply with the following:
- Active community and support available
- Range of functions
- Accessibility for hobbyists
- Some degree of customizability
While different options may meet these criteria better than others, we're confident you'll find what you need. So now let's see what's there!
First, let's look at the type of software that tries to do everything itself. In other words, software that takes G code and generates step and direction pulses for stepper motor drivers (usually via a parallel port).
Aspire
Aspire CNC control software
Aspire by Vectric is a multifunctional CNC software. It is easy to learn and can handle complex CNC part creation tasks. Its innovative 3D modeling tools, full range of 2D designs and editing capabilities make it an ideal choice for beginners.
A special bonus for beginners is Aspire's unlimited free trial, which includes a variety of free designs so you can learn how to use them before you make a purchase.
- Cost: ~$2000
- Operating system: Windows
- Key features: full set of model editing tools, unlimited trial period (for selected projects), more than 5400 minutes of video tutorials, active community.
There is an article on our website with a detailed review of Aspire tools from Vectric
From Vectric
Vectric programs combine power and ease of use. Easily allows you to work with graphic images and create a precise set of commands for working with a CNC machine.
CUT2D
This software was created for calculating 2D trajectories during milling, as well as for engraving and cutting operations. The program is equipped with special tools for performing a whole cycle of technological operations.
It is possible to add borders, scale, and convert images from different formats into a vector drawing. Editing an image using CUT2D takes minimal time.
CUT3D
This is software for working with 3D models. Excellent for turning equipment. It can be successfully combined with models prepared in graphic editors AutoCAD, Rhino3D, 3D Studio, as well as using a laser scanner or sensor. The main advantage is a convenient interface with step-by-step instructions that allows you to download the model, set dimensions, and view the approximate result of the work.
VCARVE
Used as a simple and understandable support for woodworking units. This includes tools for 2D design, for machine spindle paths, as well as the function of importing several 3D models. The panel contains a large number of options to configure a variety of parameters.
PHOTOVCARVE
Using this program, it is possible to perform engraving work that was previously only possible with a laser system. When working, an image or photograph turns into a set of commands for the machine. Compatible with almost all image formats.
Aspire
Allows you to turn 2D sketches, photographs, drawings and pictures into various three-dimensional 3D models. It has an intuitive interface, as well as a unique set of tools for 3D modeling, editing and design.
LinuxCNC
CNC machine control software LinuxCNC
LinuxCNC is a popular choice among CNC enthusiasts. This is one of the oldest and most reliable options.
To fulfill the dream of an all-in-one device, it runs on the Linux kernel with real-time extension (RTAI). By setting it this way, LinuxCNC can generate the necessary pulses through the parallel port with precise timing.
LinuxCNC has been around for a while, so other setups have become popular. For example, using Ethernet and Mesa cards (external cards) is also possible, and some users have even experimented with running LinuxCNC on a Raspberry Pi. In the end, you can choose simple or in-depth customization when using LinuxCNC.
In particular, LinuxCNC is open source and has a very large active community. Given these two conditions, it is not surprising that the software is highly customizable, especially the GUI, and has many additional features.
- Cost: Free
- Operating system: Linux
- Key Features: Mature software, fully open source, active user community, easy to install, supports many CNC machines.
HeeksCNC
HeeksCNC CNC machine control software
HeeksCNC by Heeks is CAD/CAM software for Windows. For about $14, you'll get an easy Windows installation and the promise of developer help if you need it. Additionally, the source code is available on GitHub, which means you can modify the software to suit the requirements of your installation.
HeeksCNC is built on top of HeeksCAD and includes OpenCAMLib plus Area. It helps in creating CNC code, the most commonly used G code, for your 3-axis milling machine. HeeksCNC is gaining popularity as an open source option and is updated regularly, with a developer working on Heeks2.
Please note that to install the free version of HeeksCNC (by building it from source), you will first need to install HeeksCAD, OpenCASCADE/OCE and wxWidgets 2.8.
- Cost: ~$14 for Windows installation or source code can be downloaded from GitHub.
- Operating system: Windows
- Key Features: Supports DXF drawings, regularly updated, open source
What does a CNC program look like?
If we look into the code, we will see this:
N1 G17 G20 G34 G40 N2 T1 M16 N3 S8600 M2 N4 G54 N5 M8 …
The N-code is responsible for the line number - they can be useful if we need to jump to a specific line or skip some commands. M are responsible for details, for example, command N3 S8600 M2 means that you need to spin the work spindle (M2 is responsible for it) to a speed of 8600 rpm (command S8600).
So, command after command, the machine performs certain actions, and the output is the part we need.
Machinekit
Machinekit software
Machinekit is new to the market. This is a fork of LinuxCNC, aimed at modernizing the old program. They changed a few things under the hood and improved support for other forms of GUI remote control. In addition, Machinekit offers images available for Beagle boards, popular single board computers.
Overall, Machinekit has inherited many of the positive features of LinuxCNC and is still in the process of building a decent community. There are tutorials to help you get set up, and promising features in development if you want to check out Machinekit's potential.
- Cost: Free
- Operating system: Linux
- Key Features: Promising future, ARM computer support, LinuxCNC problem solving, growing community
Hobby machines and software for them
The most interesting for use are control programs for hobby machines. All software discussed above is industrial. It is very expensive, difficult to learn, and available only in demo form or with truncated capabilities.
The situation is different with a special class of software for a hobby CNC machine. The market offers low-cost systems and several FreeWare programs that allow you to build a fully functional milling, turning, laser or 3D machine. The most common of them:
- ArtCAM;
- Mach3;
- VriCNC;
- LinuxCNC;
ECam
CNC software ECam
ECam is another universal program for CNC machines. It simplifies the creation of G-code for a part and is designed to speed up the process for simple models.
ECam combines features typically found in CAD/CAM systems with interactive programming. It comes with a 14-day fully working trial so you can experiment with the software before committing to a purchase. Moreover, and unusually, the software is free to use on weekends for anyone to use for non-commercial purposes.
- Cost: ~$180 (lathe or mill only), ~$240 (full), ~$420 (adaptive)
- Operating system: Windows (64-bit system only)
- Key Features: CAD editor, DXF and DWG file support, tool path modeling, custom G-code, 3D material preview, unified calculator
ArtCAM
ArtCAM software is a set of products for modeling and design, and also carries out automatic processing on a numerically controlled machine. This software package includes tools that allow you to create different types of spatial reliefs. ArtCAM is used in the shoe and furniture industries, to create molds and plastic products.
The software has the following functions:
- creates textures for grinding equipment;
- uses 3D templates to make simple structures;
- independently generates 3D models from 2D drawings;
- a set of tools for creating and editing vector and raster images;
- a large number of processing strategies allows you to choose the optimal processing path of varying complexity.
This software is accessible to users with the least basic skills.
TurboCNC
TurboCNC CNC software
TurboCNC from Dak Engineering runs under DOS (yes, MS-DOS). And for a small fee of around $60, you get access to the source code and additional support. While you may initially think this is a curious choice, TurboCNC runs under DOS to have accurate time, similar to LinuxCNC. This is an old program, but there is still an active community around it.
A couple of downsides are that it's not as customizable as other options and its GUI is archaic. However, the author puts it best: "[it's] quality, serious software."
- Price: ~ 60 $
- Operating system: MS-DOS
- Key Features: Built-in code editor, fully customizable pitch/direction, 8-axis simultaneous motion with backlash compensation, fully parametric programming, multi-axis threading capability
Purpose
First, let us note in several advantages why such machines themselves are needed:
- They increase the efficiency and productivity of the entire enterprise several times.
- Reduce the likelihood of a defective sample.
- They take most of the load off the operator, leaving him with simpler work.
- Increases the accuracy of the workpiece.
And in order for such a system to be possible, a program is simply necessary. The main task of creating specialized software is to enable the miller (turner) to be distracted from the process and reduce his responsibility for the result. Now he is not obliged to continuously monitor every movement of the cutter and drill. Thus, the software includes a set of commands that together arrive at the equipment and influence what process is being performed.
Thus, commands automate a number of actions:
- Selecting a tool, its fastening.
- Fixing and centering the workpiece.
- Determining the appropriate mode and cutting speed based on the parameters of the material and cutter.
- Movement of the cutting edge. Moreover, the minimum, optimal distance is determined depending on the coordinates in which the “zero” point becomes the final position of the cutter. That is, there is no need to always return to the initial section before the next pass.
For each new element, it is necessary to write a new code (drawing), which requires specialized software. If you have it, and you also have basic communication skills with a graphic editor, you can easily create new commands for equipment.
Easy
Easel CNC Software
Easel is a G-code generator and CNC control tool that runs on all major operating systems. It is a browser-based program that allows you to easily create your designs and make cuts on your machine.
She also has a very useful educational initiative - Easel Lessons. It is a public educational event that encourages users to develop their skills and implement hands-on projects.
Easel is popular among hobbyists and beginners thanks to its user-friendly interface, set of built-in tools and compatibility with various CNC firmware options.
- Cost: Free
- Operating systems: Windows, Linux, MacOS
- Key Features: Easel Classes, Custom G-Code Support, Active Community, Ease of Use
Mach 3
Mach 3 CNC Software
Mach 3 is a feature-rich program that is commonly used by hobbyists who need a CNC control package. It is popular and has been in development for a long time. In addition to its many features, the Mach 3 GUI is fully customizable.
The Mach 3 can be configured in several ways, but the most common setup only works with specifically compatible external boards, such as the popular SmoothStepper. Note that while Mach 3 can be used in a generic approach similar to LinuxCNC, it is not as common. This is because running it on Windows means that it cannot operate in real time, which can result in a delay in driver clock timing.
This mature software is being replaced by its younger brother, Mach 4, which we will talk about later. With a noticeably lower price, great features, and an active Mach 3 community, it's still a good choice for any hobbyist.
- Price: ~ 175 $
- Operating system: Windows
- Key Features: Versatile visual G-code display, customizable interface, custom macros and M-codes using VBscript.
Mach 4
Mach 4 CNC Software
Mach 4 is a complete reboot of Mach 3. It solves many of the problems associated with legacy software. In particular, it is modular and flexible. It's not built with the idea of using a parallel port, although there are still ways to go that route. It boasts full customizability thanks to its modularity and uses its original core for computing.
Needless to say, the Mach 4 has enough features and customization options for a hobbyist. Although it is relatively new, it has come a long way and has promising prospects for the future. All this to say, it's a worthy choice for any setup.
- Cost: ~$200 (hobby), ~$1400 (industry).
- Operating system: Windows
- Key Features: Remote control capabilities , quick and easy GUI setup, ability to link information between other applications, improved usability over Mach3, kernel responsible for all motion control calculations
UCCNC
UCCNC CNC Software
UCCNC is CNC controller software that works with CNCdrive motion controllers. Supported motion controllers: UC400ETH, UC300ETH, UC300, UC100 and AXBB-E.
UCCNC works seamlessly with machines with up to 6 axes and the use of C# as the language makes it efficient as well as fully modifiable.
The program also comes with a real-time 3D toolpath viewer, OpenGL screen optimization, and some basic CAM modules, including DXF file import. Not to mention the built-in visual screen editor that allows you to fully customize your screen.
It is important to note that this software is per motion controller enabled, meaning that one license key will only work with the specified motion controller.
- Price: ~ 60 $
- Operating system: Windows
- Key Features: 48 customizable hotkeys, built-in visual screen editor, DXF support, minimal CPU/GPU usage, regular maintenance
Program capabilities
A numerical control panel can be installed on almost any equipment that performs mechanical processing of material. These are tasks such as turning, milling, drilling, cutting off, threading, grooving and much more. At the same time, you can work with metal, wood, plywood, paper and cardboard, glass or plexiglass, and other synthetic polymers. Usually software is written when:
- mass production, when a similar volume would take a lot of time manually;
- high precision needs;
- a special, individual and very complex knot that is almost impossible to accurately turn by hand.
Thus, the applications of equipment are so wide that there is no point in listing the branches. Almost any industry, from making paper clips to building spaceships, cannot do without such software.
PlanetCNC
PlanetCNC CNC machine control software
Another well-developed G-code sender option is made by PlanetCNC, offering a complete hardware and software solution. It takes a modern approach to CNC software, focusing on G-code manipulation, and has dedicated boards for everything else. It can also work with your own board if it is capable of interpreting G-code.
PlanetCNC comes with flexible configuration options and simulation features. This, along with its intuitive design, makes it an exceptional piece of software.
- Cost: The software is provided free of charge for controllers with a valid license.
- Operating systems: Windows, Linux, MacOS, Raspberry Pi
- Key Features: Fully customizable tool change routine, supports many CNC machine uses (modelling, spindle synchronization, probing, probing and canned cycles), compatible with a variety of G-code options and file types.
Home CNC milling machine as an alternative to a 3D printer, part three, software and G-code
In this article I would like to talk about the software necessary for the work, and at the same time give a little introduction to g-code. Again, I ask you to forgive me for being a non-professional, I may miss something, or be inaccurate in some respects. On the other hand, everything described in my articles is purely personal experience, and it definitely works in close to office-garage-home conditions using simple Chinese CNC routers. Software for work can be divided according to the level of abstraction from the bottom up: firmware for motor drivers, a “controller rack” or a software and hardware complex replacing it based on a PC or MK, CAM - software that builds the tool path and converts it into G-code, and CAD . The lowest-level software is the motor driver firmware, which converts step and direction signals (step/dir) for stepper motors or speed/direction for servo motors into voltage and current values supplied to the motor windings; we do not select or modify it, at least in the case under discussion.
The next level is the “rack” - a hardware and software complex that converts lines of code into signals for drivers. Here it’s already more interesting, at least at the stage of choosing a machine (or choosing components for self-construction), we can focus on both entry-level industrial racks (GSK, Washing, used old Siemens and Fanuks), and on a combination of interface boards (from the banal LPT and opto-isolated Chinese red board to MESA) with software - LinuxCNC, Mach3, NCStudio and others. Personally, I have had a lot of positive experience with LinuxCNC and NCStudio; Despite the simplicity of both, they cope with processing ISO-7bit notation using ready-made simple G-code with a bang. Industrial racks have the advantage of flexibility in setting up drives and the ability to connect a large number of peripherals, as well as the ability to work with advanced G-codes (cycles) and macro programs, but with the current availability of KAM systems and piece production, this is not necessary.
At a higher level are CAM (computer aided manufacture) programs - software for creating trajectories that describe the passage of a tool in a workpiece. And here we begin to experience complete confusion and vacillation. On the one hand, there are few free or shareware CAMs. Not to say there is nothing decent at all. Yes, there is a plugin for Inkscape, there are some unstable miracles from five years ago, there is a trial fusion, there are plugins for CADs... By the way, regarding the very simple ones, we have been attaching G-CodeTools for Inkscape to the cutting router for a long time, but we were never able to achieve acceptable speeds of the operator-plugin connection. As a result, we bought CamBam+ for $150, which is ridiculous by market standards, and enjoy it. And so - everything is cheap or free, or for very simple processing, or glitch on glitch and glitch drives. We tried a bunch of everything in demos and broken versions, as a result we negotiated with the toad and the financial director, and bought PowerMill - based on reviews and emotions experienced during the search process, it is perhaps the optimal tool for small production. Later, wonderful comrades from SprutCAM came to us, gave us a demo, and we were horrified to discover that we had overpaid by about 20 times - almost all of our needs were covered by the completely affordable SprutCAM Mach3. We bought it, of course (like in reserve at a gift price), but then we found a couple of shortcomings, so we use only PM.
I almost forgot: the intermediate stage between g-code and CAM is a postprocessor - once a separate program, but now a built-in module of any decent CAM. This is the same thing that converts the CAM trajectory into the code of a specific machine. All you need to know about a postprocessor is that it exists, and that it has a description tied to a specific code notation perceived by the machine. Conventionally, some machines ask for line numbering, some - “;” at the end of each line, some even accept commands in Russian letters, and so on. For the machines in question (home milling machines), regardless of whether MACH3, LinuxCNC or NCStudio, the standard fanuc0i 3axis postprocessor will be used.
Well, the highest level is CAD, which is already quite far from the machine. Here the choice is almost endless, and even more free than in 3D printers, since milling goes to the surface, and the CAM input may not be a solid model, but a boundary surface. Normal CAMs are almost omnivorous and with equal pleasure they suck up models from anything - from 3DMAX to SolidWorks.
G code
Several times I started writing about g-code, but each time I abandoned it.
On the one hand, the full g-code is ambiguous, at least in terms of cycles: even different series of machines from the same manufacturer can interpret g-codes in different ways, but in the main codes everything is clear. On the other hand, a modern CAM system allows the operator not to know the g-code as a class at all, making do with twitching the mouse on the computer windows. But when one of our operators (good by the way, VO, experience and all that) failed to cope with the task of “making a test program that will run the spindle up and down 30 mm 1000 times,” I realized that at least there should be a general understanding. Even if you don’t write simple programs, then at least to parse and debug what the postprocessor wrote to us. Firstly, it’s worth knowing that g-code comes in frames, each line is a frame. Code
G1 x10 y20 will give a transition along the line connecting the current location and the point x10y20, and the code G1 x10 y20 will give a transition along a broken line - first to the point (current position, x10), and then to the point x10y20.
By the way, in the second example we can see the property of modality: we don’t have to write G1 at the beginning of the second line, because G1 is modal and the stand will understand a frame without a code as a duplicate code of the previous one. If we tried to pass along the arc (G2/G3) and also transferred the second part to the next line, the stand would interpret this line as a new G1 frame.
So, the first group of codes that are worth knowing are installation codes. This includes codes for setting the coordinate system, unit system, setting the tool length and radius compensation. For the hobby CNC operator, it is enough to know from all this the security line that is placed at the beginning of each program:
G17 G21 G40 G54 G80 G90 And explanation: G17 (we work in the XY plane) G21 (units - millimeters) G40 (cancel tool length compensation) G49 (cancel tool radius compensation) G54 (work in the first coordinate system) G80 (cancel previously launched constants cycles) G90 (work in absolute coordinate system). After such a heavy dose of commands, any machine is cleansed of all possible sins remaining from previous processing and is ready to work on your project. Even if your machine does not know anything about corrections, do not be shy - against the background of the program body, these few bytes will not add much to the size of the program, the machine will simply ignore foreign codes, but everything will definitely be fine.
In general, perhaps, there is nothing more to know about working on the machines under discussion.
Unless G54 is a designation for working in the first coordinate system. The fact is that almost any rack by default supports the machine coordinate system (with zero on the limit sensors, usually in the corner of the desktop), and up to 6 additional coordinate systems specified by the user. For what? When you work in CAM, you set an arbitrary zero point - in the upper left-near corner (more correct) or in the center of the workpiece, and the entire trajectory is described from this point. If the machine could only work in a machine control system, it would be necessary either to place the workpiece at an angle to the machine zero, or to set the zero in CAM at an unclear point, measured relative to the actual location of the part. Why as many as 6 coordinate systems? Well, everything is also simple, although it is less often used: if the table allows you to install several workpieces, it makes sense to combine processing: first go through all the workpieces with one cutter, then change the cutter and go through all of them again, well, etc. This is where different CSs come to the rescue: instead of merging models in CAM, you can designate different CSs for workpieces and at the beginning of each processing specify which CS we are using.
Theoretically, when writing a program manually, the G90/G91 command can also help: selecting an absolute or relative coordinate system. Here everything is also very simple: in G90 the machine moves along the coordinates specified in the line, and in G91 it moves along the coordinates added to the current ones. So a machine standing at point X10Y10 on line G90 G1 x20 will go to point X20, and on line G91 G1 X20 will go to point X30.
The next group is movement codes. Everything is simple here, at least on the machines under discussion:
G0 - idle movements, performed at the maximum speed set in the rack. It is worth considering that G0 does not always give linear movement; in some stands, with the command G0 X200 Y300, when located at point X0Y0, the working tool first moves at 45 degrees to point X200Y200, and then in a straight line to Y300. It makes sense to check how this happens on your machine; without knowing this subtlety, you can accidentally cut into a fastener or workpiece.
G1 - linear interpolation. It’s even simpler here: the machine always moves in a straight line between the current point and the point indicated in the code. The command assumes the syntax G1 X20Y30Z10 F1000, where F is the speed of movement in machine units (usually millimeters per minute, but sometimes mm/sec or something else exotic). Speed is modal, i.e. if you specify the speed once, it will be valid for all subsequent G1/G2/G3 lines, even if they are separated by, for example, G0 or other codes.
G2/G3 - circular interpolation clockwise or counterclockwise. Two definition options are allowed: when the machine is at point X0Y0, format G2 X10Y10R20 will build an arc between the current point and point X10Y10 with a radius of 20, format G2 X35Y25 I20J-5 will build an arc between the current point and X35 Y25 with the center at point X (current point)+ 20 Y(current point)-5. Theoretically, in advanced racks there are a lot of other interpolations - from sine to hyperbola, but in our machines and with the presence of CAM this is not relevant.
Well, there are a few more codes that are part of the ISO 7bit system, but are not g-codes. These are M03 (spindle turn on) with argument S (rotation speed), M05 - spindle stop, M07/09 - coolant supply and cut-off, and M30 - program end.
Phew. It turned out to be somewhat chaotic and drawn out, but it could really be useful. This is where I say goodbye, in the next series I will write a little about materials for a home CNC router and describe the process of constructing processing in PowerMill.
UPD. other articles in the series: Home CNC router as an alternative to a 3D printer, part one - choosing a machine Home CNC router as an alternative to a 3D printer, part two, tools and accessories Home CNC router as an alternative to a 3D printer, part four. General processing concepts
ChiliPeppr
ChiliPeppr CNC machine control software
ChiliPeppr is a browser-based G-code host that works as well as software-based CNC controllers. It is a platform that allows you to easily create a workspace for managing equipment using software.
It works with both TinyG and GRBL, and there are several other pre-configured workspaces available. Getting it to work with your CNC machine is very simple: you just need to install a simple driver that connects to the machine through your browser.
- Cost: Free
- Operating Systems: N/A (browser based)
- Key Features: Works with TinyG, Lua, GRBL, etc., Includes probing and automatic alignment, open source.
General information
At the beginning of the 20th century, all devices for processing workpieces were mechanical. That is, of course, there was an electric drive, but the movement of all components was monitored by a mechanic. This is a rather complex and honorable activity; mastering it requires specialized education, as well as significant skill and experience. But classic models have a number of disadvantages:
- They are not accurate enough. To achieve a high level of accuracy, hard, meticulous work is required, as well as the impeccable condition of both the equipment itself and all the cutters - no vibrations or accidental movements.
- A large number of errors and defective parts due to the human factor. Little experience or poor communication (it’s not for nothing that all turners have ranks), fatigue, simple inattention - and the whole workpiece goes to waste. This is not economically viable.
- Hard physical labor. Each piece of equipment must have a mechanic who is involved in many operations - from securing the metal in a vice to operating the cutter. This is constantly intense work that requires attention, strength and, we repeat, experience.
- Poor performance. The metal processing speed is not high enough because everything is done manually.
Along with the first creation of programs for CNC machines, the realization emerged that the same amount of work could be done faster, without errors, with minimal human resources.
For the first time in the USSR, software-controlled systems were introduced during the Great Patriotic War, during the same period the first problems appeared - insufficient competence of technical personnel, little knowledge of the basics of programming and imperfect equipment.
It became possible to correct this problem with the advent of sufficiently user-adapted working computer environments. Let us explain with an example how this is interconnected.
An engineer wants to create a metal assembly. Doing it manually is very difficult, almost impossible, so he first goes into the software. Here it performs two overlapping operations:
- Complex mathematical calculations that are aimed at checking the functionality of the node.
- Drawing.
Then the specialist, having completely completed the first task, changes the format of the document and ends it in a digital equipment control panel.
Now his job is small - place the workpiece, observe the correct execution of the process, and then remove and check the sample. And the built-in program for CNC milling will automatically select the appropriate speed and cutting angle, mode, as well as the most efficient movement algorithm.
So, to create any complex three-dimensional part from metal, wood, or other material, you need to use computer software with 3D graphics capabilities. Then the image needs to be converted into g-code. It is important that the software matches the operating system, that is, the OS “pulls” the program. For example, most professional CAD does not work correctly on the usual Windows, but will work on Linux. Convenience (mostly the absence of delays, which is very important) also depends on the personal computer itself.
Universal Gcode Sender
CNC machine control software Universal Gcode Sender
Universal Gcode Sender (UGS) is open source and easy to use. It is written in Java to support multiple platforms and works well with customization.
UGS has all the features most hobbyists need, plus some decent G-code manipulation. Add to this the ease of execution and you have the perfect setup for a beginner. Note that you will need to link this to the firmware for your board that accepts G-code. Take a look at the options below to get some ideas.
- Cost: Free
- Operating systems: Windows, Linux (including ARM SBC), MacOS
- Key Features: Customizable G-code optimization, 3D G-code visualizer, all-in-one JAR executables, runs on multiple operating systems, simplified user interface.
The process of developing programs for CNC machines
Let's list the steps step by step:
- Collection of data about the required unit and its production tasks.
- Creating sequentially first a sketch, then a drawing, a 3D model.
- Receiving a set of commands.
- Code correction and emulation.
- Test launch and production.
At the stage of collecting information, we find out what kind of element it is, where and under what conditions it will be used, its dimensions, the nature of the surface, including roughness, as well as allowances, which are extremely important for turning.
OpenCNCPilot
OpenCNCPilot CNC machine control software
Similar to ChiliPeppr, this program only controls the machine, but does a great job. The highlight of OpenCNCPilot is its ability to penetrate user-defined areas for deformation, as well as wrap the tool path along a curved surface. This is very useful when milling insulating PCBs where distortion causes damage or short circuits to the traces.
In addition, no additional sensors are required for operation. This, combined with automatic leveling and automatic elevation maps, makes OpenCNCPilot a very capable option.
- Cost: Free
- Operating systems : Windows
- Key Features: Supports GRBL firmware, automatic height maps, TCP connectivity, automatic leveling, open source
Creating a cutter path
The constructed vectors allow you to set the direction of movement of the cutter. To do this, select the necessary vectors by highlighting them with a frame or clicking on them one by one while holding down the Shift key. Then go to the Trajectories → New 2 D trajectory → Profile . In the window that opens, you will need to enter a number of parameters for the movement of the cutter relative to the vectors. You can learn more about each parameter by clicking on the help icon in the upper right corner of the window.
Profile type and vector connection
parameter determines whether the cutter will move with its center along the vector line ( Along
), or perform processing along its edge with an offset
Inward
(left, up) or
Outward
(right, down) by the value of the cutter radius.
In the Depth of cut , you must set the value Finishing pass
.
If it is necessary to process the workpiece in two passes of the cutter, you should set the depth value to Initial pass
.
In the Profile Tool, you can select a cutter suitable for the operating parameters, create and add your own tool, or copy and edit an existing one.
Approach/Retraction and Inclined insertion prescribe in the CNC control program the path of insertion of the cutter into the workpiece being processed.
The cutting sequence allows you to set the processing sequence according to selected vectors.
Z Safety Plane parameter specifies the height of the tool above the workpiece for safe transition from one vector to another.
In the last paragraph, the Height of the workpiece
(let it be 16 mm), indicated by
Zero in Z
and
the Position of the model in the workpiece
(for 3D) relative to the top and bottom edges.
To process along a profile, zero in Z should be set at the top edge and move the Model Position slider in the workpiece
to the uppermost position.
All that remains is to set the name of the trajectory and click the Calculate Now
. New cutter paths will appear on the ArtCAM workspace.
GRBL Candle
GRBL Candle
GRBL Candle is a free and open source software to control your GRBL based CNC machine. It can be downloaded for free from the Github page and installed on Windows or Linux computers. The user interface is minimalistic and easy to use. Additionally, you can assign keys on your keyboard to control axes. You can import, view and edit G-code. In addition, you can view the path taken by the tool before and during cutting.
Communication with the controller is via USB. However, it can support a maximum of 3 axes. It is suitable for DIY hobbyists and enthusiasts. Additionally, GRBL Candle has a large online user community and forums that can help you with GRBL Candle.
Marlin
Marlin
Marlin will be a familiar name if you've flashed your device before. This is a very popular firmware for all types of 3B printers and also supports CNC configurations. There are a wide variety of configurations available, and flashing is a simple process. Feel free to check out our guide to getting started with Marlin.
Because Marlin is widely used, there is wide support for a range of boards. Add to that its flexibility and large community, and it makes Marlin one of the best options for any CNC setup.
- Cost: Free
- Boards: Arduino, Teensy and others.
- Key Features: Highly flexible, customizable for almost any machine, supports multiple boards, easy setup, large community
GRBL
GRBL
GRBL is a very simple open source firmware for 3-axis CNCs. Yes, it is limited to three, so it is not intended for 3D printers; this was done to meet the need for a parallel port independent system.
Even though it's not big or feature-rich, GRBL gets the job done and does it well. It claims to give very smooth results and is easy to set up. Flashing can be done through the user-friendly Arduino IDE and has a simple configuration. All of this makes it a very beginner-friendly choice for CNC projects.
- Cost: Free
- Boards: Arduino boards (except Arduino Mega)
- Key Features: Open Source, Easy Setup, Dual Axis Support, Arduino Based
What can be programmed in production
You can program anything that has a CNC unit - even a woodworking machine, a laser cutting machine, or a spot welding manipulator. The main thing is that the necessary parts of the production unit are equipped with drives and sensors.
A drive is something that makes something move. For example, to make a robotic arm, you need 5–6 drives that will drive the joints of the robotic arm. You can tell the actuator, “Accelerate this many degrees,” or “Turn this much,” and it will set in motion whatever is attached to it.
A sensor is a thing that collects some data. For example, rotation speed, temperature, pressure, bend angle. Thanks to the sensors, you can say: “unbend the drive such and such until you feel such and such a pressure force with the pressure sensor.”