medmed PostĂ©(e) Octobre 26, 2021 Partager PostĂ©(e) Octobre 26, 2021 (modifiĂ©) L'aventure continue avec l'Ă©cran TFT sur ma Geeetech A10. J'ai pensĂ© qu'il serait intĂ©ressant de partager la façon de faire pour avoir les objets en 3D sur l'Ă©cran TFT, plutĂŽt qu'une liste de noms. Je ne sais pas si je suis trĂšs clair dans mon propos ? Des photos valent mieux qu'un long discours. Liste des noms de la carte SD Liste en 3D de la carte SD C'est quand mĂȘme plus sympa, non ? Surtout si l'on a plusieurs dizaines d'objets sur la carte SD. En 3D on repĂšre bien plus facilement ce qu'on l'on a mis dans la carte il y a 6 mois, avec parfois un nom pas trĂšs explicite. Les objets 3D sont possibles depuis les versions du firmware TFT Vx.x.27. La derniĂšre version Ă©tant (pour mon Ă©cran TFT43) V3.0.27  Ceci fonctionne pour tous les Ă©crans TFT - 24/28/35/43/50/70. 1- Il faut bien Ă©videment mettre a jour le firmware de l'Ă©cran TFT avec la derniĂšre version ---> https://github-com.translate.goog/bigtreetech/BIGTREETECH-TouchScreenFirmware?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=nui,op 2 - Installer le plugin "Bigtree3DPlugin Suit" dans le dossier plugins de Cura (version 10 ou supĂ©rieur) --->  https://github.com/bigtreetech/Bigtree3DPluginSuit Pas encore testĂ© avec d'autres trancheurs. 3 - DĂ©sactiver dans le menu TFT l'option "Fichier en mode liste" Et c'est tout ! Heuu, non câest pas tout. J'ai oubliĂ© de parler de comment faire avec Cura . Mais c'est tellement simple. Une fois le plugin installĂ© dans Cura, une nouvelle option apparait au moment de sauvegarder le Gcode . ModifiĂ© (le) Octobre 27, 2021 par medmed 1 1 Lien vers le commentaire Partager sur dâautres sites More sharing options...
PPAC PostĂ©(e) Octobre 27, 2021 Partager PostĂ©(e) Octobre 27, 2021 Salutation ! Merci pour ce sujet ! J'ai de la chance je n'ai pas u a mettre a jour mon firmware d'Ă©cran et cela fonction nickel Je me dit que je vais tenter de dĂ©cortiquer le greffon, je voudrais bien savoir ajouter/modifier moi mĂȘme les vignettes pour avoir une prĂ©visualisation de mes "vieux" fichiers .gcode tranchĂ© avent la mise en place du greffon. Mais pour le moment je reste perplexe sur le rĂ© encodage des pixels dans https://github.com/bigtreetech/Bigtree3DPluginSuit/blob/master/Bigtree3DPlugin/Bigtree3DStore.py Il va me falloir rĂ©viser le codage d'un pixel dans une image avant d'arriver a utiliser les vignette de mon navigateur de fichier gĂ©nĂ©rĂ© avec https://github.com/Spiritdude/Nautilus_Thumbnailer_GCode ... Encore merci ! Lien vers le commentaire Partager sur dâautres sites More sharing options...
medmed PostĂ©(e) Octobre 28, 2021 Auteur Partager PostĂ©(e) Octobre 28, 2021 (modifiĂ©) SI tu as encore les stl ,il suffit de faire vite fait un tranchage (peu importe les rĂ©glages)avec Cura juste pour avoir l'encodage de l'objet 3D, qui est toujours en tĂȘte du Gcode sous cette forme. LâentĂȘte du codage de l'objet commence toujours par " ;00460046 " Et se termine toujours par " ; bigtree thumbnail end " Il suffit de recopier se bloc et de le coller en tete du Gcode Ă modifier.  Exemple du cube XYZ bigtree.txt ModifiĂ© (le) Octobre 28, 2021 par medmed 1 Lien vers le commentaire Partager sur dâautres sites More sharing options...
PPAC PostĂ©(e) Octobre 28, 2021 Partager PostĂ©(e) Octobre 28, 2021 (modifiĂ©) Merci AprĂšs un peux de bidouille, j'arrive a gĂ©nĂ©rer en langage java une entĂȘte dâaprĂšs une image et cela semble fonctionner avec mon Ă©cran. Exemple de rĂ©sultat (il n'y a que les vignettes. Pour les 3, "M118 ..." lĂ je sĂšche car je n'ai pas encore poussĂ© a lire un fichier .gcode pour avoir les bonne valeurs. ) shadoks_pas_de_pb_250.thumb.png.9c746c3055a0614e364ab064ce8a34be.png_.gcode Pour ceux qui veulent, un extrait de mon code java (pas mis au propre mais qui semble fonctionnel) Citation static String sBigTreeThumbnailEnf = "; bigtree thumbnail end"; /** * Generer une entete vignette BBT (un recodage en hexa en utf-8 de plusieur taille d'image) d'aprĂ©s un fichier image. * https://github.com/bigtreetech/Bigtree3DPluginSuit/blob/923662e8d553b04c575452f7b4a7635ae84145c5/Bigtree3DPlugin/Bigtree3DStore.py#L111 * <code> qrgb = qrgb + (hex(((data & 0x00F80000) >> 8 ) | ((data & 0x0000FC00) >> 5 ) | ((data & 0x000000F8) >> 3 ))[2:]).rjust(4,'0')</code> * * <code>;00460046 * ;0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001060292149c25a637b2393c4ac659be439820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 * ;... * ; bigtree thumbnail end * </code> * * <p> * TODO usage de gcode2png TODO couleur de font ... si image avec une * transparence, lĂ c'est en noir. TODO "tag" des images pour bien * identifier les vignettes utilisĂ©... * * @param sImageFilePath le chemin d'un fichier image (format de fichier * prise en charge par ImageIO donc normalement du jpg, tiff, bmp, gif, png, * tif, wbmp, jpeg) * @param sOutputGcodeFilePath un nom de fichier de sortie ... (attention * ecrasĂ© si existe, encodĂ© en UTF8 ) * @throws IOException */ private static void imageToBigTree3DStoreGcodeHeaderFile(String sImageFilePath, String sOutputGcodeFilePath) throws IOException { // // read an image BufferedImage image = ImageIO.read(new File(sImageFilePath)); //un fichier de sortie FileWriter fw = new FileWriter(new File(sOutputGcodeFilePath), Charset.forName("utf-8")); /* Cf: config.h ... # extruder_M2O = no # backcolor_red(0-255) = 0 # backcolor_green(0-255) = 0 # backcolor_blue(0-255) = 0 70,70 95,80 95,95 160,140 200,200*/ Dimension[] dims = {new Dimension(70, 70), new Dimension(95, 80), new Dimension(95, 95), new Dimension(160, 140), new Dimension(200, 200) }; for (Dimension d : dims) { // resize image to // int dimW = 70; // int dimH = 70; int dimW = d.width; int dimH = d.height; Image scaledImage = image.getScaledInstance(dimW, dimH, Image.SCALE_DEFAULT); BufferedImage convertToBufferedImage = convertToBufferedImage(scaledImage); //System.out.printf(":: %dx%d\n", convertToBufferedImage.getWidth(), convertToBufferedImage.getHeight()); //System.out.printf(":: ;%04x%04x\n", convertToBufferedImage.getWidth(), convertToBufferedImage.getHeight()); fw.write(String.format(";%04x%04x\r\n", convertToBufferedImage.getWidth(), convertToBufferedImage.getHeight())); for (int posH = 0; posH < dimH; posH++) { String res = ""; for (int posW = 0; posW < dimW; posW++) { int tmpPixel = convertToBufferedImage.getRGB(posW, posH); //qrgb = qrgb + (hex(((data & 0x00F80000) >> 8 ) | ((data & 0x0000FC00) >> 5 ) | ((data & 0x000000F8) >> 3 ))[2:]).rjust(4,'0') int tmpPixelRecoded = ((tmpPixel & 0x00F80000) >> 8) | ((tmpPixel & 0x0000FC00) >> 5) | ((tmpPixel & 0x000000F8) >> 3); res += String.format("%04x", tmpPixelRecoded); } //res += "\r\n"; //System.out.printf("%d:: ;%s\n",posH,res); fw.write(String.format(";%s\r\n", res)); } } fw.write(String.format("%s\r\n", sBigTreeThumbnailEnf)); fw.write(String.format("\r\n")); // fw.flush(); fw.close(); } /** * Convert Image to BufferedImage. Source : * https://mkyong.com/java/how-to-write-an-image-to-file-imageio/ * * @param img * @return */ public static BufferedImage convertToBufferedImage(Image img) { if (img instanceof BufferedImage) { return (BufferedImage) img; } // Create a buffered image with transparency BufferedImage bi = new BufferedImage( img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D graphics2D = bi.createGraphics(); graphics2D.drawImage(img, 0, 0, null); graphics2D.dispose(); return bi; } /** * list out all the image file supported formats. Source : * https://mkyong.com/java/how-to-write-an-image-to-file-imageio/ */ private static void listImageTypeSupported() { String writerNames[] = ImageIO.getWriterFormatNames(); Arrays.stream(writerNames).forEach(System.out::println); }  ModifiĂ© (le) Octobre 28, 2021 par PPAC 1 1 Lien vers le commentaire Partager sur dâautres sites More sharing options...
medmed PostĂ©(e) Octobre 30, 2021 Auteur Partager PostĂ©(e) Octobre 30, 2021 Effectivement, je ne sais pas comment tu fais , mais ça marche... 1 Lien vers le commentaire Partager sur dâautres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez ĂȘtre membre afin de pouvoir dĂ©poser un commentaire
Créer un compte
CrĂ©ez un compte sur notre communautĂ©. Câest facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant