# sube_k2: enviar a la impresora sin la app

Desde finales de septiembre de 2026, Creality Print 7.3 solo envía los trabajos por la nube, y la descarga en la impresora falla. Mientras no lo arreglen, el camino que funciona es este: lamino en la app, cojo el gcode que deja en su carpeta temporal, lo verifico y lo subo directamente a la impresora por la red local. Eso hace `sube_k2.py`.

## Que hace

1. Busca el **último gcode que ha laminado** Creality Print, en su carpeta temporal (`$TMPDIR/crealityprint_model/`).

2. Lo verifica con las mismas reglas que `verifica_gcode.py`, pero para **cada filamento que el trabajo gasta**, no solo el primero:

   - el preset es `- ABK` y es de la K2 Pro 0.4;
   - los valores cumplen las reglas de su material;
   - el proceso también es un `- ABK`;
   - algún hueco del CFS tiene cargado un filamento de ese color. El TPU, que no va por el CFS, lo busca en el portabobinas exterior, por material y no por color;
   - la impresora no está imprimiendo.
3. Si todo está bien, lo **sube sin arrancarlo**. Si algo falla, no sube nada, salvo que se fuerce.

La impresión se arranca **desde la pantalla de la impresora**, que es donde se asigna cada filamento a su hueco del CFS.

## Uso

```bash
python3 ~/3D/utilidades/sube_k2.py                   # el último laminado; pregunta antes de subir
python3 ~/3D/utilidades/sube_k2.py --solo-ver        # verifica y no sube nada
python3 ~/3D/utilidades/sube_k2.py -y --nombre Pieza_v3
python3 ~/3D/utilidades/sube_k2.py trabajo.gcode     # un gcode concreto

```

## Filamento del proyecto no es hueco del CFS

El gcode numera los filamentos **del proyecto** (1, 2…). Que el filamento 1 acabe en el hueco 1A o en el 1D se decide al arrancar. Por eso el script busca el color en **cualquier** hueco del CFS y no en el de su mismo número: hacerlo por número dio un falso fallo el 2026-10-05, con un PETG morado cargado en 1B y comprobado contra 1A.

Por la misma razón, la marca no la puede decidir antes de arrancar. Para eso está la declaración de huecos de `verifica_gcode` (ver la página «verifica_gcode: comprobar un trabajo antes de imprimirlo»), que dice a qué hueco hay que mandar cada trabajo.

## Cuando la app no envia ni con la impresora sana

Hay otro fallo distinto: Creality Print no envía por la red local ni muestra la cámara, aunque la impresora responda bien. Lo provoca el permiso de **Red local** de macOS, que se rompe solo. Se arregla apagando y encendiendo Ajustes del Sistema → Privacidad y seguridad → Red local → Creality Print, y cerrando la app con Cmd+Q. `sube_k2` no depende de ese permiso, así que sirve mientras tanto.

## Donde esta

| Qué | Ruta |
|---|---|
| Script | `~/3D/utilidades/sube_k2.py` |
| Reglas compartidas | `~/3D/utilidades/verifica_gcode.py` |
| Gcode temporal de la app | `$TMPDIR/crealityprint_model/**/Metadata/.*.gcode` |

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