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 - ABK que 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 #RRGGBB o 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.