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.

Servidor de impresora 3D MCP

  • Impresión Bambu .3mf : Se agregó la herramienta print_3mf , específica para impresoras Bambu Lab. Esta herramienta carga el archivo .3mf y envía el comando de impresión directamente a través de MQTT, según las especificaciones de OpenBambuAPI.
  • Comunicación MQTT directa (Bambu): se refactorizó el manejo de comandos de Bambu ( print_3mf , cancelJob ) para usar MQTT directo (puerto TLS 8883) en lugar de confiar únicamente en bambu-js para los comandos.
  • Análisis de archivos .3mf : se implementó un analizador ( src/3mf_parser.ts ) para leer metadatos y configuraciones de segmentación específicas de Bambu (desde project_settings.config ) dentro de archivos .3mf .
  • Recursos preestablecidos de Bambu: se agregó soporte para leer archivos preestablecidos de Bambu Studio ( machine , filament , process ) como recursos MCP (por ejemplo, preset://bambu/process/MyPreset ) si BAMBU_STUDIO_CONFIG_PATH está configurado.
  • Integración con OrcaSlicer: se agregó soporte para usar OrcaSlicer a través de su interfaz de línea de comandos para la herramienta slice_stl .
  • Nuevas herramientas de manipulación de STL: se agregaron las herramientas merge_vertices , center_model y lay_flat para la preparación básica del modelo usando three.js .
  • Actualización de configuración: se agregó la variable de entorno BAMBU_STUDIO_CONFIG_PATH para la carga de ajustes preestablecidos.
  • Nota sobre el uso de FTP: En la documentación se reconoce que las operaciones de archivos para Bambu actualmente utilizan FTP potencialmente no seguro a través de bambu-js .
  • Lograr la paridad de características: llevar la funcionalidad (detalles de estado, operaciones de archivos, impresión directa cuando sea posible, manejo de ajustes preestablecidos) para OctoPrint, Klipper, Duet, Repetier, Prusa Connect y Creality Cloud al nivel de robustez planificado para la implementación de Bambu.
  • Implementar el estado MQTT completo de Bambu: refactorizar getStatus para que Bambu se suscriba a los informes MQTT y mantenga el estado en tiempo real.
  • Implementar un mapeo AMS robusto: reemplazar la lógica de marcador de posición; analizar y usar correctamente el mapeo AMS desde la configuración del segmentador .3mf o las anulaciones del usuario para el comando de impresión MQTT.
  • Implementar anulaciones de impresión .3mf : agregar lógica a la herramienta print_3mf para manejar anulaciones proporcionadas por el usuario (por ejemplo, indicadores de calibración) y configuraciones de segmentación potencialmente comunes si es posible a través de MQTT/código G.
  • Calcular hash MD5: agrega lógica para calcular e incluir el hash MD5 del archivo .3mf en el comando de impresión MQTT (opcional pero recomendado por el protocolo).
  • Refactorizar las operaciones de archivos de Bambu: investigar la sustitución de las operaciones FTP bambu-js ( getFiles , uploadFile ) con métodos MQTT directos si es posible/estable, o contribuir con soporte FTPS para bambu-js .
  • Agregar lógica de descubrimiento preestablecida: mejorar la lista de recursos preestablecidos (actualmente, las listas se basan en nombres de archivos potenciales; podrían analizar archivos de índice si existen).
  • Ampliar la compatibilidad con .3mf : agregue compatibilidad de impresión .3mf para otros tipos de impresoras cuando corresponda.
  • Manejo y generación de informes de errores: mejore el manejo de errores de MQTT y los informes sobre el progreso/finalización de la impresión.
  • Pruebas: Realice pruebas de ejecución exhaustivas de todas las nuevas funciones de Bambu.

Tabla de contenido

Descripción

Este es un servidor que permite a los usuarios de MCP conectarse con los puntos finales de API de estas impresoras 3D:

  • OctoPrint
  • Klipper (Moonraker)
  • Dueto
  • Repetidor
  • Laboratorios Bambú
  • Prusa Connect
  • Creality/Ender

Este servidor es un servidor de Protocolo de Contexto de Modelo (MCP) que conecta a Claude con sistemas de gestión de impresoras 3D. Permite a MCP interactuar con impresoras 3D a través de las API de diversos sistemas de gestión de impresoras, como OctoPrint, Klipper (vía Moonraker), Duet, Repetier y Bambu Labs.

Nota sobre el uso de recursos : Este servidor MCP incluye funciones avanzadas de manipulación de modelos 3D que pueden consumir mucha memoria al trabajar con archivos STL grandes. Consulte la sección "Limitaciones y consideraciones" para obtener información importante sobre el uso de memoria y el rendimiento.

Características

  • Obtener el estado de la impresora (temperaturas, progreso de impresión, etc.)
  • Listar archivos en la impresora
  • Subir archivos de código G a la impresora
  • Iniciar, cancelar y supervisar trabajos de impresión
  • Establecer las temperaturas de la impresora
  • Manipulación avanzada de archivos STL:
    • Extiende la base para una mejor adherencia.
    • Escalar modelos de manera uniforme o a lo largo de ejes específicos
    • Girar modelos alrededor de cualquier eje
    • Traducir (mover) modelos
    • Modificar secciones específicas de archivos STL (superior, inferior, central o personalizada)
  • Análisis STL completo con información detallada del modelo
  • Generar visualizaciones SVG multiángulo de archivos STL
  • Informes de progreso en tiempo real para operaciones largas
  • Manejo de errores con diagnósticos detallados
  • Cortar archivos STL para generar código G
  • Confirmar la configuración de temperatura en los archivos de código G
  • Flujo de trabajo completo de principio a fin, desde la modificación de STL hasta la impresión
  • Imprima archivos .3mf directamente en las impresoras Bambu Lab (a través del comando MQTT)
  • Lea los archivos preestablecidos de Bambu Studio (impresora, filamento, proceso) como recursos

Instalación

Prerrequisitos

  • Node.js 18 o superior
  • npm o hilo

Instalar desde npm

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

Instalar desde la fuente

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

Ejecutando con Docker

También puede ejecutar el servidor utilizando Docker y Docker Compose para un entorno en contenedores.

  1. Asegúrese de tener instalados Docker y Docker Compose.
  2. Copie .env.example a .env y configure sus ajustes.
  3. Construya y ejecute el contenedor:
    docker-compose up --build -d

Uso de segmentaciones de datos con Docker

Tenga en cuenta que la configuración predeterminada de Docker no puede usar directamente un slicer instalado en su equipo host . Montar el ejecutable del slicer directamente desde el host al contenedor no es fiable debido a las diferencias en el sistema operativo y las bibliotecas entre el host y el contenedor.

El enfoque recomendado es instalar el segmentador de datos preferido dentro de la imagen de Docker . Esto hace que el contenedor sea autosuficiente.

Para ello, deberá modificar el Dockerfile . A continuación, se muestra un ejemplo conceptual de cómo podría agregar PrusaSlicer u OrcaSlicer (los comandos específicos pueden variar según el segmentador, sus dependencias y los paquetes Alpine actuales):

# ... 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 ...

Después de modificar el Dockerfile , reconstruye tu imagen ( docker-compose build ). También deberás asegurarte de que la variable de entorno SLICER_PATH en tu archivo .env o docker-compose.yml apunte a la ruta correcta dentro del contenedor (p. ej., /usr/local/bin/orcaslicer ). Establece también SLICER_TYPE en orcaslicer .

Disculpen por no incluir un rebanador específico de fábrica, pero dada la amplia variedad de rebanadores (PrusaSlicer, OrcaSlicer, Cura, etc.) y configuraciones disponibles, preinstalar uno sobrecargaría innecesariamente la imagen para muchos usuarios. Si un rebanador en particular se convierte en una solicitud frecuente, sin duda consideraré añadir soporte oficial para él en una versión futura.

Configuración

Crea un archivo .env en el directorio donde ejecutarás el servidor o configurarás variables de entorno:

# 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=

Uso con Claude Desktop

  1. Edite su archivo de configuración de 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. Para impresoras 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. Reiniciar Claude Desktop
  2. Conéctese a su impresora a través de Claude

Sistemas de gestión de impresoras compatibles

OctoPrint

OctoPrint es una interfaz web popular para impresoras 3D. Ofrece una API REST para controlar la impresora.

  • Puerto predeterminado: 80 (http) o 443 (https)
  • Autenticación: se requiere clave API

Klipper (vía Moonraker)

Klipper es un firmware para impresoras 3D que funciona con el servidor API Moonraker.

  • Puerto predeterminado: 7125
  • Autenticación: depende de la configuración de Moonraker

Dueto

Duet es una placa de control para impresoras 3D con su propia interfaz web (DuetWebControl).

  • Puerto predeterminado: 80 (http) o 443 (https)
  • Autenticación: depende de la configuración de Duet

Repetidor

Repetier-Server es un software host para impresoras 3D.

  • Puerto predeterminado: 3344
  • Autenticación: se requiere clave API

Laboratorios Bambú

Las impresoras Bambu Lab utilizan MQTT para el estado y el control y FTP para las operaciones de archivos.

  • Autenticación: Se requiere número de serie y token de acceso (establezca BAMBU_SERIAL y BAMBU_TOKEN )
  • Requisitos: La impresora debe estar en la misma red o tener habilitada la conexión a la nube
  • Compatible con: X1C, P1S, P1P, A1 y otras impresoras Bambu Lab

Cómo encontrar el número de serie y el token de acceso de su impresora Bambu

Para conectarse a su impresora Bambu Lab, necesita dos cosas:

  1. Número de serie de la impresora :
    • Busque en la parte posterior o inferior de su impresora una etiqueta con un número de serie (normalmente comienza con "01P" o "01A" seguido de números/letras)
    • Alternativamente, abra Bambu Studio, conéctese a su impresora, vaya a Dispositivo > Administración de dispositivos y vea la información de su impresora.
  2. Token de acceso :
    • El token de acceso es un código de seguridad necesario para conectarse directamente a su impresora
    • Para impresoras de la serie P1: Vaya a la pantalla táctil, seleccione Configuración > Red > Modo LAN y verá el código de acceso
    • Para impresoras de la serie X1: Vaya a la pantalla táctil, seleccione Configuración > Red > Modo LAN y habilite el Modo LAN para ver el código de acceso
    • Para A1 Mini: use la aplicación Bambu Handy para conectarse a su impresora, luego vaya a Configuración > Red > Modo LAN

Nota : Si su impresora no está en la misma red local o no puede encontrar el token de acceso, es posible que deba actualizar el firmware de su impresora a la última versión para habilitar el modo LAN.

Notas de comunicación de Bambu (MQTT y FTP)

  • MQTT: este servidor utiliza el protocolo MQTT local (puerto 8883, TLS) basado en hallazgos de la comunidad (por ejemplo, OpenBambuAPI ) para enviar comandos como iniciar impresiones y cancelar trabajos.
  • FTP: La carga y el listado de archivos dependen actualmente del servidor FTP de la impresora (mediante el asistente de la biblioteca bambu-js ). Nota: Esta conexión FTP podría no ser segura (FTP simple) debido a las limitaciones actuales de la biblioteca. Úsela teniendo en cuenta la seguridad de su red.

Prusa Connect

Prusa Connect es la solución basada en la nube de Prusa para administrar sus impresoras.

  • Puerto predeterminado: 80 (http) o 443 (https)
  • Autenticación: se requiere clave API
  • Compatible con: Prusa MK4, Prusa Mini, Prusa XL y otras impresoras Prusa con Prusa Connect

Configuración de Prusa Connect

  1. Asegúrese de que su impresora Prusa esté actualizada al último firmware
  2. Conecte su impresora a su red Wi-Fi
  3. Cree una cuenta de Prusa Connect y registre su impresora
  4. Genere una clave API desde la interfaz web de Prusa Connect en Configuración > Acceso API

Nube de Creality

Creality Cloud es el sistema de gestión de Creality para sus impresoras.

  • Puerto predeterminado: 80 (http) o 443 (https)
  • Autenticación: Se requiere token de portador
  • Compatible con: serie Ender, serie CR y otras impresoras Creality con capacidades de red

Configuración de Creality Cloud

  1. Instale la aplicación Creality Cloud en su dispositivo móvil
  2. Crea una cuenta y agrega tu impresora
  3. Habilite el acceso a la red local para su impresora
  4. Genere un token desde la aplicación Creality Cloud en Configuración > Opciones de desarrollador

Herramientas disponibles

Herramientas de manipulación de STL

Advertencia sobre el uso de memoria : Las siguientes herramientas de manipulación de STL cargan modelos 3D completos en la memoria. Para archivos STL grandes o complejos (>10 MB), estas operaciones pueden consumir una cantidad considerable de memoria. Al utilizar estas herramientas en el entorno MCP, tenga en cuenta las limitaciones de memoria.

obtener_información_stl

Obtenga información detallada sobre un archivo STL, incluidas las dimensiones, el número de vértices y el cuadro delimitador.

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

extender_base_stl

Amplíe la base de un archivo STL por una cantidad específica.

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

escala_stl

Escalar un modelo STL de manera uniforme o a lo largo de ejes específicos.

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

O para escalamiento no uniforme:

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

rotar_stl

Girar un modelo STL alrededor de ejes específicos (en grados).

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

traducir_stl

Mover un modelo STL a lo largo de ejes específicos (en milímetros).

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

fusionar_vértices

Fusiona vértices que están más cerca que la tolerancia especificada. Ayuda a cerrar pequeños huecos y puede simplificar ligeramente la malla.

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

modelo central

Traslade el modelo de modo que el centro de su cuadro delimitador esté en el origen mundial (0,0,0).

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

posición horizontal

Intente identificar la superficie plana más grande del modelo (que no esté orientada directamente hacia arriba o hacia abajo) y gire el modelo para que esta cara quede orientada hacia abajo en el plano XY (Z=0). Útil para orientar los modelos para la impresión.

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

modificar_sección_stl

Aplique una transformación específica a una sección seleccionada de un archivo STL. Esto permite realizar modificaciones detalladas de partes específicas de un modelo.

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

Para límites de sección personalizados:

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

generar_visualización_stl

Genere una visualización SVG de un archivo STL desde múltiples ángulos (vista frontal, lateral, superior e isométrica).

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

rebanada_stl

Cortar un archivo STL para generar código G.

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

confirmar_temperaturas

Confirmar la configuración de temperatura en un archivo de código G.

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

procesar_e_imprimir_stl

Procese un archivo STL (extienda la base), córtelo, confirme las temperaturas y comience a imprimir.

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

Nota: La orientación automática para una impresión óptima (minimizando soportes, etc.) es una tarea compleja que normalmente gestionan las GUI de segmentación (como OrcaSlicer o PrusaSlicer) y no está implementada en este servidor.

Herramientas de control de impresora

obtener_estado_de_impresora

Obtenga el estado actual de la impresora 3D.

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

Para las impresoras Bambu, esto actualmente solo confirma la conexión MQTT.

lista_de_archivos_de_impresora

Lista de archivos disponibles en la impresora.

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

Para las impresoras Bambu, enumera los archivos en el directorio gcodes a través de FTP.

subir_gcode

Sube un archivo de código G a la impresora.

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

Para impresoras Bambu, se sube al directorio de gcodes por FTP. No se puede iniciar la impresión automáticamente.

inicio_impresión

Comience a imprimir un archivo que ya está en la impresora.

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

No se recomienda para impresoras Bambú. Use print_3mf para archivos Bambú .3mf .

cancelar_impresión

Cancelar el trabajo de impresión actual.

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

Para las impresoras Bambu, envía el comando stop_print a través de MQTT.

establecer_temperatura_de_impresora

Establecer la temperatura de un componente de la impresora.

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

No compatible con impresoras Bambu a través de comandos MQTT directos.

Herramientas específicas para el bambú

impresión_3mf

Sube un archivo .3mf a una impresora Bambu mediante FTP e inicia el trabajo de impresión mediante un comando MQTT. Permite anular algunos parámetros de impresión, como la asignación de 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 }

Nota: El comando MQTT de la impresora no permite anular la configuración de la segmentación de datos, como la altura o la temperatura de la capa, mediante esta herramienta. Aplique estos cambios antes de generar el archivo .3mf .

Recursos disponibles

Recursos de la impresora

  • printer://{host}/status - Estado actual de la impresora 3D (limitado para Bambu actualmente)
  • printer://{host}/files - Lista de archivos disponibles en la impresora 3D (FTP para Bambu)
  • printer://{host}/file/{filename} - Contenido de un archivo de código G específico (verifica la existencia solo para Bambu)

Recursos preestablecidos de Bambú

Si la variable de entorno BAMBU_STUDIO_CONFIG_PATH está configurada en el directorio de configuración de usuario de Bambu Studio, podrá leer sus ajustes preestablecidos guardados.

  • preset://bambu/machine/{preset_name} - Lee un archivo de preajuste de máquina (por ejemplo, Bambu Lab P1S 0.4 nozzle.json )
  • preset://bambu/filament/{preset_name} - Lee un archivo de preajuste de filamento (por ejemplo, Generic PLA.json )
  • preset://bambu/process/{preset_name} - Lee un archivo de preajuste de proceso (por ejemplo, 0.20mm Standard @BBL P1S.json )

Ejemplo de uso: "Lea el contenido de mi ajuste preestablecido de proceso Bambu llamado '0.16mm Optimal @BBL P1S'" (Claude llamaría a ReadResource con preset://bambu/process/0.16mm Optimal @BBL P1S )

Comandos de ejemplo para Claude

A continuación se muestran algunos comandos de ejemplo que puedes darle a Claude después de conectarse al servidor MCP:

Control de impresora

  • "¿Cuál es el estado actual de mi impresora 3D?"
  • "Muéstrame la lista de archivos en mi impresora".
  • "Sube este código G a mi impresora: [Contenido del código G]"
  • "Comience a imprimir el archivo llamado 'benchy.gcode'."
  • "Cancelar el trabajo de impresión actual."
  • "Establezca la temperatura del extrusor a 200 °C".
  • "Establezca la temperatura de la cama a 60°C."

Manipulación e impresión de STL

  • "Tome este archivo STL y extienda la base 2 pulgadas, luego envíelo a la cortadora y póngalo en cola en mi impresora".
  • "Extiende la base del modelo.stl 1,5 pulgadas".
  • "Escale este archivo STL al 150% de manera uniforme".
  • "Modelo a escala.stl que tendrá el doble de ancho pero mantendrá la misma altura".
  • "Gire este modelo 90 grados alrededor del eje Z".
  • "Mueva este modelo STL 5 mm hacia arriba para crear un espacio debajo".
  • "¿Puedes modificar sólo la parte superior de este modelo para hacerlo un 20% más grande?"
  • "Analiza este archivo STL y dime sus dimensiones y detalles".
  • "Genera una visualización de este archivo STL para que pueda ver cómo se ve".
  • "Crea visualizaciones SVG de mi modelo desde diferentes ángulos".
  • "Haz la base de este modelo más ancha sin cambiar su altura."
  • "Corte el archivo STL modificado usando PrusaSlicer".
  • "Confirme que las temperaturas en el código G son 200 °C para el extrusor y 60 °C para la cama".
  • "Procesa este archivo STL, alarga la base 5 cm, córtala y comienza a imprimir, pero primero confirma las temperaturas".
  • "Imprimir ~/Downloads/my_model.3mf en la impresora Bambu."
  • "Cargue ~/Desktop/calibration_cube.3mf a la impresora Bambu usando las ranuras AMS 0 y 2 y desactive la nivelación de la cama".
  • "Cancelar el trabajo de impresión en mi Bambu P1S".
  • "¿Cuáles son las configuraciones preestablecidas de mi filamento de bambú 'PETG genérico'?"
  • "Muéstrame mis ajustes preestablecidos del proceso Bambu".

Limitaciones de la impresora Bambu Lab

Debido a la naturaleza de la API de impresora Bambu Lab, existen algunas limitaciones:

  1. Iniciar impresiones : Para iniciar una impresión, se requiere la ruta del archivo de proyecto 3MF, el nombre del archivo gcode, el nombre de la impresión y el hash MD5. La API simplificada de este servidor aún no es totalmente compatible.
  2. Control de temperatura : La API de Bambu no proporciona métodos directos para configurar la temperatura. Esto requeriría comandos de código G personalizados.
  3. Gestión de archivos : Los archivos deben cargarse en el directorio "gcodes" de la impresora.
  4. Seguridad FTP: Las operaciones con archivos actualmente utilizan el servidor FTP de la impresora, que puede no ser seguro (FTP simple).
  5. Anulaciones de parámetros: Solo los parámetros compatibles con el comando MQTT project_file pueden anularse mediante la herramienta print_3mf (p. ej., uso de AMS, indicadores de calibración). Los ajustes de segmentación, como la altura o la temperatura de la capa, no pueden modificarse durante la impresión mediante este comando.
  6. Actualizaciones de estado: la monitorización completa del estado en tiempo real a través de MQTT necesita mayor implementación.

Limitaciones y consideraciones

Uso de la memoria

  • Archivos STL grandes : El procesamiento de archivos STL grandes o complejos puede consumir una cantidad considerable de memoria. Toda la geometría STL se carga en memoria durante las operaciones.
  • Operaciones múltiples : ejecutar múltiples operaciones STL en secuencia (especialmente en archivos grandes) puede provocar que se acumule memoria si la recolección de basura no se mantiene al día.
  • Entorno MCP : Dado que se ejecuta como un servidor MCP, tenga en cuenta que el entorno MCP de Claude tiene limitaciones de memoria. Las operaciones complejas con archivos STL muy grandes pueden causar problemas de memoria insuficiente.

Limitaciones de la manipulación de STL

  • Modificación de sección : La función de modificación específica de sección funciona mejor con geometrías más simples. Las mallas complejas o no múltiples pueden producir resultados inesperados.
  • Extensión de la base : El algoritmo de extensión de la base funciona añadiendo una nueva geometría debajo del modelo. En modelos con superficies inferiores complejas, los resultados pueden no ser perfectos.
  • Manejo de errores : si bien hemos agregado un manejo de errores sólido, algunos casos extremos en archivos STL complejos aún pueden causar problemas.

Limitaciones de la visualización

  • Representación SVG : La visualización SVG es una representación esquemática simplificada, no una verdadera representación 3D.
  • Modelos complejos : para modelos muy complejos, es posible que la visualización no represente con precisión todos los detalles.

Consideraciones de rendimiento

  • Operaciones de segmentación : los procesos de segmentación externos pueden consumir muchos recursos de la CPU y pueden llevar un tiempo considerable para modelos complejos.
  • Informes de progreso : en el caso de archivos grandes, es posible que parezca que las actualizaciones de progreso se estancan en ciertas etapas del procesamiento.

Recomendaciones de pruebas

  • Comience con archivos STL más pequeños (<10 MB) para probar la funcionalidad
  • Supervisar el uso de memoria al procesar archivos grandes
  • Pruebe modificaciones en geometrías simples antes de intentar realizar modificaciones complejas.
  • Considere ejecutarlo en un sistema con al menos 4 GB de RAM disponible para operaciones más grandes

Insignias

InsigniaDescripción
La versión actual del paquete en npm
Este proyecto está licenciado bajo GPL-2.0
Este proyecto está escrito en TypeScript 4.9+
Este proyecto se mantiene activo
Aceptamos contribuciones a través de solicitudes de extracción.
Requiere Node.js 18.0.0 o superior
Número de descargas por mes desde npm
Número de estrellas de GitHub que ha recibido este proyecto

Licencia

GPL-2.0

ID: 7f6v2enbgk