- commit
- 78ae418
- parent
- 2d9aff4
- author
- Neale Pickett
- date
- 2023-11-26 15:34:26 -0700 MST
More general file creation
2 files changed,
+53,
-37
M
build.sh
+9,
-10
1@@ -17,20 +17,19 @@ run () {
2 # It does this by kludging together a PrusaSlicer-specific Metadata file.
3 render () {
4 basename=$1; shift
5- run openscad -o $basename "$@" temp-tower.scad 2>&1 | tee $basename.log
6+ logfile=$basename.log
7+ run openscad -o $basename "$@" temp-tower.scad 2>&1 | tee $logfile
8
9+ rm -rf Metadata
10 mkdir -p Metadata
11- custom=Metadata/Prusa_Slicer_custom_gcode_per_print_z.xml
12- (
13- echo '<?xml version="1.0" encoding="utf-8"?>'
14- echo '<custom_gcodes_per_print_z>'
15- sed -n 's/ECHO: "CUSTOM##\(.*\)"/\1/p' $basename.log
16- echo '<mode value="SingleExtruder"/>'
17- echo '</custom_gcodes_per_print_z>'
18- ) > $custom
19+ cat $logfile | while IFS=# read _ _ custom type path text _; do
20+ [ "$custom#$type" = "CUSTOM#3mf" ] || continue
21+ echo $text >> $path
22+ done
23+
24 run zip $basename $custom
25
26- rm $custom $basename.log
27+ rm $custom $logfile
28 rmdir Metadata
29 }
30
+44,
-27
1@@ -84,35 +84,52 @@ module EngraveText(text) {
2 text(text, size=3.2, valign="center", font=Font);
3 }
4
5-module Custom(text) {
6- echo(str("CUSTOM##", text));
7+// Ouptut special code to add to 3mf file
8+module ZCodeWrite(text) {
9+ echo(str(
10+ "#",
11+ "#CUSTOM",
12+ "#3mf",
13+ "#Metadata/Prusa_Slicer_custom_gcode_per_print_z.xml",
14+ "#", text,
15+ "##"
16+ ));
17 }
18
19-difference() {
20- union() {
21- cube([25, 5, PlateHeight]); // Floor plate
22- for (tier = [0 : 1 : Tiers-1]) {
23- z = PlateHeight + (5 * tier);
24- temp = TempBase + (TempIncrease * tier);
25- Custom(str(
26- "<code print_z=\"", z, "\"",
27- " type=\"4\"",
28- " extruder=\"1\"",
29- " color=\"\"",
30- " extra=\"M104 S", temp, "\"",
31- " gcode=\"M104 S", temp, "\"/>",
32- ""
33- ));
34- translate([0, 0, z]) Tier(temp);
35+module main() {
36+ ZCodeWrite("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
37+ ZCodeWrite("<custom_gcodes_per_print_z>");
38+ difference() {
39+ union() {
40+ cube([25, 5, PlateHeight]); // Floor plate
41+ for (tier = [0 : 1 : Tiers-1]) {
42+ z = PlateHeight + (5 * tier);
43+ temp = TempBase + (TempIncrease * tier);
44+ ZCodeWrite(str(
45+ "<code print_z=\"", z, "\"",
46+ " type=\"4\"",
47+ " extruder=\"1\"",
48+ " color=\"\"",
49+ " extra=\"M104 S", temp, "\"",
50+ " gcode=\"M104 S", temp, "\"/>",
51+ ""
52+ ));
53+ translate([0, 0, z]) Tier(temp);
54+ }
55+ }
56+ if (FullTower) {
57+ translate([25 - EngraveDepth, 2.5, 1+PlateHeight])
58+ rotate([90, -90, 90])
59+ EngraveText(SideText);
60+ } else {
61+ translate([4 + EngraveDepth, 2.5, 1+PlateHeight])
62+ rotate([90, -90, -90])
63+ EngraveText(SideText);
64 }
65 }
66- if (FullTower) {
67- translate([25 - EngraveDepth, 2.5, 1+PlateHeight])
68- rotate([90, -90, 90])
69- EngraveText(SideText);
70- } else {
71- translate([4 + EngraveDepth, 2.5, 1+PlateHeight])
72- rotate([90, -90, -90])
73- EngraveText(SideText);
74- }
75+ ZCodeWrite("<mode value=\"SingleExtruder\"/>");
76+ ZCodeWrite("</custom_gcodes_per_print_z>");
77 }
78+
79+main();
80+