CNC ismet
hwsw famulus
hwsw at famulus.hu
Mon Jul 18 21:04:44 CEST 2005
> Ferde vonalat én DDS elven oldanám meg; ki van kerülve az osztás, mint
> olyan, és gyönyörüen, folyamatosan léphet mindkét motor.
..en meg Bresenham algoritmus-sal csinalom, ami
ennyi a Timer rutinban a masik levleben vazolt
T tenegely szerinti interpolalast is belertve...
(A T visszafele szamol max-rol)
Eddig ettol gyorsabb es
kevesebb matekot kero megoldast
nem talaltam meg ....
KJ
----------------------
if T_pos > 0 Then
'Linearis interpolacio
X_error = X_error + X_2delta
If X_error > T_move Then
X_pos = X_pos + X_step
X_error = X_error - T_2delta
Xstep = 1
End If
Y_error = Y_error + Y_2delta
If Y_error > T_move Then
Y_pos = Y_pos + Y_step
Y_error = Y_error - T_2delta
Ystep = 1
End If
Z_error = Z_error + Z_2delta
If Z_error > T_move Then
Z_pos = Z_pos + Z_step
Z_error = Z_error - T_2delta
Zstep = 1
End If
Decr T_pos
Endif
---------------------------
Az elokeszites pedig ez a rutin
varja a T X Y Z step-ek szamat
---------------------------
X_end = X_pos + X_move
X_step = 1 : Xdir = 0
If X_move < 0 Then
Xdir = 1
X_step = -1
X_move = -x_move
End If
X_2delta = X_move + X_move
X_error = 0
Y_end = Y_pos + Y_move
Y_step = 1 : Ydir = 0
If Y_move < 0 Then
Ydir = 1
Y_step = -1
Y_move = -y_move
End If
Y_2delta = Y_move + Y_move
Y_error = 0
Z_end = Z_pos + Z_move
Z_step = 1 : Zdir = 1
If Z_move < 0 Then
Zdir = 0
Z_step = -1
Z_move = -z_move
End If
Z_2delta = Z_move + Z_move
Z_error = 0
T_2delta = T_move + T_move
T_pos = T_move
---------------------------
More information about the Elektro
mailing list