#!/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" longueur=$(echo "scale=1; $TAILLE/16.0" | bc) echo -e "longueur=$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