filamentos: el catalogo de carretes y huecos del CFS
Lo que sé de mis filamentos estaba repartido en varios sitios: las reglas de cada material dentro del código del verificador, un CSV con los carretes para las fichas de muestra y un JSON con lo que hay en cada hueco del CFS. Con cinco materiales ya costaba; con cuarenta carretes de seis proveedores, editar ficheros a mano no se sostiene, y una errata en un nombre pasaba sin avisar.
Ahora todo vive en un único catálogo, y lo edito con un comando que me deja elegir de listas con búsqueda en vez de escribir nombres.
Que guarda
| Qué | Ejemplo |
|---|---|
| Proveedores | eSUN, Creality, Amazon, Soleyin |
| Materiales | eSUN PETG: tipo PETG, su preset - ABK y los valores que el verificador comprueba en el gcode (cama 80, boquilla 250…) |
| Carretes | petg_esun_negro: eSUN PETG, negro, #000000, texto de la ficha «PETG» |
| Huecos | T1A a T1D y EXT (el portabobinas exterior), cada uno con su carrete |
| Historial | cada cambio de carrete en un hueco, con fecha |
De ahí leen verifica_gcode (reglas por material y marca de cada hueco), sube_k2 y las fichas de muestra con NFC.
Uso
uv run --with InquirerPy python ~/3D/utilidades/filamentos.py
Abre un menú:
- Cambiar el carrete de un hueco. Lo que uso al cambiar una bobina. Eliges el hueco, buscas el carrete escribiendo parte del nombre y confirmas. Si el carrete no existe, se da de alta en el mismo paso.
- Ver qué hay en cada hueco, el catálogo de carretes o el historial.
- Dar de alta un carrete o un material. Si falta el material o el proveedor, se crea sin salir del flujo. El preset de un material nuevo se elige de la lista de presets
- ABKque existen en Creality Print: un preset de sistema no se puede elegir.
También funciona sin menú, para scripts:
uv run --with InquirerPy python ~/3D/utilidades/filamentos.py huecos
uv run --with InquirerPy python ~/3D/utilidades/filamentos.py historial T1D
uv run --with InquirerPy python ~/3D/utilidades/filamentos.py carga T1D petg_esun_negro
Lo que impide
- Declarar un hueco con un carrete que no existe, un carrete con un material que no existe o un material con un proveedor que no existe.
- Un color que no sea
#RRGGBBo un material cuyo preset no sea- ABK. - Cambiar un hueco sin ver antes qué carrete se va a guardar. El buscador puntúa mal cuando escribes varias palabras: probando, «creality lila» elegía el PLA marble, porque encontraba las letras l-i-l-a desperdigadas en su nombre. Por eso, antes de guardar, la herramienta enseña el carrete elegido con su marca, material y color, y pide confirmación. Escribir una sola palabra distintiva («lila», «esun negro») acierta a la primera.
Donde esta
| Qué | Ruta |
|---|---|
| Comando | ~/3D/utilidades/filamentos.py |
| Base de datos | ~/3D/databases/filamentos.db (SQLite) |
| Código de acceso a los datos | ~/3D/utilidades/catalogo.py |
| Datos iniciales | ~/3D/utilidades/catalogo_semilla.py |
| Tests | ~/3D/utilidades/test_catalogo.py |
La base de datos no está en git: su respaldo es Time Machine. Si se pierde, se vuelve a crear sola con los datos iniciales, que sí están versionados; lo que haya cambiado después con la herramienta, eso se pierde.