Sie sind auf Seite 1von 5

/ * Mais e mais impressoras agora têm o nivelamento automático da

cama usando uma variedade cada vez maior de métodos.


Isso torna a rotina de nivelamento uma das partes mais complexas do
firmware e não há uma maneira de nivelar, mas centenas de
combinações.
Primeiro você deve decidir sobre o método de correção. Uma vez que
sabemos como a nossa cama está inclinada, queremos tirar isso.
Essa correção é definida por BED_CORRECTION_METHOD e
permite os seguintes valores:
BED_CORRECTION_METHOD 0
Use uma matriz de rotação. Isso fará com que o eixo z suba / desça
enquanto se move na direção x / y para compensar a inclinação.
Para várias extrusoras, certifique-se de que a altura corresponda à
inclinação da cama ou que uma delas seja arranhada.
BED_CORRECTION_METHOD 1
Correção motorizada. Esse método precisa de uma cama que seja
fixada em 3 pontos, dos quais 2 têm motor para alterar a altura. As
posições são definidas por BED_MOTOR_1_X, BED_MOTOR_1_Y,
BED_MOTOR_2_X, BED_MOTOR_2_Y, BED_MOTOR_3_X,
BED_MOTOR_3_Y O motor 2 e 3 são os acionados pelo acionador
do motor 0 e 1. Eles podem ser motores extras como o Felix Pro 1
usa-los ou um sistema com 3 eixo z onde os motores podem ser
controlados individualmente como o Sparkcube faz.

Em seguida, temos que distinguir vários métodos de sensores de


sondagem z. Cada um tem suas próprias vantagens e desvantagens.
Primeiro a sonda z tem uma posição quando ativada e essa posição é
definida por
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0

Isso é necessário, pois precisamos saber onde medimos a altura


quando a sonda z é acionada. Quando a sonda estiver ativada, você
verá um movimento para fazer com que a sonda ultrapasse a posição
atual da extrusora. A posição pode ser mudada em eeprom mais tarde.
Algumas sondas precisam ser ativadas / desativadas para que
possamos usá-las. Isso é definido nos scripts
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
Agora, quando sondamos, queremos saber a distância da extrusora
até a cama. Isso é definido por
#define Z_PROBE_HEIGHT 4
O 4 significa que quando acionamos a distância da ponta do bico é de
4mm. Se o seu switch tende para retornar pontos diferentes, você
pode repetir um ponto medido e usar a altura média:
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 5

A distância de comutação é o aumento de z necessário para desligar


um sinal de forma confiável. Sensores indutivos precisa apenas de
um pouco, enquanto os interruptores mecânicos podem exigir um
pouco mais.

A próxima coisa a considerar é a força para mudar.


Algumas camas usam um design cantilever e empurram o exterior
dobra facilmente a cama. Se o seu sensor precisa de alguma força
para acionar você adicionar o erro de flexão. Por esse motivo, você
pode adicionar uma correção de flexão. Atualmente você define
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
quais são as deflexões nos pontos de sonda de 3 z. Para todas as
outras medições possíveis, esses valores sejam interpolados. Você
pode modificar os valores mais tarde no eeprom. Para forçar menos
sensores, ajuste-os para 0.
A próxima coisa é o manuseio do endstop. Sem o nivelamento de
cama, você normalmente fica em casa na posição mínima para x, y e
z. Com o nivelamento de cama, isso não é tão fácil assim. Desde que
fazemos o nivelamento de cama, já assumimos que a cama é não
nivelado para movimentos x / y. Então, sem correção, nós batemos na
cama para diferentes posições x / y em alturas diferentes. Como
resultado, não temos uma posição mínima real. Isso faz com que um z
min acabe completamente inútil. Existe uma exceção a isso. Se o
seu bocal disparar z min ou se um sensor indutivo disparar em um
dado posição, poderíamos usar esse sinal. Com os gatilhos do bocal
você precisa ter cuidado como uma gota de filamento mudaria a
altura. O outro problema é que, ao retornar, o nivelamento automático
não é usado. assim a única posição seria se o sensor z min estivesse
diretamente acima da coordenada 0,0, que é o ponto de rotação se
tivermos correção baseada em matriz. Para correção baseada em
motor, isso funcionará em todos os lugares corretamente. Portanto, a
única posição útil para um fim de z é a posição z max. Além de não ter
o problema de inclinação da cama. Também permite o
posicionamento com uma cama completa, para que você possa
continuar com uma impressão abortada com alguns ajustes no gcode.
Com z max homing nós ajustamos o erro simplesmente mudando o
max. altura z. Uma coisa que você precisa lembrar é
#define ENDSTOP_Z_BACK_ON_HOME 4
então nós liberamos o z max endstop. Isso é muito importante se
movermos xy no z max. O nivelamento automático pode querer
aumente z e o fim de curso pode impedir isto causando posição
errada e um choque de cabeça se nós afundarmos depois. O valor
deve ser maior que a inclinação máxima esperada.

Agora é hora de definir como medimos a rotação da cama. Aqui,


novamente, temos vários métodos para escolher. Todos os métodos
precisam de pelo menos 3 pontos para definir a rotação da cama
corretamente. A qualidade que recebemos vem da seleção dos
pontos e métodos corretos.
BED_LEVELING_METHOD 0
Este método mede nos 3 pontos de sondagem e cria um plano
através destes pontos. Se você tem uma cama realmente plana isso
dá o resultado mínimo. Os 3 pontos não devem estar em uma linha e
ter uma longa distância para aumentar a estabilidade numérica.

BED_LEVELING_METHOD 1
Isso mede uma grade. O ponto de prova 1 é a origem e os pontos 2 e
3 abrangem uma grade. Nós medimos BED_LEVELING_GRID_SIZE
aponta em cada direção e calcula um plano de regressão através de
todos pontos. Isso dá um bom plano geral se você tiver pequenas
saliências medindo imprecisões.
BED_LEVELING_METHOD 2
Curvar-se corrigindo a medição de 4 pontos. Isto é para cantilevered
camas que têm o eixo de rotação Não ao lado mas dentro da cama.
Aqui podemos assumir que não há dobra no eixo e simétrica flexão
para ambos os lados do eixo. Então, os pontos 2 e 3 da sonda
constroem o eixo simétrico e o ponto 1 é espelhado para 1m ao
longo do eixo. Usando a simetria, removemos a flexão de 1 e use
isso como plano. Até agora o processo de nivelamento está
terminado. Todos os erros remanescentes estão medindo erros e
solavancos a cama sozinha. Para deltas, você pode habilitar a
correção de distorção para seguir as colisões. Existem duas
maneiras de considerar um revestimento de cama variável, que é
definido por Z_PROBE_Z_OFFSET_MODE.
Z_PROBE_Z_OFFSET_MODE = 0 significa que medimos a
superfície da cama abaixo de qualquer revestimento. Isto é, e. o case
com sensores indutivos onde colocamos o BuildTak no topo. Nesse
caso, podemos definir Z_PROBE_Z_OFFSET para a espessura de
BuildTak para compensar. Se depois mudarmos o revestimento, só
mudaremos Z_PROBE_Z_OFFSET a nova espessura de
revestimento. Z_PROBE_Z_OFFSET_MODE = 1 significa que
medimos a superfície do revestimento, por ex. porque nós temos um
interruptor mecânico. Nesse caso, adicionamos
Z_PROBE_Z_OFFSET para a altura medida para compensar a
distância correta até a superfície da cama. Ao voltar ao máximo,
reduzimos o comprimento z em Z_PROBE_Z_OFFSET para obter
uma altura correta. No homing para z min, assumimos que z endstop
é nível de leito, então subimos Z_PROBE_Z_OFFSET depois que o
endstop é atingido. este requer que a extrusora dobre a espessura
do revestimento sem danos!

Das könnte Ihnen auch gefallen