|
@@ -0,0 +1,131 @@
|
|
|
|
+#!/bin/bash
|
|
|
|
+
|
|
|
|
+#fonction appelée en cas de paramètres non valide ou de l'option -h
|
|
|
|
+usage()
|
|
|
|
+{
|
|
|
|
+ # "$(basename "${0}") pour gérer les espaces
|
|
|
|
+ echo "$(basename "${0}") description"
|
|
|
|
+ echo ''
|
|
|
|
+ echo "Ce script permet de générer un fichier gcode"
|
|
|
|
+ echo "afin de créer un damier contenant toutes les nuances de gris"
|
|
|
|
+ echo ""
|
|
|
|
+ echo "Le fichier gcode en sortie utilisera des coordonées relatives."
|
|
|
|
+ echo ""
|
|
|
|
+ echo "La procédure est la suivante :"
|
|
|
|
+ echo "-connaitre grossièrement la distance focale"
|
|
|
|
+ echo "-connaitre le diamètre du laser"
|
|
|
|
+ echo "-exécuter le fichier gcode"
|
|
|
|
+ echo ""
|
|
|
|
+ echo "Détail des options"
|
|
|
|
+ echo -e "-f\tfocale du laser en mm"
|
|
|
|
+ echo -e "-d\tdiamètre du laser en mm"
|
|
|
|
+ echo -e "-v\tvitesse de gravute en mm/min"
|
|
|
|
+ echo -e "-t\ttaille de la mire mm"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+readonly VERSION='1.0'
|
|
|
|
+
|
|
|
|
+#affiche la version du script
|
|
|
|
+version()
|
|
|
|
+{
|
|
|
|
+ echo "$(basename "${0}") : ${VERSION}"
|
|
|
|
+ echo ''
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+verification()
|
|
|
|
+{
|
|
|
|
+ if [ -z $1 ]
|
|
|
|
+ then
|
|
|
|
+ echo "la variable $2 n'a pas été précisée, la valeur par défaut est $3"
|
|
|
|
+ VALEUR=$3
|
|
|
|
+ else
|
|
|
|
+ re='^[0-9]+([.][0-9]+)?$'
|
|
|
|
+ if ! [[ $1 =~ $re ]]
|
|
|
|
+ then
|
|
|
|
+ echo "l'argument $2 n'est pas un nombre"
|
|
|
|
+ usage
|
|
|
|
+ exit 25
|
|
|
|
+ else
|
|
|
|
+ VALEUR=$3
|
|
|
|
+ fi
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#boucle pour la gestion des options
|
|
|
|
+#s: signifie qu'un paramètre est attendu
|
|
|
|
+#hV signifie que ces options existent mais ne prennent pas de paramètre
|
|
|
|
+while getopts "d:f:v:t:hV" OPT
|
|
|
|
+do
|
|
|
|
+ case "$OPT" in
|
|
|
|
+ h)
|
|
|
|
+ usage
|
|
|
|
+ exit 0
|
|
|
|
+ ;;
|
|
|
|
+ V)
|
|
|
|
+ version
|
|
|
|
+ exit 0
|
|
|
|
+ ;;
|
|
|
|
+
|
|
|
|
+ d)
|
|
|
|
+ #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
|
|
|
|
+ DIAMETRE=${OPTARG}
|
|
|
|
+ ;;
|
|
|
|
+ f)
|
|
|
|
+ #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
|
|
|
|
+ FOCALE=${OPTARG}
|
|
|
|
+ ;;
|
|
|
|
+ v)
|
|
|
|
+ #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
|
|
|
|
+ VITESSE=${OPTARG}
|
|
|
|
+ ;;
|
|
|
|
+ t)
|
|
|
|
+ #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
|
|
|
|
+ TAILLE=${OPTARG}
|
|
|
|
+ ;;
|
|
|
|
+ *)
|
|
|
|
+ #ce point est atteint lorsqu'une option inexistante est demandée
|
|
|
|
+ echo "parametres non valide"
|
|
|
|
+ usage
|
|
|
|
+ exit 1
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
|
|
+done
|
|
|
|
+
|
|
|
|
+verification "$DIAMETRE" "diamètre" 0.2
|
|
|
|
+DIAMETRE=$VALEUR
|
|
|
|
+echo -e "diamètre=$DIAMETRE"
|
|
|
|
+
|
|
|
|
+verification "$FOCALE" "focale" 5
|
|
|
|
+FOCALE=$VALEUR
|
|
|
|
+echo -e "focale=$FOCALE"
|
|
|
|
+
|
|
|
|
+verification "$VITESSE" "vitesse" 2000
|
|
|
|
+VITESSE=$VALEUR
|
|
|
|
+echo -e "vitesse=$VITESSE"
|
|
|
|
+
|
|
|
|
+verification "$TAILLE" "taille" 100
|
|
|
|
+TAILLE=$VALEUR
|
|
|
|
+echo -e "taille=$TAILLE"
|
|
|
|
+
|
|
|
|
+echo $longueur
|
|
|
|
+
|
|
|
|
+echo -e "G91\nG21\nG0 Z $FOCALE" > sortie.gcode
|
|
|
|
+echo -e "G1 F$VITESSE\n" >> sortie.gcode
|
|
|
|
+
|
|
|
|
+for i in `seq 0 15`
|
|
|
|
+do
|
|
|
|
+ echo -e "$i"
|
|
|
|
+# for j in `seq 0 15`
|
|
|
|
+# do
|
|
|
|
+
|
|
|
|
+ #trçage d'une ligne
|
|
|
|
+# echo -e "\nM400\nM106 P1 S255\nG1 X 20" >> sortie.gcode
|
|
|
|
+ #retour au point de départ
|
|
|
|
+# echo -e "M400\nM106 P1 S0\nG1 X -20" >> sortie.gcode
|
|
|
|
+ #déplacement pour la nouvelle hauteur
|
|
|
|
+# echo -e ";changement de hauteur\nG1 X 0 Y 5 Z $PAS\n" >> sortie.gcode
|
|
|
|
+# done
|
|
|
|
+done
|
|
|
|
+
|
|
|
|
+exit 0
|