While statement in macro

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

Moderator: Moderators

Grafjan
Berichten: 731
Lid geworden op: 16 aug 2018 23:01
Locatie: Tilburg

Re: While statement in macro

Bericht door Grafjan »

Maar daar is toch een G83 voor uitgevonden? Of sla ik nu de plank wederom mis?
Spanen maak je, het werkstuk hou je over!Dus wat ik maak kan rechtstreeks de schrootbak in.
Kjelt
Donateur
Berichten: 6259
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: While statement in macro

Bericht door Kjelt »

Grafjan schreef: 28 jun 2022 19:46 Maar daar is toch een G83 voor uitgevonden? Of sla ik nu de plank wederom mis?
Klopt maar dat is met rapidmoves (G0) deze werkt met G1 en slooooooow feed van F50.
Maar denk dat dit gewoon een testje is want niemand wil iedere loop 500 seconde wachten (G4 P500) tot de boor weer 0.25mm dieper gaat ;-)
Gebruikersavatar
Rocnc
Berichten: 312
Lid geworden op: 02 dec 2008 20:39

Re: While statement in macro

Bericht door Rocnc »

Ik heb een volledige versie van Mach3, maar daarin werkt het programma met die while loop niet...

Ik doe dit soort bewerkingen met een gewone sub-routine die ik een aantal maal aanroep en dan de Z-as steeds een stukje verder beweeg. Zoiets:

(dit onderdeel heb ik echt gemaakt, dus het werkt :-) )
Het "hoofdprogramma" staat tussen de (######) en de (#######).
De subroutines staan onderaan tussen de ($$$$$) en ($$$$$).

Code: Selecteer alles

[G17 G21 G40 G49 G50 G53 G61 G80 G90 (schone start)

(start op X0 Y0 en frees rakend op het materiaal)
G17 (XY plane select)
G21 (millimeters)
G40 (cancel cutter radius correction)
G49 (cancel tool length correction)
G50 (reset all scale factors to 1.0)
G53 (move in absolute machine coordinate system)
G61 (exact stop - G64 is constant velocity)
G80 (cancel motion mode [including canned cycles])
G90 (absolute distance mode)

(############################################################################)

(PROP VOOR DEKSEL)
(Materiaaldikte 9mm. Doorfrezen tot 1mm onder materiaal)

(Freesje 3.2mm)
(Multiplex)

#1 = 0 (momentane freeshoogte)
#2 = 500 (snelheid van lineair frezen)
#3 = 100 (snelheid voor boren)

(Begin met frees op X0 Y0 en de frees rakend aan het oppervlak alx Z0)

F#3
(boren van het eerste gat)
G00 Z10 (frees een beetje omhoog)
G00 x-9 y15 (frees naar center van gat)
G00 z1
G01 z0 (frees naar materiaaloppervlak)

M98 P01 L10 (Gat boren. Subroutine O01 wordt aangeroepen met P01 en die routine wordt 10x herhaald met L10)

(boren van het tweede gat)
G00 z10 (frees naar veilige hoogte)
G00 x9 y15 (frees naar center van het tweede gat)
G00 z1
G01 z0 

#1 = 0 (reset momentane hoogte)
M98 P01 L10 (Gat boren)

F#2
(frezen van het centrale gat)
G00 Z10 (frees naar veilige hoogte)
G00 x0 y2.5
G00 z1
G01 z0

#1 = 0 (reset momentane hoogte)
M98 P02 L10 (gat frezen)
M98 P03 L1 (laatste gang frezen)

(frezen van buitencontour)
G00 z10
G00 x-16.6 y22.6
G00 z1
G01 z0

#1 = 0 (reset momentane hoogte)
M98 P04 L10 (contour frezen)

G00 z10 
G00 x0 y0 (veilige eindpositie)

(############################################################################)

M30 (program end and rewind)

($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)

O01 (gat voor schroefje boren)
#1 = [#1-1]
G01 z#1
G00 Z0
G00 z#1
M99

O02 (centraal gat freesje 3.2mm)
#1 = [#1-1]
G02 x0 y2.5 i0 j-2.5 z#1
M99 (return from subroutine/repeat)

O03 (centraal gat freesje 3.2mm)
#1 = -10
G02 x0 y2.5 i0 j-2.5 z#1
M99 (return from subroutine/repeat)

O04 (contour frezen)
#1 = [#1-1]
F#3
G01 z#1
F#2
G01 x16.6 y22.6
G01 x16.6 y0
G02 x-16.6 y0 i-16.6 j0
G01 x-16.6 y22.6
M99 (return from subroutine/repeat)

($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)
(eof)
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
F. Berkers
Berichten: 16
Lid geworden op: 16 feb 2022 21:57

Re: While statement in macro

Bericht door F. Berkers »

Rocnc schreef: 29 jun 2022 10:35 Ik heb een volledige versie van Mach3, maar daarin werkt het programma met die while loop niet...

Ik doe dit soort bewerkingen met een gewone sub-routine die ik een aantal maal aanroep en dan de Z-as steeds een stukje verder beweeg. Zoiets:

(dit onderdeel heb ik echt gemaakt, dus het werkt :-) )
Het "hoofdprogramma" staat tussen de (######) en de (#######).
De subroutines staan onderaan tussen de ($$$$$) en ($$$$$).

Code: Selecteer alles

[G17 G21 G40 G49 G50 G53 G61 G80 G90 (schone start)

(start op X0 Y0 en frees rakend op het materiaal)
G17 (XY plane select)
G21 (millimeters)
G40 (cancel cutter radius correction)
G49 (cancel tool length correction)
G50 (reset all scale factors to 1.0)
G53 (move in absolute machine coordinate system)
G61 (exact stop - G64 is constant velocity)
G80 (cancel motion mode [including canned cycles])
G90 (absolute distance mode)

(############################################################################)

(PROP VOOR DEKSEL)
(Materiaaldikte 9mm. Doorfrezen tot 1mm onder materiaal)

(Freesje 3.2mm)
(Multiplex)

#1 = 0 (momentane freeshoogte)
#2 = 500 (snelheid van lineair frezen)
#3 = 100 (snelheid voor boren)

(Begin met frees op X0 Y0 en de frees rakend aan het oppervlak alx Z0)

F#3
(boren van het eerste gat)
G00 Z10 (frees een beetje omhoog)
G00 x-9 y15 (frees naar center van gat)
G00 z1
G01 z0 (frees naar materiaaloppervlak)

M98 P01 L10 (Gat boren. Subroutine O01 wordt aangeroepen met P01 en die routine wordt 10x herhaald met L10)

(boren van het tweede gat)
G00 z10 (frees naar veilige hoogte)
G00 x9 y15 (frees naar center van het tweede gat)
G00 z1
G01 z0 

#1 = 0 (reset momentane hoogte)
M98 P01 L10 (Gat boren)

F#2
(frezen van het centrale gat)
G00 Z10 (frees naar veilige hoogte)
G00 x0 y2.5
G00 z1
G01 z0

#1 = 0 (reset momentane hoogte)
M98 P02 L10 (gat frezen)
M98 P03 L1 (laatste gang frezen)

(frezen van buitencontour)
G00 z10
G00 x-16.6 y22.6
G00 z1
G01 z0

#1 = 0 (reset momentane hoogte)
M98 P04 L10 (contour frezen)

G00 z10 
G00 x0 y0 (veilige eindpositie)

(############################################################################)

M30 (program end and rewind)

($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)

O01 (gat voor schroefje boren)
#1 = [#1-1]
G01 z#1
G00 Z0
G00 z#1
M99

O02 (centraal gat freesje 3.2mm)
#1 = [#1-1]
G02 x0 y2.5 i0 j-2.5 z#1
M99 (return from subroutine/repeat)

O03 (centraal gat freesje 3.2mm)
#1 = -10
G02 x0 y2.5 i0 j-2.5 z#1
M99 (return from subroutine/repeat)

O04 (contour frezen)
#1 = [#1-1]
F#3
G01 z#1
F#2
G01 x16.6 y22.6
G01 x16.6 y0
G02 x-16.6 y0 i-16.6 j0
G01 x-16.6 y22.6
M99 (return from subroutine/repeat)

($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)
(eof)
Beste Rock,
Bedankt voor je reactie.
Je heb mij de informatie gegeven naar welke ik naar op zoek ben nl Dat Mach3 geen While DO loop kan.
Het voorbeeld programma is alleen bedoeld om te WHILE Do loop te testen.
Nogmaals bedankt voor de juiste informatie en je genomen moeite.
Met vriendelijke groet,
Frans
F. Berkers
Berichten: 16
Lid geworden op: 16 feb 2022 21:57

Re: While statement in macro

Bericht door F. Berkers »

Kje .lt schreef: 28 jun 2022 22:52
Grafjan schreef: 28 jun 2022 19:46 Maar daar is toch een G83 voor uitgevonden? Of sla ik nu de plank wederom mis?
Klopt maar dat is met rapidmoves (G0) deze werkt met G1 en slooooooow feed van F50.
Maar denk dat dit gewoon een testje is want niemand wil iedere loop 500 seconde wachten (G4 P500) tot de boor weer 0.25mm dieper gaat ;-)
Beste Kjelt,
Bedankt voor je reactie. Het gaat niet om wat het programma doet. Het gaat om het inbouwen van een WHILE Do loop in een programma.
de inhoud is maar een voorbeeld.
met vr groet,
Frans
Kjelt
Donateur
Berichten: 6259
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: While statement in macro

Bericht door Kjelt »

F. Berkers schreef: 09 jul 2022 17:41
Kje .lt schreef: 28 jun 2022 22:52
Grafjan schreef: 28 jun 2022 19:46 Maar daar is toch een G83 voor uitgevonden? Of sla ik nu de plank wederom mis?
Klopt maar dat is met rapidmoves (G0) deze werkt met G1 en slooooooow feed van F50.
Maar denk dat dit gewoon een testje is want niemand wil iedere loop 500 seconde wachten (G4 P500) tot de boor weer 0.25mm dieper gaat ;-)
Beste Kjelt,
Bedankt voor je reactie. Het gaat niet om wat het programma doet. Het gaat om het inbouwen van een WHILE Do loop in een programma.
de inhoud is maar een voorbeeld.
met vr groet,
Frans
Dat begrijp ik Frans, maar Grafjan waar ik weer op reageerde dacht dat je alleen een booraktie wilde uitvoeren, vandaar.
Plaats reactie