开源CNC软件全解析:Windows 与 Linux 平台上的免费选择

前言

CNC(计算机数字控制)技术早已不再是昂贵工业设备的专属。随着 DIY 雕刻机、激光切割机、等离子切割机的普及,开源社区涌现出了大量优秀的 CNC 软件。本文将系统介绍目前主流的开源 CNC 项目,涵盖机床控制软件(上位机)、运动控制固件(下位机)和仿真工具,并重点说明它们在 Windows 和 Linux 平台下的可用性,帮助你根据自己的系统和机床快速做出选择。

一、Windows 平台:开箱即用的控制软件

1. Candle — 新手首选的 GRBL 控制器

GitHub:github.com/Denvi/Candle(GPL-3.0)

Candle 是用 Qt/C++ 编写的 GRBL 上位机,界面简洁直观,直接提供 Windows 安装包(candle_x.x.x.zip),无需编译即可使用。主要功能包括:

  • 通过控制台命令、界面按钮或小键盘控制 GRBL 机床
  • 实时监控机床状态
  • 加载、编辑、保存并发送 G-code 文件
  • 内置 G-code 3D 可视化,支持高度图(Heightmap)对不平整表面进行补偿

如果你的机床用的是 Arduino + GRBL 固件,Candle 是 Windows 下上手成本最低的选择。

Candle 界面截图

2. Universal Gcode Sender (UGS) — 功能全面的跨平台平台

GitHub:github.com/winder/Universal-G-Code-Sender(GPL-3.0)

UGS 是用 Java 编写的老牌 G-code 发送器,只要装了 Java 运行环境,Windows、macOS、Linux 通用。它支持的控制器非常广泛:GRBL、TinyG、g2core、Smoothieware 等。亮点功能:

  • 彩色编码的 3D G-code 可视化,实时位置反馈
  • 加工时长预估
  • Web Pendant 网络操作界面,可用手机/平板遥控机床

Universal Gcode Sender 界面截图

3. gSender — 界面现代的后起之秀

GitHub:github.com/Sienci-Labs/gsender

由 Sienci Labs 开发,基于 Electron 构建,支持 grbl 和 grblHAL 机床。界面设计现代,内置 3D 预览、探针工具、_macros 宏按钮_等实用功能,对初学者非常友好,官方直接提供 Windows 安装程序。

gSender 界面截图

4. bCNC — 功能强大的瑞士军刀

GitHub:github.com/vlachoudis/bCNC(GPL-2.0)

Python 编写的全能型控制软件,集 G-code 发送器、自动对刀(Autoleveler)、G-code 编辑器、数字化仪和基础 CAM 功能于一身。跨平台(Windows/Linux/Mac),但需要自己用 pip 安装依赖,适合有一定动手能力的进阶用户。它的自动对刀功能在 PCB 雕刻等场景中尤其有用。

bCNC 界面截图

5. LaserGRBL — 激光雕刻专用

GitHub:github.com/arkypita/LaserGRBL(GPL-3.0)

如果你的”机床”是激光雕刻机,LaserGRBL 是 Windows 下最流行的选择。它专门针对激光切割/雕刻优化,支持直接导入图片和矢量文件生成 G-code,实时预览激光走位,安装包开箱即用。

LaserGRBL 界面截图

6. CNCjs — 基于 Web 的控制界面

GitHub:github.com/cncjs/cncjs(MIT)

CNCjs 提供基于浏览器的控制界面,支持 Grbl、Marlin、Smoothieware 和 TinyG。最典型的部署方式是装在树莓派上,让机床变成一台可以通过 Wi-Fi 控制的智能设备;它同样可以安装在 Windows 上,本地访问即可。

CNCjs 界面截图

二、Linux 平台:LinuxCNC 的王者地位

LinuxCNC — 最强大的开源 CNC 系统

官网:linuxcnc.org(GPL-2.0+)

说到 Linux 下的 CNC,绕不开 LinuxCNC。它是历史最悠久(前身可追溯到 1990 年代的 NIST EMC 项目)、功能最强大的开源 CNC 软件,能把一台普通 PC 变成高精度机床控制器,支持铣床、车床、路由器、等离子切割机甚至机械臂。核心特性:

  • 基于实时(Realtime)Linux 内核的毫秒级运动控制
  • 支持刚体攻丝、刀具补偿、多轴联动等高级功能
  • 兼容大量硬件接口(Mesa 卡、并口、以太网伺服等)

但请注意:LinuxCNC 依赖 Linux 实时内核,无法在 Windows 上原生运行。Windows 用户想要类似的多轴专业控制能力,只能转向商业软件如 Mach3/Mach4。

LinuxCNC 界面截图

不过好消息是,前面介绍的 UGS、bCNC、CNCjs、gSender、OpenBuilds CONTROL 等上位机全部是跨平台的,Linux 用户同样可以使用(LinuxCNC 机床也可以搭配它们吗?不行——LinuxCNC 有自己的界面体系,但上面这些工具可以服务 GRBL 等固件机床)。

三、固件层:机床的”大脑”

上位机负责发指令,固件则运行在控制板(如 Arduino、ESP32)上,负责解释 G-code 并驱动步进电机。主流开源固件包括:

  • Grbl(github.com/gnea/grbl,GPL-3.0):经典 Arduino Uno 固件,成熟稳定,配合上述任何上位机使用。
  • grblHAL(github.com/grblHAL/core):Grbl 的 32 位现代化分支,支持 STM32、RP2040 等更多主控,插件体系丰富。
  • FluidNC(github.com/bdring/FluidNC):基于 ESP32,自带 Wi-Fi 和 Web UI,用 YAML 文件配置,无需重新编译,是 Grbl_ESP32 的继任者。
  • Marlin:3D 打印机固件之王,也可用于轻量级 CNC 和激光机。
  • Smoothieware / TinyG / g2core:面向不同硬件平台的模块化 G-code 解释器。

四、仿真工具:不接机床也能验证刀路

CAMotics(github.com/CauldronDevelopmentLLC/CAMotics,GPL-2.0):开源的 3 轴 CNC G-code 仿真器,Windows/Linux 均可用。在真正下刀之前,先用它模拟整个加工过程、检查碰撞和过切,可以省下不少刀具和材料。

CAMotics 3D 仿真效果

五、如何选择?一张表看懂

软件 Windows Linux 语言/技术栈 适合人群
Candle ✅ 有安装包 ✅ Qt/C++ GRBL 新手
UGS ✅ ✅ Java 需要多固件支持的用户
gSender ✅ 有安装程序 ✅ Electron 追求现代界面的用户
bCNC ✅ 需自行配置 ✅ Python 进阶用户、PCB 雕刻
LaserGRBL ✅ 有安装包 ❌ C# 激光雕刻用户
CNCjs ✅ ✅(树莓派最佳) Node.js 想要网络化控制
LinuxCNC ❌ ✅(专用实时系统) C/Python 专业多轴机床
CAMotics ✅ ✅ C++ 刀路仿真验证

六、推荐组合

Windows + DIY 雕刻机(Arduino/GRBL):Candle(简单)或 gSender / UGS(功能强),配 GRBL 固件,全部有现成安装包,零编译。

Windows + 激光雕刻机:LaserGRBL。

Linux / 追求极致控制:LinuxCNC + Mesa 硬件,适合改造真机床、做多轴加工。

树莓派玩家:CNCjs 或 FluidNC,让机床连上 Wi-Fi,浏览器就是操作台。

资源汇总

想系统浏览开源 CNC 生态,推荐 GitHub 上的 awesome-cnc 项目(github.com/blackveilprecision/awesome-cnc),按固件、控制软件、CAD、CAM 分类收录了大量开源项目。CAD/CAM 侧的开源方案(如 FreeCAD 的 CAM 工作台、QCAD 等)也值得关注,它们同样跨 Windows 和 Linux 平台。

开源 CNC 软件经过多年发展已经相当成熟,无论你用的是 Windows 还是 Linux,都能找到适合自己的免费方案。动手之前,建议先在 CAMotics 里仿真验证刀路,再逐步在真机上以低速试切。

滚动至顶部