
3d Printer Server
连接 MCP 到主要的 3D 打印机 API(Orca、Bambu、OctoPrint、Klipper、Duet、Repetier、Prusa、Creality)。控制打印、监控状态,并执行高级 STL 操作,如缩放、旋转、截面编辑和底座扩展。包括切片和可视化。
MCP 3D 打印服务器
✨ 最新功能 / 重要更新(截至上一次会话)
- Bambu
.3mf
打印: 添加了专门用于 Bambu Lab 打印机的print_3mf
工具。该工具上传.3mf
文件并通过 MQTT 根据 OpenBambuAPI 规范直接发送打印命令。 - 直接 MQTT 通信(Bambu): 重构了 Bambu 命令处理(
print_3mf
,cancelJob
),使用直接 MQTT(TLS 端口 8883),而不是仅依赖bambu-js
进行命令操作。 .3mf
文件解析: 实现了一个解析器(src/3mf_parser.ts
),用于读取.3mf
文件中的元数据和 Bambu 特定的切片设置(从project_settings.config
中)。- Bambu 预设资源: 添加了对读取 Bambu Studio 预设文件(
machine
,filament
,process
)的支持,作为 MCP 资源(例如preset://bambu/process/MyPreset
),如果设置了BAMBU_STUDIO_CONFIG_PATH
。 - OrcaSlicer 集成: 添加了通过其命令行界面使用 OrcaSlicer 的支持,用于
slice_stl
工具。 - 新的 STL 操作工具: 添加了
merge_vertices
,center_model
, 和lay_flat
工具,用于使用three.js
进行基本模型准备。 - 配置更新: 添加了
BAMBU_STUDIO_CONFIG_PATH
环境变量以加载预设。 - FTP 使用说明: 文档中确认了当前 Bambu 文件操作通过
bambu-js
使用可能不安全的 FTP。
🗺️ 路线图 / TODO
- 实现功能对等: 提升 OctoPrint、Klipper、Duet、Repetier、Prusa Connect 和 Creality Cloud 的功能(状态细节、文件操作、直接打印、预设处理等),达到与 Bambu 实现计划相同的稳健性。
- 实现完整的 Bambu MQTT 状态: 重构
getStatus
以订阅 MQTT 报告并维持实时状态。 - 实现稳健的 AMS 映射: 替换占位逻辑;正确解析并使用来自
.3mf
切片器配置或用户覆盖的 AMS 映射,以用于 MQTT 打印命令。 - 实现
.3mf
打印覆盖: 为print_3mf
工具添加逻辑以处理用户提供的覆盖(例如校准标志),并通过 MQTT/G-code 处理常见的切片器设置(如果可行)。 - 计算 MD5 哈希: 添加逻辑以计算并包含
.3mf
文件的 MD5 哈希值在 MQTT 打印命令中(可选但协议推荐)。 - 重构 Bambu 文件操作: 如果可能/稳定,研究使用直接 MQTT 方法替换
bambu-js
FTP 操作(getFiles
,uploadFile
),或为bambu-js
贡献 FTPS 支持。 - 添加预设发现逻辑: 改进预设资源列表(目前基于潜在文件名列出,可以解析索引文件(如果存在))。
- 扩展
.3mf
支持: 为其他适用的打印机类型添加.3mf
打印支持。 - 错误处理和报告: 增强 MQTT 错误处理和打印进度/完成的报告。
- 测试: 对所有新的 Bambu 功能进行彻底的运行时测试。
点击展开目录
目录
描述
这是一个允许 MCP 用户连接到以下 3D 打印机 API 端点的服务器:
- OctoPrint
- Klipper (Moonraker)
- Duet
- Repetier
- Bambu Labs
- Prusa Connect
- Creality/Ender
该服务器是一个模型上下文协议(MCP)服务器,用于将 Claude 与 3D 打印机管理系统连接起来。它允许 MCP 通过各种打印机管理系统的 API 与 3D 打印机交互,例如 OctoPrint、Klipper(通过 Moonraker)、Duet、Repetier 和 Bambu Labs 打印机。
资源使用说明: 该 MCP 服务器包括高级的 3D 模型操作功能,在处理大型 STL 文件时可能会占用大量内存。请参阅“限制和注意事项”部分以获取有关内存使用和性能的重要信息。
功能
- 获取打印机状态(温度、打印进度等)
- 列出打印机上的文件
- 上传 G-code 文件到打印机
- 开始、取消和监控打印任务
- 设置打印机温度
- 高级 STL 文件操作:
- 扩展底座以提高附着力
- 统一或沿特定轴缩放模型
- 绕任意轴旋转模型
- 平移(移动)模型
- 修改 STL 文件的特定部分(顶部、底部、中心或自定义)
- 全面的 STL 分析,提供详细的模型信息
- 生成多角度的 STL 文件 SVG 可视化
- 实时报告长时间操作的进度
- 错误处理和详细诊断
- 切片 STL 文件以生成 G-code
- 确认 G-code 文件中的温度设置
- 完整的端到端工作流程,从 STL 修改到打印
- 在 Bambu Lab 打印机上直接打印
.3mf
文件(通过 MQTT 命令) - 读取 Bambu Studio 预设文件(打印机、耗材、过程)作为资源
安装
先决条件
- Node.js 18 或更高版本
- npm 或 yarn
从 npm 安装
bash
npm install -g mcp-3d-printer-server
从源代码安装
bash
git clone https://github.com/dmontgomery40/mcp-3d-printer-server.git
cd mcp-3d-printer-server
npm install
npm link # 使命令全局可用
使用 Docker 运行
您还可以使用 Docker 和 Docker Compose 在容器化环境中运行服务器。
- 确保已安装 Docker 和 Docker Compose。
- 将
.env.example
复制为.env
并配置您的设置。 - 构建并运行容器:
bash
docker-compose up --build -d
在 Docker 中使用切片器
请注意,默认的 Docker 设置无法直接使用主机上安装的切片器。由于主机和容器之间的操作系统和库差异,将切片器可执行文件直接从主机挂载到容器是不可靠的。
推荐的方法是在 Docker 镜像内部安装您喜欢的切片器。这使得容器自给自足。
为此,您需要修改 Dockerfile
。以下是如何添加 PrusaSlicer 或 OrcaSlicer 的概念示例(具体命令可能因切片器、其依赖项和当前 Alpine 包而异):
dockerfile
# ... 其他 Dockerfile 命令 ...
# 示例:安装 PrusaSlicer 或 OrcaSlicer(根据需要调整命令)
# 首先检查 Alpine 包仓库(例如,apk add prusaslicer 或 apk add orcaslicer)
# 如果不可用,下载并手动安装(例如 AppImage):
# RUN apk add --no-cache fuse # AppImages 可能需要 FUSE
# RUN wget https://example.com/path/to/OrcaSlicer_Linux_Vxxxx.AppImage -O /usr/local/bin/orcaslicer && \
# chmod +x /usr/local/bin/orcaslicer
# 在 docker-compose.yml 或运行时相应地设置 SLICER_PATH 环境变量
# 已安装可执行文件的示例:
ENV SLICER_PATH=/usr/local/bin/orcaslicer
# ... 其余 Dockerfile ...
修改 Dockerfile
后,重新构建镜像(docker-compose build
)。您还需要确保 .env
文件或 docker-compose.yml
中的 SLICER_PATH
环境变量指向容器内的正确路径(例如 /usr/local/bin/orcaslicer
)。同时设置 SLICER_TYPE
为 orcaslicer
。
对于未预先包含特定切片器表示歉意,但由于有多种切片器(PrusaSlicer、OrcaSlicer、Cura 等)和配置可用,预先安装一个会不必要地增加许多用户的镜像大小。如果某个特定切片器成为非常普遍的需求,我当然会在未来的版本中考虑添加官方支持。
配置
在运行服务器的目录中创建一个 .env
文件或设置环境变量:
env
# 打印机管理系统认证所需
API_KEY=your_api_key_here
# 默认打印机连接设置
PRINTER_HOST=localhost
PRINTER_PORT=80 # 非 Bambu HTTP API 的端口
PRINTER_TYPE=octoprint # 选项:octoprint, klipper, duet, repetier, bambu, prusa, creality
# 可选:临时文件目录
TEMP_DIR=/path/to/temp/dir
# Bambu Labs 特定配置
BAMBU_SERIAL=your_printer_serial # Bambu 必需
BAMBU_TOKEN=your_access_token # Bambu 必需
# 切片器配置(用于 slice_stl 工具)
SLICER_TYPE=prusaslicer # 选项:prusaslicer, cura, slic3r, orcaslicer
SLICER_PATH=/path/to/slicer/executable
SLICER_PROFILE=/path/to/slicer/profile
# 可选:Bambu Studio 用户配置目录路径(用于加载预设)
# macOS 示例:/Users/your_user/Library/Application Support/BambuStudio/user/YOUR_USER_ID
# Windows 示例:C:\Users\your_user\AppData\Roaming\BambuStudio\user\YOUR_USER_ID
# Linux 示例:/home/your_user/.config/BambuStudio/user/YOUR_USER_ID
BAMBU_STUDIO_CONFIG_PATH=
与 Claude Desktop 一起使用
- 编辑您的 Claude Desktop 配置文件:
json
{
"mcpServers": {
"3dprint": {
"command": "mcp-3d-printer-server",
"env": {
"API_KEY": "your_api_key_here",
"PRINTER_HOST": "your_printer_ip",
"PRINTER_TYPE": "octoprint"
}
}
}
}
- 对于 Bambu Labs 打印机:
json
{
"mcpServers": {
"3dprint": {
"command": "mcp-3d-printer-server",
"env": {
"PRINTER_HOST": "your_printer_ip",
"PRINTER_TYPE": "bambu",
"BAMBU_SERIAL": "your_printer_serial",
"BAMBU_TOKEN": "your_access_token"
}
}
}
}
- 重启 Claude Desktop
- 通过 Claude 连接到您的打印机
支持的打印机管理系统
OctoPrint
OctoPrint 是一个流行的 3D 打印机 Web 界面。它提供了用于控制打印机的 REST API。
- 默认端口:80(http)或 443(https)
- 认证:需要 API 密钥
Klipper(通过 Moonraker)
Klipper 是一种与 Moonraker API 服务器配合使用的 3D 打印机固件。
- 默认端口:7125
- 认证:取决于您的 Moonraker 配置
Duet
Duet 是一款带有自己 Web 界面(DuetWebControl)的 3D 打印机控制板。
- 默认端口:80(http)或 443(https)
- 认证:取决于您的 Duet 配置
Repetier
Repetier-Server 是一种 3D 打印机主机软件。
- 默认端口:3344
- 认证:需要 API 密钥
Bambu Labs
Bambu Lab 打印机使用 MQTT 进行状态和控制,使用 FTP 进行文件操作。
- 认证:需要序列号和访问令牌(设置
BAMBU_SERIAL
和BAMBU_TOKEN
) - 要求:打印机必须在同一网络上或启用云连接
- 兼容:X1C、P1S、P1P、A1 和其他 Bambu Lab 打印机
查找您的 Bambu 打印机序列号和访问令牌
要连接到您的 Bambu Lab 打印机,您需要两样东西:
-
打印机序列号:
- 查看打印机背面或底部的标签,上面有一个序列号(通常以“01P”或“01A”开头,后跟数字/字母)
- 或者,打开 Bambu Studio,连接到您的打印机,进入设备 > 设备管理,并查看打印机信息
-
访问令牌:
- 访问令牌是直接连接到打印机所需的安全代码
- 对于 P1 系列打印机:进入触摸屏,选择设置 > 网络 > LAN 模式,您将看到访问码
- 对于 X1 系列打印机:进入触摸屏,选择设置 > 网络 > LAN 模式,并启用 LAN 模式以查看访问码
- 对于 A1 Mini:使用 Bambu Handy 应用连接到您的打印机,然后进入设置 > 网络 > LAN 模式
注意:如果您的打印机不在同一本地网络上或找不到访问令牌,您可能需要更新打印机的固件到最新版本以启用 LAN 模式。
Bambu 通信说明(MQTT & FTP)
- MQTT: 该服务器基于社区发现(例如 OpenBambuAPI)使用本地 MQTT 协议(端口 8883,TLS)发送命令,例如开始打印和取消任务。
- FTP: 文件列表和上传目前依赖于打印机上运行的 FTP 服务器(通过
bambu-js
库助手)。注意:此 FTP 连接可能基于当前库的限制,是不安全的(纯 FTP)。请了解您的网络安全情况后再使用。
Prusa Connect
Prusa Connect 是 Prusa 自己的基于云的解决方案,用于管理他们的打印机。
- 默认端口:80(http)或 443(https)
- 认证:需要 API 密钥
- 兼容:Prusa MK4、Prusa Mini、Prusa XL 和其他具有 Prusa Connect 功能的 Prusa 打印机
设置 Prusa Connect
- 确保您的 Prusa 打印机已更新到最新固件
- 将您的打印机连接到 Wi-Fi 网络
- 创建 Prusa Connect 帐户并注册您的打印机
- 从 Prusa Connect Web 界面的设置 > API 访问下生成 API 密钥
Creality Cloud
Creality Cloud 是 Creality 的打印机管理系统。
- 默认端口:80(http)或 443(https)
- 认证:需要 Bearer 令牌
- 兼容:Ender 系列、CR 系列和其他具有网络功能的 Creality 打印机
设置 Creality Cloud
- 在您的移动设备上安装 Creality Cloud 应用
- 创建帐户并添加您的打印机
- 启用打印机的本地网络访问
- 从 Creality Cloud 应用的设置 > 开发者选项下生成令牌
可用工具
点击展开 STL 操作工具
STL 操作工具
内存使用警告:以下 STL 操作工具将整个 3D 模型加载到内存中。对于大型或复杂的 STL 文件(>10MB),这些操作可能会消耗大量内存。在 MCP 环境中使用这些工具时,请注意内存限制。
get_stl_info
获取 STL 文件的详细信息,包括尺寸、顶点数量和边界框。
json
{
"stl_path": "/path/to/file.stl"
}
extend_stl_base
按指定的数量扩展 STL 文件的底座。
json
{
"stl_path": "/path/to/file.stl",
"extension_inches": 2
}
scale_stl
统一或沿特定轴缩放 STL 模型。
json
{
"stl_path": "/path/to/file.stl",
"scale_factor": 1.5
}
或者非均匀缩放:
json
{
"stl_path": "/path/to/file.stl",
"scale_x": 1.2,
"scale_y": 1.0,
"scale_z": 1.5
}
rotate_stl
绕特定轴(以度为单位)旋转 STL 模型。
json
{
"stl_path": "/path/to/file.stl",
"rotate_x": 45,
"rotate_y": 0,
"rotate_z": 90
}
translate_stl
沿特定轴(以毫米为单位)移动 STL 模型。
json
{
"stl_path": "/path/to/file.stl",
"translate_x": 10,
"translate_y": 5,
"translate_z": 0
}
merge_vertices
合并距离小于指定公差的顶点。有助于关闭小缝隙,并可能稍微简化网格。
json
{
"stl_path": "/path/to/model.stl",
"tolerance": 0.01 // 可选,默认 = 0.01mm
}
center_model
平移模型,使其边界框的中心位于世界原点(0,0,0)。
json
{
"stl_path": "/path/to/model.stl"
}
lay_flat
尝试识别模型的最大平面(如果不是已经直接朝上或朝下),并旋转模型,使该面朝下位于 XY 平面上(Z=0)。适用于定向模型以便打印。
json
{
"stl_path": "/path/to/model.stl"
}
modify_stl_section
对 STL 文件的选定部分应用特定转换。这允许对模型的特定部分进行详细修改。
json
{
"stl_path": "/path/to/file.stl",
"section": "top",
"transformation_type": "scale",
"value_x": 1.5,
"value_y": 1.5,
"value_z": 1.5
}
对于自定义部分边界:
json
{
"stl_path": "/path/to/file.stl",
"section": "custom",
"transformation_type": "rotate",
"value_x": 0,
"value_y": 0,
"value_z": 45,
"custom_min_x": -10,
"custom_min_y": 0,
"custom_min_z": -10,
"custom_max_x": 10,
"custom_max_y": 20,
"custom_max_z": 10
}
generate_stl_visualization
从多个角度(前视图、侧视图、顶视图和等距视图)生成 STL 文件的 SVG 可视化。
json
{
"stl_path": "/path/to/file.stl",
"width": 400,
"height": 400
}
slice_stl
切片 STL 文件以生成 G-code。
json
{
"stl_path": "/path/to/file.stl",
"slicer_type": "prusaslicer",
"slicer_path": "/path/to/prusaslicer",
"slicer_profile": "/path/to/profile.ini"
}
confirm_temperatures
确认 G-code 文件中的温度设置。
json
{
"gcode_path": "/path/to/file.gcode",
"extruder_temp": 200,
"bed_temp": 60
}
process_and_print_stl
处理 STL 文件(扩展底座),切片,确认温度,并开始打印。
json
{
"stl_path": "/path/to/file.stl",
"extension_inches": 2,
"extruder_temp": 200,
"bed_temp": 60,
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY"
}
注意:自动定向以优化打印(最小化支撑等)是一项复杂任务,通常由切片器 GUI(如 OrcaSlicer 或 PrusaSlicer)处理,并未在此服务器中实现。
点击展开打印机控制工具
打印机控制工具
get_printer_status
获取 3D 打印机的当前状态。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY"
}
对于 Bambu 打印机,目前仅确认 MQTT 连接。
list_printer_files
列出打印机上可用的文件。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY"
}
对于 Bambu 打印机,通过 FTP 列出 gcodes
目录中的文件。
upload_gcode
上传 G-code 文件到打印机。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY",
"filename": "my_print.gcode",
"gcode": "G28\nG1 X100 Y100 Z10 F3000\n...",
"print": true
}
对于 Bambu 打印机,通过 FTP 上传到 gcodes
目录。无法自动开始打印。
start_print
开始打印打印机上已有的文件。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY",
"filename": "my_print.gcode"
}
不推荐用于 Bambu 打印机。 对于 Bambu .3mf
文件,请使用 print_3mf
。
cancel_print
取消当前打印任务。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY"
}
对于 Bambu 打印机,通过 MQTT 发送 stop_print
命令。
set_printer_temperature
设置打印机组件的温度。
json
{
"host": "192.168.1.100",
"type": "octoprint",
"api_key": "YOUR_API_KEY",
"component": "extruder",
"temperature": 200
}
不支持通过直接 MQTT 命令为 Bambu 打印机设置。
点击展开 Bambu 特定工具
Bambu 特定工具
print_3mf
通过 FTP 将 .3mf
文件上传到 Bambu 打印机,并通过 MQTT 命令启动打印任务。允许覆盖一些打印参数,例如 AMS 映射。
json
{
"three_mf_path": "/path/to/your_model.3mf",
"host": "your_bambu_ip", // 如果默认设置,则可选
"bambu_serial": "YOUR_SERIAL", // 如果默认设置,则可选
"bambu_token": "YOUR_TOKEN", // 如果默认设置,则可选
// 可选覆盖:
"use_ams": true, // 默认:true
"ams_mapping": [0, 1, 2, 3], // AMS 插槽索引数组
"bed_leveling": true, // 默认:true
"flow_calibration": false, // 默认:false
"vibration_calibration": false, // 默认:false
"timelapse": false // 默认:false
}
注意:通过此工具覆盖切片器设置(例如层高或温度)不受打印机的 MQTT 命令支持。在生成 .3mf
文件之前应用这些更改。
可用资源
点击展开打印机资源
打印机资源
printer://{host}/status
- 3D 打印机的当前状态(目前对 Bambu 有限)printer://{host}/files
- 3D 打印机上可用的文件列表(Bambu 使用 FTP)printer://{host}/file/{filename}
- 特定 G-code 文件的内容(仅检查 Bambu 是否存在)
点击展开 Bambu 预设资源
Bambu 预设资源
如果 BAMBU_STUDIO_CONFIG_PATH
环境变量设置为您的 Bambu Studio 用户设置目录,您可以读取保存的预设。
preset://bambu/machine/{preset_name}
- 读取机器预设文件(例如Bambu Lab P1S 0.4 nozzle.json
)preset://bambu/filament/{preset_name}
- 读取耗材预设文件(例如Generic PLA.json
)preset://bambu/process/{preset_name}
- 读取过程预设文件(例如0.20mm Standard @BBL P1S.json
)
示例用法:
"读取我的 Bambu 过程预设 '0.16mm Optimal @BBL P1S' 的内容"
(Claude 会调用 ReadResource 并传入 preset://bambu/process/0.16mm%20Optimal%20%40BBL%20P1S
)
Claude 示例命令
以下是连接 MCP 服务器后可以提供给 Claude 的一些示例命令:
打印机控制
- “我的 3D 打印机当前状态是什么?”
- “给我看看打印机上的文件列表。”
- “上传这个 G-code 到我的打印机:[G-code 内容]”
- “开始打印名为 'benchy.gcode' 的文件。”
- “取消当前打印任务。”
- “将挤出机温度设置为 200°C。”
- “将热床温度设置为 60°C。”
STL 操作和打印
- “把这个 STL 文件的底座延长 2 英寸,然后发送到切片器并在我的打印机上排队。”
- “将 model.stl 的底座延长 1.5 英寸。”
- “将这个 STL 文件按 150% 统一缩放。”
- “将 model.stl 的宽度增加一倍,但保持高度不变。”
- “将这个模型绕 Z 轴旋转 90 度。”
- “将这个 STL 模型向上移动 5mm 以在其下方创建间隙。”
- “能否只修改模型的顶部部分,使其大 20%?”
- “分析这个 STL 文件并告诉我它的尺寸和详细信息。”
- “生成这个 STL 文件的可视化,让我看看它的样子。”
- “从不同角度创建我的模型的 SVG 可视化。”
- “使这个模型的底座更宽而不改变其高度。”
- “使用 PrusaSlicer 切片修改后的 STL 文件。”
- “确认 G-code 中的温度是否为挤出机 200°C 和热床 60°C。”
- “处理这个 STL 文件,将底座延长 2 英寸,切片,并开始打印,但首先要确认温度。”
- “在 Bambu 打印机上打印
~/Downloads/my_model.3mf
。” - “使用 AMS 插槽 0 和 2 将
~/Desktop/calibration_cube.3mf
上传到 Bambu 打印机,并关闭热床调平。” - “取消我的 Bambu P1S 上的打印任务。”
- “我的 Bambu 耗材预设 'Generic PETG' 的设置是什么?”
- “显示我的 Bambu 过程预设。”
Bambu Lab 打印机限制
由于 Bambu Lab 打印机 API 的性质,存在一些限制:
-
开始打印:开始打印需要 3MF 项目文件路径、gcode 文件名、打印名称和 MD5 哈希值。此服务器中的简化 API 尚未完全支持此功能。
-
温度控制:Bambu API 不提供直接方法来设置温度。这需要自定义 G-code 命令。
-
文件管理:文件必须上传到打印机的“gcodes”目录。
-
FTP 安全性:文件操作目前使用打印机的 FTP 服务器,可能是不安全的(纯 FTP)。
-
参数覆盖:只有 MQTT
project_file
命令支持的参数可以通过print_3mf
工具覆盖(例如 AMS 使用、校准标志)。切片器设置(如层高或温度)不能通过此命令在打印时更改。 -
状态更新:通过 MQTT 进行完整的实时状态监控需要进一步实现。
限制和注意事项
内存使用
- 大型 STL 文件:处理大型或复杂的 STL 文件可能会消耗大量内存。在操作过程中,整个 STL 几何体被加载到内存中。
- 多重操作:顺序运行多个 STL 操作(尤其是大文件)可能会导致内存累积,如果垃圾回收没有及时跟上。
- MCP 环境:由于这是作为 MCP 服务器运行,请注意 Claude 的 MCP 环境有内存限制。对非常大的 STL 文件进行复杂操作可能会导致内存不足问题。
STL 操作限制
- 部分修改:部分修改功能在较简单的几何体上效果最佳。复杂或非流形网格可能会产生意外结果。
- 底座扩展:底座扩展算法通过在模型下方添加新几何体来工作。对于底部复杂的模型,结果可能不完美。
- 错误处理:虽然我们增加了健壮的错误处理,但某些边缘情况下的复杂 STL 文件仍可能引起问题。
可视化限制
- SVG 表示:SVG 可视化是简化的示意图表示,不是真正的 3D 渲染。
- 复杂模型:对于非常复杂的模型,可视化可能无法准确表示所有细节。
性能考虑
- 切片操作:外部切片器进程可能会消耗大量 CPU,并且对于复杂模型可能需要相当长的时间。
- 进度报告:对于大文件,进度更新可能在某些处理阶段显得停滞。
测试建议
- 从小型 STL 文件(<10MB)开始测试功能
- 处理大文件时监控内存使用情况
- 在简单几何体上测试修改,然后再尝试复杂几何体
- 考虑在具有至少 4GB 可用 RAM 的系统上运行较大的操作
徽章
徽章 | 描述 |
---|---|
npm 上的当前包版本 | |
该项目 |