G-kod med parametrar.

Robot, CNC, Pneumatik, Hydraulik, mm
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

G-kod med parametrar.

Inlägg av gustav t »

Tjenare!

Gustav heter jag, är utbildad maskinsnickare och jobbar på litet snickeri här på västkusten. Vi tillverkar dörrar och har specialiteret oss på den exlusiva marknaden. Kunden ritar - vi bygger.
Detta betyder att det sällan är två objekt som är lika och har samma mått. Om vi då vill köra dörrarna i CNCn betyder det att vi får göra ett nytt program till varje dörr.

Och nu till problemet/frågan....

Den cncn som detta handlar om är en Hullhorst NUM 750F, sen 80-talare.
http://img2.putfile.com/main/11/31511542433.jpg
http://img2.putfile.com/main/11/31511542599.jpg
http://img2.putfile.com/main/11/31511542563.jpg

För att göra programmet använder vi Autocad med ett pluggin som heter Cambal som gör G-koden. G-koden skulle jag tro är vanlig standard (iso), eller någon som vet om det är det??

Ett prov på hur ett program kan se ut...

(STOMME 10X21 V)
(990111)

N10 M110
N20 M21
N30 L0=2015.000(HOJD)
N40 L1=913.000(BREDD)
N50 L2=65.000(TJOCKLEK)
N60 G59 X0.0 Y0.0 Z0.0
N70 G0 G52 Z35.0 M50 T100
N80 (SPINDLE 1)
N90 T6 D6
N100 M3 M40 M51 S10300
N110 F6000 M100
N120 G0 G52 Z35
N130 G0 X-171.329 Y1087.262
N140 G1 Z11.000
N150 G1 G42 X0.000 Y1087.262
N160 G1 X0.000 Y20
N161 F2000
N170 G1 X0.000 Y-20
N171 F6000
N180 G1 X0.000 Y-150
N190 G0 G40 G52 Z35 M50
N210 G59 X0.0 Y0.0 Z0.0
N230 (SPINDLE 1)
N240 T2 D2
N250 M3 M40 M51 S10300
N260 F6000 M100
N270 G0 X2153.846 Y-150
N280 G1 Z11.000
N290 G1 G42 X2015.000 Y-150
N300 G1 X2015.000 Y890
N201 F2000
N310 G1 X2015.000 Y933
N311 F6000
N320 G1 X2015.000 Y1070
N330 G0 G40 G52 Z35 M50
N340 G0 X2162.587 Y1070
N350 G59 X0.0 Y0.0 Z0.0
N360 G0 G52 Z35.0 M50 T100
N370 (SPINDLE 1)
N380 T4 D4
N390 M3 M40 M51 S10300
N400 F6000 M100
N410 G1 Z11.000
N420 G1 G42 X2162.587 Y913.000
N430 G1 X20 Y913.000
N431 F2000
N440 G1 X-20 Y913.000
N441 F6000
N450 G1 X-175.699 Y913.000
N460 G0 G40 G52 Z35
N470 G0 X-175.699 Y-119.835
N480 G1 Z11.000
N490 G1 G42 X-175.699 Y0.000
N500 G1 X1995 Y0.000
N501 F2000
N510 G1 X2035 Y0.000
N511 F6000
N520 G1 X2190 Y0.000
N530 G0 G40 G52 Z35 M50
N550 L3=250.000(X-POS)
N560 L4=913.5 (Y-POS)
N570 L5=22.200(Z-POS)
N580 G77 H501
N590 L3=1465.300(X-POS)
N600 L4=912.7 (Y-POS)
N610 L5=22.300(Z-POS)
N620 G77 H501
N630 L3=1815.000(X-POS)
N640 L4=912.7 (Y-POS)
N650 L5=22.300(Z-POS)
N660 G77 H501
N670 G0 G40 G52 Z35 W0
N680 T100
N690 L3=1055.500(X-POS)
N700 L4=0.000(Y-POS)
N710 L5=34.0(Z-POS)
N720 G77 H101
N721 L3=0
N722 L4=0
N723 L5=0
N724 G77 H8250
N721 G59 X0 Y0 Z0
N730 G0 X-100 Y1200
N740 M50 T100
N750 M111
N760 M2


Detta program gör en dörr som har måtten 2015 x 913mm. Ropar dessutom upp en del underprogram till gångjärn och låskista.

Här följer ett exempel på ett program där det kanske är lite lättare att förstå vad jag vill, eller lättare att förklara vad jag menar.

(9X21)

N10 M110
N20 M21
N30 L0=2040.000(HOJD)
N40 L1=826.000(BREDD)
N50 L2=40.000(TJOCKLEK)
N60 G59 X0.0 Y0.0 Z0.0
N70 G0 G52 Z35.0 M50 T100
N80 (SPINDLE 1)
N90 T7 D7
N100 M3 M40 M51 S10000
N110 F6000 M100
N120 G0 G52 Z35
N130 G0 X-200 Y500
N140 G1 Z-3
N150 G1 G42 X0.000 Y400
N160 G1 X0.000 Y0 EB3
N170 G1 X2040 Y0 EB3
N180 G1 X2040 Y826 EB3
N190 G1 X0 Y826 EB3
N200 G1 X0 Y350
N210 G1 X-200 Y250
N220 G1 G40 G52 Z35 M50
N230 G59 X0.0 Y0.0 Z0.0
N240 M50 T100
N250 M111
N260 M2

Detta program gör en dörr med måtten 2040 X 826mm
Nu skulle jag på ett enkelt sätt vilja ändra måttet på dörren genom att bara änder på ett ställe. Alltså, i början av programmet skulle jag vilja kunna skriva inn bredden och höjden på dörren och få "alla " mått att följa dessa.

Är det någon som vet vad det som står på rad N30 N40 N50 (L0 L1 L2) betyder ?

Svårt att förklara vad jag menar, men hoppas någon fattar och kan hjälpa oss.

På vår andra cnc används tecknet # för att göra "variabla parametrar". Funkar detta även på gammal "klassisk" G-kod?? I så fall hur?

/Gustav

Edit: stavnig, bilderna funkar inte...
Senast redigerad av gustav t 12 november 2007, 22:12:58, redigerad totalt 1 gång.
Användarvisningsbild
nlinus
Inlägg: 805
Blev medlem: 16 januari 2007, 17:49:14
Ort: Åre kommun

Inlägg av nlinus »

L0, L1 och L2 är som sagt variabler. Exakt hur de ska användas i programkoden beror nog lite på vilken maskin du kör. Enklaste är nog att kolla detta i dokumentationen för maskinen.
I de trådgnistar vi har på jobbet (Fanuc) tror jag man kör med #nummer men det varierar som sagt.

Variablerna verkar tilldelas värden i början av programmet (N30, N40 och N50), men sen används de inte. Fast det kanske du tänkt ordna när du väl fått ordning på tilldelningen. :)
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

Har du manual till styrsystemet?
I så fall: Har du djupdykt i den för att hitta något?

Att använda staketvariabler är typiskt Fanuc.
Hur ser underprogrammen ut?

Vad betyder EB3 i exemplet på slutet? Edge Break 3mm eller?
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

Inlägg av gustav t »

Jovisst har vi manual till maskinen-på Tyska. En del är översatt, men på lite konstigt sätt, svårt att förstå. Vore enklare om man fick ett exempel. (eller en grundläggande utbildning så man fatta vad man pyssla med :) ) Får väll försöka läsa lite mer i manualen...

L0 L1 L2 är alltså variabler. Bra, var kanske det jag trodde. På vilket sett kan man hänvisa till dessa??

EB3 - Vet ej om det betyder Edge Break, men maskinen gör i alla fall en "rundning" på 3mm.

Här följer ett par "underprogram"

%100

(KISTA H IN.)
(MED BORRNING)

N0 (TAR MAN BORT PARANTESERNA KAN MAN KORA MED ETT 16-17 MM BORR)
N5 G59 XL3 YL4 ZL2
N10 G0 G40 G52 Z0
N20 T8D8
N30 M3 M40 M51 S18000
N40 M100
N50 G40 X54.5 Y-52.2 Z30
N60 G1 Z-5 F3000
N70 G42 X35 Y-52.2
N80 G2 X35 Y-52.2 I56 J-52.7
N90 G2 X35 Y-52.2 I56 J-52.7 Z-60 K13.75
N100 X35 Y-52.2 I56 J-52.7 Z-70 K5
N105 X35 Y-52.2 I56 J-52.7 Z-70
N110 G1 G40 X55.5 Y-52.2 Z30 F10000
N120 G59 G91 X-111
N130 G90
N140 G77 N50 N110
N145 G59 G91 X111
N147 G90
N150 G0 G52 Z35 M50
N152 G59 XL3 YL4 ZL5 (NOLLPUNKT UNDERPROGRAM)
N154 G59 G91 X-1048.1 Y337.6 (Z323.7) (AVST.MELLAN HUVUDMOTOR OCH KISTA )
N156 (X-1049.4)
N158 G90
N160 G0 X80 Y10
N165 G4 F0.3 T30 M3 M40 S18000 D30
N167 W-90
N170 G1 Z7.3 M70 D30 F6000 (Z0)
N172 G1 X77 Y-83 F2000
N174 G1 Y10
N176 G1 X-83
N194 G1 Y-83
N196 G1 Y10
N198 G1 X75
N250 X75 Y-15
N260 X-75 Y-20
N270 X75 Y-30
N280 X-75 Y-40
N290 X75 Y-50
N300 X-75 Y-60
N305 X75 Y-70
N306 X-75 Y-76
N310 X75 Y-83
N311 G1 Z6.3
N321 G1 X-77 Y-83
N323 G1 Z8.5
N325 G1 X77 Y-83
N330 G1 X8.0
N335 G1 X-77 Y-83
N410 X0 Y10 Z7.4 F6000
N420 W90
N430 G59 G91 X-3.5 Y-89.9 Z5.9 (SKILLNAD MELLAN GGJ OCH KISTA)
N440 G90
N450 G0 G18 X0 Y10
N455 Z1.7
N456 G1 X-40 Y-3.40 Z1.80 F5000
N457 G1 X-102.7 Y-3.40 Z1.80
N458 G2 X-102.7 Y-3.4 Z-0.8 R2.5
N460 G1 X102.7 Y-3.40 Z-0.8
N465 G2 X102.7 Y-3.40 Z1.80 R2.5
N466 G1 X-50
N480 Y30
N485 W0
N490 G0 G17 G40 G52 Z35
N500 T100
N510 G59 X0 Y0 Z0



(UNDERPROGRAM GANGJ. V.2 GRADER)
(VERKTYGSLAENGD = 21.1 TILL KONA)
(NOLLPUNKT X-1048.7 Y253.2 Z312.6)

N1 M50
N2 G59 XL3 YL4 ZL5
N5 G59 G91 X-1052.6 Y252.6 (Z312.6)
N7 G90
N10 G0 G40 G52 Z35
N15 G18 X10 Y30
N20 M3 M40 S14000
N25 T30
N30 W90
N40 M72
N50 Z44.6 D32
N52 G1 Y2 F4000
N55 G1 Y-3.3 F200
N56 G1 Y-3.85 Z28.6 F400
N57 G1 X45.2 Y-3.3 Z44.6 F1200
N70 G1 Y-4.27 Z16.6 F4000
N75 G3 X43.2 Y-4.33 Z14.6 R2
N80 G1 X-43.2 Y-4.33 Z14.6
N90 G3 X-43.2 Y-4.15 Z19.8 R2.60
N100 G1 X25.5 Y-4.15
N110 G1 X25.5 Y-3.3 Z44.6
N130 G17 F5000 Y30
N160 G59 X0 Y0 Z0
N170(M70)
N180 (G0 G40 G52 Z35 W0)


Har aldrig riktigt studerat dessa program före nu, men här används det ju L-variabler. borde kanske kollat bättre före.
:?
Var kommer L3 L4 L5 från??

/gustav
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

L3, 4 och 5 sätts i huvudprogrammet på tex rad N550, 560 och 570.
Innan hopp till underprogram
Det är bara att köra på! Funkar som #-variabler.
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

Inlägg av gustav t »

Okay Noxin, får tacka för denna infornation. Skall studera detta lite bättre på jobber i morgon. Får försöka knopaihop ett lite lättare program för att se hur det funkar.

Tack!

/gurra
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

Inlägg av gustav t »

Tjenare

Har nu gort lite "tester", och det funka fint...


N10 M110
N20 M21
N30 L0=2040.000(HOJD)
N40 L1=826.000(BREDD)
N50 L2=40.000(TJOCKLEK)
N60 G59 X0.0 Y0.0 Z0.0
N70 G0 G52 Z35.0 M50 T100
N80 (SPINDLE 1)
N90 T7 D7
N100 M3 M40 M51 S10000
N110 F6000 M100
N120 G0 G52 Z35
N130 G0 X-200 Y500
N140 G1 Z-3
N150 G1 G42 X0.000 Y400
N160 G1 X0.000 Y0
N170 G1 XL0 Y0
N180 G1 XL0 YL1
N190 G1 X0 YL1
N200 G1 X0 Y350
N210 G1 X-200 Y250
N220 G1 G40 G52 Z35 M50
N230 G59 X0.0 Y0.0 Z0.0
N240 M50 T100
N250 M111
N260 M2

Här är programmet jag testa med. När jag ändra måtten på rad N30 och N40 blev programmet efter de mått jag skrev.

Om jag vill att fräsen skall gå förbi "L1" måttet med 100mm, oavsett vad "L1" måttet är, (tex. för att byta verktyg) hur gör jag då??

Kan man skriva "L1+100" eller "L1+L5" där "L5" är 100mm?

/gurra
Användarvisningsbild
PeterH
Inlägg: 8639
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

Gör ett lite testprogram där du helt enkelt provar att byta ut och ser vad som händer. Var beredd med stopp-knappen bara :wink:

/PeterH

Tips: du behöver ju inte prova på så stora bitar som dörrar, du ser ju ändå vad som händer om du bara byter storlek med några millimeter...
Användarvisningsbild
blackadder
Inlägg: 325
Blev medlem: 2 juli 2007, 21:23:40
Ort: Dingle

Inlägg av blackadder »

Kanske en inkremental förflyttning på 100 mm efter att ha kört L1?
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

Inlägg av gustav t »

Vad är en "inkremental förflyttning"??

PeterH - Klart Jag måste prova i riktiga dörrar, funkar endast i Teakdörrar!! Eller kan man ta en liten plywood....

gurra
Användarvisningsbild
PeterH
Inlägg: 8639
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

:D
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

I Fanuc skriver man tex.

Kod: Markera allt

#1=100
#2=50
G1 X[#1+#2]
eller

Kod: Markera allt

#1=100
#2=50
#3=#1+#2
G1 X#3
Du får testa lite.

Kul att det funkar.
Nu kan du radera friskt i ditt programbibliotek om du kör likadana dörrar med olika mått.

Inkremental=G91
Alltså
G91 G1 X100 ger 100 mm förflyttning i X-led
jämfört med
G90 G1 X100 som går till koordinaten X100 (=absolut positionering)
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11130
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Inlägg av GeekJoan »

När jag är osäker på vad som kommer hända så tar jag "bort" verktyget och torrkör. Eventuellt tejpar fast en penna där verktyget skulle ha suttit.
gustav t
Inlägg: 144
Blev medlem: 7 juni 2006, 17:05:00
Ort: Fjällbacka

Inlägg av gustav t »

Tjenare!

Har i dag spenderat några timmar framför dator och cnc.
Efter många tester och provkörningar (eventuellt några #%¤#%/)/¤" :evil: ) lyckades jag med detta:

%6342
(YD26)
(20071114 GURRA)

N10 M110
N20 M21
N30 L0=2000 (HOJD)
N40 L1=913 (BREDD)
N50 L2=9 (FALS HÖJD)
N51 L3=50
N52 L4=150
N60 L10=L1-L3
N61 L11=L1+L3
M62 L12=L1+L4
N63 L13=L0+L4
N64 L14=L0+L3
N70 G90
N71 G59 X0 Y0 Z0
N80 G0 G52 Z35
N90 (SPINDEL 1)
N100 T9 D9
N110 M3 M40 M51 S9000
N120 F8000 M100
N130 G0 XL0 Y-150
N140 G1 ZL2 F4000
N150 G1 G42 XL0 Y-50 F6000
N160 G1 XL0 Y0
N170 G1 XL0 YL10
N180 G1 XL0 YL1 F2000
N190 G1 XL0 YL11 F6000
N200 G1 XL0 YL12
N210 G0 G40 G52 Z35
N220 G0 XL13 YL1
N230 G59 X0 Y0 Z0
N240 G0 G52 Z35.0 M50 T100
N250 (SPINDEL 1)
N260 T4 D4
N270 M3 M40 M51 S9000
N280 F8000 M100
N290 G0 XL13 YL1
N300 G1 ZL2 F4000
N310 G1 G42 XL14 YL1 F6000
N320 G1 XL0 YL1
N330 G1 X50 YL1
N340 G1 X0 YL1 EB3 F2000
N350 G1 X0 YL10 F6000
N360 G1 X0 Y50
N370 G1 X0 Y0 EB3 F2000
N380 G1 X50 Y0
N390 G1 XL0 Y0 F6000
N400 G1 XL14 Y0
N410 G1 XL13 Y0
N420 G0 G40 G52 Z35
N430 G0 XL0 Y-150
N440 G59 X0 Y0 Z0
N450 G0 G52 Z35.0 M50 T100
N460 (SPINDEL 1)
N470 T3 D3
N480 M3 M40 M51 S9000
N490 F8000 M100
N500 G0 XL0 Y-150
N510 G1 ZL2 F4000
N520 G1 G42 XL0 Y-50 F6000
N530 G1 XL0 Y0
N540 G1 XL0 YL10
N550 G1 XL0 YL1 F2000
N560 G1 XL0 YL11 F6000
N570 G1 XL0 YL12
N580 G0 G40 G52 Z35
N581 M50 T100
N590 G0 X19 YL12
N600 G59 X0 Y0 Z0
N610 G0 G52 Z35.0
N620 (SPINDEL 1)
N630 T6 D6
N640 M3 M40 M51 S9000
N650 F8000 M100
N660 G0 X19 YL12
N670 G1 ZL2 F4000
N680 G1 G42 X19 YL12 F6000
N681 G1 X19 YL11
N690 G1 X19 YL1
N700 G1 X19 Y50
N710 G1 X19 Y0 F2000
N720 G1 X19 Y-50 F6000
N730 G1 X19 Y-150
N740 G0 G40 G52 Z35
N750 M50 T100
N760 G0 X0 Y1200
N770 M111
N780 M2

Ett fungerande program! :D Vet inte om koden är så "snygg" eller "optimerad", men den funkar...

Detta är bara "steg 1", senare skall gångjärn och låskista också inn i programmet. 2,3 eller 4 gångjärn beroende på storlek på dörr, ett glashål som alltid skall sitta i mitten, spårfräsning, höger-vänster pardörrar mm.
Detta var en av 7-8 grundmodeller av dörrar vi tillverkar. En del jobb :?

Tackar härmed alla för hjälpen.

/gurra
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

Sådant här gillar jag!
Grattis till ett fungerande program!
Kul att det funkar.
Skriv svar