Aller au contenu

GO Print

Générer un g-code d'impression... à l"envers


Messages recommandés

Quoi qu'il en soit, si c'est pour faire du fraisage il faut qu'il intègre la notion du diamètre de l'outil utilisé, ainsi que celle du brut à enlever autour de sa forme : on ne peut pas prendre toute la surépaisseur à la fois

Il peut faire ça très facilement avec Fusion 360

Après, il faudra sans doute "mamailler" un peu pour que le programme soit digeste pour la CR10, mais il ne devrait pas y avoir grand-chose de bien compliqué

Modifié (le) par Jean-Claude Garnier
Lien vers le commentaire
Partager sur d’autres sites

à l’instant, Yellow T-pot a dit :

je me répète, tu as regardé un trancheur d'imprimante SLA ?

Tu raisonnes trop "imprimante 3D"

De toutes façons, sur n'importe quelle machine, que ce soit la table qui monte ou la tête qui descend, le Z s'accroît quand la distance bed/tête ou table/fraise augmente. Toi qui as une cubique tu devrais le savoir. Sur une SLA ça doit être pareil.

Lien vers le commentaire
Partager sur d’autres sites

il y a 14 minutes, Fabien Lft a dit :

Si tu peux le faire dans Cura, il suffit à chaque déplacement de remonter ta fraise à ton altitude max (celle de départ en gros). 

Ca ne suffit pas car une fois en haut, au G0/G1 suivant, la fraise partira en diagonal (chemin le plus court) pour rejoindre le nouveau point de départ.

Et une fois sur une couche donnée, rien n'empêche la fraise de traverser toute la pièce pour aller d'un point A à un point B lors des travels. En additive il n'y a rien qui l'empêche (et pourtant on fait quand même du Z-hop), en soustractive il y a la pièce dans le chemin.

En soustractive, la fraise, une fois en haut, ira se placer d'abord en X et Y, puis ensuite fera plonger Z. Ensuite elle évitera bien évidemment de croiser le chemin de la pièce usinée, en tenant compte de l'encombrement de la fraise ET de la fraiseuse (en tout cas sur un logiciel de CAM digne de ce nom).

 

Pourquoi ne peux-tu pas utiliser un simple G-Code de CNC ? Fusion 360 fait ça très bien.

Modifié (le) par Kachidoki
Lien vers le commentaire
Partager sur d’autres sites

il y a 9 minutes, Yellow T-pot a dit :

je me répète, tu as regardé un trancheur d'imprimante SLA ?

Le SLA n'a rien a voir, il n'y a pas de déplacement d'outil. Grossièrement, ce sont des projections de "photos" couche par couche.

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, Kachidoki a dit :

Le SLA n'a rien a voir, il n'y a pas de déplacement d'outil

oui j'entends bien, maintenant, la demande initiale était seulement d'inverser les couches, pas de gérer des outils...

Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, Jean-Claude Garnier a dit :

Quoi qu'il en soit, si c'est pour faire du fraisage il faut qu'il intègre la notion du diamètre de l'outil utilisé, ainsi que celle du brut à enlever autour de sa forme : on ne peut pas prendre toute la surépaisseur à la fois

Il peut faire ça très facilement avec Fusion 360

Après, il faudra sans doute "mamailler" un peu pour que le programme soit digeste pour la CR10, mais il ne devrait pas y avoir grand-chose de bien compliqué

La taille de l'outil est très facile à gérer directement avec CURA, en jouant sur la taille de la buse entre autres, et le brut à enlever correspondra simplement au "moule de ma pièce que je lui rentre en STL. Tout le reste n'est pas toucher. 

C'est pour de la CNC simple. Le reste je le fais avec une vraie CNC. (Et en réalité, c'est plus pour faire le montage pour des amis n'ayant qu'une imprimante...) 

Donc Cura a une base vraiment parfaite pour faire ça. Il manque juste l'inversion du g-code. (Qui me parait quand même plus simple que modifier le code de Fusion ^^  

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, Yellow T-pot a dit :

Je ne connais pas les capacités de F360

Pas que. De toute évidence tu ne connais pas non plus le fraisage CN.
Mais quand tu auras fini de T-potiser ta cubique, il faudra bien que tu trouves un autre os à ronger (surtout si le confinement se prolonge)

@Fabien Lfttu vois bien que si tu disais pas tout, on risquait pas de te donner des réponses pertinentes

Lien vers le commentaire
Partager sur d’autres sites

à l’instant, Jean-Claude Garnier a dit :

Pas que. De toute évidence tu ne connais pas non plus le fraisage CN.

La dernière fois que j'ai touché à un centre d'usinage, c'était pour mon bac F1 et à l'époque c'était encore des rubans à trous...je peux comprendre que depuis, de l'eau a coulé sous les ponts 😉

Lien vers le commentaire
Partager sur d’autres sites

@Kachidoki

Ben si ...

Avec le ZHOP avant chaque travel, si tu montes à une altitude où il n'y a pas de matière, ça bouge en X,Y puis ça plonge, ça touche rien du tout. Il faut juste un ZHOP suffisant (donc qui équivaut au moins à ta profondeur maximum de fraisage sur ta pièce (car pas contre, le ZHOP n'est pas en valeur Z absolu)

Modifié (le) par Fabien Lft
Lien vers le commentaire
Partager sur d’autres sites

Si tu tape fusion post processor  dans Google tu trouveras la librairie des post processor fusion. Une recherche dans cette librairie de cr10 permet de trouver le pp 

Je ne connais pas fusion et j'utilise pour le travail un logiciel de fao.  Le post processor permet de traiter les mouvements de la FAO en code G ou autre pour la machine 

  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

Pour ceux que ça intéresserait, sait-on jamais, voilà le code :
J'ai fait ça vite donc c'est pas hyper clean, mais ça marche.

using namespace std;

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>

int main()
{
	ifstream gcodeToRead("C:\\Users\\Fabien\\Desktop\\test.gcode",std::ifstream::in);
	ofstream gcodeToWrite("C:\\Users\\Fabien\\Desktop\\test-inv.gcode",std::ofstream::out);
	string str;
	const char* strc;
	int layerCounter=0;
	int lineCounter=0;
	int lineNumber[4000];
	long charIndex[4000];
	int counter_bis=0;

	if (gcodeToRead.is_open())
	{
		
		while (! gcodeToRead.eof())
		{
			getline(gcodeToRead,str);
			strc =str.c_str();
			lineCounter++;
			if (strcmp(";LAYER:",str.substr(0,7).c_str())==0) 
			{
				lineNumber[layerCounter] = lineCounter;
				charIndex[layerCounter]=gcodeToRead.tellg();
				layerCounter++;
				//cout << layerCounter <<endl;
				//cout << lineNumber[layerCounter-1] <<endl;

			}
			if (strcmp("M141 S0",str.substr(0,7).c_str())==0)
			{
				lineNumber[layerCounter] = lineCounter-1;
				charIndex[layerCounter]=gcodeToRead.tellg();
				layerCounter++;
				//cout << layerCounter <<endl;
				//cout << lineNumber[layerCounter-1] <<endl;
			}
		}
		gcodeToRead.clear();
		gcodeToRead.seekg(0);		
		lineCounter=0;
		//Write the header in the new file
		while (lineCounter <lineNumber[0]-1)
		{
			getline(gcodeToRead,str);
			gcodeToWrite<<str<<endl;
			lineCounter++;
		}
		//Write the Layers in reverse order
		for (int i=1; i<layerCounter;i++)
		{
			gcodeToRead.clear();
			gcodeToRead.seekg(0);		
			lineCounter=0;
			gcodeToWrite<<";LAYER:"<<i-1<<endl;
			if (i==1) gcodeToWrite<<"M107"<<endl;
			while( lineCounter<lineNumber[layerCounter-i-1])
			{
				getline(gcodeToRead,str);
				lineCounter++;
			}
			while( lineCounter<lineNumber[layerCounter-i]-1)
			{
				getline(gcodeToRead,str);
				gcodeToWrite<<str<<endl;
				lineCounter++;
			}
			
		}
		//Write the footer
		lineCounter=0;
		gcodeToRead.clear();
		gcodeToRead.seekg(0);
		while( lineCounter<lineNumber[layerCounter-1]-1)
		{
			getline(gcodeToRead,str);
			lineCounter++;
		}
		while(!gcodeToRead.eof())
		{
			getline(gcodeToRead,str);
			gcodeToWrite<<str<<endl;
			//cout<<str<<endl;
		}

	}
	
	else
	{
			 printf("file does not exist");
	}

	 printf("gcode inverted");

	gcodeToRead.close();
	gcodeToWrite.close();
	return 0;
}
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

J'ai repensé à ton truc là....

Regarde dans "notepad ++", y'a un plugin qui s'appelle "reverse lines" qui fait ça tout seul

Il retourne le fichier comme un gant, la dernière ligne en premier

Lien vers le commentaire
Partager sur d’autres sites

Juste une idée qui me vient ...
Dans une imprimante 3D on n'est pas embêté par la hauteur de l'outils puisqu'il monte et imprime toujours sur la surface la plus haute du moment.

Par contre dans son projet il va rencontrer le souci que l'on a pour de l'impression séquentielle : l'axe X ne passera plus au dessus de la pièce pour s'occuper de la partie basse. 
Ne va t il pas y avoir un souci pour descendre usiner les couches les plus basses sans taper dans la partie haute de l'objet ?image.png.5bf7c90cebf4fd67938756ab953b0785.png
A moins de limiter la hauteur des objets à la distance outils/table, la tête et l'axe finiront par poser souci.

 

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Y'a pas de miracle.   bien sur qu'il y a des risques.....la méthode d'inverser un G-code ne remplacera jamais une programmation depuis un logiciel de FAO.

Attention , en fraisage (ou usinage en général), une erreur peut vite couter des "sous" en cas de collision.😂 sans compter le risque de se prendre l'outil dans la figure.

bonne soirée

A+

Lien vers le commentaire
Partager sur d’autres sites

Je ne parlais pas de risques, c'est clair qu'ils existent, mais c'est un autre sujet.
Déjà si il utilise une broche faite pour cela, c'est déjà un bon début.
Perso je me demandais surtout quelle était la capacité de la machine si elle part d'en haut pour descendre par rapport à la distance entre le bout de l'outills et la base de la tête ou de l'axe X ...
Pour moi il n'aura qu'une très petite capacité, très loin de la hauteur max imprimable.
Ex sur mon schéma : l'étage intermédiaire est impossible à faire : la tête butera contre l'étage du haut (outils trop court et tête trop large)

Lien vers le commentaire
Partager sur d’autres sites

Le 23/11/2020 at 16:52, Titouvol a dit :

Juste une idée qui me vient ...
Dans une imprimante 3D on n'est pas embêté par la hauteur de l'outils puisqu'il monte et imprime toujours sur la surface la plus haute du moment.

Par contre dans son projet il va rencontrer le souci que l'on a pour de l'impression séquentielle : l'axe X ne passera plus au dessus de la pièce pour s'occuper de la partie basse. 
Ne va t il pas y avoir un souci pour descendre usiner les couches les plus basses sans taper dans la partie haute de l'objet ?image.png.5bf7c90cebf4fd67938756ab953b0785.png
A moins de limiter la hauteur des objets à la distance outils/table, la tête et l'axe finiront par poser souci.

 

Bonjour,

Bien sûr, mais comme tout usinage CNC, il faut laisser la place à l'outil de passer. Donc avoir des outils longs à grands dégagements si on veut faire de grandes profondeurs verticales. Dans l'exemple sur ton schéma, même avec une CNC (3 axes j'entends), tu peux pas le réaliser, il te faut un outil plus grand, ce n'est pas spécifique au fait que ce soit sur une imprimante.

Et ensuite dans ce cas d'application, il faut aussi réfléchir à la manière de faire le "moule" pour éliminer assez de brut matière en fonction de la pièce souhaitée. Bref il y a quelques subtilités.

Quand à la hauteur max, comme dit plus haut dans les conversations précédentes, elle est THEORIQUEMENT de la hauteur max imprimable divisée par 2; puisque le g-code généré n'a pas de gestion de collision de l'outil avec la pièce, il faut nécessairement à chaque déplacement rétracter l'outil en Z de la hauteur totale de l'objet final pour éviter les collisions.  Après il faut déjà avoir l'outil qui fasse cette taille là ^^'. 

Encore une fois, le but n'est pas d'avoir une vraie CNC mais juste de permettre à une imprimante de faire du petit usinage/gravure. On est ni dans le même usage, ni dans la même gamme de prix (je sais de quoi je parle^^).

Juste pour info, j'ai fait une test avec une CR10s (donc pas d'axe supporté pour le plateau, ce qui est clairement pas terrible pour les vibrations) et une broche de 200w, et j'ai quand même réussi à usiner mon modèle test dans de l'érable (qui est relativement dur) sur 15 mm de profondeur ainsi que des petites gravures (2 mm). Pour le modèle test, je n'ai pas pris la peine de finir la pièce à la fraise à graver, ce qui m'intéressait était seulement le résultat obtenu avec la fraise d'ébauche de 3 mm; il y a des bavures et des fibres flottantes liées aux vibrations, mais ça reste de l'ébauche sur un matériau assez dur pour cette pauvre machine. J'aurais dû finir le modèle à la fraise à graver pour voir le rendu final mais j'avais d'autres choses à imprimer donc pas eu le temps ...

dummy.thumb.jpg.63a6dc6463a553ffba50927904ab9ac5.jpggravure.thumb.jpg.af1afb27c23d16da257f8ca247c60e22.jpg

Tout ça pour dire que pour usiner du balsa/medium,  du polystyrène ou même des plastiques tendres ça peut très bien suffire. Pour la modique somme de 15 €, le prix de la broche. Evidemment, ça ne vaudra jamais le travail d'une CNC digne de ce nom ...

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Ok pour de la gravure on est d'accord que c'est tout à fait jouable.
J'étais plus parti sur l'idée du wedding cake ... que je voyais bien entendu plus gros que qqes mm  😉

Sinon le souci avec les outils longs c'est qu'il faut qu'ils soient costauds aussi, car sinon bonjour les vibrations et les risques de casse.
Donc sur nos machines dont la structure n'est pas conçue pour cela, tu arriverais vite à avoir un shaker !
Après c'est certain que tu peux prendre de très fines couches et réduire drastiquement les vitesses, auquel cas les efforts seront réduits.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Titouvol a dit :

Ok pour de la gravure on est d'accord que c'est tout à fait jouable.
J'étais plus parti sur l'idée du wedding cake ... que je voyais bien entendu plus gros que qqes mm  😉

Sinon le souci avec les outils longs c'est qu'il faut qu'ils soient costauds aussi, car sinon bonjour les vibrations et les risques de casse.
Donc sur nos machines dont la structure n'est pas conçue pour cela, tu arriverais vite à avoir un shaker !
Après c'est certain que tu peux prendre de très fines couches et réduire drastiquement les vitesses, auquel cas les efforts seront réduits.

oui.

Après sur du polystyrène ou autre matériau un peu plus mou, j'ai pas trop de doute que tu puisses faire plus grand avec de plus grands outils si tant est que la broche les acceptent. Enfin voilà, c'était juste pour le "proof of concept".

Lien vers le commentaire
Partager sur d’autres sites

Le souci avec les outils longs c'est que tu seras aussi limité par la hauteur sous le portique : 
La buse n'est pas très basse, ton outils doit plus ou moins commencer à son niveau.
Donc si tu as 200mm de hauteur de travail sous la buse, la profondeur max usinable sera avec un outils de 100mm donc une profondeur de 100mm max.
(Sauf à changer d'outils en cours de route, auquel cas tu peux commencer avec un outils bien plus long et le réduire à mesure que tu montes dans les couches)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

C'est un essai intéressant.
Je suis en train de réfléchir à un projet qui y ressemble un peu, la conversion d'un imprimante IDEX (une tenlog probablement) pour la rendre compatible avec le plugin ASMBL pour F360 développé pour l'E3D ToolChanger (j'en suis au début), donc garder une tête d'impression et convertir la seconde en fraiseuse.
Pour moi, avoir une machine capable de faire les 2 sans toucher la pièce ouvre des perspective très intéressante dès lors qu'il s'agit d'avoir des dimension précises.

PS: ça donne ça sur le ToolChanger, mais j'ai pas 2500€ à mettre dedans pour faire un test 😉 

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...