Deze GeoCache volgt de lunch wandeling van mij en mijn collegae waar noodzakelijke informatie voor de puzzel die bij deze cache hoort mee opgelost kan worden.
Aangezien wij op dagelijkse basis bezig zijn met het aansturen van CNC machines is dat het thema van deze cache.
CNC (Computer Numeric Control) machines zijn machines die door middel van een extern geprogrammeerd programma taken uitvoeren.
In dit geval betreft het specifiek een freesbank.
G-code is de meest gestandaardiseerde programmeertaal waarmee frees- en draaibanken worden aangestuurd en zo ook onze fictieve freesbank van deze cache.
De puzzel is een CNC-code welke de coördinaten van de eindlocatie graveren maar enkele cruciale afstanden missen in de code.
De CNC code
Onderstaande code is de puzzel. Bovenaan deze code missen de waarden van #100 t/m #105. De waarden die hier horen te staan worden later gebruikt om de getallen van het eindcoördinaat op hun plek te schuiven.
Schrik niet direct van de code onderaan de code staat nog uitleg over het lezen en interpreteren van de code.
Bovenstaande afbeelding is het resultaat van de eerste 127 regels code (tot aan G52 X#100 Y100.)
%
:0001 (GEOCACHE)
#100 =
#101 =
#102 =
#103 =
#104 =
#105 =
G17 G49 G54
G0 G91 G28 Z0
T1 (GRAVEERSTIFT)
M6 D1
S10000 M3
G90 G0 X10. Y10.
G43 G0 Z5. H1
Z1.
G1 Z-1. F400
Y50. F800
X30. Y10.
Y50.
G0 Z5.
X40. Y10.
Z1.
G1 Z-1. F400
X50. F800
G3 X60. Y20. I0. J10.
G1 Y30.
G3 X40. I-10. J0.
G1 Y50.
X60.
G0 Z5.
X80. Y10.
Z1.
G1 Z-1. F400
Y50. F800
X70. Y40.
G0 Z5.
X96.036 Y53.536
Z1.
G1 Z-1. F400
G3 I-2.5 J0. F800
G0 Z5.
X120. Y10.
Z1.
G1 Z-1. F400
X130. F800
G3 X140. Y20. I0. J10.
G1 Y30.
G3 X120. I-10. J0.
G1 Y50.
X140.
G0 Z5.
X160. Y10.
Z1.
G1 Z-1. F400
Y50. F800
X150. Y40.
G0 Z5.
X172.5 Y9.096
Z1.
G1 Z-1. F400
G3 X173.735 Y11.235 I-1.235 J2.139 F800
I-1.235 J0.
G0 Z5.
X360. Y10.
Z1.
G1 Z-1. F400
X340. F800
Y50.
X360.
G0 Z5.
X355. Y30.
Z1.
G1 Z-1. F400
X340. F800
G0 Z5.
X390. Y20.
Z1.
G1 Z-1. F400
G2 X370. I-10. J0. F800
G1 Y40.
G2 X390. I10. J0.
G1 Y20.
G0 Z5.
X420.
Z1.
G1 Z-1. F400
X400. F800
X415. Y50.
G0 Z5.
Y10.
Z1.
G1 Z-1. F400
Y30. F800
G0 Z5.
X426.036 Y53.536
Z1.
G1 Z-1. F400
G3 I-2.5 J0. F800
G0 Z5.
X470. Y10.
Z1.
G1 Z-1. F400
X450. F800
X468. Y34.
G3 X450. Y40. I-8. J6.
G0 Z5.
X500.
Z1.
G1 Z-1. F400
G3 X480. I-10. J0. F800
G1 Y20.
G0 Z5.
X500.
Z1.
G1 Z-1. F400
G3 I-10. J0. F800
G0 Z5.
X502.5 Y9.096
Z1.
G1 Z-1. F400
G3 X503.735 Y11.235 I-1.235 J2.139 F800
I-1.235 J0.
G0 Z5.
G52 X#100 Y100.
X230. Y-60.
Z1.
G1 Z-1. F400
G3 X210. I-10. J0. F800
G1 Y-80.
G0 Z5.
X230.
Z1.
G1 Z-1. F400
G3 I-10. J0. F800
G0 Z5.
G52 X0. Y0.
G52 X#101 Y100.
X260. Y-60.
Z1.
G1 Z-1. F400
X270. Y-50. F800
Y-90.
G0 Z5.
G52 X0. Y0.
G52 X#102 Y100.
X325. Y-50.
Z1.
G1 Z-1. F400
X310. Y-80. F800
X330.
G0 Z5.
X325. Y-90.
Z1.
G1 Z-1. F400
Y-70. F800
G0 Z5.
G52 X0. Y0.
G52 X#103 Y100.
X375. Y-90.
Z1.
G1 Z-1. F400
Y-70. F800
G0 Z5.
X380. Y-80.
Z1.
G1 Z-1. F400
X360. F800
X375. Y-50.
G0 Z5.
G52 X0. Y0.
G52 X#104 Y100.
X410. Y-90.
Z1.
G1 Z-1. F400
X430. Y-50. F800
X410.
G0 Z5.
X415. Y-70.
Z1.
G1 Z-1. F400
X425. F800
G0 Z5.
G52 X0. Y0.
G52 X#105 Y100.
X460. Y-50.
Z1.
G1 Z-1. F400
X480. F800
X460. Y-90.
G0 Z5.
X465. Y-70.
Z1.
G1 Z-1. F400
X475. F800
G0 Z5.
G52 X0. Y0.
M9
M5
M30
%
Uitleg
Om deze puzzel te kunnen oplossen is enige basiskennis van CNC ISO programmeren noodzakelijk. Aangezien de meeste cachers dat waarschijnlijk niet hebben volgt hieronder een hele korte uitleg over de gebruikte commando's in deze puzzel.
Ijlgangbeweging
G0 X... Y... Z...
Ijlgang is een snelle beweging naar de opgegeven X, Y en Z locatie. Deze bewegingen vinden altijd buiten het materiaal plaats! Hint Hint Hint...
Voedingsbeweging
G1 X... Y... Z... F...
Een rechtlijnige beweging naar een opgegeven XYZ coördinaat waarbij het gereedschap materiaal kan weghalen. Een G1 wordt uitgevoerd met de snelheid die opgegeven wordt met de F-waarde: G1 X100 F1000 is een rechtlijnige beweging naar X100 met een voeding van 1000mm/min. Merk op dat alleen voedingsbewegingen die uitgevoerd worden op een negatieve Z-waarde ook echt materiaal weghalen!
Bogen
G2 X... Y... I... J... F...
G3 X... Y...I... J... F...
De G2 is een boog met de klok mee en G3 is een boog tegen de klok in. Een boogbeweging wordt altijd vergezeld door een I en een J welke het middelpunt van de boog omschrijven gemeten vanaf het startpunt van de boog. De X en de Y vertegenwoordigen het eindpunt. Omdat een illustratie meer zegt dan 1000 woorden hieronder een plaatje:
Merk op dat alleen voedingsbewegingen die uitgevoerd worden op een negatieve Z-waarde ook echt materiaal weghalen!
Verplaatsingen
G52 X... Y...
Door middel van G52 kan het nulpunt tijdelijk verlegd worden met de opgegeven X en Y afstand.
Dit is het hart van deze puzzel alle getallen worden gegraveerd maar sommige staan niet op de juiste plek. Middels de G52 kunnen deze op de goede plaats komen te liggen.
#101 = 50
G52 X#101 Y100. (verplaats het nulpunt)
X260. Y-60.
Z1.
G1 Z-1. F400
X270. Y-50. F800
Y-90.
G0 Z5.
G52 X0. Y0. (heft de verplaatsing weer op)
In bovenstaande code worden alle coördinaten die uitgegeven worden na de G52 X#101 Y100. en voor deG52 X0. Y0. in de Y-richting 100 en in de X-richting met 50mm verschoven (50mm omdat #101=50).
De regel G52 X0. Y0. heft de verplaatsingen weer op.
Modaliteit
De meeste commando’s die hieronder uitgelegd worden zijn Modaal. Dat wil zeggen dat als ze eenmaal opgeroepen zijn blijven ze actief. Ze hoeven dus niet elke regel opnieuw uitgegeven te worden.
|
G0 X0 Y0 Z10
X100
Y50
G1 Z1 F1000
|
G0 X0 Y0 Z10
G0 X100 Y0 Z10
G0 X100 Y50 Z10
G1 X100 Y50 Z1 F1000
|
Bovenstaande linker en rechter code hebben beide hetzelfde resultaat.
Programma kop
De eerste regels bovenaan het programma worden gebruikt om eventuele instellingen te resetten en in dit geval om een gereedschap te kiezen.
G17 G49 G54
G0 G91 G28 Z0
T1 (GRAVEERSTIFT)
M6 D1
S10000 M3
G90 G0 X10. Y10.
G43 G0 Z5. H1
Bovenstaande regels zijn voor het oplossen van de puzzel eigenlijk niet relevant maar noodzakelijk voor de echte machine. Het enige wat hier belangrijk is om te zien is dat het gereedschap hier op X10 Y10 Z5 eindigt.
Voorbeeld
Hieronder een klein voorbeeld om je op weg te helpen:
G0 X470. Y10.
Z1.
G1 Z-1. F400
X450. F800
X468. Y34.
G3 X450. Y40. I-8. J6.
G0 Z5.
Deze code vertegenwoordigd het getal 2.
De Cache
De cache is alleen te benaderen vanuit het noorden!!!
Je kunt de antwoorden van de puzzel controleren op GeoChecker.com. Merk op dat het 004 moet zijn en niet 4!