Filamento, coste y qué revisión funcionó
Dónde debe vivir el registro de una impresión, qué números se miden y cuáles se estiman, y cómo leer el filamento y el coste por modelo, revisión e impresora.
Para llevar el filamento y el coste, registra cada trabajo terminado contra el archivo que lo produjo y luego lee los números medidos de ese registro. Moonraker ya anota la duración y el filamento consumido de cada trabajo, y Mainsail o Fluidd te muestran la lista. Lo que no puede decirte es qué laminado de qué pieza se imprimió, así que al final de un mes sabes cuánto filamento pasó por la máquina pero no qué versión del soporte salió limpia ni cuánto costó un lote de ellos.
Cerrar ese hueco es sobre todo una cuestión de a qué queda asociado el trabajo.
Qué contiene un registro de impresión útil
Una entrada de trabajo se gana su sitio cuando puede responder a una pregunta semanas después. Para eso hacen falta unos pocos campos:
- el archivo que se imprimió, y de qué revisión de qué modelo procede;
- la máquina en la que se ejecutó;
- el resultado, separando completado, cancelado y fallido;
- la duración transcurrida, marcada como medida o estimada;
- el filamento consumido, otra vez marcado como medido o estimado;
- la bobina, para que el coste use un precio real y no una tarifa genérica de material;
- el coste tal y como estaba cuando terminó la impresión.
El último importa más de lo que parece. Los precios del filamento cambian, y un historial que recalcula impresiones antiguas con el precio por kilo de hoy no es un registro de lo que gastaste.
Qué te dan ya Moonraker y OctoPrint
El componente de historial de Moonraker se carga mencione o no moonraker.conf, porque está en la lista de componentes del núcleo del servidor. /server/history/list devuelve, por trabajo, filename, status, start_time, end_time, print_duration, total_duration, filament_used y los metadatos del archivo tal y como estaban en el momento del trabajo.
Mainsail convierte eso en una página History: tiempo total de impresión, impresión más larga, tiempo medio por trabajo, filamento total, número de trabajos, un desglose de completados, cancelados y fallidos, gráficas de filamento y de tiempo de impresión, y una lista de trabajos filtrable por estado y buscable por nombre de archivo. Fluidd ofrece una vista parecida. Para una impresora con nombres de archivo disciplinados esto basta, y montar un segundo servicio para duplicarlo sería una tontería.
El límite está en la clave de los datos. Cada entrada es un nombre de archivo en una máquina. Exporta una segunda variante con otro nombre y nada conecta las dos, porque no hay ningún modelo al que pertenezcan los dos archivos. Mueve el mismo archivo a una segunda impresora y tendrás dos historiales sin relación entre sí.
OctoPrint registra menos por su cuenta: contadores por archivo en la lista de archivos, con el número de éxitos y de fallos y la fecha, la duración y el resultado de la última impresión. Los registros más completos vienen de plugins. Print History y PrintJobHistory mantienen cada uno una base de datos de trabajos con tiempos, estado y filamento, y PrintJobHistory saca miniaturas y cifras de filamento de otros plugins cuando están instalados. Los dos se mantienen aparte de OctoPrint, y PrintJobHistory pasó una temporada abandonado antes de que nuevos mantenedores lo retomaran para corregir errores, algo que conviene saber antes de que los registros de coste de un taller dependan de él.
Asociar el trabajo al modelo
PrintStash registra un trabajo contra la revisión de G-code de la que salió, así que el historial vive en la pieza y no en la máquina. La pestaña History de cada modelo lista sus trabajos con el número de revisión, la impresora, el material y cuándo se ejecutó. Cuando han vuelto datos medidos, la fila lleva una línea measured con la duración, los gramos y el coste, más el nombre de la bobina si se seleccionó una. Los trabajos fallidos conservan el texto de error que reportó la impresora.
Hay tres formas de que un trabajo llegue ahí.
Enviar una revisión a una impresora conectada desde la biblioteca crea el trabajo de entrada, y el flujo de estado va rellenando el progreso y el estado final mientras se imprime. Esta es la vía que te da todo, porque PrintStash sabe qué revisión ha enviado.
Registrar a mano cubre el resto. El panel Add record acepta una impresora registrada o un nombre en texto libre para una que no esté en PrintStash, y después la revisión, el estado, las horas de inicio y de fin, y una bobina. Impresoras de resina, la máquina de un amigo, una tirada que hiciste desde una tarjeta SD: todas acaban en el mismo historial siempre que la revisión esté en la biblioteca.
La importación trae el historial propio de una impresora Moonraker a un modelo. Lee las últimas cien entradas de historial de la impresora, las compara sin distinguir mayúsculas con los nombres de archivo de G-code de ese modelo y registra las coincidencias nuevas. Lo que ya estaba registrado para esa impresora y ese modelo se omite, así que volver a ejecutarla nunca acumula duplicados. Eso sí, la clave de deduplicación es el nombre de archivo, lo que significa que un archivo que has impreso seis veces se importa una vez. Úsala para rellenar lo que pasó antes de montar todo esto, no como una sincronización continua.
Hay un cuarto caso que merece mención porque funciona a medias. Una impresión iniciada desde Mainsail o Fluidd en una impresora Moonraker conectada sí se captura, con su duración y su filamento medido, pero PrintStash no tiene ningún trabajo en curso esperándola y solo puede casarla por el nombre de archivo remoto, así que el registro cae en un marcador interno en lugar de en tu modelo. La revisión que estabas probando no recibe ningún resultado. Enviar desde la biblioteca y luego mirar en Fluidd es la forma de tener las dos cosas.
De dónde sale el número del coste
El coste se resuelve una vez, en el momento en que un trabajo se marca como completado, y queda congelado desde entonces. Editar después el precio de un perfil de filamento no lo revisa.
Los gramos vienen de la medición cuando hay una, y del peso estimado por el slicer en los metadatos del archivo cuando no la hay. El precio por kilo viene del perfil de filamento vinculado a la bobina seleccionada cuando se eligió una bobina de Spoolman, lo que da el precio real de la bobina y su propia densidad y diámetro, y si no, de un perfil local emparejado por marca y material.
Los gramos medidos son cosa exclusiva de Moonraker. Es el único proveedor que declara la capacidad de consumo medido, y los demás registran la estimación del slicer. La duración transcurrida medida es otra cosa y sí vuelve también de PrusaLink, OctoPrint y Elegoo Centauri, aunque solo la de Moonraker se ha comprobado contra impresiones reales. Bambu LAN no reporta ninguna de las dos. La matriz de compatibilidad tiene la tabla por proveedor.
Esa diferencia es la razón para comparar dentro de un mismo proveedor y no entre dos. Una estimación y una medición se separan por motivos de lo más normales: líneas de purga, un fallo parcial, un cambio de bobina a mitad de impresión, un perfil que se ha desviado de la realidad. Ninguno de los dos números está mal. Responden a preguntas distintas.
Conectar Spoolman es lo que hace que el precio sea exacto en lugar de aproximado, y descuenta de la bobina los gramos medidos una vez que el trabajo queda confirmado, con una comprobación que se salta la escritura cuando el propio hook de Spoolman en Moonraker ya lo está haciendo.
Leer el historial
Para toda la biblioteca, la página Statistics (solo para administradores) agrega los trabajos completados en 7, 30 o 90 días, un año o todo el histórico: coste total, número de impresiones, filamento consumido, filamento medio por impresión, tiempo total de impresión y una previsión de filamento a 7 días extrapolada de la media diaria del periodo. Una serie de coste, filamento o impresiones se dibuja en el tiempo como área, línea o barras, y cuatro clasificaciones cubren los modelos más impresos, la carga de trabajo por impresora, el uso de filamento y las colecciones destacadas. El coste aparece en la moneda de visualización configurada en Settings -> Design.
Dos advertencias sobre esos totales. Solo se cuentan los trabajos completados, así que el filamento y el dinero que se fueron en los fallos no están dentro. Y el tiempo de impresión recurre a la estimación del slicer en los trabajos sin duración medida, que son la mayoría en una máquina que no sea Moonraker.
De vuelta en la cuadrícula de modelos, los filtros de navegación incluyen Printed como sí o no y Print outcome por estado, y las ordenaciones incluyen impresos recientemente y mejor tasa de éxito. Las dos cosas van a la URL y se pueden guardar como vista, así que “piezas de PETG que han fallado al menos una vez” pasa a ser un marcador en lugar de una búsqueda que reconstruyes cada vez. La tasa de éxito de un modelo cuenta los completados frente a completados más fallidos; las cancelaciones se quedan fuera del denominador, porque cancelar una impresión suele decir algo de ti y no del archivo.
La vista de comparación es lo que paga todo el montaje. Selecciona dos revisiones y sus ajustes de laminado ya analizados aparecen uno al lado del otro, con los resultados debajo: impresiones, completadas, fallidas, tasa de éxito, tiempo real medio, filamento real y coste real de cada una. Un historial con clave en el nombre de archivo no puede producir esa tabla, y es la que te dice si la pared extra valía seis minutos y cuatro gramos más. La guía de seguimiento de revisiones cubre los hábitos de etiquetado que la hacen legible.
Lo que no hace
El historial es un registro de filamento y de tiempo de máquina. No tiene nada que decir sobre electricidad, mano de obra, desgaste de la máquina ni el coste indirecto de las impresiones que fallaron, y eso suele ser una parte mayor de un presupuesto que el plástico. Lo que cuesta de verdad una impresión 3D repasa las tarifas que aún tienes que aportar tú.
Los trabajos de impresión tampoco están en la exportación de metadatos. Las exportaciones CSV y JSON son una fila por archivo almacenado y llevan campos de modelo, colección, etiqueta, revisión y slicer. El archivo portable de la biblioteca sí lleva el historial de impresión, con el estado de cada trabajo, el nombre de la impresora, el filamento medido, la duración, el coste y las marcas de tiempo, así que el historial sobrevive a una mudanza a otra instalación, pero no es lo que hay que usar cuando lo que quieres es una hoja de cálculo de los trabajos del último trimestre.
Un punto de partida razonable
Si usas Moonraker y una sola impresora, lee la página History de Mainsail y quédate ahí hasta que los nombres de archivo dejen de servir como índice. Eso suele pasar cuando la misma pieza acumula unos cuantos laminados, o cuando aparece una segunda máquina y los dos historiales ya no suman nada.
En ese punto el movimiento útil es pequeño: pon el modelo de origen en una biblioteca, añade cada laminado como una revisión, importa el historial existente de la impresora sobre los modelos con los que coincide, y de ahí en adelante envía las impresiones desde la biblioteca. El registro empieza a acumularse contra piezas en lugar de nombres de archivo, y la vista de comparación tiene algo que mostrar a las pocas impresiones.
Preguntas que suelen surgir
¿Puedo registrar una impresión de una impresora a la que PrintStash no llega?
Sí. El panel Add record acepta un nombre de impresora en texto libre en lugar de una impresora registrada, así que una máquina sin proveedor compatible, o una a la que PrintStash no tiene ruta, igual consigue que sus trabajos queden archivados contra la revisión correcta. Tú aportas el estado, las horas de inicio y de fin y, si quieres, la bobina. El coste sale del peso estimado por el slicer en los metadatos del archivo, porque nada midió la impresión. Esos registros se ordenan y filtran junto a los automáticos y cuentan para la tasa de éxito del modelo, lo que convierte la entrada manual en la vía práctica para una impresora de resina o para cualquier otra cosa fuera de la lista de proveedores.
¿Por qué una impresión antigua conserva su coste antiguo después de cambiar el precio del filamento?
Porque el coste se resuelve una vez, en el momento en que el trabajo se marca como completado, y se guarda en la fila del trabajo. Un registro que se recalculara con el precio por kilo actual te diría lo que costaría la impresión hoy, que es un dato distinto y mucho menos útil que lo que costó. La misma congelación se aplica a los gramos: el peso efectivo usado para el coste se guarda al lado. Si necesitas la cifra a precio de hoy, toma los gramos guardados y multiplica.
¿Puedo rellenar el historial que ya está en mi impresora?
Con Moonraker, sí, un modelo a la vez. La importación trae el historial reciente de la impresora y registra las entradas cuyos nombres de archivo coinciden con los archivos de G-code de ese modelo, con su estado, marcas de tiempo, duración y filamento consumido. Las entradas que ya se importaron para esa impresora y ese modelo se omiten, lo que hace que repetirla sea seguro pero también significa que las impresiones repetidas de un mismo nombre de archivo solo producen un registro. Trátalo como un relleno puntual del trabajo que hiciste antes de que existiera la biblioteca. Los demás proveedores no exponen ningún feed de historial del que importar.
¿Aparecen las impresiones fallidas en los totales?
En el historial y en el modelo, sí. En los totales de Statistics, no, porque esos suman solo trabajos completados. La página de un modelo te dirá que falló dos veces de nueve intentos, mientras que las cifras de filamento y coste del mes cubren las siete que terminaron. Para un registro de aficionado eso suele ser lo que quieres. Para un presupuesto no, porque los fallos consumen filamento y horas de máquina que el precio de un cliente tiene que absorber, así que lleva ese coste indirecto por separado y trata el panel como un suelo y no como un total.
¿Dónde veo el coste por revisión en lugar de por modelo?
En la vista de comparación de revisiones. Elige dos revisiones de un modelo y las filas de resultados que hay bajo la comparación de ajustes dan a cada una su número de impresiones, los completados y los fallidos, la tasa de éxito, el tiempo real medio, el filamento real total y el coste real total. Las cifras por modelo cubren juntos todos los laminados de la pieza, lo que oculta el caso que normalmente te importa: una revisión es barata y fiable y otra falla en silencio un tercio de las veces.
Fuentes
- Moonraker job history API para los campos por trabajo, y Mainsail’s print history and statistics page para lo que muestra su vista History. Ambas consultadas el 18 de agosto de 2026.
- OctoPrint data model para los contadores por archivo integrados, más las fichas de los plugins Print History y PrintJobHistory.
- La guía de impresoras de PrintStash para la importación de historial, la guía de usuario para la pestaña History y la página Statistics, y la matriz de compatibilidad para saber qué proveedores reportan datos medidos.
Para la vista de todas las máquinas a la vez, en lugar de por modelo, gestionar varias impresoras desde un solo panel cubre la lista de impresoras en vivo y la página de estadísticas agregadas.