MCP 3D Printer Server

by DMontgomery40
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows Claude to connect with Bambu Lab 3D printers to get printer status, manage files, upload G-code files, and monitor printing through their MQTT and FTP interfaces. Compatible with X1C, P1S, P1P, A1, and other Bambu Lab printers.

  • Allows Claude to connect with Creality/Ender 3D printers through the Creality Cloud management system to control and monitor Ender series, CR series, and other Creality printers with network capabilities.

  • Allows Claude to interact with OctoPrint-managed 3D printers to get printer status, list and upload files, start/cancel print jobs, and set temperatures through OctoPrint's REST API.

MCP 3D打印服务器

  • **Bambu .3mf打印:**新增专为 Bambu Lab 打印机设计的print_3mf工具。该工具会上传.3mf文件,并根据 OpenBambuAPI 规范通过 MQTT 直接发送打印命令。
  • **直接 MQTT 通信(Bambu):**重构 Bambu 命令处理( print_3mfcancelJob )以使用直接 MQTT(TLS 端口 8883),而不是仅仅依赖bambu-js执行命令。
  • **.3mf文件解析:**实现了一个解析器( src/3mf_parser.ts )来读取.3mf文件中的元数据和 Bambu 特定的切片器设置(来自project_settings.config )。
  • **Bambu 预设资源:**如果设置了BAMBU_STUDIO_CONFIG_PATH ,则增加了对将 Bambu Studio 预设文件( machinefilamentprocess )读取为 MCP 资源(例如, preset://bambu/process/MyPreset )的支持。
  • **OrcaSlicer 集成:**增加了通过其命令行界面为slice_stl工具使用 OrcaSlicer 的支持。
  • **新的 STL 操作工具:**添加了merge_verticescenter_modellay_flat工具,用于使用three.js进行基本模型准备。
  • **配置更新:**添加了用于预设加载的BAMBU_STUDIO_CONFIG_PATH环境变量。
  • **FTP 使用说明:**在文档中承认,Bambu 的文件操作当前通过bambu-js使用可能不安全的 FTP。
  • **实现功能奇偶校验:**将 OctoPrint、Klipper、Duet、Repetier、Prusa Connect 和 Creality Cloud 的功能(状态详细信息、文件操作、尽可能直接打印、预设处理)提升到 Bambu 实施所计划的稳健性级别。
  • **实现完整的 Bambu MQTT 状态:**重构 Bambu 的getStatus以订阅 MQTT 报告并保持实时状态。
  • **实现强大的 AMS 映射:**替换占位符逻辑;正确解析并使用来自.3mf切片器配置或用户覆盖的 AMS 映射来执行 MQTT 打印命令。
  • **实施.3mf打印覆盖:**print_3mf工具添加逻辑以处理用户提供的覆盖(例如,校准标志)以及可能通过 MQTT/G 代码实现的常见切片机设置(如果可行)。
  • **计算 MD5 哈希:**添加逻辑以计算并包含 MQTT 打印命令中的.3mf文件的 MD5 哈希(可选但协议推荐)。
  • **重构 Bambu File Ops:**如果可能/稳定,研究用直接 MQTT 方法替换bambu-js FTP 操作( getFilesuploadFile ),或者为bambu-js提供 FTPS 支持。
  • **添加预设发现逻辑:**改进预设资源列表(当前根据潜在文件名列出,如果存在则可以解析索引文件)。
  • **扩展.3mf支持:**在适用的情况下为其他打印机类型添加.3mf打印支持。
  • **错误处理和报告:**增强 MQTT 错误处理和打印进度/完成的报告。
  • **测试:**对所有新的 Bambu 功能进行彻底的运行时测试。

目录

描述

这是一个允许 MCP 用户连接这些 3D 打印机的 API 端点的服务器:

  • OctoPrint
  • 克利珀(《太空城》)
  • 二重唱
  • 雷佩蒂尔
  • Bambu实验室
  • Prusa Connect
  • Creality/Ender

该服务器是一个模型上下文协议 (MCP) 服务器,用于将 Claude 与 3D 打印机管理系统连接起来。它允许 MCP 通过各种打印机管理系统(例如 OctoPrint、Klipper(通过 Moonraker)、Duet、Repetier 和 Bambu Labs 打印机)的 API 与 3D 打印机进行交互。

资源使用注意事项:此 MCP 服务器包含高级 3D 模型处理功能,处理大型 STL 文件时可能会占用大量内存。有关内存使用情况和性能的重要信息,请参阅“限制和注意事项”部分。

特征

  • 获取打印机状态(温度、打印进度等)
  • 列出打印机上的文件
  • 将 G 代码文件上传到打印机
  • 启动、取消和监控打印作业
  • 设置打印机温度
  • 高级 STL 文件操作:
    • 延长底座以获得更好的附着力
    • 均匀缩放模型或沿特定轴缩放模型
    • 围绕任意轴旋转模型
    • 平移(移动)模型
    • 修改 STL 文件的特定部分(顶部、底部、中心或自定义)
  • 具有详细模型信息的全面 STL 分析
  • 生成 STL 文件的多角度 SVG 可视化
  • 长时间操作的实时进度报告
  • 通过详细诊断进行错误处理
  • 切片 STL 文件以生成 G 代码
  • 确认 G 代码文件中的温度设置
  • 从 STL 修改到打印的完整端到端工作流程
  • 直接在 Bambu Lab 打印机上打印.3mf文件(通过 MQTT 命令)
  • 将 Bambu Studio 预设文件(打印机、灯丝、工艺)读取为资源

安装

先决条件

  • Node.js 18 或更高版本
  • npm 或 yarn

从 npm 安装

npm install -g mcp-3d-printer-server

从源安装

git clone https://github.com/dmontgomery40/mcp-3d-printer-server.git cd mcp-3d-printer-server npm install npm link # Makes the command available globally

使用 Docker 运行

您还可以使用 Docker 和 Docker Compose 在容器化环境中运行服务器。

  1. 确保已安装 Docker 和 Docker Compose。
  2. .env.example复制到.env并配置您的设置。
  3. 构建并运行容器:
    docker-compose up --build -d

在 Docker 中使用切片器

请注意,默认的 Docker 设置无法直接使用主机上安装的切片器。由于主机和容器之间的操作系统和库存在差异,将切片器可执行文件直接从主机挂载到容器中是不可靠的。

推荐的方法是在 Docker 镜像 安装你首选的切片器。这使得容器能够自给自足。

为此,您需要修改Dockerfile 。以下是如何添加 PrusaSlicer 或 OrcaSlicer 的概念示例(具体命令可能因切片器、其依赖项和当前 Alpine 软件包而异):

# ... other Dockerfile commands ... # Example: Install PrusaSlicer or OrcaSlicer (adjust command as needed) # Check Alpine package repositories first (e.g., apk add prusaslicer or apk add orcaslicer) # If not available, download and install manually (e.g., AppImage): # RUN apk add --no-cache fuse # FUSE might be needed for AppImages # RUN wget https://example.com/path/to/OrcaSlicer_Linux_Vxxxx.AppImage -O /usr/local/bin/orcaslicer && \ # chmod +x /usr/local/bin/orcaslicer # Set the SLICER_PATH env var accordingly in docker-compose.yml or when running # Example for installed executable: ENV SLICER_PATH=/usr/local/bin/orcaslicer # ... rest of Dockerfile ...

修改Dockerfile后,重建镜像( docker-compose build )。您还需要确保.env文件或docker-compose.yml中的SLICER_PATH环境变量指向容器内的正确路径(例如, /usr/local/bin/orcaslicer )。并将SLICER_TYPE设置为orcaslicer

抱歉,没有包含某个特定的切片器,但考虑到切片器种类繁多(PrusaSlicer、OrcaSlicer、Cura 等),以及可用的配置,预装一个切片器会给许多用户带来不必要的镜像臃肿。如果某个切片器的需求变得非常普遍,我肯定会考虑在未来的版本中添加对它的官方支持。

配置

在运行服务器或设置环境变量的目录中创建一个.env文件:

# Required for authentication with your printer management system API_KEY=your_api_key_here # Default printer connection settings PRINTER_HOST=localhost PRINTER_PORT=80 # Port for non-Bambu HTTP APIs PRINTER_TYPE=octoprint # Options: octoprint, klipper, duet, repetier, bambu, prusa, creality # Optional: Directory for temporary files TEMP_DIR=/path/to/temp/dir # Bambu Labs specific configuration BAMBU_SERIAL=your_printer_serial # REQUIRED for Bambu BAMBU_TOKEN=your_access_token # REQUIRED for Bambu # Slicer configuration (for slice_stl tool) SLICER_TYPE=prusaslicer # Options: prusaslicer, cura, slic3r, orcaslicer SLICER_PATH=/path/to/slicer/executable SLICER_PROFILE=/path/to/slicer/profile # Optional: Path to Bambu Studio user config dir (for loading presets) # Example macOS: /Users/your_user/Library/Application Support/BambuStudio/user/YOUR_USER_ID # Example Windows: C:\Users\your_user\AppData\Roaming\BambuStudio\user\YOUR_USER_ID # Example Linux: /home/your_user/.config/BambuStudio/user/YOUR_USER_ID BAMBU_STUDIO_CONFIG_PATH=

与 Claude Desktop 一起使用

  1. 编辑您的 Claude Desktop 配置文件:
{ "mcpServers": { "3dprint": { "command": "mcp-3d-printer-server", "env": { "API_KEY": "your_api_key_here", "PRINTER_HOST": "your_printer_ip", "PRINTER_TYPE": "octoprint" } } } }
  1. 对于 Bambu Labs 打印机:
{ "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" } } } }
  1. 重启Claude桌面
  2. 通过 Claude 连接到您的打印机

支持的打印机管理系统

OctoPrint

OctoPrint 是一款流行的 3D 打印机 Web 界面。它提供了用于控制打印机的 REST API。

  • 默认端口:80(http)或 443(https)
  • 身份验证:需要 API 密钥

Klipper(来自 Moonraker)

Klipper 是与 Moonraker API 服务器配合使用的 3D 打印机固件。

  • 默认端口:7125
  • 身份验证:取决于你的 Moonraker 配置

二重唱

Duet 是一款用于 3D 打印机的控制板,具有自己的 Web 界面(DuetWebControl)。

  • 默认端口:80(http)或 443(https)
  • 身份验证:取决于您的 Duet 配置

雷佩蒂尔

Repetier-Server是一款3D打印机的主机软件。

  • 默认端口:3344
  • 身份验证:需要 API 密钥

Bambu实验室

Bambu Lab 打印机使用 MQTT 进行状态和控制,使用 FTP 进行文件操作。

  • 身份验证:需要序列号和访问令牌(设置BAMBU_SERIALBAMBU_TOKEN
  • 要求:打印机必须在同一网络上或启用云连接
  • 兼容:X1C、P1S、P1P、A1 和其他 Bambu Lab 打印机

查找 Bambu 打印机的序列号和访问令牌

要连接到 Bambu Lab 打印机,您需要两样东西:

  1. 打印机序列号
    • 查看打印机背面或底部的标签,上面有序列号(通常以“01P”或“01A”开头,后跟数字/字母)
    • 或者,打开 Bambu Studio,连接到您的打印机,转到设备 > 设备管理,然后查看打印机的信息
  2. 访问令牌
    • 访问令牌是直接连接到打印机所需的安全代码
    • 对于 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

  1. 确保您的 Prusa 打印机已更新至最新固件
  2. 将打印机连接到 Wi-Fi 网络
  3. 创建 Prusa Connect 帐户并注册您的打印机
  4. 从 Prusa Connect Web 界面的“设置”>“API 访问”下生成 API 密钥

创想云

Creality Cloud 是 Creality 针对其打印机的管理系统。

  • 默认端口:80(http)或 443(https)
  • 身份验证:需要 Bearer 令牌
  • 兼容:Ender系列、CR系列以及其他具有网络功能的Creality打印机

设置Creality Cloud

  1. 在您的移动设备上安装 Creality Cloud 应用程序
  2. 创建帐户并添加您的打印机
  3. 为您的打印机启用本地网络访问
  4. 在 Creality Cloud 应用的“设置”>“开发者选项”下生成令牌

可用工具

STL操作工具

内存使用警告:以下 STL 操作工具会将整个 3D 模型加载到内存中。对于大型或复杂的 STL 文件(>10MB),这些操作可能会消耗大量内存。在 MCP 环境中使用这些工具时,请注意内存限制。

获取stl信息

获取有关 STL 文件的详细信息,包括尺寸、顶点数和边界框。

{ "stl_path": "/path/to/file.stl" }

扩展_stl_base

将 STL 文件的基础扩展指定的量。

{ "stl_path": "/path/to/file.stl", "extension_inches": 2 }

scale_stl

均匀缩放 STL 模型或沿特定轴缩放。

{ "stl_path": "/path/to/file.stl", "scale_factor": 1.5 }

或者对于非均匀缩放:

{ "stl_path": "/path/to/file.stl", "scale_x": 1.2, "scale_y": 1.0, "scale_z": 1.5 }

旋转_stl

围绕特定轴(以度为单位)旋转 STL 模型。

{ "stl_path": "/path/to/file.stl", "rotate_x": 45, "rotate_y": 0, "rotate_z": 90 }

翻译_stl

沿特定轴(以毫米为单位)移动 STL 模型。

{ "stl_path": "/path/to/file.stl", "translate_x": 10, "translate_y": 5, "translate_z": 0 }

合并顶点

合并小于指定公差的顶点。有助于缩小小间隙并略微简化网格。

{ "stl_path": "/path/to/model.stl", "tolerance": 0.01 // Optional, default = 0.01mm }

中心模型

平移模型,使其边界框的中心位于世界原点 (0,0,0)。

{ "stl_path": "/path/to/model.stl" }

平放

尝试找出模型最大的平面(即尚未正对上方或下方的平面),并旋转模型,使该面在 XY 平面(Z=0)上朝下。这有助于确定打印模型的方向。

{ "stl_path": "/path/to/model.stl" }

修改_stl_部分

对 STL 文件的选定部分应用特定转换。这允许对模型的特定部分进行详细修改。

{ "stl_path": "/path/to/file.stl", "section": "top", "transformation_type": "scale", "value_x": 1.5, "value_y": 1.5, "value_z": 1.5 }

对于自定义部分边界:

{ "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 }

生成_stl_可视化

从多个角度(正面、侧面、顶部和等距视图)生成 STL 文件的 SVG 可视化。

{ "stl_path": "/path/to/file.stl", "width": 400, "height": 400 }

切片_stl

切片 STL 文件以生成 G 代码。

{ "stl_path": "/path/to/file.stl", "slicer_type": "prusaslicer", "slicer_path": "/path/to/prusaslicer", "slicer_profile": "/path/to/profile.ini" }

确认温度

确认 G 代码文件中的温度设置。

{ "gcode_path": "/path/to/file.gcode", "extruder_temp": 200, "bed_temp": 60 }

处理和打印_stl

处理 STL 文件(扩展基础)、对其进行切片、确认温度并开始打印。

{ "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)处理,并且未在此服务器中实现。

打印机控制工具

获取打印机状态

获取 3D 打印机的当前状态。

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

对于 Bambu 打印机,目前这仅确认 MQTT 连接。

列出打印机文件

列出打印机上可用的文件。

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

对于 Bambu 打印机,通过 FTP 列出gcodes目录中的文件。

上传代码

将 G 代码文件上传到打印机。

{ "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目录。无法自动开始打印。

开始打印

开始打印打印机上已有的文件。

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY", "filename": "my_print.gcode" }

**不推荐用于 Bambu 打印机。**请使用print_3mf打印 Bambu .3mf文件。

取消打印

取消当前打印作业。

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

对于 Bambu 打印机,通过 MQTT 发送stop_print命令。

设置打印机温度

设置打印机组件的温度。

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY", "component": "extruder", "temperature": 200 }

不支持通过直接 MQTT 命令使用 Bambu 打印机

Bambu 专用工具

打印_3mf

通过 FTP 将.3mf文件上传到 Bambu 打印机,并通过 MQTT 命令启动打印作业。允许覆盖部分打印参数,例如 AMS 映射。

{ "three_mf_path": "/path/to/your_model.3mf", "host": "your_bambu_ip", // Optional if default is set "bambu_serial": "YOUR_SERIAL", // Optional if default is set "bambu_token": "YOUR_TOKEN", // Optional if default is set // Optional Overrides: "use_ams": true, // Default: true "ams_mapping": [0, 1, 2, 3], // Array of AMS slot indices to use "bed_leveling": true, // Default: true "flow_calibration": false, // Default: false "vibration_calibration": false, // Default: false "timelapse": false // Default: false }

**注意:**打印机的 MQTT 命令不支持通过此工具覆盖切片器设置(例如层高或温度)。请在生成.3mf文件之前应用这些更改。

可用资源

打印机资源

  • printer://{host}/status - 3D 打印机的当前状态(目前仅限于 Bambu)
  • printer://{host}/files - 3D 打印机上可用文件的列表(Bambu 的 FTP)
  • printer://{host}/file/{filename} - 特定 G 代码文件的内容(仅检查 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 将使用preset://bambu/process/0.16mm Optimal @BBL P1S调用 ReadResource )

Claude 的示例命令

以下是连接 MCP 服务器后可以向 Claude 发出的一些示例命令:

打印机控制

  • “我的 3D 打印机目前状态如何?”
  • “显示我的打印机上的文件列表。”
  • “将此 G 代码上传到我的打印机:[G 代码内容]”
  • “开始打印名为‘benchy.gcode’的文件。”
  • “取消当前打印作业。”
  • “将挤出机温度设置为 200°C。”
  • “将床温设置为 60°C。”

STL 操作和打印

  • “获取此 STL 文件并将底座延长 2 英寸,然后发送到切片机并在我的打印机中排队。”
  • “将 model.stl 的底部延长 1.5 英寸。”
  • “将此 STL 文件均匀缩放 150%。”
  • “将 model.stl 的宽度缩放至原来的两倍,但高度保持不变。”
  • “将此模型绕 Z 轴旋转 90 度。”
  • “将此 STL 模型向上移动 5 毫米,以在下方形成间隙。”
  • “你能只修改这个模型的顶部,使其增大 20% 吗?”
  • “分析这个 STL 文件并告诉我它的尺寸和细节。”
  • “生成此 STL 文件的可视化效果,以便我可以看到它的样子。”
  • “从不同角度创建我的模型的 SVG 可视化。”
  • “在不改变该模型高度的情况下,将其底座加宽。”
  • “使用 PrusaSlicer 对修改后的 STL 文件进行切片。”
  • “确认 G 代码中的挤出机温度为 200°C,床面温度为 60°C。”
  • “处理这个 STL 文件,将底座加长 2 英寸,切片,然后开始打印,但首先确认温度。”
  • “在 Bambu 打印机上打印~/Downloads/my_model.3mf 。”
  • “使用 AMS 插槽 0 和 2 将~/Desktop/calibration_cube.3mf上传到 Bambu 打印机,然后关闭床面调平。”
  • “取消我的 Bambu P1S 上的打印作业。”
  • “我的 Bambu 灯丝预设‘通用 PETG’中的设置是什么?”
  • “向我展示我的 Bambu 流程预设。”

Bambu Lab 打印机的局限性

由于 Bambu Lab 打印机 API 的性质,存在一些限制:

  1. 开始打印:开始打印需要 3MF 项目文件路径、gcode 文件名、打印名称和 MD5 哈希值。此服务器中的简化 API 尚未完全支持此功能。
  2. 温度控制:Bambu API 不提供直接设置温度的方法。这需要自定义 G 代码命令。
  3. 文件管理:必须将文件上传到打印机上的“gcodes”目录。
  4. **FTP 安全性:**文件操作当前使用打印机的 FTP 服务器,该服务器可能不安全(普通 FTP)。
  5. **参数覆盖:**只有 MQTT project_file命令支持的参数可以通过print_3mf工具覆盖(例如 AMS 使用情况、校准标志)。切片机的设置(例如层高或温度)无法在打印时通过此命令更改。
  6. **状态更新:**通过 MQTT 进行完整的实时状态监控需要进一步实施。

限制和注意事项

内存使用情况

  • 大型 STL 文件:处理大型或复杂的 STL 文件会消耗大量内存。在操作过程中,整个 STL 几何体都会加载到内存中。
  • 多个操作:如果垃圾收集跟不上,按顺序运行多个 STL 操作(尤其是在大文件上)可能会导致内存累积。
  • MCP 环境:由于本程序以 MCP 服务器形式运行,请注意 Claude 的 MCP 环境存在内存限制。对大型 STL 文件进行复杂操作可能会导致内存不足的问题。

STL 操作限制

  • 截面修改:特定截面的修改功能最适合用于较简单的几何体。复杂或非流形网格可能会产生意外结果。
  • 底部延伸:底部延伸算法的工作原理是在模型底部添加新的几何体。对于底部复杂的模型,结果可能并不完美。
  • 错误处理:虽然我们添加了强大的错误处理功能,但复杂 STL 文件中的一些边缘情况仍然可能导致问题。

可视化限制

  • SVG 表示:SVG 可视化是一种简化的示意图,而不是真正的 3D 渲染。
  • 复杂模型:对于非常复杂的模型,可视化可能无法准确地表示所有细节。

性能考虑

  • 切片操作:外部切片器进程可能占用大量 CPU 资源,并且对于复杂模型可能需要花费相当长的时间。
  • 进度报告:对于大型文件,进度更新可能会在某些处理阶段出现停滞。

测试建议

  • 从较小的 STL 文件(<10MB)开始测试功能
  • 处理大文件时监控内存使用情况
  • 在尝试修改复杂几何体之前,先测试简单几何体的修改
  • 对于较大的操作,请考虑在具有至少 4GB 可用 RAM 的系统上运行

徽章

徽章描述
npm 上软件包的当前版本
该项目采用 GPL-2.0 许可
该项目使用 TypeScript 4.9+ 编写
该项目正在积极维护
我们欢迎通过 Pull 请求做出贡献
需要 Node.js 18.0.0 或更高版本
npm 每月下载次数
该项目已收到的 GitHub 星标数量

执照

GPL-2.0

ID: 7f6v2enbgk