Het "Bouwen" van Macro's voor USBCNC

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

Moderator: Moderators

Plaats reactie
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: 09 okt 2021 15:15 '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..

Dank voor het compliment 8) Voor wat betreft de Tooltabel, met een Sorotec machine ben ik ook eerst maar van start gegaan met de Sorotec macro en dus zonder het gebruik van de Tooltabel. Ik probeerde mijn #1000 series van variabelen al wel een beetje gelijk te houden met de Eding variabelen, maar spot nu net het verschil tussen #5009 radius en mijn #1209 diameter. Misschien mijn macro voor consistentie daarop nog maar even aanpassen.

Verder werkte de macro prima, maar heb ik nog wel een paar kleine aanpassingen gedaan:
  • eerst een G0 G53 Z0 voordat ik naar de G0 X0 Y0 van het werkstuk ga (ik stond op machine coördinaten X0 Y0 en met het draaien van de macro miste ik op een haar na mijn tool length sensor
  • na afloop nog even naar Z-Safe
  • en ik heb je M100, M101 opgenomen in de macro, dus hoewel je in de macro uitgaat van genulde werkstuk coördinaten, sla ik aan het begin via M100 ze alsnog op om na afloop van de macro met M101 terug te keren naar de opgeslagen X- en Y-coördinaten. In mijn M101 gaat de machine standaard naar G0 G53 Z0. Of dat allemaal nodig, handig is kom ik bij volgende macro's wel achter.
Verder wil ik de macro nog uitbreiden voor een scheef te plaatsen werkstuk, waarbij het vlakken nog evengoed in de lengterichting van het werkstuk gaat plaatsvinden. Dit als voorbereiding op een gitaarhals die ik alleen diagonaal op mijn machine kwijt kan. :idea: Leuk!
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

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

Bericht door Arie Kabaalstra »

Perkeo schreef: 09 okt 2021 16:55 en ik heb je M100, M101 opgenomen in de macro, dus hoewel je in de macro uitgaat van genulde werkstuk coördinaten, sla ik aan het begin via M100 ze alsnog op om na afloop van de macro met M101 terug te keren naar de opgeslagen X- en Y-coördinaten. In mijn M101 gaat de machine standaard naar G0 G53 Z0. Of dat allemaal nodig, handig is kom ik bij volgende macro's wel achter.
M100 / M101 heb ik specifiek geschreven voor op de draaibank.. als je start op een positie waar je zonder botsingsgevaar gereedschap kan wisselen, keert ie altijd terug naar die positie.

Op mijn Machine (de Beagle) heb ik G28 en G30 opgeslagen als handige coordinaten:

G28 is "kop omhoog, Tafel middenvoor, zodat je makkelijk werkstukken kan wisselen, of meten.
G30 is Machinereferentiepunt.. daar parkeer ik de machine als ik em afsluit.. zodat ik de volgende sessie meteen kan refereren..

Ik heb mezelf aangeleerd, Start van een programma: aanlopen op een veilige hoogte over 3 assen, spindel starten, naar veiligheidsafstand, bewerken..
Eind van het programma: na bewerking terug naar veilige hoogte, spindel uit.. G28 M2 (of op de draaibank M101 M2)

die veilige afstand, dat hangt een beetje af van de machine en het werk.. op de "Bridgeport van de zaak" vroeger hield ik het op 50 mm, op mijn Beagle hou ik het op 20 mm, en op HELE grote machines, zoals een Kiheung bedfrees.. hield ik 100 mm aan..
Perkeo schreef: 09 okt 2021 16:55 Verder wil ik de macro nog uitbreiden voor een scheef te plaatsen werkstuk, waarbij het vlakken nog evengoed in de lengterichting van het werkstuk gaat plaatsvinden.
Als je werk onder een hoek plaatst.. doe je eerst de meting voor de rotatie.. anders ga je de mist in..
'k heb dat in het verleden vaak genoeg gedaan.
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: 09 okt 2021 22:08 M100 / M101 heb ik specifiek geschreven voor op de draaibank.. als je start op een positie waar je zonder botsingsgevaar gereedschap kan wisselen, keert ie altijd terug naar die positie.
Dat had ik inderdaad gelezen, dat je het op je draaibank gebruikt. Goed te horen dat je op een portaalfrees voldoende hebt aan de twee G28 en G30 parkeerposities. Ik heb eerst ook maar een aantal zaken aangenomen en/of gekopieerd zonder direct altijd de 'big picture' te overzien. Echter tegen die tijd ben je alweer veel tips/trucs die je hebt gelezen kwijt. Ik zal eens twee mooie G28 en G30 locaties voor mijn CNC bedenken.
Arie Kabaalstra schreef: 09 okt 2021 22:08 Als je werk onder een hoek plaatst.. doe je eerst de meting voor de rotatie.. anders ga je de mist in..
'k heb dat in het verleden vaak genoeg gedaan.
Hmm, na zoeken op rotatie en Gcode kwam ik op de G68 en G69. Als ik het goed begrijp moet dat dus de basis van de aangepaste macro worden? Werkstuk nulpunt en rotatie vaststellen, dan het coördinatenstelsel met G68 roteren en dan kan je vanaf een X0 met G1 X200 gewoon diagonaal langs het schuin geplaatste werkstuk lopen? Dat klinkt vooralsnog erg eenvoudig?! ;-)
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: 09 okt 2021 23:20 dan het coördinatenstelsel met G68 roteren en dan kan je vanaf een X0 met G1 X200 gewoon diagonaal langs het schuin geplaatste werkstuk lopen? Dat klinkt vooralsnog erg eenvoudig?! ;-)
En er even aan denken dat het een goede gewoonte is om na een rotatie van het assenkruis altijd zowel X als Y naar een positie te laten bewegen.
G0 X... Y...
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
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: 10 okt 2021 08:17 En er even aan denken dat het een goede gewoonte is om na een rotatie van het assenkruis altijd zowel X als Y naar een positie te laten bewegen.
G0 X... Y...
Waarom zou je dat doen?..

als je de boel geroteerd hebt, dan worden alle asbewegingen geroteerd., alleen wanneer je met de hand verplaatst, dan beweegt de machine niet onder de ingestelde hoek..
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 »

Arie Kabaalstra schreef: 10 okt 2021 11:40
hugo stoutjesdijk schreef: 10 okt 2021 08:17 En er even aan denken dat het een goede gewoonte is om na een rotatie van het assenkruis altijd zowel X als Y naar een positie te laten bewegen.
G0 X... Y...
Waarom zou je dat doen?..
Ga het uitproberen zou ik zeggen. Het lukt je vast om het een keer fout te laten gaan als je het niet doet. (is het niet met EdingCNC, dan gebeurt het wel een keer met een andere besturing)
En 'goede gewoonte' is alleen advies, je mag zelf weten wat je doet.
In hetzelfde rijtje als 'meten is weten'.

Goede gewoontes:
koppeling in als je de auto start, ook niet nodig, als de auto altijd in z'n vrij staat.
even simulatie doen als je een freesprogramma hebt geschreven, ook niet nodig als je nooit fouten maakt.
Even op het etiket kijken als je een fles uit het gootsteenkastje pakt.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
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 het getest, ik heb 't ook al gebruikt op mijn machine ( de Beagle).

als je het Assenkruis roteert, dan worden de X en Y as altijd volgens die rotatie verplaatst.
Als dat niet het geval is, dan is de Interpreter niet in orde.
Dus.. als je 45° roteert, en je programmeert G0 X10 vanaf X0 Y0, dan Gaat ie naar X10, en Y blijft 0..zet je de rotatie uit, dan zul je zien dat X en Y op 7.071 staan.

en dat zal zo zijn bij elke machine.. zo is het in elk geval bij elke machine waarbij ik rotaties heb toegepast (Brother HS-100, Mitsubishi DWC 200 H, Bridgeport VMC 800, en mijn Beagle.
Dus, bij de Heidenhain, Mitsubishi, Brother en EdingCNC besturingen gaat dat goed..

bij Joggen moet je wel opletten.. want als je X Jogged, dan verplaatst alleen de X motor de slede, en zie je de Y Coordinaten ook verlopen..

Hoe dat met Rotaties buiten XY ligt, dat weet ik niet..daar heb ik weinig ervaring mee. dat hangt ook af van de Kinematica als ik het goed begrepen heb.
in elk geval is het zo dat de Y-as niet meebeweegt bij mijn Beagle als ik A roteer, maar da's wel in te stellen naar wat ik begrepen heb.

Wat veel listiger is, sommige oudere besturingen (FADAL bijvoorbeeld) kunnen niet geinterpoleerd een IJlgangbeweging uitvoeren, als je van X0 Y0 naar X600 Y200 wilt, steekt ie eerst schuin over naar X200 Y200, om dan naar X600 te lopen.. moet je goed in de gaten houden als je vlak boven je werk staat, en er Kikkers op de lange kant van het werk staan (vraag me niet hoe ik dat weet)..
Gebruikersavatar
kawarider
Donateur
Berichten: 1669
Lid geworden op: 17 okt 2016 20:46
Locatie: Drongelen
Contacteer:

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

Bericht door kawarider »

bij Joggen moet je wel opletten.. want als je X Jogged, dan verplaatst alleen de X motor de slede, en zie je de Y Coordinaten ook verlopen..
Eigenlijk niet meer joggen, maar via mdi?

Hugo heeft zeker een punt. Ik ben hier regelmatig mee de mist in gegaan en durf het eigenlijk niet meer te gebruiken. Dan maar dxf opnieuw door sheetcam halen. Voelt wel als verliezen trouwens.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

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

Bericht door Arie Kabaalstra »

NIks mis met Joggen.. als je je werk onder een hoek opspant, en je assenkruis nog niet geroteerd hebt.. is het niet anders..

Als je aan het inmeten bent. moet je tenslotte ook nog joggen.. en als je na de rotatie nog moet meten op bepaalde plaatsen.. moet je ook nog Joggen..
Als je de locatie van die features kent, ja.. dan kun je die coordinaten ook in MDI ingeven, en daar naartoe bewegen. geen probleem toch?

als je met zoiets de mist in gaat.. dan ligt het toch echt aan de besturing.. want als je geroteerd bent, en je gaat in MDI naar een bepaalde coordinaat, dan moet de machine volgens de rotatie bewegen.. anders heeft die hele rotatie geen zin..
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 »

Dus omdat meneer Kabaalstra het nog niet meegemaakt heeft, bestaat het niet. :lol:

Als ik later met een voorbeeld kom dat het wel fout gaat zal er wel weer ander commentaar komen.....

Het blijft een goede gewoonte dat wanneer je aan het assenkruis rommelt, je de beweging daarna van 2 adressen (X en Y meestal) voorziet zodat beide assen aan de nieuwe situatie zijn aangepast. (En dat geld dus ook wanneer je middemin je programma van G54 overstapt op G55, dan zou ik ook de Z maar meepakken)
Arie Kabaalstra schreef: 10 okt 2021 23:01 Wat veel listiger is, sommige oudere besturingen (FADAL bijvoorbeeld) kunnen niet geinterpoleerd een IJlgangbeweging uitvoeren, als je van X0 Y0 naar X600 Y200 wilt, steekt ie eerst schuin over naar X200 Y200, om dan naar X600 te lopen.. moet je goed in de gaten houden als je vlak boven je werk staat, en er Kikkers op de lange kant van het werk staan (vraag me niet hoe ik dat weet)..
Logisch, G0 is het commando 'alle assen maximale snelheid' dat heeft niets met interpoleren te maken. Maar iemand met een beetje programmeer ervaring weet dat gewoon.

(ik heb daarom 3 ijlgang keuze's, G0 niet interpolerend, G0*1 met positioneer logica, dus als het eindpunt naar Z- beweegt, eerst XY en dan Z, als het eindpunt naar Z+ beweegt eerst Z en dan XY (reuze handig), en een G0*2 die lineair interpoleert (gebruik ik nooit))
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
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: 11 okt 2021 08:55 Dus omdat meneer Kabaalstra het nog niet meegemaakt heeft, bestaat het niet.
Dat is niet wat ik zeg.. als de een machine met een geroteerd assenkruis zich anders gedraagd dan wat ik beschreven heb.. dan deugt ie gewoonweg niet..

met G00 of G01 verplaats je gewoon naar de aangegeven coordinaat, ongeacht rotatie.. Punt uit.
hugo stoutjesdijk schreef: 11 okt 2021 08:55 Het blijft een goede gewoonte dat wanneer je aan het assenkruis rommelt, je de beweging daarna van 2 adressen (X en Y meestal) voorziet zodat beide assen aan de nieuwe situatie zijn aangepast.
Houdt je CAM software daar ook rekening mee dan?.. Nee... dat doet het niet.. als die programma's een beweging over 1 as uitgeven.. dan is dat dan ook in de code zo... en dat werkt gewoon goed.. klaar..
hugo stoutjesdijk schreef: 11 okt 2021 08:55 (En dat geld dus ook wanneer je middemin je programma van G54 overstapt op G55, dan zou ik ook de Z maar meepakken)
Da's een heel andere situatie.. en om eerlijk te zijn, ik heb dat nog nooit gedaan.
Zou ik zoiets doen.. dan is het simpel genoeg.. voor de wissel G00 G53 Z0 (of in elk geval hoog genoeg), dan de verplaatsing.. en opnieuw aanlopen.
hugo stoutjesdijk schreef: 11 okt 2021 08:55 Logisch, G0 is het commando 'alle assen maximale snelheid' dat heeft niets met interpoleren te maken. Maar iemand met een beetje programmeer ervaring weet dat gewoon.
Dat heeft NIETS met programmeerervaring te maken, maar met hoe oud je bent, of hoe oud de machines zijn waarmee je werkt.
ZeusCNC (de eerste besturing van de Beagle) deed het, Fadal doet het (maar dat was ook een oude machine), voor de rest heb ik het op geen enkele machine gezien.. zelfs op machines ouder dan die Fadal, loopt de IJlgang gewoon over de kortste weg, dus in een rechte lijn.. Cincinatti's doen't zo, Ferrari's doen't zo, Bridgeports (Heidenhain) doen't zo..bij Mazak is't volgens mij ook niet anders, Mitsubishi doet 't niet anders.. en mijn Brother.. zelfde verhaal.. en die is uit 1986, net als de EMCO Compact 5 CNC (die ook gewoon in één rechte lijn gaat)
Gebruikersavatar
kawarider
Donateur
Berichten: 1669
Lid geworden op: 17 okt 2016 20:46
Locatie: Drongelen
Contacteer:

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

Bericht door kawarider »

Arie Kabaalstra schreef: 11 okt 2021 00:18 NIks mis met Joggen.. als je je werk onder een hoek opspant, en je assenkruis nog niet geroteerd hebt.. is het niet anders..

Als je aan het inmeten bent. moet je tenslotte ook nog joggen.. en als je na de rotatie nog moet meten op bepaalde plaatsen.. moet je ook nog Joggen..
Als je de locatie van die features kent, ja.. dan kun je die coordinaten ook in MDI ingeven, en daar naartoe bewegen. geen probleem toch?

als je met zoiets de mist in gaat.. dan ligt het toch echt aan de besturing.. want als je geroteerd bent, en je gaat in MDI naar een bepaalde coordinaat, dan moet de machine volgens de rotatie bewegen.. anders heeft die hele rotatie geen zin..
Nou, aan de besturing zal het niet liggen, eerder het poppetje dat erachter staat. Het kwartje is bij nog niet gevallen. Of zou het inderdaad iets met besturing te maken hebben? Misschien is voor Aalburg binnenkort?
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 »

hugo stoutjesdijk schreef: 11 okt 2021 08:55 (ik heb daarom 3 ijlgang keuze's, G0 niet interpolerend, G0*1 met positioneer logica, dus als het eindpunt naar Z- beweegt, eerst XY en dan Z, als het eindpunt naar Z+ beweegt eerst Z en dan XY (reuze handig), en een G0*2 die lineair interpoleert (gebruik ik nooit))
Dat is wel een interessante! Mag ik vragen hoe je dit in de praktijk doet? Ik heb geen ervaring met "custom made Gcodes".

En hoe werk je met een niet interpolerende G0? Ik dacht ergens gelezen te hebben dat je met Eding werkt, deze software doet dit toch al standaard bij een G0?
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: 11 okt 2021 00:18 NIks mis met Joggen.. als je je werk onder een hoek opspant, en je assenkruis nog niet geroteerd hebt.. is het niet anders..

Als je aan het inmeten bent. moet je tenslotte ook nog joggen.. en als je na de rotatie nog moet meten op bepaalde plaatsen.. moet je ook nog Joggen..
Als je de locatie van die features kent, ja.. dan kun je die coordinaten ook in MDI ingeven, en daar naartoe bewegen. geen probleem toch?

als je met zoiets de mist in gaat.. dan ligt het toch echt aan de besturing.. want als je geroteerd bent, en je gaat in MDI naar een bepaalde coordinaat, dan moet de machine volgens de rotatie bewegen.. anders heeft die hele rotatie geen zin..
Onderstaande standaard code van Eding zit ook netjes in de Sorotec standaard macro gekopieerd en werkt inderdaad kinderlijk eenvoudig. In simulatie nu alvast uitgeprobeerd alsof ik mijn werkstuk scheef opgespannen heb. Jog naar b.v. X30, Y20 als dit mijn linkeronderhoek van het werkstuk is. Nul op het scherm mijn werkstuk (vervelend dat je MDI dan niet open mag staan, want dan werkt het nullen op mijn touchscreen niet, kwam ik ook pas na even achter,..).

Onderstaande macro starten en 1e punt met CTRL-G bevestigen.

Vervolgens naar een 2e punt op de scheve X-as van het werkstuk joggen en weer met CTRL-G het 2e punt bevestigen en dan staat mijn G68 al uitgerekend ingesteld. :P :P

Vervolgens kan ik al joggend mijn werkstuk lengte en breedte inmeten door af te lezen op de werkstuk coördinaten (oké, of simpel zelf opmeten) en mijn Facing macro draaien (BTW erg leuk om tussen machine en werkstuk coördinaten scherm van Eding heen en weer te schakelen en b.v. bij X-joggen bij de één alleen de X te zien ophogen (machine) en bij de ander zowel X als Y (werk).

Na afloop met G69 alles weer terug zetten naar normaal en klaar! :lol:

Daar ga ik dus mijn facing maro niet op aanpassen, dan kan ik beter de standaard functie en in Eding en mijn normale facing macro gebruiken.

De discussie hier moest ik soms wel even twee keer lezen voordat ik hem begreep, maar een stukje uitproberen in de simulatie van Eding maakt veel duidelijk. Binnenkort IRL in de schuur uitproberen of het daadwerkelijk zo werkt als in de simulatie! (maar waarom zou dit anders zijn?).

Arie, gaan we op de CNCzone dag nog meer Macro, GCode magie in een lezing van je horen?

Code: Selecteer alles

Sub zero_set_rotation
    msg "move to first point, press control-G to continue"
    m0
    #5020 = #5071 ;x1
    #5021 = #5072 ;y1
    msg "move to second point, press control-G to continue"
    m0
    #5022 = #5071 ;x2
    #5023 = #5072 ;y2
    #5024 = ATAN[#5023 - #5021]/[#5022 - #5020]
    if [#5024 > 45]
      #5024 = [#5024 - 90] ;points are in Y direction
    endif
    g68 R#5024
    msg "G68 R"#5024" applied, now zero XYZ normally"
Endsub
Plaats reactie