|
@@ -122,6 +122,9 @@ int BMP2Gcode::entete()
|
|
|
BMP_offset(*(int*)&entete[10]);
|
|
|
BMP_profondeur(*(short*)&entete[28]);
|
|
|
|
|
|
+ std::cout << "largeur BMP : " << BMP_largeur << std::endl;
|
|
|
+ std::cout << "hauteur BMP : " << BMP_hauteur << std::endl;
|
|
|
+
|
|
|
delete[] entete;
|
|
|
fichier.close();
|
|
|
|
|
@@ -171,12 +174,13 @@ int BMP2Gcode::sortie()
|
|
|
fichier_sortie.open (nom_fichier_gcode);
|
|
|
|
|
|
/****************************CONDITIONS INITIALES****************************/
|
|
|
- double taille_pixel = (double)(conf_taille_image)/(double)(BMP_largeur), position_Y = 0;
|
|
|
+ double taille_pixel = (double)(conf_taille_image)/(double)(BMP_largeur), position_Y = 0, verif = 0;
|
|
|
|
|
|
- int sens = 1, indice = 0, ligne = 1;
|
|
|
+ int sens = 1;
|
|
|
+ unsigned int indice = 0, ligne = 1;
|
|
|
|
|
|
//on arrondi la taille du pixel au dixième de mm
|
|
|
- taille_pixel = round(10.0*taille_pixel)/10.0;
|
|
|
+ //taille_pixel = round(10.0*taille_pixel)/10.0;
|
|
|
|
|
|
std::cout << "***SORTIE***" << std::endl;
|
|
|
std::cout << "largeur = " << conf_taille_image << " mm" << std::endl;
|
|
@@ -198,14 +202,20 @@ int BMP2Gcode::sortie()
|
|
|
{
|
|
|
int nbr_pixels = 0;
|
|
|
//traitement d'une ligne
|
|
|
- while(nbr_pixels < BMP_largeur)
|
|
|
+
|
|
|
+ unsigned int indice_max = ligne * BMP_largeur - 1, indice_min = indice_max - BMP_largeur + 1;
|
|
|
+// std::cout << "indice_min = " << indice_min << std::endl;
|
|
|
+// std::cout << "indice_max = " << indice_max << std::endl;
|
|
|
+
|
|
|
+ while(indice < indice_max && indice >= indice_min)
|
|
|
{
|
|
|
+ //on détermine la puissance associé au pixel indice
|
|
|
unsigned int puissance = conversion(255 - tab_donnees[indice], conf_puissance_min, conf_puissance_max);
|
|
|
|
|
|
//on détermine le nombre de pixels successifs pour lesquels la puissance du laser sera la même
|
|
|
int nbr = 1;
|
|
|
while( puissance == conversion(255 - tab_donnees[indice + nbr], conf_puissance_min, conf_puissance_max)
|
|
|
- && indice + nbr < BMP_largeur)
|
|
|
+ && indice + nbr < indice_max && indice + nbr > indice_min)
|
|
|
{nbr ++;}
|
|
|
|
|
|
fichier_sortie << "M106 P1 S" << puissance << std::endl;
|
|
@@ -220,6 +230,9 @@ int BMP2Gcode::sortie()
|
|
|
//et on se déplace dans le tableau selon le sens
|
|
|
indice += sens * nbr;
|
|
|
}
|
|
|
+
|
|
|
+// std::cout << "sens : " << sens << std::endl;
|
|
|
+// std::cout << "verif : " << verif << std::endl;
|
|
|
|
|
|
//une fois que la ligne est finie, on décale d'une taille de laser sur l'axe Y
|
|
|
fichier_sortie << "G1 Y" << conf_taille_laser << std::endl;
|
|
@@ -242,6 +255,9 @@ int BMP2Gcode::sortie()
|
|
|
//il ne faut pas oublier d'éteindre le laser à la fini
|
|
|
fichier_sortie << "M106 P1 S0" << std::endl;
|
|
|
|
|
|
+ std::cout << "position_Y : " << position_Y << std::endl;
|
|
|
+ std::cout << "fermeture fichier" << std::endl;
|
|
|
+
|
|
|
fichier_sortie.close();
|
|
|
|
|
|
return 0;
|