mire.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #!/bin/bash
  2. #fonction appelée en cas de paramètres non valide ou de l'option -h
  3. usage()
  4. {
  5. # "$(basename "${0}") pour gérer les espaces
  6. echo "$(basename "${0}") description"
  7. echo ''
  8. echo "Ce script permet de générer un fichier gcode"
  9. echo "afin de créer un damier contenant toutes les nuances de gris"
  10. echo ""
  11. echo "Le fichier gcode en sortie utilisera des coordonées relatives."
  12. echo ""
  13. echo "La procédure est la suivante :"
  14. echo "-connaitre grossièrement la distance focale"
  15. echo "-connaitre le diamètre du laser"
  16. echo "-exécuter le fichier gcode"
  17. echo ""
  18. echo "Détail des options"
  19. echo -e "-f\tfocale du laser en mm"
  20. echo -e "-d\tdiamètre du laser en mm"
  21. echo -e "-v\tvitesse de gravute en mm/min"
  22. echo -e "-t\ttaille de la mire mm"
  23. }
  24. readonly VERSION='1.0'
  25. #affiche la version du script
  26. version()
  27. {
  28. echo "$(basename "${0}") : ${VERSION}"
  29. echo ''
  30. }
  31. verification()
  32. {
  33. if [ -z $1 ]
  34. then
  35. echo "la variable $2 n'a pas été précisée, la valeur par défaut est $3"
  36. VALEUR=$3
  37. else
  38. re='^[0-9]+([.][0-9]+)?$'
  39. if ! [[ $1 =~ $re ]]
  40. then
  41. echo "l'argument $2 n'est pas un nombre"
  42. usage
  43. exit 25
  44. else
  45. VALEUR=$3
  46. fi
  47. fi
  48. }
  49. #boucle pour la gestion des options
  50. #s: signifie qu'un paramètre est attendu
  51. #hV signifie que ces options existent mais ne prennent pas de paramètre
  52. while getopts "d:f:v:t:hV" OPT
  53. do
  54. case "$OPT" in
  55. h)
  56. usage
  57. exit 0
  58. ;;
  59. V)
  60. version
  61. exit 0
  62. ;;
  63. d)
  64. #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
  65. DIAMETRE=${OPTARG}
  66. ;;
  67. f)
  68. #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
  69. FOCALE=${OPTARG}
  70. ;;
  71. v)
  72. #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
  73. VITESSE=${OPTARG}
  74. ;;
  75. t)
  76. #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
  77. TAILLE=${OPTARG}
  78. ;;
  79. *)
  80. #ce point est atteint lorsqu'une option inexistante est demandée
  81. echo "parametres non valide"
  82. usage
  83. exit 1
  84. ;;
  85. esac
  86. done
  87. verification "$DIAMETRE" "diamètre" 0.2
  88. DIAMETRE=$VALEUR
  89. echo -e "diamètre=$DIAMETRE"
  90. verification "$FOCALE" "focale" 5
  91. FOCALE=$VALEUR
  92. echo -e "focale=$FOCALE"
  93. verification "$VITESSE" "vitesse" 2000
  94. VITESSE=$VALEUR
  95. echo -e "vitesse=$VITESSE"
  96. verification "$TAILLE" "taille" 100
  97. TAILLE=$VALEUR
  98. echo -e "taille=$TAILLE"
  99. longueur=$(echo "scale=1; $TAILLE/16.0" | bc)
  100. echo -e "longueur=$longueur"
  101. echo -e "G91\nG21\nG0 Z $FOCALE" > sortie.gcode
  102. echo -e "G1 F$VITESSE\n" >> sortie.gcode
  103. for i in `seq 0 15`
  104. do
  105. echo -e "$i"
  106. # for j in `seq 0 15`
  107. # do
  108. #trçage d'une ligne
  109. # echo -e "\nM400\nM106 P1 S255\nG1 X 20" >> sortie.gcode
  110. #retour au point de départ
  111. # echo -e "M400\nM106 P1 S0\nG1 X -20" >> sortie.gcode
  112. #déplacement pour la nouvelle hauteur
  113. # echo -e ";changement de hauteur\nG1 X 0 Y 5 Z $PAS\n" >> sortie.gcode
  114. # done
  115. done
  116. exit 0