Creality Print

El laminador: perfiles, presets y las trampas que cuestan una impresion.

Los perfiles de usuario no se aplican solos

Tengo perfiles personalizados en Creality Print desde hace semanas. El 30 de agosto de 2026 perdí dos impresiones seguidas y, al investigarlo, descubrí que esos perfiles existían pero no se estaban usando: el laminador trabajaba con los de fábrica sin decir nada.

Esta página explica cómo detectarlo y cómo evitarlo.

El síntoma

Dos impresiones canceladas con hilos volando, con el ventilador de pieza a tope y la cama notablemente fría al tacto. Mi primera sospecha fue que la aplicación me había «pisado» o corrompido los perfiles.

No era eso. Los perfiles estaban intactos en disco. Simplemente no eran los seleccionados.

La comprobación que decide: el gcode, no la interfaz

La interfaz muestra el nombre del preset en un desplegable, pero ese desplegable puede no reflejar lo que acabó dentro del fichero. La única prueba concluyente está en la cabecera del gcode que la máquina ejecuta:

; print_settings_id    = 0.20mm Standard @Creality K2 Pro 0.4 nozzle - ABK
; filament_settings_id = "Hyper PLA @Creality K2 Pro 0.4 nozzle - ABK"

Si esas dos líneas no terminan con el sufijo de tu preset, estás imprimiendo con los ajustes de fábrica.

El gcode se puede descargar de la propia impresora sin tocar nada, porque la K2 Pro expone Moonraker:

curl -s "http://<IP-de-tu-impresora>:7125/server/files/list?root=gcodes"
curl -s "http://<IP-de-tu-impresora>:7125/server/files/gcodes/<fichero>.gcode" \
  | grep -aE "^; (print|filament)_settings_id"

Qué te llevas si caes a fábrica

Estos son los valores del perfil de fábrica de la K2 Pro que más daño hacen en piezas pequeñas:

Por qué pasa: cada material necesita SU preset

El agujero que me tumbó las impresiones era este: yo tenía un preset de filamento personalizado, pero de Hyper PLA-CF (fibra de carbono), un material que no uso. El día que cambié de bobina a Hyper PLA normal, no había ningún preset propio al que caer, y el laminador tomó el de sistema.

La regla que saco de ahí:

Los ficheros .info: tus presets viajan a la nube

Cada preset creado desde la interfaz genera un fichero hermano .info junto al .json:

setting_id = 6a7c3ed7675aeed975583544
user_id = <tu id de Creality Cloud>
base_id = GP004
updated_time = 1786527762

Ese setting_id es el vínculo con tu cuenta de Creality Cloud. En el log de la aplicación se ve la sincronización explícitamente:

SyncUserPresets downloadUserPreset start...
ProfileList [https://api.crealitycloud.com/api/cxy/v2/slice/profile/user/list]

Consecuencia práctica: tus presets de usuario pueden sobrescribirse desde la nube. En mi caso no ocurrió, pero el mecanismo existe y conviene saberlo.

Corolario: si borras un preset solo del disco, puede reaparecer en la siguiente sincronización. Para eliminarlo de verdad, bórralo desde la aplicación.

Escribir presets a mano

Se puede, y a veces es lo más rápido. Los ficheros viven en:

~/Library/Application Support/Creality/Creality Print/<version>/user/<tu-id>/
├── filament/
└── process/

Precauciones que no son opcionales:

Ejemplo de preset de filamento válido, que hereda del de sistema y solo cambia lo necesario:

{
    "base_id": "GFSA04",
    "close_fan_the_first_x_layers": ["3"],
    "during_print_exhaust_fan_speed": ["60"],
    "filament_settings_id": ["Hyper PLA @Creality K2 Pro 0.4 nozzle - ABK"],
    "from": "User",
    "hot_plate_temp": ["60"],
    "hot_plate_temp_initial_layer": ["60"],
    "inherits": "Hyper PLA @Creality K2 Pro 0.4 nozzle",
    "name": "Hyper PLA @Creality K2 Pro 0.4 nozzle - ABK",
    "slow_down_layer_time": ["14"],
    "textured_plate_temp": ["60"],
    "textured_plate_temp_initial_layer": ["60"],
    "version": "26.8.4.20"
}

Higiene: los presets duplicados son una trampa

Al duplicar un perfil sin renombrarlo quedan nombres como - Copiar(1) y - Copiar(2). Yo tenía dos, y uno de ellos traía enable_support = 1 con umbral de voladizo a — seleccionarlo por error llena la pieza de soportes.

Con el truncado de nombres de la lista, ese duplicado se lee casi igual que el bueno. Bórralos en cuanto los detectes.

Y sobre las actualizaciones de la aplicación

El mismo día, la aplicación se actualizó sola de la versión 7.2.1 a la 7.2.2 y reescribió 1.896 de 1.957 ficheros de perfil de sistema, añadiendo seis perfiles nuevos.

Lo comprobé contra una copia de Time Machine anterior: de los 56 perfiles de mi impresora, 53 eran idénticos en valores y solo cambió el formato del fichero. Los tres que cambiaron de verdad no afectaban a mi material.

Dos cosas que aprendí de esa comprobación:

Resumen operativo

  1. Crea un preset personalizado para cada material que uses de verdad.
  2. Antes de lanzar una impresión larga, verifica en el gcode que los dos settings_id son los tuyos.
  3. Borra los duplicados Copiar(n) en cuanto aparezcan.
  4. Si escribes presets a mano: aplicación cerrada, copia de seguridad, y valores como cadenas.

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:

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.

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:

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

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ó.