Scripts Fichas de muestra con NFC: un comando por carrete Tengo más de veinte carretes y cada uno lleva su ficha de muestra impresa: un rectángulo con el nombre del material en relieve y, dentro, un tag NFC con la marca, el color y el lote. Cuando un hueco del CFS se libera, imprimo la ficha del carrete que acaba de entrar. Hacer cada ficha a mano en el laminador tenía varios sitios donde equivocarse: el preset, el hueco, el color y la altura de la pausa. Ahora es una línea en una tabla y un comando. Qué hay dentro de la ficha El texto del recuadro dice el tipo de material ( PLA , PETG , ABS , NYLON …), no la marca ni el color. Varios carretes de PLA comparten la misma ficha y se distinguen por el color impreso y por el tag. El tag NFC (NTAG215 de 25 mm, sin adhesivo) va encerrado : un hueco de 1 mm de fondo con 0,8 mm de tapa encima. La impresora se para justo antes de cerrar el hueco, metes el tag y reanudas. El color lo pone el carrete que esté en el hueco del CFS. El color que se declara en el proyecto solo sirve para que el laminador lo pinte bien en pantalla. El flujo: tres pasos 1. Una fila por carrete en el catálogo. Es un CSV con seis columnas: id,texto,marca,color,hex,preset petg_esun_negro,PETG,eSUN,negro,#000000,eSUN PETG @Creality K2 Pro 0.4 nozzle - ABK pla_hyper_gris,PLA,Creality,gris,#a0a7ad,Hyper PLA @Creality K2 Pro 0.4 nozzle - ABK Columna Qué va id nombre corto del carrete, en minúsculas, cifras y guion bajo texto lo que se lee en la ficha; caben unas 7 mayúsculas marca , color para mí; no se imprimen hex color en formato #RRGGBB , con un solo # preset el nombre completo del preset de filamento, tal como aparece en Creality Print 2. Generar la ficha indicando el carrete y el hueco del CFS donde está cargado: uv run --with numpy python tools/nueva_ficha.py pla_hyper_gris 1B Sin argumentos lista el catálogo y marca qué carretes están listos y cuáles bloqueados, y por qué. 3. Abrir el .3mf resultante en Creality Print, laminar e imprimir. No hace falta configurar nada antes: el proyecto ya lleva el filamento asignado al hueco, su preset, el color y la pausa. El hueco no está en el catálogo a propósito: cambia cada vez que recargo carretes, así que se indica en cada ejecución. Lo que hace el comando por dentro Valida la fila antes de tocar nada: que el preset exista, que sea de la K2 Pro 0.4 y que sea uno de mis presets revisados (llevan el sufijo - ABK ; un preset de sistema sin revisar se rechaza), que el color sea un hex válido y que el hueco sea del CFS (1A–1D). Prepara la base del texto si no existe ya. Para PLA , PETG , ABS , ASA y TPU parte de la ficha original, que ya trae ese texto; para cualquier otro escribe las letras sobre la ficha en blanco. Después abre el hueco cerrado del tag, rellena los agujeros de la malla y elimina los vértices en T. Cada base se genera una sola vez y se reutiliza. Comprueba que la malla queda cerrada. Si no lo está, se detiene y borra el resultado: el modo automático de Creality Print (el de la IA) se niega a laminar una malla con aristas abiertas. Escribe el .3mf con el filamento en el hueco indicado, el preset, el color y la pausa. Las piezas pesadas de malla las hace FreeCAD sin interfaz ( freecadcmd ); el resto es Python con numpy. Tres detalles que costaron una impresión La pausa va en la capa de abajo, no en la de arriba Creality Print pausa después de terminar la capa que le indicas. El hueco del tag acaba en Z 3,2 mm, así que la pausa se programa en 3,2. Con 3,4 la pausa llegaba una capa tarde, con la tapa ya empezada y el tag sin sitio. Se comprueba en el gcode laminado: debe haber una sola PAUSE , entre la línea ;Z:3.2 y la ;Z:3.4 . El tag se escribe antes de encerrarlo, y nunca se bloquea Una vez dentro no se puede sacar sin romper la ficha. Escríbelo y compruébalo con el móvil antes de meterlo. Se puede reescribir después a través de la tapa, pero el bloqueo del NTAG215 es permanente : si lo bloqueas, la ficha queda con esos datos para siempre. Una malla con defectos pasa en modo manual y falla en automático Las fichas originales traen 19 aristas no-manifold. El modo manual del laminador las acepta y ofrece reparar; el automático rechaza la pieza sin más. Por eso el comando no da por buena una ficha hasta que la malla queda con cero aristas abiertas. Errores frecuentes al rellenar el catálogo Preset vacío o abreviado. Va el nombre entero, por ejemplo Hyper PLA @Creality K2 Pro 0.4 nozzle - ABK , no Hyper PLA . Color con dos almohadillas ( ##a0a7ad ). Uno solo. Un texto demasiado largo. POLICARBONATO no cabe en el recuadro; el comando se detiene y lo dice. Usa una abreviatura ( PC ). TPU. El TPU no va por el CFS, así que no tiene hueco que asignar y queda fuera de este flujo. Los scripts Por ahora viven en mi repositorio privado de proyectos 3D y no están publicados: dependen de otras utilidades mías (el verificador de presets y el diagnóstico de mallas) y de mis presets - ABK . Esta página describe el método, que es lo que se puede trasladar a cualquier otra impresora con CFS y cualquier modelo de ficha. La ficha de partida es el modelo Filament Samples / Filament Color Swatches ; el hueco cerrado del tag y la pausa son una modificación propia, el original no la trae.