Variables Dinámicas
- [[ZSpeed]]
- Velocidad en micrones/segundo, calculada a partir de las velocidades de las secciones de Inicio/Mín./Máx./Lenta en la página de configuración. Se usará el resultado de la velocidad dinámica.
- [[ZLiftDistance]]
- Cantidad de elevación en milímetros después de la impresión de una capa. Se usará el resultado de elevación dinámico.
Control de Comandos
- [[LayerChange layer]]
- Cambiar la Capa Actual ej. [[LayerChange 22.1]]
- [[PositionSet mm]]
- Actualizar la Posición Absoluta actual ej. [[PositionSet 22.1]]
- [[PositionChange mm]]
- Actualización de Posición Relativa ej. [[PositionChange -2.1]]
Comandos de Acción
- [[DisplayLayer LayerID]]
- Muestra cualquier capa del molde actual ej. [[DisplayLayer 10]]
- [[Blank]]
- Hacer pantalla en blanco
- [[LayerSkip Value]]
- Para los valores positivos se salta una capa ej. [[LayerSkip 1]]
Se salta cualquier tarea restante de GCODE y de capa, y comienza la siguiente capa.
Ejemplo de caso de uso más avanzado: [[LayerSkip ((100>[[PixDiff]])*(1-[[SkippedLayers]])*([[LayerNumber]]>3))]]
El GCODE anterior provocaría que se saltasen las capas después de las 3 primeras si una capa anterior a la actual no se hubiese omitido y la diferencia entre la capa anterior y la actual fuese menos de 100 píxeles.
- [[Delay Seconds]]
- Añadir Retraso ej. [[Delay 1.23]]
- [[WaitForDoneMessage]]
- Esperar por Z_move_comp el mensaje de la RAMPS o placas similares.
- [[Pause]]
- Pausar la impresora, requiere reanudar desde el Panel de Control para continuar.
Comandos de Comunicación
- [[Net URL]]
- Enviar una solicitud de obtención a la URL especificada sin esperar por el resultado ej. [[Net http://example.com/api]]
- [[NetReturn URL]]
- Enviar una solicitud de obtención a la URL especificada y enviar el resultado a la RAMPS ej. [[NetReturn http://127.0.0.1/gcode?layer=[[LayerNumber]]]]
- [[Exec Command]]
- Ejecuta un comando externo sin esperar por el resultado ej. [[Exec python my_python_script.py]]
- [[ExecReturn Command]]
- Ejecuta un comando externo y envía el resultado a la RAMPS ej. [[ExecReturn python my_python_script.py]]
Comandos de Hardware
- [[GPIOWaitForLow]]
- Esperar a que "wait pin" GPIO sea BAJO
- [[Projector Command]]
- Enviar cualquier comando al proyector ej. [[Projector \x01\x02\x03 On]]
- [[GPIOHigh GPIO]]
- Hace que cualquier GPIO sea ALTO ej. [[GPIOHigh 12]]
- [[GPIOLow GPIO]]
- Hace que cualquier GPIO sea BAJO
Sincronización de Movimientos
nanoDLP no tiene conocimiento de cuánto tiempo le llevaría terminar un movimiento. Hay un par de formas de resolver este problema.
1. Usando el comando [[Delay Seconds]]
Es posible añadir un retraso después de cada movimiento. Es el método más utilizado.
G1 Z1.1
[[Delay 1.5]]
2. Usando el comando [[GPIOWaitForLow]]
Para sincronizar movimientos, nanoDLP espera a que el pin sea BAJO. Al comienzo del movimiento, los controladores/drivers deben hacer que este pin sea ALTO y al final del movimiento hacerlo BAJO. La demora máxima para la detección es de 1 ms.
G1 Z1.1
[[GPIOWaitForLow]]
3. Empleando el comando [[WaitForDoneMessage]]
Usando Firmwares Parcheados grbl / marlin puedes lograr movimientos de sincronización. Después de leer este comando, nanoDLP esperará Z_move_comp la respuesta de la RAMPS.
G1 Z1.1
[[WaitForDoneMessage]]
Recuperación tras Bloqueo
Usar la configuración correcta es la clave para la Recuperación tras el Bloqueo y beneficiarse de nanoDLP en todo su potencial. Una forma de hacerlo es delegar el posicionamiento a nanoDLP.
Sigue los siguientes códigos de ejemplo para comprender cómo delegar el posicionamiento a nanoDLP. Al hacerlo, además de la Recuperación tras Bloqueo, también la detención de la impresora y otras funciones comenzarán a funcionar.
Inicio de Impresión
G90 ; Coloca el posicionamiento en modo absoluto
G28 ; Guiado
[[WaitForDoneMessage]] ; Espera hasta que se complete el movimiento, requiere parchear el firmware para Z_move_comp, si no quieres usar el firmware parcheado, puedes usar [[Delay n.n]] en su lugar
[[PositionSet 0]] ; Establece la posición actual en nanoDLP para que pueda recuperarse en caso de error
Antes de la Capa
G1 Z[[LayerPosition]] ; Moverse a la Posición de Capa
[[WaitForDoneMessage]] ; Esperar a que el movimiento termine
[[PositionSet [[LayerPosition]]]] ; Guardar la posición de la capa como posición actual
Después de la Capa
G1 Z{[[LayerPosition]]+[[ZLiftDistance]]} ; Elevarse a la posición de espera
[[WaitForDoneMessage]] ; Esperar a que el movimiento termine
[[PositionChange [[ZLiftDistance]]]] ; Posición de actualización de nuevo
Reanudar Impresión
G90 ; Colocar el posicionamiento en modo absoluto
G92 Z[[CurrentPosition]] Y0 X0 ; El sistema se bloqueó, por lo que necesitamos recuperar la posición actual de nanoDLP y configurarlo en laRAMP
G1 Z[[LayerPosition]] ; Mover a la posición de capa
...