diff --git a/namensschild.scad b/namensschild.scad.j2 similarity index 91% rename from namensschild.scad rename to namensschild.scad.j2 index 3638359..5efe054 100644 --- a/namensschild.scad +++ b/namensschild.scad.j2 @@ -11,7 +11,7 @@ height_plate = 1; module name_file() { translate([(width-name_width)/2, (length-name_length)/2, 0]) difference() { square([name_width, name_length]); - resize([name_width, name_length, 0]) import("static/namensschild.dxf"); + resize([name_width, name_length, 0]) import("{{ name }}.dxf"); } } diff --git a/server.py b/server.py index 917c63e..1864209 100755 --- a/server.py +++ b/server.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +from jinja2 import Template from pyppeteer import launch from quart import Quart, request, render_template, url_for, redirect from subprocess import run @@ -17,7 +18,7 @@ async def gen_pdf(name): page = await browser.newPage() await page.goto("file://" + os.path.join(os.getcwd(), "namensschild.html")) await page.evaluate(f"document.querySelector('#name').innerText = '{name}'") - await page.pdf(path="static/namensschild.pdf", width="180px", height="60px") + await page.pdf(path=f"static/{name}.pdf", width="180px", height="60px") await browser.close() @@ -31,7 +32,7 @@ async def generate(): name = request.args["name"] await gen_pdf(name) run_check( - ["inkscape", "-T", "-E", "static/namensschild.eps", "static/namensschild.pdf",] + ["inkscape", "-T", "-E", f"static/{name}.eps", f"static/{name}.pdf",] ) run_check( [ @@ -42,11 +43,17 @@ async def generate(): "-dt", "-f", "dxf: -polyaslines -mm", - "static/namensschild.eps", - "static/namensschild.dxf", + f"static/{name}.eps", + f"static/{name}.dxf", ] ) - run_check(["openscad", "-o", f"static/{name}.stl", "namensschild.scad"]) + + with open("namensschild.scad.j2", "r") as f: + template = Template(f.read()) + with open(f"static/{name}.scad", "w") as f: + f.write(template.render(name=name)) + run_check(["openscad", "-o", f"static/{name}.stl", f"static/{name}.scad"]) + return redirect(url_for("static", filename=f"{name}.stl"), code=302)