Octoprint 是一款针对 3D 打印机的开源 Web 服务器软件,它可以通过 web 界面来控制和监控 3D 打印机。而 npm 包 octoprint 则是针对 Octoprint API 的一个封装,使得我们可以方便地在前端代码中使用 Octoprint API 来控制 3D 打印机,而无须直接与 API 进行交互操作。
本文将介绍如何使用 npm 包 octoprint 来控制 3D 打印机。文中将从安装 octoprint、连接到 3D 打印机和控制 3D 打印机三个方面详细介绍如何使用 octoprint。
安装
要使用 npm 包 octoprint,我们需要首先安装它。在终端中输入以下命令即可完成安装:
npm install --save octoprint
安装完成后,我们需要在代码中将它引入:
const Octoprint = require('octoprint');
连接 3D 打印机
在继续前进之前,我们需要连接到 3D 打印机。使用 Octoprint 与 3D 打印机通信所需要的信息存储在一个名为 config.yaml 的文件中,而该文件则存储在 ~/.octoprint 文件夹下。为了连接到 3D 打印机,我们需要使用一些信息来创建一个新的 Octoprint 实例。
const octo = new Octoprint({ url: 'http://localhost:8000', // 你的 Octoprint 地址 apiKey: 'XXX', // 你的 API 密钥 });
在上面的代码中,我们创建了一个新的 Octoprint 实例,并传入了 url 和 apiKey 信息来连接到 3D 打印机。其中 apiKey 信息可以在 Octoprint 的 web 界面中找到。
控制 3D 打印机
成功连接到 3D 打印机后,我们可以开始对它进行控制。根据 Octoprint API 文档,我们可以使用 job.start
, job.cancel
, job.progress
和 printer.command
等方法来控制 3D 打印机。
开始打印
开始打印非常简单,只需要调用 job.start 方法即可。
await octo.job.start('path/to/gcode/file');
在上面的代码中,我们使用了 await 来等待服务器响应。该方法将会开始打印给定路径下的 gcode 文件。
取消打印
如果想要取消当前的打印任务,则可以使用 job.cancel 方法。
await octo.job.cancel();
该方法将会取消当前的打印任务,同时会将 3D 打印机设置为待机状态。
监控进度
监控打印进度可以使用 job.progress 方法。该方法返回一个 object,其中包含了当前打印的详细进度信息。
const progress = await octo.job.progress(); console.log(progress);
输出结果如下:
{ completion: 62.4, // 打印完成度 file_pos: 10399761, // 当前打印的位置 print_time: 2286, // 打印已用时间(秒) print_time_left: 2715, // 预计剩余时间(秒) print_time_left_formatted: '0h 45m' // 格式化后的预计剩余时间 }
发送 G-code 指令
要给 3D 打印机发送一个 G-code 指令,我们可以使用 printer.command 方法。
const response = await octo.printer.command('M104 S200'); console.log(response);
在上面的例子中,我们向 3D 打印机发送了一个 M104 指令,用于设置打印机热端的温度为 200 摄氏度。
示例代码
-- -------------------- ---- ------- ----- --------- - --------------------- ----- ---- - --- ----------- ---- ------------------------ ------- ------ --- ----- ---------- - ----- -- -- - ----- ------------------------------------- ------------------ ----------- - ----- ----------- - ----- -- -- - ----- ------------------ ------------------ ------------- - ----- --------------- - ----- -- -- - ----- -------- - ----- -------------------- ---------------------- - ----- ------------- - ----- ------ -- - ----- -------- - ----- -------------------------- ----------- ---------------------- -
通过以上代码示例,我们可以使用 npm 包 octoprint 来控制 3D 打印机,从而实现更高效和方便的 3D 打印体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005609881e8991b448decfa