Files
Useful-scripts/belter_tension_calculator.sh
2026-01-22 22:28:52 +01:00

43 lines
986 B
Bash
Executable File

#!/bin/bash
if ! [[ "$1" =~ ^-?[0-9](\.[0-9]+)?+$ ]]; then
echo "Usage: $0 <Belter display value (mm)>"
exit 1
fi
echo "Belter display value: $1mm"
tension=$(awk -v x="$1" 'BEGIN {
if (x < 0) x = -x
printf "%.3f", 7.673640167 * x - 33.7167364
}')
echo "Belt tension: $tension N"
echo ""
ESC=$'\033'
GREEN="${ESC}[32m"
RED="${ESC}[31m"
RESET="${ESC}[0m"
check_range() {
local label="$1"
local min="$2"
local max="$3"
awk -v t="$tension" -v min="$min" -v max="$max" \
-v label="$label" -v G="$GREEN" -v R="$RED" -v Z="$RESET" '
BEGIN {
if (t >= min && t <= max)
printf "%s 🟩 %s[%.1f, %.1f] N%s\n", label, G, min, max, Z
else
printf "%s 🟥 %s[%.1f, %.1f] N%s\n", label, R, min, max, Z
}'
}
echo "Reference tensions:"
check_range "Voron A/B belts :" 7.8 15
check_range "Voron 2.4 Z belts :" 20.4 25.8
check_range "V350/250 belts :" 12 20
check_range "GT2 belts :" 20 30