Relevante para
Las macros te permiten crear condiciones y evaluar ecuaciones matemáticas en los campos de código G personalizados.
o
Dentro de cualquiera de las construcciones, se puede acceder a las variables de configuración de PrusaSlicer por sus nombres
y se puede acceder a los elementos de las variables vectoriales utilizando llaves cuadradas
se refiere a la temperatura del primer extrusor.
Los vectores multidimensionales actualmente sólo pueden ser accedidos como una simple variable vectorial que resulta en un valor de cadena (por ejemplo, si la variable_extrusora[1]
resulta en un valor de cadena [n,0] -- puede ser publicada en g-code pero no puede ser usada en operaciones aritméticas).
Las cadenas se identifican con comillas dobles y las expresiones regulares con barras inclinadas Las cadenas no se analizan de forma recursiva, es decir, las llaves y corchetes dentro de las cadenas aparecerán en la salida. Esto permite construcciones como
Se permiten los siguientes operadores:
Mínimo
Máximo
Conversión a entero
Redondeo a un entero
Redondeo / relleno con espacios: redondea la parte fraccionaria a num_decimales dígitos (añadiendo ceros al final si es necesario), luego rellena con espacios a la izquierda para que el número tenga num_digitos caracteres en total (incluyendo un punto decimal si está presente).
El último argumento puede omitirse, por defecto es cero.
Redondeo / relleno con ceros: igual que el anterior, sólo que se rellena a la izquierda con ceros
Puedes utilizar variables dentro de los scripts presonalizados y en la plantilla del nombre del archivo de salida.
Consulta la Lista de todos los marcadores de posición de PrusaSlicer, agrupados según su ámbito de aplicación.
Estos valores son escalares y pueden ser referenciados directamente.
Algunas variables están definidas por fórmulas complejas. Por ejemplo, el perimeter_exdtrusion_width si se deja a cero toma el valor de extrusion_width si es distinto de cero, de lo contrario se calcula un perimeter_exdtrusion_width por defecto para la layer_height actual. Estas sustituciones sólo se realizan para las expresiones de nueva sintaxis (encerradas entre llaves {}), mientras que las expresiones escritas con la antigua sintaxis de marcador de posición (encerradas entre llaves cuadradas []) se interpretan literalmente.
Estas variables son matrices y deben ser accedidas como tales (por ejemplo, temperatura[0]).
A estas variables sólo se puede acceder como vectores simples y no se pueden utilizar en expresiones aritméticas.
Ejemplos
Se puede utilizar el código G personalizado "Antes del cambio de capa" para disminuir lentamente las temperaturas del fusor. En primer lugar, se puede utilizar la expresión if/elseif/else:
El mismo resultado se puede conseguir con una expresión if/elseif/endif más corta junto con una interpolación lineal:
O se puede utilizar el operador ternario:
Si se tienes una base que tarda mucho tiempo en alcanzar la temperatura se puede recortar un poco el tiempo de espera utilizando "Start G-code" para calentar la basehasta la temperatura de destino menos 5 grados y luego comenzar a calentar el fusor mientras la base sigue calentándose hasta el valor objetivo:
M109 S[temperatura_de_capa_primera] ; espera a la temperatura de la boquilla