Skip to main content

verifica_gcode: comprobar un trabajo antes de imprimirlo

Creality Print no es de fiar en lo que enseña. La interfaz puede mostrar mi preset - ABK y laminar con otro, el hueco del CFS arrastra su propio preset y el 3MF no guarda los valores que derivan de un preset. Lo único que dice la verdad es el gcode laminado, y verifica_gcode.py lo lee y lo compara con lo que de verdad hay cargado en la impresora.

Que comprueba

Trabaja en cuatro niveles. Hacen falta los cuatro: un preset correcto no garantiza el gcode, y un gcode correcto no garantiza que el CFS tenga lo que dice.

Nivel Qué mira Qué caza
Presets los - ABK en disco: que existan y que sus valores sean los acordados un preset borrado o uno que la app ha reescrito al guardar
Gcode el preset con el que se laminó de verdad y sus valores (cama, boquilla, extractor, filtración…) que la interfaz mintiera y se laminara con otro preset
Pausa si en la placa hay una ficha de muestra, que la pausa del tag NFC caiga justo después de la capa de Z 3,2 una ficha que cerraría el hueco del tag vacío
CFS el tipo de material cargado, la humedad y la marca de cada hueco el material equivocado en el hueco, o un PETG de una marca laminado con el preset de otra

Uso

python3 ~/3D/utilidades/verifica_gcode.py --presets              # solo los presets en disco
python3 ~/3D/utilidades/verifica_gcode.py trabajo.gcode          # un gcode local
python3 ~/3D/utilidades/verifica_gcode.py --impresora            # lista los gcodes de la impresora
python3 ~/3D/utilidades/verifica_gcode.py --impresora ULTIMO     # el más reciente

Ojo con ULTIMO: va sin punto final. Con ULTIMO. el script lo toma como nombre de fichero y la impresora responde con un 404.

El material se detecta solo a partir del gcode. Si hace falta, se fuerza con --material <clave>, con la clave del material en el catálogo (esunpetg, soleyin…).

La marca de cada hueco

El CFS solo sabe el tipo de material. Mis dos PETG, el violeta de Creality y el negro de eSUN, aparecen los dos como «PETG», y la marca como «unknown». Así que qué carrete hay en cada hueco lo declaro yo, en el catálogo de filamentos, con filamentos.py (ver la página «filamentos: el catálogo de carretes y huecos del CFS»). Cada vez que cambio una bobina, lo cambio también ahí; si no, el verificador compara contra lo que había antes.

Con esa declaración, el verificador hace dos cosas:

  • Antes de enviar: dice a qué hueco tengo que mandar el trabajo y avisa si hay otro material del mismo tipo cargado, porque es el hueco con el que me puedo equivocar.
  • Con el trabajo en marcha: pregunta a la impresora a qué hueco lo ha asignado. Si ese hueco tiene otra marca, da FALLO.

El caso que lo motivo

El 2026-10-16 mandé un lote de cinco botes de eSUN PETG al hueco T1D. Se había laminado con Generic PETG @Creality K2 Pro 0.4 nozzle - ABK, el preset del PETG de Creality, con la cama a 70 °C, cuando el eSUN pide 75-90 y su preset la pone a 80. El verificador dio TODO CORRECTO: el preset era - ABK, el material era PETG y en el CFS había PETG. Todo cierto, y aun así estaba mal.

Con los huecos declarados, el mismo trabajo da:

== CFS
    ok    el CFS tiene el material que pide el gcode  T1A:PLA, T1B:PLA, T1C:PETG, ...
   FALLO  el trabajo va al hueco T1D                  eSUN PETG     -> PETG
          laminado con el preset de otro material: cambia el hueco o relamina

Donde esta

Qué Ruta
Script ~/3D/utilidades/verifica_gcode.py
Catálogo de filamentos y huecos ~/3D/databases/filamentos.db, editado con ~/3D/utilidades/filamentos.py
Tests ~/3D/utilidades/test_verifica_gcode.py (uv run --with pytest python -m pytest -q)
Presets de usuario de Creality Print ~/Library/Application Support/Creality/Creality Print/<versión>/user/<id de cuenta>/

La impresora se busca en K2Pro-7E83.local, o en la dirección que diga la variable K2PRO_HOST.