Sube G-code de OrcaSlicer a tu biblioteca
Configura el posprocesado de OrcaSlicer para que cada exportación llegue a tu biblioteca, y lo que no hace: archivar el laminado como revisión del modelo.
OrcaSlicer no sube archivos a una biblioteca por su cuenta. Su subida integrada apunta a un host de impresión como Moonraker u OctoPrint, que deja el archivo en la máquina y no deja nada en una biblioteca detrás. El camino que sí funciona son los scripts de posprocesado: OrcaSlicer ejecuta un comando después de cada exportación y añade la ruta del archivo exportado como último argumento, así que un script pequeño puede empujar ese archivo a donde quieras. PrintStash trae uno en scripts/printstash_orca_push.py.
El script inicia sesión con un nombre de usuario y una clave de API, recibe un JWT y publica el archivo en POST /api/v1/ingest/orca. Usa solo la biblioteca estándar de Python, así que no hay nada que instalar aparte, y siempre termina con 0. Una biblioteca caída o inalcanzable nunca bloquea tu exportación.
Cómo configurarlo
Crea la clave primero. En Ajustes -> Usuarios y acceso, añade una clave de API con nombre y cópiala cuando aparezca, porque PrintStash solo la muestra una vez. Una clave de API es una credencial de inicio de sesión más que un token permanente, y se puede revocar sin tocar tu contraseña, que es la razón por la que el script usa una.
Descarga el script en algún sitio estable:
curl -o ~/printstash_orca_push.py \ https://raw.githubusercontent.com/xiao-villamor/PrintStash/main/scripts/printstash_orca_push.pyDespués abre los ajustes de proceso de OrcaSlicer, ve a Others -> Post-processing scripts y añade una línea:
/usr/bin/python3 /home/you/printstash_orca_push.py --url http://printstash.lan:8000 --username automation --api-key <api-key> --collection "Slices/Inbox"Cada línea de ese cuadro se ejecuta como un comando de shell con la ruta del G-code añadida al final, así que usa rutas absolutas tanto para el intérprete como para el script. En Windows las rutas del intérprete y del script hay que entrecomillarlas: "C:\Python313\python.exe" "C:\Tools\printstash_orca_push.py" --url ....
Ahora lamina algo pequeño y expórtalo. Deberían pasar dos cosas: el archivo aparece en la biblioteca en unos segundos y ~/.printstash_orca_push.log registra la subida. Ese log es donde hay que mirar cuando no aparece nada, porque el script nunca informa de los fallos al slicer. Los errores de red se reintentan tres veces con espera creciente. Una respuesta 4xx corta de inmediato, y suele significar una clave equivocada, una cuenta sin permisos de edición en la colección de destino o una extensión de archivo que el endpoint rechaza.
Qué llega a la biblioteca y qué no
De cada subida se calcula el hash, se leen los metadatos del slicer y se extrae la miniatura en segundo plano, así que la entrada llega con la altura de capa, el relleno, el material, el tiempo estimado y las cifras de filamento que OrcaSlicer escribió en el archivo. La entrada toma el nombre del archivo exportado salvo que pases --model-name.
La correspondencia es solo por hash de contenido, y eso tiene una consecuencia que la mayoría de las guías de configuración se salta. Unos bytes idénticos caen en la entrada que ya los tiene, como otra versión de ese archivo en vez de como una segunda entrada, pero un laminado distinto se convierte en una entrada nueva, incluso si pasas el mismo --model-name para los dos. El script no adjunta el laminado como revisión del STL del que salió, y no tiene ninguna opción que se lo permita: el endpoint acepta un source_hash para eso, y el script que se distribuye nunca envía ninguno.
Lo que te da el script es una bandeja de entrada. Trátalo como tal y funciona bien: manda todo a una --collection "Slices/Inbox" con una etiqueta y después archiva sobre su modelo de origen los laminados que merezcan la pena. De todas formas, adjuntar una revisión es la única acción que lleva una etiqueta, un resultado y la marca de recomendada, y esos son los campos que hacen que un historial de revisiones valga algo. En la interfaz es el control de subida de la página del modelo; desde un script es POST /api/v1/models/{model_id}/gcode-revisions, que acepta revision_label, revision_status y is_recommended junto al archivo.
Si quieres que el camino automático se salte la bandeja de entrada por completo, escribe tu propio script contra /api/v1/ingest/orca con source_hash fijado al sha256 de la malla de origen. Eso implica que tu script tiene que saber qué malla produjo el laminado, algo que OrcaSlicer no le va a decir, así que la mayoría de la gente se queda con el script incluido y hace el archivado a mano.
Cómo llevar el archivo a la impresora
Desde la biblioteca, abre el modelo, elige la revisión y mándala a una impresora. Moonraker es el proveedor estable y acepta una subida con o sin arranque automático, y luego informa de la duración y el consumo de filamento medidos cuando el trabajo termina. PrusaLink, OctoPrint, Bambu LAN y Elegoo Centauri están en beta y aceptan subidas con conjuntos de capacidades más estrechos. La subida en Elegoo todavía necesita más validación en hardware, y su inventario de archivos está desactivado. La matriz de compatibilidad tiene el detalle actual por proveedor.
Si eso le gana a la propia función de enviar a la impresora de OrcaSlicer depende de cuánto reimprimas. Para un cubo de calibración que laminas una vez y no vuelves a mirar, el camino directo es más corto y la entrada en la biblioteca es ruido. Para las piezas que vuelves a laminar, la biblioteca guarda el registro de qué laminado salió limpio, y la impresora solo guarda un nombre de archivo.
Dos cosas que conviene decidir antes de dejarlo funcionando
La clave de API queda en el preajuste de proceso, en texto plano, en lo que el slicer guarde y exporte. Si compartes preajustes o los mueves entre equipos, dale al script su propia clave y revócala cuando un preajuste salga de tu control. El script también lee PRINTSTASH_URL, PRINTSTASH_USERNAME y PRINTSTASH_API_KEY del entorno, lo que mantiene la clave fuera del preajuste, aunque un OrcaSlicer lanzado desde el escritorio no siempre hereda el entorno que exporta tu shell. Un script envoltorio de una línea que fije las variables y llame al de subida es la versión fiable de esa idea.
La segunda es el volumen. Un script que se dispara en cada exportación archiva cada exportación, incluidos los once intentos de primera capa. Nada los limpia por ti. Una colección de entrada dedicada convierte la limpieza en un filtro y una selección múltiple, en vez de en una sesión de arqueología.
Preguntas que surgen
¿OrcaSlicer sube archivos a una biblioteca por defecto?
No. La subida integrada de OrcaSlicer es una subida a un host de impresión, que manda el archivo a una instancia de Moonraker, OctoPrint o similar para poder imprimirlo. No hay ningún destino integrado para una biblioteca de archivos ni para una carpeta de un NAS. Todo camino automático hacia una biblioteca pasa por los scripts de posprocesado, que son un mecanismo general: OrcaSlicer ejecuta tu comando después de cada exportación y le pasa la ruta del archivo exportado. Lo que ese comando haga con el archivo depende por completo del script.
¿Un laminado subido automáticamente se convierte en revisión de su modelo de origen?
No con el script incluido. El endpoint de ingesta empareja las subidas con entradas existentes por hash de contenido, así que un laminado nuevo con bytes distintos se convierte en su propia entrada de la biblioteca en vez de en una revisión del STL del que se laminó, y pasar el mismo --model-name no cambia eso. Adjuntar una revisión a un modelo concreto es una acción aparte: o el control de subida de la página del modelo, o POST /api/v1/models/{model_id}/gcode-revisions. Ese camino es además donde viven las etiquetas de revisión, los resultados y la marca de recomendada, así que merece la pena hacerlo a conciencia en vez de automatizarlo mal.
¿Qué pasa si PrintStash está caído mientras lamino?
Tu exportación termina con normalidad. El script siempre termina con 0, porque un script de posprocesado que falla es un script de posprocesado que rompe el laminado, y no hay biblioteca que valga eso. Reintenta tres veces con espera creciente los errores transitorios de red y de servidor, se rinde en silencio y escribe el motivo en ~/.printstash_orca_push.log. La consecuencia es que los fallos son silenciosos: si dependes del script, revisa ese log la primera vez que un archivo no aparezca, en lugar de dar por hecho que la subida ocurrió.
¿Puedo usar el mismo script desde PrusaSlicer o Bambu Studio?
Sí. El script solo necesita una ruta de archivo como último argumento, y los dos slicers le pasan una a los scripts de posprocesado igual que OrcaSlicer, porque los tres heredan el mecanismo de Slic3r vía PrusaSlicer. El nombre del endpoint dice orca, pero acepta G-code de cualquiera de ellos, y el lector de metadatos maneja la salida de OrcaSlicer, PrusaSlicer, Bambu Studio y Cura, con la advertencia habitual de que qué campos aparecen depende de lo que escribiera el slicer. El .bgcode binario de PrusaSlicer se lee para metadatos y miniaturas, pero no se puede previsualizar como trayectorias ni enviar a una impresora.
¿Necesito una impresora conectada para todo esto?
No. El script, la lectura de metadatos, las colecciones y el historial de revisiones funcionan sin ninguna impresora configurada, y fijar a mano el resultado de una impresión lleva unos segundos mientras todavía tienes la pieza en la mano. Conectar una impresora añade enviar desde la biblioteca, el historial de trabajos pegado a la revisión y, en Moonraker, la duración y el filamento medidos en vez de las estimaciones del slicer.
Fuentes
- Scripts de posprocesado en el wiki de OrcaSlicer, para saber dónde está el ajuste y cómo se escriben los comandos, y el artículo de la base de conocimiento de Prusa para el mecanismo compartido: la ruta del G-code se pasa como último argumento, y los scripts se ejecutan antes de que el archivo se escriba o se envíe a un host de impresión. Los dos comprobados el 12 de agosto de 2026.
- Integración de OrcaSlicer en la documentación de Mainsail para el camino directo de subida a la impresora que esto sustituye.
- La guía de usuario y la referencia de la API de PrintStash, además de
scripts/printstash_orca_push.pyen el repositorio.
Cuando los laminados ya lleguen solos, seguir las iteraciones de G-code cubre qué hacer con ellos, y usar la API para automatizar tiene el flujo de inicio de sesión si prefieres escribir tu propio script. Para la parte de la impresora, conectar Klipper a través de Moonraker es la configuración que te devuelve resultados medidos.