Gcode: Variabelen in subroutine definieren?

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

Moderator: Moderators

Plaats reactie
Gebruikersavatar
Sven
Berichten: 5985
Lid geworden op: 24 sep 2008 09:13
Locatie: Arnhem
Contacteer:

Gcode: Variabelen in subroutine definieren?

Bericht door Sven »

Ik werk nogal veel met subroutines (is dat hetzelfde als macro's in mach?).

De subroutines had ik tot nu toe vaak gedefinieerd in een bestand maar ben de meest gebruikte nu aan het herschrijven naar een losse subroutine.
Ik gebruik ook veel variabelen waarin de maten van het product gedefinieerd worden.

Dat doe ik nu vaak in hetzelfde bestand als waarin de subroutines staan en waarin ze ook aangeroepen worden.

Maar alles begint een beetje rommelig te worden.

Ik werk nu meestal met twee bestanden die voor een groot deel dezelfde variabelen gebruiken, die in elk bestand opnieuw gedefinieerd worden.

Zou het werken om alle variabelen in een externe subroutine te definiëren en die als eerste aan te roepen?

Dan zou ik dus in drie soorten bestanden werken:
- Een subroutine waarin de maten worden gedefinieerd
- een of meer bestanden met het programmeerwerk
- Een bestand waarin de subroutines worden aangeroepen
350 kilo 1250x1250 aluminium portaalfrees:
http://cnczone.nl/viewtopic.php?f=8&t=13039
Beginnen met CNC? Ontwerpen, bouwen, of toch kopen?
http://cnczone.nl/viewtopic.php?f=8&t=15481
Gebruikersavatar
DaBit
Donateur
Berichten: 11014
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: Gcode: Variabelen in subroutine definieren?

Bericht door DaBit »

In LinuxCNC: genummerde variabelen van 32 of meer zijn globaal, en textvariabelen die met een underscore beginnen. Die kun je rustig vanuit een andere sub zetten.

Dus OK is:
#1234 = 12.0
#<_gewenstelengte> = 100.0

Niet OK is:

#<gewenstelengte> = 100.0
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
Gebruikersavatar
Breaker
Donateur
Berichten: 1956
Lid geworden op: 26 mei 2015 22:43
Locatie: Nabij Antwerpen
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door Breaker »

Ervan uitgaand dat je de subroutines niet veranderd zou ik die inladen in het hoofdprogramma, en de programmeerwerk programma's ook. Dit hoofdprogramma definieert dan je werkstuk, kan je ook nog extra informatie in kwijt tussen de stappen.

In dit hoofdprogramma kunnen de variabelen gezet worden, met een vaste waarde, of ingegeven worden met een routine of zelfs via een keuzelijstje.
Zo kan je altijd terug vinden met welke waarden een werkstuk is gemaakt. Zelfs als er meer bewerkingsstappen nodig zijn zou ik die vanuit een hoofdprogramma aanroepen, zodat van daaruit duidelijk is welke bewerkingen met welke waarden gedaan zijn.

Code: Selecteer alles

*** werkstuk programma ***

laad alle subroutines uit het subroutinebestand;

*** met hierin:
*     cirkel
*     vierkant
*     rechthoek
***

*** definieer variabelen vast , of, maak een routine om per keer de waarden aan te passen, of, een keuzelijstje ***

* vast *
rond = 4;
breedte = 5;
lengte =  6;

* of variabel * 
input rond;
input breedte;
input lengte;

* of keuzelijstje *
maatvoering 1 (
  rond = 4;
  breedte = 5;
  lengte =  6; )

maatvoering 2 (
  rond = 1;
  breedte = 2;
  lengte =  10; )

input maatvoering;

*** begin programmeerwerk programma 1, kan ook aangeroepen worden ***
standaard begin dingen;
sub cirkel (rond);
aangepaste bewerking dingen;
sub vierkant (lengte);
nog meer aangepaste bewerking dingen;
sub rechthoek (lengte , breedte);
standaard eind dingen;

*** begin programmeerwerk programma 2, kan ook aangeroepen worden ***
standaard begin dingen;
sub cirkel (rond);
aangepaste bewerking dingen;
sub cirkel (rond);
standaard eind dingen;

*** klaar! ***
Dat doorgeven van variabelen aan aangeroepen programma's gaat wel eens lastig afhankelijk van de taal, dus daar moet je misschien nog wat specifieker in worden.
Geduld is een schone zaak, frezen niet...
Gebruikersavatar
Sven
Berichten: 5985
Lid geworden op: 24 sep 2008 09:13
Locatie: Arnhem
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door Sven »

Dank voor het meedenken mannen, dat geeft me een boel duidelijkheid, ook mbt wat nou eigenlijk het probleem is ;)

Ik realiseer me nu dat het misschien nog makkelijker kan:

Alles in een bestand:
Eerst alle subroutines definiëren
Dan de variabelen
Dan de subroutines aanroepen.

Mijn voornaamste probleem was dat de subroutines samen zo lang werden dat ik me soms het apezuur scrolde.
Maar volgens mij (even uitproberen...., ja dat kan) werkt bovenstaande methode ook.

Nu kan ik alle code in hetzelfde bestand gaan plaatsen en ook controleren of de ene codeset op de andere aansluit.

Dat was waar mijn vraag begon, ik gebruik tot nu toe twee sets code, voor elke frees 1, dat kan ik nu gaan samenvoegen, eh, denk ik...

Al blijft het erg opletten in welk stadium van het proces ik ben. Afgelopen vrijdag ook weer een onderdeel voor de tweede keer hetzelfde gaan frezen terwijl het freesje al gewisseld was...
Alhoewel... We gaan er mee verder!
350 kilo 1250x1250 aluminium portaalfrees:
http://cnczone.nl/viewtopic.php?f=8&t=13039
Beginnen met CNC? Ontwerpen, bouwen, of toch kopen?
http://cnczone.nl/viewtopic.php?f=8&t=15481
Gebruikersavatar
Breaker
Donateur
Berichten: 1956
Lid geworden op: 26 mei 2015 22:43
Locatie: Nabij Antwerpen
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door Breaker »

Hopelijk met een kleiner freesje dan...
Geduld is een schone zaak, frezen niet...
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door hugo stoutjesdijk »

Als je een 'hoofdprogramma' hebt waar alle gebruikte frezen in aangeroepen worden, met stops voor gereedschapwissel en lengte meting dan kan het juist niet fout gaan.
T2M6 > machine stopt, Sven wisselt gereedschap, drukt op start en machine gaat weer verder in z'n programma (hopelijk wel met een automatische lengtemeet routine).
Logisch zou kunnen zijn dat je dan een onder programma aanroept wat de bewerking voor die frees doet, maar daar zijn vele varianten voor te verzinnen afhankelijk van product en aanpak.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Sven
Berichten: 5985
Lid geworden op: 24 sep 2008 09:13
Locatie: Arnhem
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door Sven »

@Hugo, ja, dat was mijn "Alhoewel..."
Maar toch, ik moet er erg bij blijven opletten, de ene keer doe ik een paar stuks alleen de eerste frees en dan diezelfde paar met de tweede frees een andere bewerking, maar ook wel eens een enkel exemplaar in een oplage van 1.

Juist bij dat door elkaar gebruiken gaat het nog wel eens mis.

@Breaker, nope, eerst met v-groef, daarna met rechte frees hetzelfde pad, NA het omkeren van het werkstuk.
Maar daarna ging er nog wat mis dat toch weer goed kwam en het was een proefserie, dan hoort het er allemaal bij.

Edit: Krek, ik zie net dat ik met dit draadje de 4000 posts heb gehaald. (Schenkt een toetje in) Proost!
350 kilo 1250x1250 aluminium portaalfrees:
http://cnczone.nl/viewtopic.php?f=8&t=13039
Beginnen met CNC? Ontwerpen, bouwen, of toch kopen?
http://cnczone.nl/viewtopic.php?f=8&t=15481
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door hugo stoutjesdijk »

Ik zet toch wel heel vaak gewoon in tekst een omschrijving achter de frees. De concentratie verslapt soms wel eens als je 30 stuks staat te maken. En dan is een geheugensteuntje toch wel makkelijk.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Sven
Berichten: 5985
Lid geworden op: 24 sep 2008 09:13
Locatie: Arnhem
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door Sven »

Doe ik ook, maar hier is een van de verfijnde wetten van Murphy van toepassing:

Als er 10 manieren zijn om iets fout te doen, en je sluit ze allemaal uit, dan duikt er meteen een elfde manier op waarop het toch weer fout kan gaan.

Maar goed, jij hebt natuurlijk een routine in cnc frezen die ik nooit meer kan inhalen ;) (S. Doet diepe buiging)
350 kilo 1250x1250 aluminium portaalfrees:
http://cnczone.nl/viewtopic.php?f=8&t=13039
Beginnen met CNC? Ontwerpen, bouwen, of toch kopen?
http://cnczone.nl/viewtopic.php?f=8&t=15481
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Gcode: Variabelen in subroutine definieren?

Bericht door hugo stoutjesdijk »

Sven schreef: 18 dec 2018 09:26 Doe ik ook, maar hier is een van de verfijnde wetten van Murphy van toepassing:

Als er 10 manieren zijn om iets fout te doen, en je sluit ze allemaal uit, dan duikt er meteen een elfde manier op waarop het toch weer fout kan gaan.
dat komt omdat Murphy niet kan tellen :lol:
Maar goed, jij hebt natuurlijk een routine in cnc frezen die ik nooit meer kan inhalen ;) (S. Doet diepe buiging) 8)
Buigen lijkt me overdreven, en ervaring doe je alleen op door af en toe echte fouten te maken. Ook al waren die niet altijd te voorkomen geweest, en ook niet zodanig dat het direct verwijtbaar was.
Ik wil er niet eens over nadenken wat de reële kosten (voor werkgevers) zouden zijn geweest wanneer het echt berekend was.(*)
Maar je leert er ontzettend veel van.
M'n eigen machine heeft ook wel wat handtekeningen hoor. ;-)

* Best een leuk verhaal om die allemaal achter elkaar te hangen. :lol:
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Plaats reactie