-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathwasm-check.html
38 lines (33 loc) · 1.32 KB
/
wasm-check.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<body>
<pre id="output"></pre>
<script type="module">
import OpenSCAD from "../../build/openscad.js";
const instance = await OpenSCAD({ noInitialRun: true });
instance.FS.mkdir("/fonts");
instance.FS.writeFile("/fonts/fonts.conf",
`<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
</fontconfig>`);
instance.FS.writeFile("/fonts/LiberationSans-Regular.ttf",
new Uint8Array(await (await fetch("../fonts/Liberation-2.00.1/ttf/LiberationSans-Regular.ttf")).arrayBuffer()));
instance.FS.writeFile("lib.scad", `
test_text = "Hello";
`);
instance.FS.writeFile("input.scad", `
include <lib.scad>;
$fn=64;
difference() {
linear_extrude(height = 20, center=true)
text(test_text, size=10, halign="center", valign="center", font="Liberation Sans");
sphere(r=10);
}
`);
const code = instance.callMain(['input.scad', "--backend=manifold", "-o", "out.stl"]);
if (code !== 0) throw new Error(`Exit code: ${code}`);
const output = document.getElementById("output");
output.innerText = instance.FS.readFile("out.stl", { encoding: "utf8" });
</script>
</body>
</html>