from subprocess import Popen import multiprocessing # import subprocess frets = list(range(22)) fret_pairs = list(zip(frets, frets[1:])) + list(zip(frets, frets[2:])) #+ list(zip(frets, frets[3:])) def run_openscad(frets): i, j = frets p = Popen(["openscad", "--backend=manifold", "--enable=all", "-o", f"output/nylon6_{i}_{j}.3mf", "-D", f"F0={i}", "-D", f"F1={j}", "CFTubesNylon.scad"]) p.wait() def main(): print("Compiling .3mf files for fret pairs: ", fret_pairs) # processes = [Popen(["openscad", "--backend=manifold", "--enable=all", "-o", f"output/nylon6_{i}_{j}.3mf", "-D", f"F0={i}", "-D", f"F1={j}", "CFTubesNylon.scad"]) for (i,j) in fret_pairs] # for p in processes: # p.wait() with multiprocessing.Pool(2) as p: for result in p.imap_unordered(run_openscad, fret_pairs): pass print("Finished compiling!") if __name__ == '__main__': main()