MIDILLI G-Code Generator for CNC Routers
MIDILLI G-Code Generator is a free and versatile command-line tool for creating G-Codes files to prepare box-shaped parts. It supports circular drill holes, rectangular cutouts, and precise dimensions in metric units. The generated G-code files are compatible with CNC routers supporting GRBL, ensuring seamless design preparation.

Derived from the in-house MIDILLI Tech Automation Suite, this tool is a simplified yet robust solution.
It is offered free for non-commercial use. You can find the full license details here.
Please choose a topic from below to read.
Features
- Box Creation:
- Generate rectangular shapes with up to six sides to form a complete box structures.
- Option to omit any side during box design.
- Option to use the sizing for the inner volume or the outer volume.
- Customizable Cutouts:
- Create holes or rectangular cutouts (also called components) on specific sides of the box with precise locations.
- Create screw holes on top or bottom* side with the given screw diameter.
- Component Rotation:
- Rotate components to any specified angle.
- Recess Support:
- Create flush surfaces with custom dimensions that prevent movement of e.g., button caps and improve functionality.
- Create recesses for screw heads*.
- Bit Diameter Compensation:
- Compensate the bit diameter to create exactly the specified drill holes/cutouts.
- Straight and V-shaped bits are supported.
- Feedrate:
- Set feedrate for movement on axes.
- Layered Outputs:
- Separate component, recess, outline layers’ outputs to only perform a single step at a time.
- Material Thickness:
- Adjust material thickness for accurate cuts and fits.
- Box Sizing:
- Automatically adjust box sizes for inner or outer edges, depending on user preference.
* Using recess for screws on bottom side requires manual flipping of the surface.
How does it work?
The tool takes a JSON file as input (example below) and generates G-Codes for up to six sides of a box, with each side containing its own drill cutouts, recesses, and engravings. These pieces can then be assembled to construct a 3D shape.
The exported .nc files must be sent/executed with a G-Code sender e.g., Candle (free and open-source) to complete the task.
Warning: Operating CNC routers requires a safe environment to prevent exposure to dust, debris, and high-speed moving parts. Never place your hands near moving parts. Always ensure proper ventilation, wear safety goggles, and use hearing protection. Additionally, perform a simulation to ensure the final G-code does not attempt to drill or move into restricted and/or dangerous sections.
Download
By downloading our free software, you agree to the license conditions.
Version History
- 1.2.1 (08.02.2025)
- Replaced
height
withlength
in JSON to avoid confusion.
- Replaced
- 1.2.0 (06.02.2025)
- V-shaped endmill type added for automatic compensation.
- 1.1.0 (26.01.2025):
- Separation of feedrate for x-, y-, and z-axes for more control on speeds.
- Removed
--feedrate
argument.
- Removed
- Minor bug fixes.
- Separation of feedrate for x-, y-, and z-axes for more control on speeds.
- 1.0.0 (22.01.2025):
- Initial version.