summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore.d/slic3r2
-rwxr-xr-xbin/slic3r-gpp53
2 files changed, 55 insertions, 0 deletions
diff --git a/.gitignore.d/slic3r b/.gitignore.d/slic3r
index 2f009e4..98fe545 100644
--- a/.gitignore.d/slic3r
+++ b/.gitignore.d/slic3r
@@ -6,6 +6,8 @@
!/.Slic3r/**/*
!/.gitignore.d/
!/.gitignore.d/slic3r
+!/bin/
+!/bin/slic3r-gpp
# Exclude swap and backup files
*.s[a-w]?
diff --git a/bin/slic3r-gpp b/bin/slic3r-gpp
new file mode 100755
index 0000000..c3c7351
--- /dev/null
+++ b/bin/slic3r-gpp
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+set -eu
+
+SLIC3R_CONFIG_BASE="${HOME}/.Slic3r"
+
+preprocess()
+{
+ local printer="${1}"
+ local filament="${2}"
+ shift 2
+ local retraction_temperature=
+ local wiping_temperature=
+ local probing_temperature=
+ local removal_bed_temperature=
+
+ . "${SLIC3R_CONFIG_BASE}/filament/${filament}.rc"
+
+ for gcode in 'before_layer' 'end' 'layer' 'start' 'toolchange'; do
+ # TODO
+ done
+}
+
+preprocess_all()
+{
+ local rc=
+ local filament=
+ local gcode=
+ local printers_seen=
+ local printer=
+
+ for rc in "${SLIC3R_CONFIG_BASE}/filament/"*'.rc'; do
+ filament="${rc##*/}"
+ filament="${filament%.rc}"
+ printers_seen=' '
+ for gcode in "${SLIC3R_CONFIG_BASE}/printer/"*' - '*'.gcode'; do
+ printer="${gcode##*/}"
+ printer="${printer% - *.gcode}"
+ case "${printers_seen}" in *" ${printer} "*)
+ continue # Skip seen printers
+ esac
+ preprocess "${printer}" "${filament}"
+ printers_seen="${printers_seen}${printer} "
+ done
+ done
+}
+
+main()
+{
+ preprocess_all
+}
+
+main "${@}"