Kennismaking met macro's in USBCNC

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

Moderator: Moderators

Gebruikersavatar
Erik
Berichten: 1402
Lid geworden op: 21 jan 2007 21:04
Locatie: Den Haag
Contacteer:

Kennismaking met macro's in USBCNC

Bericht door Erik »

Voor degene die nog niet met macro's in USBCNC heeft gewerkt hier ter kennismaking een klein voorbeeldje.

Kopieer en plak onderstaande code in het bestand macro.cnc in je USBCNC directory.
Start USBCNC.
F2 (of knop reset).
F6 (of knop MDI) en toets; gosub cirkel en toets ENTER
Er gebeurt niets! 8) dacht je.
Toets F1 (of knop Run/Pauze).
Tada, een invulschermpje.

Nu goed opletten, dit stukje code gaat ervan uit dat de bovenkant materiaal = Z0. Toets de gewenste gegevens in. De hartcoordinaten van je cirkel, de radius van je cirkel etc. Het freesje gaat lopen aan de binnenkant van de cirkel, als het freesje groot genoeg is t.o.v. de cirkel ontstaat er dus een kamertje. Ik heb dit speciaal geschreven om boutkoppen of moeren te laten verzinken. Dit komt bij mij vrij veel voor, een macro is dan handiger dan telkens een tekening te maken.

Als alle gegevens zijn ingevuld toets ENTER of o.k., de frees begint nu onmiddellijk te bewegen, eerst naar Z1 en vervolgens naar het hart van de cirkel.
Nu weer een invulschermpje ter controle van de hartcoordinaten van de cirkel, 0 = niet o.k, 1 = o.k.. Als 1 is ingetoetst begint onmiddellijk het frezen.

Code: Selecteer alles

sub cirkel
DlgMsg "Voer gegevens in bovenkant werkstuk = Z0" Xhartcirkel 50 Yhartcirkel 51 Cirkelradius 52 Freesdiameter 53 Diepte 54 Zstap 55 Feed 56
msg "Beweeg naar veilige hoogte"
G17
G61
G01 Z1
msg "Beweeg naar hart cirkel"
G01 x[#50] Y[#51] F[#56]
DlgMsg "Coordinaten o.k.? Toets 0 of 1" Jaofnee 57
If [#57 == 0]
gosub cirkel
endif
msg "Beweeg naar indaalpunt"
#58 = [#53 / 2]
#59 = [#50 + #52 - #58]
#60 = [0 - #55]
#61 = [#50 - #52 + #58]
#62 = [0 - #61]
#63 = [0 - #52 + #58]
#64 = [0 - #54]
#65 = [#52 - #58]
while [#60 >= #64]
G01 X[#59] Y[#51] F[#56]
G01 Z[#60] F20
msg "Frezen van cirkel"
G2 X[#61] Y[#51] I[#63] F[#56]
G2 X[#59] Y[#51] I[#65] F[#56]
#60 = [#60 - #55]
endwhile
G01 Z1
G01 x[#50] Y[#51] F[#56]
gosub uit
endsub

sub uit
msg "Bewerkingen klaar"
M5
M2
endsub
Zoals je ziet stelt de code eigenlijk niet veel voor. Het is een mix van standaard programmeercode, gcode en variabelen. De programmeercode kent maar enkele instructies, dit zijn de belangrijkste; if-else-endif, while-endwhile, sub-endsub, gosub, Msg, DlgMsg. Lekker weinig om het niet te ingewikkeld te maken maar genoeg om alle klusjes aan te kunnen. In de manual van USBCNC is alles terug te vinden.

Het gebruik van de voorbeeldcode is voor eigen risico. Veel plezier ermee. Als je zelf al dergelijke macro's hebt staan zet ze dan in dit topic neer, dan hebben anderen er ook wat aan.
Gr.

Erik
Gebruikersavatar
create
Berichten: 1922
Lid geworden op: 11 jan 2007 00:15
Locatie: Volendam
Contacteer:

Re: Kennismaking met macro in USBCNC

Bericht door create »

Geweldig Erik,

Ik heb er een sticky van gemaakt. Dan blijft hij bovenaan staan en raakt deze niet weg.
Als andere hier een marco plaatsen en in een andere post hierover gaan praten dan raakt deze topic ook niet "bevuild"

Mooi werk!

gr Create
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13371
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arie Kabaalstra »

Erik,

jij bent dus al net zo bezig als ik, ik heb inmiddels 15 Kb aan Cycli voor ronde en rechthoekige kamers, sleuven, tappen, vlakfrezen boren en ruimen..

even nog een hintje: de variabelen 4000 tot en met 4999 worden bij het afsluiten van USBCNC in de INI opgeslagen, en hebben de volgende keer dat je USBCNC opstart nogsteeds de zelfde waarde..

dit kan handig zijn bij "defaults" zoals bijvoorbeeld veilige hoogte, die staat dan al goed.
Op mijn werk heb ik op de draaibank ook al zulke dialoogjes aangemaakt voor standaard draaibewerkingen zoals buitendraaien, binnendraaien, vlakken, en schroefdraadsnijden binnen en buiten..

Nog een Hint!.. in de laatste releases van USBCNC zitten in het F11 scherm knoppen die gekoppeld zijn aan subs in de macro.., je kunt daar zelf een Macrootje in frommelen, en zelf het icoontje aanpassen..

op die manier kun je van USBCNC een Teach-in besturing maken..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13371
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arie Kabaalstra »

Ik zat net door je Code te grasduinen.. en ik vond een leuke..

Code: Selecteer alles

If [#57 == 0]
gosub cirkel
je foutdetectie.. als #57 == 0, dan stuitert ie terug naar de beginregel..eigenlijk nooit geweten dat je een sub ook vanuit die sub kon aanroepen.. heb ik zelf nog nooit toegepast..
Arian
Berichten: 622
Lid geworden op: 18 nov 2007 17:48
Locatie: Hilversum
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arian »

erik.

ziet er mooi uit,ik wil het probeeren,ik zet de macro in het mapje waar al een macro in zit van het homen en nog veel meer.
is dat de goed map.
ik heb hem daar in gezet,en dan in de mdi op geroepen.dan op f1 en dan gebeurt er niks.
weet je wat ik niet goed doe,
ik wil het ook graag leeren schijven,van daar.

Arian
Gebruikersavatar
serum
Berichten: 5396
Lid geworden op: 08 mar 2008 20:37
Locatie: Zwolle

Re: Kennismaking met macro's in USBCNC

Bericht door serum »

Je moet deze regels kopieren en plakken in de bestaande macro, nadat je deze regels hebt toegevoegd moet je usbcnc opnieuw opstarten.
Arian
Berichten: 622
Lid geworden op: 18 nov 2007 17:48
Locatie: Hilversum
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arian »

Oke gedaan het werkt,super.

Arian
Arian
Berichten: 622
Lid geworden op: 18 nov 2007 17:48
Locatie: Hilversum
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arian »

erik,

waar heel je de gegeven van daan om een macro teschijfen.

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

Re: Kennismaking met macro's in USBCNC

Bericht door Arie Kabaalstra »

Arian,

Een macro is niet meer of minder dan een "Gewoon" programma voor USBCNC, alleen door met een Dialoogje te werken, en de waarden voor X-, Y- e n Z-as met # parameters aan te duiden kun je het programma "intelligent" maken.

je kunt ook programma's die je heel veel gebruikt in de macro.cnc zetten, in een sub die aan een F-toets is toegewezen, op die manier hoef je 't programma niet eens meer te laden
Gebruikersavatar
Mcgyver
Berichten: 4048
Lid geworden op: 08 jun 2007 17:45
Locatie: Ridderkerk

Re: Kennismaking met macro's in USBCNC

Bericht door Mcgyver »

iK denk dat zn vraag is waar je de basis kennis vandaan haalt om zelf te beginnen met zo'n macro..

Dus hoe begin je met zo'n macro te schrijven hoe bouw je het op en hoe roep je het aan...

Das wellicht een leuke tutorial in dit topic
Zoals het freesje thuis freest, freest het nergens...
Arian
Berichten: 622
Lid geworden op: 18 nov 2007 17:48
Locatie: Hilversum
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arian »

Mcgyver,

je heb het bij het goed end.
Arie.wil jij een topik starten hoe je een macro moet beginnen.
en wat dingetje uit leggen,is het een idee Arie

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

Re: Kennismaking met macro's in USBCNC

Bericht door Arie Kabaalstra »

Ik kan wel eens wat grappige dingetjes en mogelijkheden eruit lichten..

eigenlijk is programmeren ( in welke taal dan ook ) niets anders dan een reeks voorwaarden en instructies en wat controles of aan die voorwaarden wordt , of is voldaan.. ( en hier begint zich al een inleiding te vormen.. )

ik ga er even diep over nadenken.. maar dat topicje gaat er wel komen..
Gebruikersavatar
serum
Berichten: 5396
Lid geworden op: 08 mar 2008 20:37
Locatie: Zwolle

Re: Kennismaking met macro's in USBCNC

Bericht door serum »

Zou fijn zijn Arie.. ondertussen heb ik met de code van Erik lopen kopieren/plakken en ben op deze peck-drill macro uitgekomen; (ook weer voor eigen risico.. :)

er kan iets onhandigs in staan, ik heb dan ook de ballen verstand van programmeren..

Code: Selecteer alles

sub peck
DlgMsg "voer gegevens in" X_hart_boorgat 50 Y_hart_boorgat 51 Diepte 54 Peckdiepte 55 Feed 56 VeilgeZ 57
msg "Beweeg naar gekozen coordinaten"
G17
G61
G0 Z[#57]
msg "Beweeg naar hart boorgat"
#58 = [0 - #54]
G0 X[#50] Y[#51]
DlgMsg "Coordinaten o.k.? Toets 1=Ja of 0=Nee" JaNee 90
If [#90 == 0]
gosub peck
endif
G01 Z[#57] X[#50] Y[#51] F[#56]
msg "Peckdrill gat"
G83 Z[#58] R0 Q[#55] F[#56]
G01 Z[#57]
DlgMsg "Nog een gat boren? Toets 1=Ja of 0=Nee" JaNee 91
If [#91 == 1]
gosub peck
endif
endsub
Arian
Berichten: 622
Lid geworden op: 18 nov 2007 17:48
Locatie: Hilversum
Contacteer:

Re: Kennismaking met macro's in USBCNC

Bericht door Arian »

serum.

Dat heb je snel gedaan,hij werkt goed.

Arian
Plaats reactie