- Posts: 21
- Thank you received: 2
g1 x.16 y.16 f25
g1 z0 f25
g2 i.-34
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
#!/bin/bash
# Cut an interior circle starting at xStartBB yStartBB xEndBB yEndBB zStart zStep zEnd feedRate holeDiameter endMillDiameter
# BB is short for BoundingBox
if [ "$#" -eq 0 ];
then echo "$0 xBB yBB xEndBB yEndBB zStart stepZ endZ feedRate holeDiameter endMillDiameter"
else
xStartBB=$1
yStartBB=$2
xEndBB=$3
yEndBB=$4
startZ=$5
stepZ=$6
endZ=$7
feedRate=$8
holeDiameter=$9
endMillDiameter=${10}
millRadius=`echo "$endMillDiameter/2"|bc -l`
# Calculate starting cut points
echo $xEndBB $xStartBB $holeDiameter
center=`echo "(($xEndBB-$xStartBB)/2)"|bc -l`
offset=`echo "((($xEndBB-$xStartBB)-($holeDiameter))/2)"|bc -l`
startXCut=`echo "$xStartBB+$offset+$millRadius"|bc -l`
startYCut=`echo "($yEndBB-$yStartBB)/2"|bc -l`
endYCut=$startYCut
endXCut=`echo "$yEndBB - $offset - $millRadius"|bc -l`
# calculate radius for i
i=`echo "($center-$startXCut)"|bc -l`
cat prolog.nc >rotate.nc
echo "g1 z1.0 f$feedRate" >>rotate.nc
echo "g1 x$startXCut y$startYCut f$feedRate" >>rotate.nc
echo "g1 z$startZ y$startYCut f$feedRate" >>rotate.nc
newstartZ=`echo "$startZ+$stepZ"|bc -l`
for curZ in `seq $newstartZ $stepZ $endZ`
do
echo "g1 z$curZ f$feedRate" >>rotate.nc
echo "g2 x$endXCut y$endYCut i$i j0 f$feedRate" >>rotate.nc
echo "x$startXCut y$startYCut j0 i-$i" >>rotate.nc
done
echo "g1 z1.0 f$feedRate" >>rotate.nc
cat epilog.nc >>rotate.nc
fi
%
g17 g20 g54
m2
%
Please Log in or Create an account to join the conversation.