Alles rund um Holz und Holzwerkzeuge für den Hobbyisten:
|
Drechseln Schreinern Technik Tipps |
Script zum Berechnen der Holzteile für einen EimerMeinen Dank an Mathias Wandel, der mir den richtigen Denkanstoß gab.Als Schnittwinkel ist nämlich nicht der Winkel auf der Grundfläche sondern der Winkel an der Mantellinie entscheidend.
Um den korrekten Schnittwinkel zu errechnen muss eine Abwicklung des Kegels herhalten Hier ist ein Beispielscript (Onlinerechner) fü die Linux-Bash:
#!/bin/bash - # calculate staves of Bucket function usage() { echo "usage: $(basename $0) nr-of-staves diameter [second-diameter height-of-bucket]" exit 1 } NR_STAVES=$1 DIAMETER_1=$2 DIAMETER_2=$3 HEIGTH=$4 # check parameters [ -z "$NR_STAVES" ] && usage [ -z "$DIAMETER_1" ] && usage [ -z "$HEIGTH" -a -n "$DIAMETER_2" ] && usage [ -z "$DIAMETER_2" ] && DIAMETER_2=$DIAMETER_1 # change values if in wrong order (greater diameter = DIAMETER_1) [ "$DIAMETER_2" -gt "$DIAMETER_1" ] && { TEMP=$DIAMETER_2 DIAMETER_2=$DIAMETER_1 DIAMETER_1=$TEMP } # defining meaning of values # m = Mantellinienlänge Kegelstumpf # M = Mantellinienlänge Kegel # h = Höhe Kegelstumpf # H = Höhe Kegel # A = Winkel Kreisabschnitt Kegelabrollung # a = Winkel der einzelnen Streben # D = Durchmesser Fuß # d = Durchmesser Kopf # R = Radius Fuß # r = Radius Kopf D=$DIAMETER_1 d=$DIAMETER_2 R=$(echo "scale=2;$D/2"| bc -l) r=$(echo "scale=2;$d/2"| bc -l) h=$HEIGTH [ "$D" = "$d" ] && { # not a cone a=$(echo "scale=2;360/$NR_STAVES" | bc) m=$h } || { # Mantellinie m = sqrt{(R-r)^2 + h^2} m=$(echo "scale=2;sqrt( (($R - $r)^2) + ($h^2) )"| bc -l) # Mantellinie M = m + ((m * r) / (R -r )) M=$(echo "scale=2;$m + (($m * $r) / ($R - $r))"| bc -l) # alpha = ( R / M ) * 360° A=$(echo "scale=2;$R * 360 / $M"| bc -l) a=$(echo "scale=2;$A/$NR_STAVES"| bc -l) } # bc -l uses radians not degrees as parameter for sinus() # 360° = 2*pi in radians, this is 1° = pi / 180 # a(x) = The arctangent of x, arctangent returns radians. 4*a(1) = Pi # this is for calculating the chord of each segment to get the width of staves # the chord is calculated using D * sin(alpha/2) where alpha = 360 / NR_STAVES (not a) ONE_DEGREE_RADIANS=$(echo "4*a(1)/180" |bc -l) STAVE_WITDH_1=$(echo "scale=2;$D * s ($ONE_DEGREE_RADIANS*(180 / $NR_STAVES))" |bc -l) STAVE_WITDH_2=$(echo "scale=2;$d * s ($ONE_DEGREE_RADIANS*(180 / $NR_STAVES))" |bc -l) cat <<-EOT Bucket with $NR_STAVES staves: Main Angle : $a degrees Cutting Angle : $( echo "scale=2;$a/2" | bc) degrees Diameter : $DIAMETER_1 Stave width : $STAVE_WITDH_1 EOT [ -n "$HEIGTH" ] && { DIAMETER_3=$(echo "scale=2;(((($D - $d)/2)*60)/$m)"| bc -l) DIAMETER_3=$(echo "scale=2;($DIAMETER_3 * 2)+$D "| bc -l) cat <<-EOT Diameter 2 : $DIAMETER_2 Stave width 2 : $STAVE_WITDH_2 at 60 cm : $(echo "scale=2;$DIAMETER_3 * s ($ONE_DEGREE_RADIANS*(180 / $NR_STAVES))"| bc -l) Height : $HEIGTH Length of Stave: $m EOT } |