Het "Bouwen" van Macro's voor USBCNC

Nederlandse CNC controller op basis van de usb poort of Ethernet.

Moderator: Moderators

Plaats reactie
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

H.C schreef: 08 apr 2021 18:27 thx Hugo,

Na update naar 4.04.09 nog steeds hetzelfde.

Maar ABS omgezet naar abs en.....aaaah het werkt O_o

Iets voor de volgende update.

Grts,

Ok.. Dat zal ik ook even testen.. Bert heeft een poosje geleden wat gewijzigd in de Interpreter, op mijn verzoek.. Mea Culpa..

"Vroegâh" was het namelijk zo.. dat ongeacht of je nu Upper of LowerCase programmeerde.. bij DIalog Messages.. dat het automagisch omgezet werd naar LowerCase
Ook de output van een LogMSG werd omgezet naar Lowercase.., maar omdat ik dus ook doende ben met het schrijven van DXF Bestanden vanuit EdingCNC (bijvoorbeeld voor een meetmacro die alle punten die gemeten zijn opslaat in een DXF bestand.
een DXF in LowerCase is niet leesbaar voor een CAD programma.. Dus.. tja..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

Net even de meest recente 4.04.09 release erop gezet.. Ja.. inderdaad.. ABS werkt NIET.. abs werkt WEL.. aandachtspuntje..
Ik heb zelf de gewoonte om Capslock aan te zetten als ik aan het programmeren ben.. weet niet waarom.. maar ik vind het prettiger lezen..
misschien moet ik wel afscheid nemen van die gewoonte.. :)
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door bartL »

Voordat ik er zelf 1 in elkaar ga klussen. Is er hier iemand die een goeie Macro voor vlakfrezen heeft en deze wil delen?
Meestal programmeer ik dit aan de machine maar het komt zo vaak voor dat een goeie Marco wel makkelijker is.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

bartL schreef: 20 aug 2021 13:09 Voordat ik er zelf 1 in elkaar ga klussen. Is er hier iemand die een goeie Macro voor vlakfrezen heeft en deze wil delen?
Meestal programmeer ik dit aan de machine maar het komt zo vaak voor dat een goeie Marco wel makkelijker is.
Hangt er een beetje van af.. wil je in één keer op diepte? of in meerdere sneden?.

in elk geval deel je het op in subroutines, één waarmee je 't hele vlak bestrijkt, en één voor de dieptestap.
bartL
Berichten: 1154
Lid geworden op: 15 jan 2008 07:14
Locatie: Zuid hollandsche eilanden

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door bartL »

Arie Kabaalstra schreef: 20 aug 2021 13:33 in elk geval deel je het op in subroutines, één waarmee je 't hele vlak bestrijkt, en één voor de dieptestap.
Ik weet hoe ik hem moet maken, dat is het punt niet. Maar als iemand anders dit al gedaan heeft hoef ik het wiel niet opnieuw uit te vinden. Mijn ervaring is dat een goeie macro best wel wat tijd kost. Dus in het kader van: liever lui dan moe....
Perkeo
Berichten: 41
Lid geworden op: 14 mar 2021 18:25

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Perkeo »

Wat een fantastisch draadje om door te werken!! Zelf vandaag net een eerste macro van het forum gekopieerd en uitgeprobeerd. Errug handig!!

Voor het editen van b.v. Marlin firmware van de 3D printer gebruikte ik al Visual Studio Code. Hier zitten standaard plugins voor gcode en heleboel andere zaken.

Op de één of andere manier wordt de gcode file niet geopend als ik deze vanuit Eding opstart. Dus ook maar daarnaast Notedpad++ gaan gebruiken. Helaas heeft Notepad++ geen standaard ondersteuning voor gcode. Ik heb echter wel een erg mooie uitbreiding van een 'User Defined Language' gevonden. Mogelijk hier al bekend, echter ik kon hem via de zoekfunctie op het forum niet vinden. Komt ie:

:arrow: https://github.com/HonskiDesign/notepadpp

Via de Import functie in Notepad++ is deze eenvoudig binnen te halen.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

Ik heb in een pril begin al eens een g code aangemaakt voor notepad ++
Die moet er nog wel staan.

Op zich is het maken van een custom syntaxis markering niet heel veel werk, ik heb ze ook voor dxf bestandeniet bijvoorbeeld, omdat ik met macro's bezig ben die vanuit EdingCNC dxfoto bestandjes uitgeven.
Perkeo schreef: 02 okt 2021 22:50 Op de één of andere manier wordt de gcode file niet geopend als ik deze vanuit Eding opstart.
Wat bedoel je daar precies mee?
Perkeo
Berichten: 41
Lid geworden op: 14 mar 2021 18:25

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Perkeo »

Arie Kabaalstra schreef: 03 okt 2021 00:40
Perkeo schreef: 02 okt 2021 22:50 Op de één of andere manier wordt de gcode file niet geopend als ik deze vanuit Eding opstart.
Wat bedoel je daar precies mee?
Als ik in Eding het normale pad aangeef om Code.exe te laden (C:\Users\User1\AppData\Local\Programs\Microsoft VS Code\Code.exe), en ik na het openen van een programma in Eding op de F6 edit knop druk, Eding keurig Visual Studio Code opent, maar met een leeg scherm.

Als ik dezelfde procedure in Notepad++ volg, opent Eding keurig Notepad++ met de geladen gcode file.

:?: :?: :?: :?: :?:
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door hugo stoutjesdijk »

Perkeo schreef: 03 okt 2021 11:06 Als ik in Eding het normale pad aangeef om Code.exe te laden (C:\Users\User1\AppData\Local\Programs\Microsoft VS Code\Code.exe), en ik na het openen van een programma in Eding op de F6 edit knop druk, Eding keurig Visual Studio Code opent, maar met een leeg scherm.

Als ik dezelfde procedure in Notepad++ volg, opent Eding keurig Notepad++ met de geladen gcode file.

:?: :?: :?: :?: :?:
Omdat notepad nog weet welke file je daarvoor geopend had (is een keuze in de instellingen), en dat nu weer doet (dus geen verdienste van Eding). Misschien moet je achter dat code.exe nog iets toevoegen van een filenaam (die natuurlijk steeds anders is)
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 03 okt 2021 13:49 mdat notepad nog weet welke file je daarvoor geopend had
Nee.. zo werkt dat niet.. want als ik thuis een programma maak, en dat op de zaak aan wil passen.. is dat bestandje daar nog nooit geopend in Notepad (ik heb Notepad++ niet geinstalleerd op de zaak.. zou ik eigenlijk wel eens moeten doen.

Aan de andere kant.. Ik heb Visual studio, dus..
Gedit.jpg
Ik ben zelf aan het knutselen geslagen.. een Editortje alleen voor G-Code.. onder de naam "Gedit".. get it?..In de groupbox onderin het scherm moet nog een aantal softkeys komen, met cycli.. dat maakt het schrijven van G-code dan weer wat makkelijker..

Ook wil ik hierin een koppeling maken met de API van EdingCNC, zodat het een soort "Embedded-Editor" kan worden.
Genoeg te doen dus.. :lol:
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
xander janssen
Berichten: 599
Lid geworden op: 08 jan 2009 08:53
Locatie: België

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door xander janssen »

Na een eerste uitleg van Arie over hoe hij zijn Teach-In macro's heeft gemaakt ben ik nu zelf aan de slag gegaan.

Is wat programmeerwerk (lang geleden dat ik dat nog gedaan heb, dus het moet allemaal weer boven komen drijven) en gaat tot nu best goed. Vlak en langsdraaien heb ik voor elkaar. Icoontjes ook mooi gemaakt voor de UserFuncties. Vraag me wel nog af of ik ergens de labels kan wijzigen. Als je nu met de muis boven de knop staat komt er zo'n vakje met de text "User11".

Kan ik deze text ergens veranderen in "Facing"?

Groet,

Xander
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

Ja.. da's wel mogelijk.. ergens..
Daar was laatst ook al een vraag over.. 'k weet alleen niet meer waar.. en eerlijk gezegd.. "wat moet je met een muis?"
Perkeo
Berichten: 41
Lid geworden op: 14 mar 2021 18:25

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Perkeo »

Net als bij vele andere zaken bij de CNC heeft ook het maken van een eerste macro en het leren van wat GCODE een vrij steile leercurve voor mij. Maar goed, met de hoeveelheid kennis en adviezen op dit forum kan je er lustig op loslezen en zoeken en ben ik er volgens mij wel redelijk uitgekomen.

Hieronder mijn macro voor het vlakfrezen, waarbij ik zoveel mogelijk van de tips en aanwijzingen uit dit draadje heb meegenomen. In de simulatie modus van Eding draait alles prima, maar ik moet hem morgen in de schuur nog IRL uitproberen.

Voor op- en aanmerkingen en verbeteringen houd ik mij warm aanbevolen :mrgreen:

Oh ja, standaard disclaimer heb ik gelezen, gebruik voor eigen risico,... :lol: :lol:

Code: Selecteer alles

;***************************************************************************************
;**************** FACING MACRO **********************************************************
;***************************************************************************************


SUB FACING
;---------------------------------------------------------------------------------------
	GOSUB DIALOGUE_FACING
	GOSUB DLG_CHECK
	GOSUB RUN_FACING
	M2
ENDSUB

SUB DIALOGUE_FACING
	; PARAMETERS
	; #1101 = X_LENGTH
	; #1102 = Y_LENGTH
	; #1005 = Z_SAFE
	; #1209 = MILL_DIAMETER
	; #1203 = STEPOVER
	; #1103 = FACING_DEPTH
	; #1206 = SPINDLESPEED
	; #1207 = FEED
	; #1998 = MILL X_DIRECTION (1=TRUE, 0=FALSE)
	; #1999 = MILL Y_DIRECTION (1=TRUE, 0=FALSE)
	#1206 = [#5394]					; Preselected Spindlespeed as Max RPM Spindle
	DLGMSG"FACING PARAMETERS - TOP OF STOCK IS Z0 - 1=TRUE, 0=FALSE" "X_LENGTH" 1101 "Y_LENGTH" 1102 "Z_SAFE" 1005 "MILL_DIAMETER" 1209 "STEPOVER" 1203 "FACING_DEPTH" 1103 "SPINDLE_SPEED" 1206 "FEED" 1207 "MILL_X" 1998 "MILL_Y" 1999
ENDSUB

SUB RUN_FACING
	; PARAMETERS
	; #1101 = X_LENGTH
	; #1102 = Y_LENGTH
	; #1005 = Z_SAFE
	; #1209 = MILL_DIAMETER
	; #1203 = STEPOVER
	; #1103 = FACING_DEPTH
	; #1206 = SPINDLESPEED
	; #1207 = FEED
	; #1998 = MILL X_DIRECTION (1=TRUE, 0=FALSE)
	; #1999 = MILL Y_DIRECTION (1=TRUE, 0=FALSE)

	; #300  = incremental X+ mill direction counter
	; #301  = incremental X- mill direction counter
	; #302  = incremental Y+ mill direcion counter
	; #303  = incremental Y- mill direcion counter


	IF [#1203>#1209] 										;CHECK IF STEPOVER IS LARGER THEN MILL_DIAMETER
		DLGMSG "STEPOVER IS LARGER THEN MILL_DIAMETER"
		GOSUB DLG_CHECK
		GOSUB FACING
	ENDIF

	IF [#1998==1 AND #1999==1]
		DLGMSG "SELECT EITHER X OR Y DIRECTION"
		GOSUB DLG_CHECK
		GOSUB FACING
	ENDIF

	IF [#1998==1]
		MSG"Milling in X-direction"							; MILLING IN X-DIRECTION
		#300 = 0										; Set incremental X+ mill direction counter to 0
		#301 = #1203									; Set incremental X- mill direction counter to stepover value
		G0 Z[#1005]									; Move to Z_Safe
		G0 X0 Y0										; Move to X0 Y0
		M3 S[#1206]									; Start spindle at chosen RPM
		G1 Z[#1103] F100								; go down to facingdepth
		WHILE [#300 <= #1102]
			G1 X[#1101] F[#1207]						; mill line from 0 to x_length in X+ direction
			G3 Y[#301] J[#1203/2]						; Counterclockwise turn to make return pass in X- direction	
			G1 X0									; mill line from x_length to 0 in X- direction
			IF [#301 <= #1102]							; If y_length was not reached on the return pass in X- direction
				G2 Y[#301 + #1203] J[#1203/2]				; Clockwise turn to make one more X+ and X- direction pass
				#300 = [#300 + 2*#1203]					; set y value for x+ direction
				#301 = [#301 + 2*#1203]					; set y value for x- direction
			ELSE
				#300 = [#300 + 2*#1203]					; set y value for x+ direction
				#301 = [#301 + 2*#1203]					; set y value for x- direction
			ENDIF
		ENDWHILE
		M30
	ENDIF

	IF [#1999==1]
		MSG"Milling in Y-direction"							; MILLING IN Y-DIRECTION
		#302 = 0										; Set incremental Y+ mill direction counter to 0
		#303 = #1203									; Set incremental Y- mill direction counter to stepover value
		G0 Z[#1005]									; Move to Z_Safe
		G0 X0 Y0										; Move to X0 Y0
		M3 S[#1206]									; Start spindle at chosen RPM
		G1 Z[#1103] F100								; go down to facingdepth
		WHILE [#302 <= #1101]
			G1 Y[#1102] F[#1207]						; mill line from 0 to y_length in Y+ direction
			G2 X[#303] I[#1203/2]						; Counterclockwise turn to make return pass in Y- direction	
			G1 Y0									; mill line from y_length to 0 in Y- direction
			IF [#303 <= #1101]							; If x_length was not reached on the return pass in Y- direction
				G3 X[#303 + #1203] I[#1203/2]				; Clockwise turn to make one more Y+ and Y- direction pass
				#302 = [#302 + 2*#1203]					; set x value for y+ direction
				#303 = [#303 + 2*#1203]					; set x value for y- direction
			ELSE
				#302 = [#302 + 2*#1203]					; set x value for y+ direction
				#303 = [#303 + 2*#1203]					; set x value for y- direction
			ENDIF
		ENDWHILE
		M30
	ELSE
		DLGMSG "SELECT EITHER X OR Y DIRECTION"
		GOSUB DLG_CHECK
		GOSUB FACING	
	ENDIF

ENDSUB
Nog een uitbreiding zou kunnen zijn om in meerdere dieptestappen te kunnen frezen, maar voor het vlakfrezen gok ik dat dit niet snel van toepassing zal zijn. Dat wordt dan voor een volgende macro.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13370
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

'k heb de code niet getest.. maar ik moet zeggen dat je't in elk geval heel netjes geschreven hebt.

Volop gebruik gemaakt van Comments,

Maar.. eh... :

Code: Selecteer alles

 #1209 = MILL_DIAMETER
Als je je gereedschappen gewoon netjes in de Tooltabel zet.. Dan geldt
#5009= MILL_RADIUS, en die hoef je dan niet in te geven..
Plaats reactie