I want to make multiple stepper motors turning at same time, with L298N driver.
My idea is using relative coordinate on Milling machine, and separate x, y, z value from input coordinate before doing relative positioning calculation.
The code is
def coordinate(inputlist, d):
    D = int(d)
    l = ast.literal_eval(f"[{inputlist}]")#do not use "eval()" code
    lx = [x for x,y,z in l]
    ly = [y for x,y,z in l]
    lz = [z for x,y,z in l]
    x_value(lx, axisx, D)
    y_value(ly, axisy, D)
    z_value(lz, axisz, D)
def x_value(lx, axisx, D):
    delay = D
    stepper = axisx
    x = lx
    xv = [] 
    for f in range(len(x)-1):
        bx = x[f+1] - x[f]  
        xv.append(bx)   
    print(xv)
    for steps in xv:
        if  (steps >=0):
            forword(delay, steps, stepper)
        elif (steps <=0):
            backward(delay, steps, stepper)
def y_value(ly, axisy, D):
    delay = D
    stepper = axisy
    y = ly
    yv = [] 
    for g in range(len(y)-1):
        by = y[g+1] - y[g]  
        yv.append(by)   
    print(yv)
    for steps in yv:
        if  (steps >=0):
            forword(delay, steps, stepper)
        elif (steps <=0):
            backward(delay, steps, stepper)
def z_value(lz, axisz, D):
    delay = D
    stepper = axisz
    z = lz
    zv = [] 
    for h in range(len(z)-1):
        bz = z[h+1] - z[h]  
        zv.append(bz)   
    print(zv)
    for steps in zv:
        if  (steps >=0):
            forword(delay, steps, stepper)
        elif (steps <=0):
            backward(delay, steps, stepper)
def forword(delay, steps, stepper):
    for i in range(steps):
        for halfstep in range(8):
            for pin in range(4):
                GPIO.output(stepper[pin], seq[halfstep][pin])
            time.sleep(int(delay) / 10000)
def backward(delay, steps, stepper):
    seq.reverse()
    for i in range(-int(steps)):
        for halfstep in range(8):
            for pin in range (4):
                GPIO.output(stepper[pin], seq[halfstep][pin])
            time.sleep(int(delay) / 10000)
    seq.reverse()
try:
    while True:
        inputlist = input("Coordinate List (Unit is 10um, 1mm = 100 (10um)):")
        d = input("speed of stepper(do not less then 7):")
        coordinate(inputlist, d)
No matter how I tried, the three stepper motors are turning separately.
I want to make stepper motors turning at same time, no matter what value I put in with coordinate form (x1,y1,z1), (x2,y2,z2)......., (xn,yn,zn)
 
     
    