Makro kaivertaa numeron joka on tallennettu paristovarmennettuun muuttujaan #500. Muuttujan #500 arvon voi tallentaa esimerkiksi MDI tilassa (#500=1). Ohjelmassa tulee myös muokata muuttujan #500 arvoa, sillä itse makro ei muuta sitä.

Näytä koodi (tekstitiedosto)

Argumentti Muuttuja Kuvaus
H.. #11

Numeroiden korkeus (mm)

X.. #24

Ensimmäisen numeron x-sijainti

Y.. #25

Ensimmäisen numeron y-sijainti

Q.. #17

Turvataso (absoluuttinen z-koordinaatti)

R.. #18

Nostotaso (absoluuttinen z-koordinaatti)

Z.. #26

Kaiverrussyvyys (absoluuttinen z-koordinaatti)

F.. #9

Kaiverrussyöttö, mm/min

E.. #8

Poraussyöttö, mm/min

  #100

Numeroiden lukumäärän laskuri

  #101

Kaiverrettava numero

  #102

Kaiverrettava eritelty numero

  #103

Käännetty kaiverrettava numero

  #500

Sarjanumeron muistipaikka

Argumenttia A käytetään vain jos makroa muokataan niin että makro ei lue kirjoitettavaksi numeroksi muuttujaa #500, vaan argumentin A (paikallinen muuttuja #1). Makrosta tulee korvata rivi #101=#500 rivillä #101=#1

Numeron x- ja y-sijainnin paikka on numeron vasemmassa alakulmassa. Numeroiden leveys on 60% numeron korkeudesta (pois lukien numero 1) ja numeroiden välistys on 80% numeron korkeudesta.

Mallinumerot:

Muuttujat #100-#103 ovat makron käyttämiä tilapäisiä numeroita. Huomattavaa on että makro tallentaa arvoja näihin muuttujiin, joten muuttujien arvo ei säily muualla. Näitä muuttujia voidaan kuitenkin käyttää muualla ilman että se haittaa tämän makron suorittamista.

Esimerkki 1: 

G65 P6300 H5.0 X57.0 Y-32.5 Q20.0 R2.0 Z-0.1 F200.0 E75.0
#500=#500+1

Kaiverretaan 5mm korkea sarjanumero (luetaan muuttujasta #500) alkaen koordinaateista X57 ja Y-32.5. Turvataso on Z20 (abs),.nostotaso Z2 (abs) ja kaiverruksen syvyys Z-0,1 (abs). Kaiverrussyöttö on 200 mm/min, poraussyöttö 75 mm/min. Muuttujan #500 arvoa lisätään yhdellä, jolloin seuraavaan kappaleeseen kaiverretaan seuraava numero.

Esimerkki 2:

G65 P6300 A573.0 H3.0 X4.0 Y10.0 Q6.0 R3.0 Z-0.05 F300.0 E90.0

Kaiverretaan 3mm korkea numero 573 alkaen koordinaateista X4 ja Y10. Turvataso on Z6 (abs),.nostotaso Z3 (abs) ja kaiverruksen syvyys Z-0,05 (abs). Kaiverrussyöttö on 300 mm/min, poraussyöttö 90 mm/min. Tämä edellyttää että makroa on muokattu lukemaan argumentti A.
 

Koska ei tiedetä miten monta numeroa kaiverrettavassa numerossa on, numerot tulee lukea viimeisestä ensimmäiseen (esim. 1234, viimeinen numero on 4, ensimmäinen 1). Aina kun viimeinen numero on luettu, se katkaistaan pois luettavasta numerosta (esim. luetaan 1234, 4 poistetaan, joten seuraavaksi luetaan 123). Kun jäljellä olevan numeron luettavan arvo on nolla, tiedetään numerolaskurista kuinka monta numeroa kaiverrettava numero sisältää. Tällä ohjelmalla ei voi kaivertaa nolla-alkuisia numeroita (esim. 0001 kaiverretaan 1).

Koska numerot luetaan viimeisestä ensimmäiseen, tulee kaiverrettava numeron järjestys kääntää, jolloin luettaessa numeron uudestaan kaiverretaan ensin ensimmäinen numero. Numeron käsittely on myös helpompaa kun se luetaan tässä järjestyksessä. Viimeinen numero voidaan helposti irrottaa kymmenlukujärjestelmässä kun luku jaetaan kymmenellä, silloin jakojäännös kertoo mikä viimeinen luku on (n MOD 10).

Näytä koodi (tekstitiedosto)