Browse Source

changement de la vérification des variables

Jackbot 3 years ago
parent
commit
21204a7c82
3 changed files with 81 additions and 143 deletions
  1. 32 45
      etalonnage/calibration_focale.sh
  2. 27 74
      etalonnage/diametre_laser.sh
  3. 22 24
      etalonnage/mire.sh

+ 32 - 45
etalonnage/focale.sh → etalonnage/calibration_focale.sh

@@ -7,7 +7,7 @@ usage()
 	echo "$(basename "${0}") description"
 	echo ''
 	echo "Ce script permet de générer un fichier gcode"
-	echo " afin de trouver la bonne distance focale du laser"
+	echo "afin de trouver la bonne distance focale du laser"
 	echo "ce script n'est utile que sur les imprimantes 3D puisqu'on joue sur l'axe Z"
 	echo ""
 	echo "Le fichier gcode en sortie utilisera des coordonées relatives."
@@ -32,6 +32,25 @@ 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=$1
+		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
@@ -46,20 +65,15 @@ do
 			version
 			exit 0
 			;;
-
 		m)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly H_MIN=${OPTARG}
+			H_MIN=${OPTARG}
 			;;
 		M)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly H_MAX=${OPTARG}
+			H_MAX=${OPTARG}
 			;;
 		p)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly PAS=${OPTARG}
+			PAS=${OPTARG}
 			;;
-
 		*)
 			#ce point est atteint lorsqu'une option inexistante est demandée
 			echo "parametres non valide"
@@ -69,45 +83,18 @@ do
 	esac
 done
 
-if [ -z "${H_MIN}" ]
-then
-	echo "la hauteur minimale est inconnue"
-	usage
-	exit 10
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $H_MIN =~ $re ]]
-	then
-		echo "l'argument de hauteur minimale n'est pas un nombre"
-		usage
-		exit 15
-	fi
-fi
-
-if [ -z "${H_MAX}" ]
-then
-	echo "la hauteur maximale est inconnue"
-	usage
-	exit 20
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $H_MAX =~ $re ]]
-	then
-		echo "l'argument de hauteur maximale n'est pas un nombre"
-		usage
-		exit 25
-	fi
-fi
-
-if [ -z "${PAS}" ]
-then
-	echo "le pas n'a pas été précisé, la valeur par défaut est 1mm"
-	PAS=1
-fi
+verification "$H_MIN" "hauteur minimale" 2
+H_MIN=$VALEUR
+echo -e "hauteur minimale=$H_MIN"
 
+verification "$H_MAX" "hauteur maximale" 7
+H_MAX=$VALEUR
+echo -e "hauteur maximale=$H_MAX"
 
+verification "$PAS" "pas" 0.1
+PAS=$VALEUR
+echo -e "pas=$PAS"
 
-#echo "valeur=\"0\";text(valeur, size=50, halign=\"right\", valign =\"center\");" > temp.scad
 echo "\$fn = 30;valeur=\"0\";translate([0, 1, 0]){text(valeur, size=3);}" > temp.scad
 
 echo -e "G91\nG21\nG0 Z $H_MIN" > sortie.gcode

+ 27 - 74
etalonnage/largeur_laser.sh → etalonnage/diametre_laser.sh

@@ -7,8 +7,8 @@ usage()
 	echo "$(basename "${0}") description"
 	echo ''
 	echo "Ce script permet de générer un fichier gcode"
-	echo "afin de trouver la taille du point focal du laser"
-	echo "un ensemble de trait seront tracés de plus en plus espacés"
+	echo "afin de trouver le diamètre du point focal du laser"
+	echo "un ensemble de traits seront tracés de plus en plus espacés"
 	echo ""
 	echo "Le fichier gcode en sortie utilisera des coordonées relatives."
 	echo ""
@@ -18,8 +18,8 @@ usage()
 	echo "-exécuter le fichier gcode"
 	echo ""
 	echo "Détail des options"
-	echo -e "-l\tlargeur minimale en mm"
-	echo -e "-L\tlargeur maximale en mm"
+	echo -e "-d\tdiamètre minimal en mm"
+	echo -e "-D\tdiamètre maximal en mm"
 	echo -e "-p\tpas entre deux hauteurs en mm"
 	echo -e "-f\tla distance focale du laser en mm"
 }
@@ -36,7 +36,7 @@ version()
 #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 "l:L:p:f:hV" OPT
+while getopts "d:D:p:f:hV" OPT
 do
 	case "$OPT" in
 		h)
@@ -47,21 +47,17 @@ do
 			version
 			exit 0
 			;;
-		l)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly L_MIN=${OPTARG}
+		d)
+			D_MIN=${OPTARG}
 			;;
-		L)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly L_MAX=${OPTARG}
+		D)
+			D_MAX=${OPTARG}
 			;;
 		p)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly PAS=${OPTARG}
+			PAS=${OPTARG}
 			;;
 		f)
-			#afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
-			readonly FOCALE=${OPTARG}
+			FOCALE=${OPTARG}
 			;;
 		*)
 			#ce point est atteint lorsqu'une option inexistante est demandée
@@ -72,65 +68,22 @@ do
 	esac
 done
 
-if [ -z "${L_MIN}" ]
-then
-	echo "la largeur minimale est inconnue"
-	usage
-	exit 10
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $L_MIN =~ $re ]]
-	then
-		echo "l'argument de largeur minimale n'est pas un nombre"
-		usage
-		exit 15
-	fi
-fi
-
-if [ -z "${L_MAX}" ]
-then
-	echo "la largeur maximale est inconnue"
-	usage
-	exit 20
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $L_MAX =~ $re ]]
-	then
-		echo "l'argument de largeur maximale n'est pas un nombre"
-		usage
-		exit 25
-	fi
-fi
-
-if [ -z "${PAS}" ]
-then
-	echo "le pas est inconnue sa valeur sera fixée à 0.1mm"
-	PAS=0.1
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $PAS =~ $re ]]
-	then
-		echo "l'argument de largeur maximale n'est pas un nombre"
-		usage
-		exit 35
-	fi
-fi
-
-if [ -z "${FOCALE}" ]
-then
-	echo "la distance focale est inconnue sa valeur sera fixée à 5mm"
-	FOCALE=5
-else
-	re='^[0-9]+([.][0-9]+)?$'
-	if ! [[ $FOCALE =~ $re ]]
-	then
-		echo "l'argument de largeur maximale n'est pas un nombre"
-		usage
-		exit 45
-	fi
-fi
-
-#echo "valeur=\"0\";text(valeur, size=50, halign=\"right\", valign =\"center\");" > temp.scad
+verification "$D_MIN" "diamètre minimal" 0.1
+D_MIN=$VALEUR
+echo -e "diamètre minimal=$D_MIN"
+
+verification "$D_MAX" "diamètre maximal" 0.4
+D_MAX=$VALEUR
+echo -e "diamètre maximal=$D_MAX"
+
+verification "$PAS" "pas" 0.1
+PAS=$VALEUR
+echo -e "pas=$PAS"
+
+verification "$FOCALE" "focale" 5
+FOCALE=$VALEUR
+echo -e "focale=$FOCALE"
+
 echo "\$fn = 30;valeur=\"0\";translate([0, 1, 0]){text(valeur, size=3);}" > temp.scad
 
 echo -e "G91" > sortie.gcode

+ 22 - 24
etalonnage/mire.sh

@@ -12,7 +12,7 @@ usage()
 	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 la distance focale"
 	echo "-connaitre le diamètre du laser"
 	echo "-exécuter le fichier gcode"
 	echo ""
@@ -34,24 +34,23 @@ version()
 
 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
+	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
+			VALEUR=$1
 		fi
-        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
@@ -66,7 +65,6 @@ do
 			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}
@@ -109,7 +107,7 @@ TAILLE=$VALEUR
 echo -e "taille=$TAILLE"
 
 longueur=$(echo "scale=1; $TAILLE/16.0" | bc)
-hauteur=$(echo "scale=1; ($TAILLE/16.0)/(2*$DIAMETRE)" | bc)
+hauteur=$(echo "scale=1; $TAILLE/32.0" | bc)
 echo -e "longueur=$longueur"
 
 echo -e "G91\nG21\nG0 Z $FOCALE" > sortie.gcode
@@ -119,22 +117,22 @@ for i in `seq 1 16`
 do
 	for j in `seq 1 16`
 	do
-		puissance=$(echo "$i*$j" | bc)
+		puissance=$(echo "$i*$j - 1" | bc)
 		echo -e "\nM106 P1 S$puissance" >> sortie.gcode
 		for k in `seq 0 $DIAMETRE $hauteur`
 		do
 			#aller
-			echo -e "G1 X$longueur"
-			echo -e "G1 X0 Y-$DIAMETRE"
+			echo -e "G1 X$longueur" >> sortie.gcode
+			echo -e "G1 X0 Y-$DIAMETRE" >> sortie.gcode
 			#retour
-			echo -e "G1 X-$longueur"
-			echo -e "G1 X0 Y-$DIAMETRE"
+			echo -e "G1 X-$longueur" >> sortie.gcode
+			echo -e "G1 X0 Y-$DIAMETRE" >> sortie.gcode
 		done
 	done
 	#on vient de finir une colonne, on remonte avec la puissance max
-	echo -e "\nM400\nM106 P1 S255\nG1 X0 Y$TAILLE"
+	echo -e "\nM400\nM106 P1 S255\nG1 X0 Y$TAILLE" >> sortie.gcode
 	#on se déplace sur la colonne suivante
-	echo -e "\nM400\nM106 P1 S0\nG1 X$longueur"
+	echo -e "\nM400\nM106 P1 S0\nG1 X$longueur" >> sortie.gcode
 done
 
 exit 0