cncjs:基于 Web 技术的 CNC 控制器界面项目

A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG.

分支5Tags199
文件最后提交记录最后更新时间
4 个月前
6 个月前
4 个月前
3 年前
3 年前
8 年前
1 年前
5 个月前
8 年前
1 年前
2 个月前
9 年前
9 年前
10 年前
5 个月前
7 年前
1 年前
10 年前
8 年前
3 年前
2 个月前
3 个月前
1 年前
1 年前
9 年前
7 个月前
7 个月前
1 年前
3 年前
5 个月前
5 个月前
5 个月前
7 个月前
2 个月前
5 年前
1 年前
1 年前
1 年前
4 个月前

CNCjs Backers on Open Collective Sponsors on Open Collective Travis CI Build Status AppVeyor Build status Coverage Status

NPM cncjs

CNCjs 是一款功能齐全的基于 Web 的界面,适用于运行 GrblMarlinSmoothiewareTinyG 的 CNC 控制器。

有关更完整的介绍,请参阅维基页面的 简介 部分。

cncjs

功能特点

自定义小部件

手持控制器

模板代码

现有手持控制器

平板用户界面

浏览器支持

Chrome
Chrome
Edge
Edge
Firefox
Firefox
IE
IE
Opera
Opera
Safari
Safari
支持 支持 支持 不支持 支持 支持

支持的 Node.js 版本

版本 支持级别
<= 10 不支持
12 支持
>= 14 推荐

快速开始

Node.js 安装

推荐使用 Node.js 14 或更高版本。您可以安装 Node Version Manager 来管理多个 Node.js 版本。如果您已安装 git,只需克隆 nvm 仓库,并检出最新版本:

git clone https://github.com/creationix/nvm.git ~/.nvm
cd ~/.nvm
git checkout `git describe --abbrev=0 --tags`
cd ..
. ~/.nvm/nvm.sh

将以下行添加到您的 ~/.bash_profile~/.bashrc~/.profile 文件中,以便在登录时自动加载:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

安装完成后,您可以使用以下命令选择 Node.js 版本:

nvm install 14
nvm use 14

建议您同时将 npm 升级到最新版本。如需升级,请运行:

npm install npm@latest -g

安装

以非 root 用户身份安装 cncjs,否则在部分平台(如 Raspberry Pi)上,serialport 模块可能无法正确安装。

npm install -g cncjs

如果打算使用 sudo 或 root 权限安装 cncjs,需要指定 --unsafe-perm 选项以 root 账户运行 npm。

sudo npm install --unsafe-perm -g cncjs

有关其他安装方法,请查看 https://github.com/cncjs/cncjs/wiki/Installation

升级

运行 npm install -g cncjs@latest 以安装最新版本。要查看版本,请使用 cncjs --version

使用

运行 cncjs 启动服务器,然后访问 http://yourhostname:8000/ 即可查看 Web 界面。在 cncjs 后加上 --help 可获取更多选项。

pi@rpi3$ cncjs -h

  Usage: cncjs [options]


  Options:

    --version                       output the version number
    -p, --port <port>                   Set listen port (default: 8000)
    -H, --host <host>                   Set listen address or hostname (default: 0.0.0.0)
    -b, --backlog <backlog>             Set listen backlog (default: 511)
    -c, --config <filename>             Set config file (default: ~/.cncrc)
    -v, --verbose                       Increase the verbosity level (-v, -vv, -vvv)
    -m, --mount <route-path>:<target>   Add a mount point for serving static files
    -w, --watch-directory <path>        Watch a directory for changes
    --access-token-lifetime <lifetime>  Access token lifetime in seconds or a time span string (default: 30d)
    --allow-remote-access               Allow remote access to the server (default: false)
    --controller <type>                 Specify CNC controller: Grbl|Marlin|Smoothie|TinyG|g2core (default: '')
    -h, --help                          output usage information

  Examples:

    $ cncjs -vv
    $ cncjs --mount /pendant:/home/pi/tinyweb
    $ cncjs --mount /widget:~+/widget --mount /pendant:~/pendant
    $ cncjs --mount /widget:https://cncjs.github.io/cncjs-widget-boilerplate/v1/
    $ cncjs --watch-directory /home/pi/watch
    $ cncjs --access-token-lifetime 60d  # e.g. 3600, 30m, 12h, 30d
    $ cncjs --allow-remote-access
    $ cncjs --controller Grbl

无需为 --watch-directory--access-token-lifetime--allow-remote-access--controller 传递命令行选项,您可以创建一个 ~/.cncrc 文件,其中包含以下 JSON 格式的配置:

{
    "mountPoints": [
        {
            "route": "/pendant",
            "target": "/home/pi/tinyweb"
        },
        {
            "route": "/widget",
            "target": "https://cncjs.github.io/cncjs-widget-boilerplate/v1/"
        }
    ],
    "watchDirectory": "/path/to/dir",
    "accessTokenLifetime": "30d",
    "allowRemoteAccess": false,
    "controller": ""
}

若要排查问题,请运行:

cncjs -vvv

配置文件

配置文件.cncrc包含与 cncjs 命令行选项等效的设置。该配置文件存储在用户的主目录中。要查找主目录的实际位置,请执行以下操作:

  • Linux/Mac

    echo $HOME
    
  • Windows

    echo %USERPROFILE%
    

可在此处查看示例配置文件 here

文件格式

有关详细说明,请参见 https://github.com/cncjs/cncjs/issues/242#issuecomment-352294549。

{
  "ports": [
     {
       "path": "/dev/ttyAMA0",
       "manufacturer": ""
     }
  ],
  "baudrates": [115200, 250000],
  "mountPoints": [
    {
      "route": "/widget",
      "target": "https://cncjs.github.io/cncjs-widget-boilerplate/v1/"
    }
  ],
  "watchDirectory": "/path/to/dir",
  "accessTokenLifetime": "30d",
  "allowRemoteAccess": false,
  "controller": "",
  "state": {
    "checkForUpdates": true,
    "controller": {
      "exception": {
        "ignoreErrors": false
      }
    }
  },
  "commands": [
    {
      "title": "Update (root user)",
      "commands": "sudo npm install -g cncjs@latest --unsafe-perm; pkill -f cncjs"
    },
    {
      "title": "Update (non-root user)",
      "commands": "npm install -g cncjs@latest; pkill -f cncjs"
    },
    {
      "title": "Reboot",
      "commands": "sudo /sbin/reboot"
    },
    {
      "title": "Shutdown",
      "commands": "sudo /sbin/shutdown"
    }
  ],
  "events": [],
  "macros": [],
  "users": []
}

文档

https://cnc.js.org/docs/

示例

examples 目录中包含多个 *.gcode 文件。您可以使用 GCode 小部件加载 GCode 文件并进行试运行。

如果您没有 CAM 软件,可以尝试使用 jscut 从 *.svg 创建 G 代码。这是一个可在浏览器中运行的简单 CAM 软件包。

您可以访问 http://jscut.org/jscut.html 查看实时演示。

贡献

请使用 GitHub issues 提交需求。

欢迎提交拉取请求!了解如何贡献

本地化

您可以帮助将 appserver 目录中的资源文件从英语翻译成其他语言。查看本地化指南了解如何开始。如果您不熟悉 GitHub 开发,可以提交 issue 或将您的翻译发送至 cheton@gmail.com

语言区域 语言 状态 贡献者
cs Čeština (捷克语) Miroslav Zuzelka
de Deutsch (德语) Thorsten GodauMax B.
es Español (西班牙语) Juan Biondihasecilu
fr Français (法语) Simon MaillardCorentinBrulé
hu Magyar (匈牙利语) Sipos Péter
it Italiano (意大利语) vince87
ja 日本語 (日语) Naoki Okamoto
nl Nederlands (荷兰语) dutchpatriot
pt-br Português (Brasil) (巴西葡萄牙语) cmsteinBR
ru Ру́сский (俄语) Denis Yusupov
uk українська (乌克兰语) khvalera
tr Türkçe (土耳其语) Ali GÜNDOĞDU
zh-cn 简体中文 Mandy ChienTerry Lee
zh-tw 繁體中文 (繁体中文) Cheton Wu

捐赠

如果您想支持本项目,可通过 PayPal 进行捐赠。感谢您的支持!

捐赠

贡献者

本项目的存在离不开所有贡献者的努力。[参与贡献]。

支持者

感谢所有支持者!🙏 [成为支持者]

赞助商

成为赞助商以支持本项目。您的标志将显示在此处,并链接到您的网站。[成为赞助商]

许可协议

根据 MIT 许可协议 进行许可。

项目介绍

基于网络的界面,适用于运行Grbl、Marlin、Smoothieware或TinyG的数控铣床控制器。【此简介由AI生成】

定制我的领域
1522.64 K622访问 GitHub