18 lines
554 B
Python
18 lines
554 B
Python
import pathlib
|
|
import shutil
|
|
import subprocess
|
|
import tempfile
|
|
|
|
import numpy as np
|
|
|
|
|
|
def stl_from_1d(data, output, scale=[1, 1, 1]):
|
|
with tempfile.TemporaryDirectory() as tmppath:
|
|
tmpdir = pathlib.Path(tmppath)
|
|
np.savetxt(tmpdir.joinpath("data.dat"), np.stack((data, data)))
|
|
with open(tmpdir.joinpath("scad"), "wt") as scad:
|
|
scad.write(f"""scale({scale})surface("data.dat");""")
|
|
|
|
subprocess.run(("openscad", "scad", "-o", "data.stl"), cwd=tmpdir)
|
|
|
|
shutil.copy2(tmpdir.joinpath("data.stl"), output)
|