# Cambiar de filamento: lo que cambia sin avisar

Cuando se acaba una bobina y pones otra, el laminador cambia de perfil de filamento. Eso no solo cambia la temperatura: **cambia parámetros de comportamiento que no aparecen en ninguna ficha comercial** y que pueden tumbar una impresión que llevaba semanas saliendo bien.

Esta página documenta el caso concreto que me pasó y, sobre todo, el método para no volver a comerlo.

## El caso: Soleyin Ultra PLA → Hyper PLA

Las dos bobinas son PLA. Misma boquilla, misma máquina, misma pieza. Estos son los perfiles de fábrica de la K2 Pro, resueltos y puestos uno al lado del otro:

| parámetro | Soleyin Ultra PLA | Hyper PLA | efecto |
|---|---|---|---|
| `slow_down_layer_time` | 14 s | **8 s** | las capas cortas dejan de frenarse |
| `filament_max_volumetric_speed` | 16 | **23** | el perímetro deja de recortarse por caudal |
| `during_print_exhaust_fan_speed` | 60 | **0** | extracción apagada |
| `filament_flow_ratio` | 0,97 | 0,95 | — |
| `chamber_temperature` | 35 | 30 | — |
| `additional_cooling_fan_speed` | 95 | 80 | — |

Y estos son **idénticos** en los dos, lo cual también es información: temperatura de boquilla (220), cama (50), ventilador de pieza (100/100) y `close_fan_the_first_x_layers` (1).

## El parámetro que más pesa: `slow_down_layer_time`

Es un mínimo de tiempo por capa. Si una capa se va a imprimir en menos tiempo que ese valor, el laminador la **ralentiza** para dar margen a que el material solidifique antes de que la boquilla vuelva a pasar por encima.

En mi pieza medí capas de **6, 9 y 12 segundos** en la zona alta, donde la sección se reduce a un poste fino. Con el Soleyin esas capas se estiraban a 14 s. Con Hyper PLA pasaban tal cual: sin tiempo de enfriar, sobre una pieza pequeña y con el ventilador a tope.

Bajar de 14 a 8 parece un detalle. En piezas grandes lo es, porque ninguna capa baja de ese umbral. En piezas pequeñas es la diferencia entre imprimir y no imprimir.

### Cómo se ve el efecto

Tras subir `slow_down_layer_time` a 14 en mi preset, comparé dos laminados de la misma pieza:

| | antes | después |
|---|---|---|
| piezas en la placa | 4 | **2** |
| material | 4,95 g | **3,84 g** (−22 %) |
| tiempo estimado | 17m 2s | **17m 3s** |

Mitad de piezas y un 22 % menos de material, **exactamente el mismo tiempo**. Ese es el parámetro trabajando: paga tiempo a cambio de que cada capa solidifique.

## El caudal cambia la velocidad real, no solo el máximo

El tope de caudal (`filament_max_volumetric_speed`) recorta automáticamente cualquier velocidad que lo supere. Con capa de 0,2 mm y perímetro exterior de 0,42 mm de ancho:

- Con **16 mm³/s** (Soleyin), un perímetro a 200 mm/s pide 16,8 mm³/s → **se recorta**.
- Con **23 mm³/s** (Hyper PLA), ese mismo perímetro **pasa entero** y va a 200 mm/s reales.

Es decir: el mismo número en la casilla de velocidad produce velocidades distintas según el filamento. Al cambiar de bobina, una pieza pequeña empieza a recibir más fuerza lateral del cabezal sin que hayas tocado nada.

## El método: leer los JSON, no las fichas comerciales

Las fichas de fabricante dicen genéricos («optimizado para alta velocidad», «resistente a impactos») y no permiten decidir nada. Los perfiles reales están en disco:

```
~/Library/Application Support/Creality/Creality Print/<version>/system/Creality/filament/*.json
```

**Ojo: heredan.** Cada fichero tiene una clave `inherits` que apunta a su padre, y los valores efectivos son la cadena resuelta. Comparar los ficheros en bruto no sirve: hay que resolver la herencia primero.

```python
import json, os

def resuelve(nombre, base, prof=0):
    ruta = os.path.join(base, nombre + '.json')
    if not os.path.exists(ruta):
        return {}
    d = json.load(open(ruta))
    padre = {}
    if 'inherits' in d and prof < 8:
        padre = resuelve(d['inherits'], base, prof + 1)
    padre.update(d)
    return padre
```

Con eso, comparar dos materiales es poner las claves que importan en una tabla. Las que miro siempre:

- `slow_down_layer_time`
- `filament_max_volumetric_speed`
- `fan_min_speed`, `fan_max_speed`, `close_fan_the_first_x_layers`
- `during_print_exhaust_fan_speed`
- `activate_chamber_temp_control`, `chamber_temperature`
- las temperaturas de cama según el tipo de placa

## Otros hallazgos del mismo método

Comparando perfiles de PETG con esta técnica salieron cosas que ninguna ficha decía:

| | CR-PETG | Hyper PETG | Hyper PETG-CF |
|---|---|---|---|
| ventilador de extracción | **0 %** | 60 | 60 |
| caudal máximo | 18 | **23** | 12 |
| temperatura de transición | **60 °C** | 75 | 80 |

Que CR-PETG sea el único que apaga la extracción explicó, con dato en vez de sospecha, un atasco por acumulación de calor en una impresión larga.

Y en PLA: **CR-Silk admite 10 mm³/s frente a los 23 de Hyper PLA**. El silk imprime a menos de la mitad de velocidad, cosa que conviene saber antes de planificar una serie.

## Dos avisos sobre lo que NO te dice el perfil

- **`required_nozzle_HRC` no sirve para detectar abrasivos.** En toda la biblioteca solo 28 perfiles de 1.379 lo rellenan. Que ponga 0 no significa que el material no desgaste: el PLA marble lleva ~30 % de carbonato cálcico y pide boquilla endurecida para producción, con un 0 en esa casilla.
- **El tipo de placa puede ser decorativo.** En el perfil de fábrica de mi máquina, «High Temp Plate» y «Textured PEI Plate» declaran **la misma temperatura** de cama. Elegir bien el tipo de placa no sube la cama; hay que subirla a mano.

## Resumen operativo

Cuando cambies de bobina a un material distinto, aunque sea el mismo tipo de plástico:

1. Resuelve y compara los dos perfiles con la tabla de claves de arriba.
2. Mira especialmente `slow_down_layer_time` si vas a imprimir piezas pequeñas.
3. Crea tu preset personalizado para el material nuevo antes de lanzar nada largo.
4. Verifica en el gcode que se aplicó.