PrintStash v0.7.3: leer los metadatos BGCODE de PrusaSlicer
PrintStash v0.7.3 añadió extracción segura de metadatos y miniaturas del G-code binario de PrusaSlicer, sin previsualización del recorrido.
PrintStash v0.7.3 añadió el análisis de los archivos de G-code binario de PrusaSlicer con extensión .bgcode. Las versiones anteriores indexaban el archivo pero no podían extraer sus metadatos.
Leer el contenedor sin decodificar el recorrido
El nuevo lector recorría el contenedor de libbgcode y decodificaba los bloques de metadatos e imagen sin comprimir o comprimidos con zlib. Extraía los mismos tipos de valores que se usan para el G-code de texto, incluidos versión del slicer, impresora, temperaturas, altura de capa, relleno, material, estimaciones de filamento, coste y tiempo estimado.
El PNG o JPEG incrustado más grande pasaba a ser la miniatura del archivo. La subida, la importación por URL y por ZIP, y los escaneos de volúmenes compartidos usaban todos el lector.
La implementación usaba los módulos estándar struct y zlib de Python, así que la versión no añadió ninguna dependencia, configuración ni cambio de esquema. Los límites de longitud y de descompresión protegían al analizador de contenedores truncados u hostiles.
Saber qué sigue sin estar disponible
El cuerpo del G-code usa compresión heatshrink. PrintStash no la decodificaba en esta versión, y los proveedores de impresora compatibles esperaban G-code en texto plano.
Para los archivos BGCODE:
- los metadatos, las miniaturas, el almacenamiento, la búsqueda y la descarga funcionaban;
- el navegador mostraba un aviso claro en lugar de un gráfico de recorrido vacío;
- Open in slicer quedaba oculto;
- enviar el archivo a una impresora estaba desactivado y la API lo rechazaba con
binary_gcode_not_printable.
El artículo actual sobre BGCODE explica el formato y la misma limitación práctica.
Consulta el changelog completo para los detalles de implementación y de las pruebas.