Bruikbare G-code

Vragen die je boven niet kwijt kunt, kan je hier stellen.

Moderator: Moderators

Plaats reactie
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Bruikbare G-code

Bericht door bartL »

Normaliter gebruikte ik Fusion360 om de Gcodes te genereren voor de complexere vormen (of als ik gewoon lui ben).
Echter nu kan ik deze niet meer openen omdat mijn licentie is verlopen. Waarschijnlijk is dit met wat list en bedrog wel weer te activeren maar ik dacht ik ga eerst even verder kijken.

Nu blijkt dat ik met mijn (wel betaalde) CAD pakket een heel eind kan komen. Een aantal versies geleden kon ik helemaal niks m.b.t. CAM maar blijkbaar hebben ze dit een stukje open gezet. Echter ik krijg hier nog geen bruikbare code uit.
Het programma werkt als volgt. De bewerking wordt opgeslagen als een NCL bestand, dit bestand kan je vervolgens met een postprocessor omzetten naar een (normaal gesproken) bruikbare Gcode. Helaas krijg ik de postprocessor niet dusdanig ingesteld dat Eding er ook iets mee kan. Dit aanpassen doe ik met "Option FIle Generator" wat weer geintegreerd zit in mijn CAD pakket.

Hieronder een stukje G-code wat ik als output krijg.
Voor het N-regelnummer staan nog 2 nummer waar Eding last van heeft. Daarnaast staan achter iedere regel een $ teken en staan de waardes niet in mm weergegeven. Bijvoorbeeld Z4.4 wordt hier weergegeven als Z0044.

Code: Selecteer alles

      9      9 $ / MFG0004                                                        
      9      9 $
      9      9 LEADER/   14.0
      9      9 N0001 G70$
      9      9 N0002 G17$
      9      9 N0003 G90$
      9      9 N0004 T00001 M06$
      9      9 N0005 G00 X01 Y01 Z03$                                      10.0000   10.0000   30.0000  
     12     12 N0006 M41$
     12     12 N0007 S1000 M03$
     13     13 N0008 M08$
     15     15 N0009 G00 X-0051 Y0002368 F0$                               -5.1000     .2368                      200.000  
     15     15 N0010 Z-0044 F0$                                                                -4.4000  
     17     17 N0011 G01 Z-0043 F01$                                                           -4.3000             10.000  
     18     18 N0012 X1051$                                               105.1000  
     20     20 N0013 G00 Z0001 F0$                                                               .1000            200.000  
     22     22 N0014 Y-0045263 F0$                                                   -4.5263  
     24     24 N0015 G01 Z-0043 F01$                                                           -4.3000             10.000  
     25     25 N0016 X-0051$                                               -5.1000  
     27     27 N0017 G00 Z0001 F0$                                                               .1000            200.000  
     29     29 N0018 Y-0092895 F0$                                                   -9.2895  
     31     31 N0019 G01 Z-0043 F01$                                                           -4.3000             10.000  
     32     32 N0020 X1051$                                               105.1000  
 
Herkend iemand deze soort output en ook bij welke instellingen ik moet zoeken of dit wel juist te krijgen?
Of weet iemand een manier om een NCL bestand om te zetten naar een juiste Gcode of is dit echt iets specifieks voor mijn CAD programma?

Dank alvast!
Gebruikersavatar
Rocnc
Berichten: 312
Lid geworden op: 02 dec 2008 20:39

Re: Bruikbare G-code

Bericht door Rocnc »

Als je het bestand eens importeert in Excel (importeren van een tekstbestand, gescheiden op een spatie). Als je het goed hebt gedaan komt de informatie in kolommen op het werkblad. Gooi de eerste twee kolommen weg, converteer alle coordinaatwaarden door ze te delen door een factor (ik verwacht (hoop voor je) dat alle waarden met dezelfde factor zullen afwijken). Kopieer tenslotte alle overgebleven informatie en plak dat weer in een tekstbestandje (kladblok). Zoiets.

Foute tekens als $ en / kan je met zoeken en vervangen verwijderen.
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Bruikbare G-code

Bericht door hugo stoutjesdijk »

Misschien dat iemand er meer over kan zeggen wanneer je ook even vermeld welk CAD pakket je nu gebruikt.
En er zullen toch wel een paar besturings keuze's zijn, ook al staat Eding er niet tussen. Pak dan fanuc, en als daar meer van zijn, de 0M.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
andrefc101
Donateur
Berichten: 3702
Lid geworden op: 26 dec 2007 08:39
Locatie: Bergen op Zoom
Contacteer:

Re: Bruikbare G-code

Bericht door andrefc101 »

Lijkt mij een gevalletje van een verkeerde postprocessor (in cambam als dit daaruit komt), zou het in die richting zoeken.
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Re: Bruikbare G-code

Bericht door bartL »

Rocnc schreef: 17 jan 2023 17:00 Als je het bestand eens importeert in Excel (importeren van een tekstbestand, gescheiden op een spatie).
Dat was inderdaad mijn volgende gedachte. Met Excel ben ik wel bekend. Maar ik twijfel nog het goed gaat komen met het omzetten van die getallen.
hugo stoutjesdijk schreef: 17 jan 2023 18:26 Misschien dat iemand er meer over kan zeggen wanneer je ook even vermeld welk CAD pakket je nu gebruikt.
En er zullen toch wel een paar besturings keuze's zijn, ook al staat Eding er niet tussen. Pak dan fanuc, en als daar meer van zijn, de 0M.
Ik gebruik PTC Creo, maar daar zal hier niemand verstand van hebben denk ik. Er zijn inderdaad meerdere besturing keuzes maar dat lijkt in de uitkomst niet veel te veranderen. Het zou me niet verbazen als dat toch ergens geblocked wordt omdat ik de uitgebreide licentie voor de manufacturing extentie niet heb.
andrefc101 schreef: 17 jan 2023 19:21 Lijkt mij een gevalletje van een verkeerde postprocessor (in cambam als dit daaruit komt), zou het in die richting zoeken.
Het is sowiso de post processor alleen krijg ik die dus niet goed.

Had leuk geweest als er een los programmaatje bestond die de NCL ombouwde naar gcode.
Ik zag wel ergens een filmpje van iemand die het met notepad++ leek te doen maar ik heb geen idee of dat dat zou kunnen of dat dat maar zo leek.
hfjbuis
Donateur
Berichten: 3058
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Bruikbare G-code

Bericht door hfjbuis »

In het algemeen kun je de postprocessor aanpassen zoals in Freecad en Fusion360. Dat is iets dat je maar een keer hoeft te doen. Het verwijderen van de 2 ongewenste kolommen zal toch relatief eenvoudig moeten kunnen. Ik zou er op z'n minst eens naar kijken als geen van de standaard PTC Creo postprocessors werkt.
Hier een video over de "Creo NC" postprocessor. https://www.youtube.com/watch?v=PMsNTsRo6vI
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Kars-cnc
Donateur
Berichten: 1750
Lid geworden op: 07 okt 2015 05:33
Locatie: Heerde (Gelderland)

Re: Bruikbare G-code

Bericht door Kars-cnc »

In Notepad++ moet het wel kunnen met 1 of meerdere macro's verwacht ik.
Die kolommen links van het N nummer kun je er gemakkelijk met de hand afhalen met de kolom mode. Houdt de "Alt" toets ingedrukt en selecteer een deel met de muis. Je zult zien dat er dan een kolom geselecteerd wordt. Met delete kun je dan deze kolom weghalen.

Voor het omzetten van de parameters zou je wat moeten experimenteren met de macro functie. Een macro kan automatisch uitvoeren wat je anders met de hand doet inclusief een zoek functie, naar eind van de regel, naar begin van de regel etc.. B.v. zoek een parameter, zet de cursor links van die parameter, geef drie keer pijltje naar rechts en type een punt. Daarmee heb je dan b.v. 0044 gewijzigd in 004.4

Deze macro kun je dan zo vaak laten uitvoeren als nodig om alle parameters in de file om te zetten

De kunst is om criteria te vinden waarmee je de alle om te zetten parameters wel vindt maar maar andere niet.
Waarschijnlijk moet je hier meerder macro's voor maken. Die kun je als het goed is wel weer achter elkaar laten uitvoeren.

Succes er mee :mrgreen:
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Re: Bruikbare G-code

Bericht door bartL »

hfjbuis schreef: 17 jan 2023 22:16 Hier een video over de "Creo NC" postprocessor. https://www.youtube.com/watch?v=PMsNTsRo6vI
Die video had ik ook gevonden inderdaad, en dat is ook precies het programmaatje die bij mij geopend wordt. Echter omdat ik geen NC licentie heb vraag ik me af of ik de pp die gebruikt wordt überhaupt wel kan wijzigen. Hier moet ik nog achter zien te komen. Als ik nu een duidelijke wijziging aanbreng zie ik die nog niet terug in de Gcode.

@Kars,
Dit zal voor mij wel een lastig verhaal worden maar ik zal er eens naar kijken. Ik ben niet zo programmeerder helaas.
Floppy
Berichten: 774
Lid geworden op: 11 apr 2007 23:40
Locatie: Zeddam

Re: Bruikbare G-code

Bericht door Floppy »

IK kon het niet laten om te kijken of ik een c (c++) programma kon schrijven om dit op te lossen.
Nu ben ik niet zo'n geweldige c programmeur maar ik heb iets wat werkt en compileert met visual c.
Best wel lastig met die rare notatie voor coordinaten.
De output van het programma is nu:

Code: Selecteer alles

N0001 G70
N0002 G17
N0003 G90
N0004 T00001 M06
N0005 G00 X10 Y10 Z30
N0006 M41
N0007 S1000 M03
N0008 M08
N0009 G00 X-5.1 Y0.2368 F0
N0010 Z-4.4 F0
N0011 G01 Z-4.3 F01
N0012 X105.1
N0013 G00 Z0.1 F0
N0014 Y-4.526 F0
N0015 G01 Z-4.3 F01
N0016 X-5.1
N0017 G00 Z0.1 F0
N0018 Y-9.29 F0
N0019 G01 Z-4.3 F01
N0020 X105.1
en het programma is:

Code: Selecteer alles

// gcode.cpp : Defines the entry point for the console application.
//

#include <iostream>
#include "stdio.h"
#include "string.h"
#include "ctype.h"
#include "stdlib.h"

int main(int argc, char* argv[])
{
	char buf[260], * ptr, xstr[20], * tp, c;
	double x;
	int n;
	FILE* fp;
	if (argc < 2)
	{
		fprintf(stderr, "command line is: gcode <file> \n");
		return 1;
	}
	if((fopen_s(&fp, argv[1], "r")) !=0)
	{
		fprintf(stderr, "can't open %s\n", argv[1]);
		return 1;
	}

	while (fgets(buf, 256, fp) != NULL)
	{
		ptr = buf;
		while ((c = *ptr++) != 0)
		{
			if (c == '$') break;
			else if (c == 'n' || c == 'N')
			{
				std::cout << 'N';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 'g' || c == 'G')
			{
				std::cout << 'G';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 't' || c == 'T')
			{
				std::cout << 'T';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 'm' || c == 'M')
			{
				std::cout << 'M';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 's' || c == 'S')
			{
				std::cout << 'S';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 'f' || c == 'F')
			{
				std::cout << 'F';
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				std::cout << tp;
				std::cout << ' ';
			}
			else if (c == 'x' || c == 'X')
			{
				std::cout << 'X';
				if (*ptr == '-') { std::cout << '-'; ptr++; }
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				strcpy_s(xstr, tp);
				n = strlen(xstr);
				strncat_s(xstr, "000000", 7 - n);
				x = atof(xstr) / 10000.0;
				std::cout.precision(4);
				std::cout << x;
				std::cout << ' ';
			}
			if (c == 'y' || c == 'Y')
			{
				std::cout << 'Y';
				if (*ptr == '-') { std::cout << '-'; ptr++; }
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				strcpy_s(xstr, tp);
				n = strlen(xstr);
				strncat_s(xstr, "000000", 7 - n);
				x = atof(xstr) / 10000.0;
				std::cout.precision(4);
				std::cout << x;
				std::cout << ' ';
			}
			if (c == 'z' || c == 'Z')
			{
				std::cout << 'Z';
				if (*ptr == '-') { std::cout << '-'; ptr++; }
				tp = ptr;
				while (isdigit(*ptr++));
				*(ptr - 1) = 0;
				strcpy_s(xstr, tp);
				n = strlen(xstr);
				strncat_s(xstr, "000000", 7 - n);
				x = atof(xstr) / 10000.0;
				std::cout.precision(4);
				std::cout << x;
				std::cout << ' ';
			}
		}
		putchar('\n');
	}
	return 0;
}// end main 
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Re: Bruikbare G-code

Bericht door bartL »

Heee das mooi!
Of je nu wel of geen geweldige programmeur ben, je komt allicht verder als ik!
Nu is alleen mijn vraag hoe ik die code met behulp van dat programma om kan zetten? Ik weet dat iets dergelijks is Excel mogelijk is maar weet niet of dat in dit geval handig is.
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Bruikbare G-code

Bericht door hugo stoutjesdijk »

Floppy schreef: 20 jan 2023 17:03 IK kon het niet laten om te kijken of ik een c (c++) programma kon schrijven om dit op te lossen.
Ik herken de drang. :mrgreen: Maar kon me nog net bedwingen. In ieder geval meer uitdaging dan een sudoku of iets dergelijks.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
newhumanoid
Berichten: 102
Lid geworden op: 07 okt 2022 17:23
Locatie: Oekraïne, Nikolajev

Re: Bruikbare G-code

Bericht door newhumanoid »

Floppy
Berichten: 774
Lid geworden op: 11 apr 2007 23:40
Locatie: Zeddam

Re: Bruikbare G-code

Bericht door Floppy »

Het is een simpel command-line programmaatje dat in de console (command prompt of opdracht prompt) draait.

gcode inputfile
dit geeft output op het scherm
of
gcode inputfile > outputfile
dit stuurt de output naar outputfile

Hierbij het programmaatje als zipfile.
gcode.zip
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Floppy
Berichten: 774
Lid geworden op: 11 apr 2007 23:40
Locatie: Zeddam

Re: Bruikbare G-code

Bericht door Floppy »

hugo stoutjesdijk schreef: 20 jan 2023 18:08
Ik herken de drang. :mrgreen: Maar kon me nog net bedwingen. In ieder geval meer uitdaging dan een sudoku of iets dergelijks.
Inderdaad, het heeft me in elk geval weer een paar uurtjes bezig gehouden.
Plaats reactie