README
🚀 MCP 3D 打印机服务器文档
MCP 3D 打印机服务器是一款用于控制和管理 3D 打印机的实用工具。它借助 RESTful API 实现交互,能对 STL 文件进行处理、生成 GCode、监控打印进度,还可进行基本的温度控制,为 3D 打印工作提供了全面的支持。
🚀 快速开始
MCP 3D 打印机服务器支持通过 RESTful API 进行交互,能够处理 STL 文件、生成 GCode、监控打印进度并进行基本的温度控制。
✨ 主要特性
- STL 文件操作:支持读取、写入和修改 STL 模型文件。
- GCode 生成:集成切片工具(如 PrusaSlicer)以生成打印代码。
- 温度监控与控制:提供设置和监控打印机温度的能力。
- 文件管理:支持上传和下载文件到打印机。
- 打印状态查询:返回当前打印任务的状态信息。
📦 安装指南
- 首先,确保系统已安装 Node.js(推荐版本 18.0.0 或更高)。
- 使用 npm 安装 MCP 3D 打印机服务器:
npm install mcp-3d-printer-server - 启动服务:
node index.js
📚 详细文档
接口概述
| 动作 | 路径 | 方法 | 描述 |
|------|------|------|------|
| 获取模型列表 | /api/models | GET | 返回所有上传的 STL 模型列表。
| 上传新模型 | /api/models | POST | 上传一个新的 STL 文件。
| 处理模型 | /api/models/{modelId}/process | POST | 对指定模型进行处理(如扩展基底、切片等)。
| 获取打印状态 | /api/printers | GET | 返回所有连接打印机的状态信息。
| 控制温度 | /api/printers/{printerId}/temp | POST | 设置打印机的温度参数。
请求与响应示例
上传模型
请求示例:
POST /api/models
Content-Type: multipart/form-data
file=@model.stl
响应示例:
{
"status": "success",
"message": "Model uploaded successfully.",
"modelId": "12345"
}
处理模型
请求示例:
POST /api/models/12345/process
Content-Type: application/json
{
"operations": ["extend_base", "slice", "check_temperatures"]
}
响应示例:
{
"status": "success",
"message": "Model processing started.",
"taskId": "abc123"
}
操作指南
扩展基底
用于增加模型的基底高度,防止打印失败。
使用方法:
- 上传 STL 文件到
/api/models。 - 发送处理请求并包含
extend_base操作。
示例:
{
"operations": ["extend_base"]
}
切片
集成 PrusaSlicer 进行切片处理,生成打印所需的 GCode。
使用方法:
- 确保已安装并配置了 PrusaSlicer。
- 在处理请求中包含
slice操作。
示例:
{
"operations": ["slice"]
}
温度确认
检查模型的推荐打印温度设置。
使用方法:
在处理请求中包含 check_temperatures 操作,服务器将返回建议的温度参数。
Bambu Lab 打印机限制
特殊注意事项
- 启动打印任务:必须通过特定的 API 调用。
- 温度控制:直接控制可能受限,需使用提供的接口。
- 文件管理:文件必须符合特定格式和大小要求。
🔧 技术细节
扩展基底操作
function extendBase(model) {
// 实现扩展基底的逻辑
}
切片处理
const slicer = new PrusaSlicer();
slicer.process('model.stl', 'output.gcode');
限制与注意事项
内存使用
处理大模型时,需确保服务器有足够的内存。
性能考虑
- 多线程支持:推荐在多核处理器上运行以提升性能。
- 磁盘空间:确保足够的存储空间用于处理和存储 STL 文件及 GCode。
测试建议
- 在生产环境部署前,先进行充分的测试。
- 使用不同尺寸和复杂度的模型进行验证。
标志
| 名称 | 描述 | |------|------| | npm 版本 | 显示当前 npm 包的版本信息。 | | 许可证 | 项目使用的开源许可证信息。 | | TypeScript 版本 | 当前项目的 TypeScript 编译器版本。 |
💻 使用示例
基础用法
const express = require('express');
const app = express();
app.get('/api/models', (req, res) => {
// 返回模型列表逻辑
});
app.post('/api/models', (req, res) => {
// 处理文件上传逻辑
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
参考资料
如需进一步支持或遇到问题,请联系技术支持。
扫码联系在线客服