Purpose

A practical base for understanding CNC systems

The project began in early 2013 as an independent learning process and was completed in mid 2014. The goal was to understand computer-controlled machining through direct experimentation instead of depending only on ready-made software and hardware.

The prototype is intentionally modest compared with an industrial CNC system. That is part of its value: the design software, the driver, the circuits, and the mechanism can be studied as one connected system.

This site keeps the documentation organized so students, makers, and builders can follow the path from a drawn shape to an electrical signal and finally to physical movement.

System structure

Four areas working together

Design Software

Creates and edits the geometry used as the cutting path, including project setup, point data, and drawing previews.

Open section

CNC Driver

Reads the project data, prepares the machine, and coordinates manual or automatic movement across the axes.

Open section

Electronics

Connects the computer with motors, sensors, protection circuits, logic stages, and H-bridge drivers.

Open section

Mechanics

Combines threaded rods, stepper motors, structural plates, and the cutting tip into a foam-cutting router.

Open section

What is CNC?

Computer Numerical Control in simple terms

CNC automates machine tools through programmed commands. Instead of moving a tool manually, a computer sends precise instructions to position the machine and repeat the same operation accurately.

In this prototype, the router cuts foam pieces previously drawn in the design software. The X and Y axes position the path, while the Z axis raises or lowers the cutting tool. The system uses a positive coordinate area so the software and machine share the same reference for movement.

Positive X, Y, and Z coordinate axes
The prototype uses positive coordinates from a shared origin point.
CNCAD system structure diagram
General relationship between the software, electronics, and mechanical system.

Open development

Built with GNU/Linux and Gambas

CNCAD was developed with Gambas, a free BASIC-derived language for GNU/Linux. The project favors open tools because they make the learning process transparent and easier to adapt.

Fedora and Ubuntu were used as the preferred environments during development. Gambas made it possible to build graphical interfaces while keeping the code close to the logic of the prototype: draw, store points, read the project, and send movement commands.

Top