Witam serdecznie.
Jest to moje pierwsze podejscie do napisania makra
Makro powinno rozfrezowywac otwor do zadanej srednicy z maksymalnej glebokosci
Maszyna wysypuje sie na 3 linijce makra z komunikatem Invalid Character
Maszyna na której próbuje to odpalic to Hurco VM30i
Czy, ktorys z kolegow moglby rzucic okiem i podpowiedziec co robie nie tak ?
Pozdawiam
kod:
%
G54 G90
T8 M6
G0 X0 Y0 Z100
S6000 M3 M8
G65 P0070 F600 A8.5 B13 C3 D8 E8 F500 H0 I0.5 J9.99 K100
M30
O0070 ( START OF SUBRPOGRAM 0070 )
(A=8.5 -== HOLE DIAMETER ==- )
(B=13 -== HOLE DEPTH ==- )
(C=3 -== RETRACT PLANE ==- )
(D=8 -== RADIUS OFFSET NUMBER ==- )
(E=8 -== TOOL DIAMETER ==- )
(F=500 -== FEED ==- )
(H=0 -== VARIABLE RESET ==- )
(I=0.3 -== CUTTING DEPTH ==- )
(J=9.95 -== FINISH DIAMETER ==- )
(K=100 -== SAFE PLANE ==- )
G0 Z#3
G1 Z-#2 F#9 ( GO TO RETRACT PLANE )
G91 G1 G42 D#8 X[#1/2] ( COMPENSATION TURN ON )
N10 #11=#11+#4
G1 X#4
G2 I-[[#1/2]]+#11] J0 ( -== ENLARGING ==- )
IF[#11 LT [#5-#1-#4]]GOTO 10 (---------------------)
G91 G40 G1 X-[[#1/2]]+#11] ( COMPENSATION TURN OFF )
G91 G1 G42 D#8 X[#5/2]
G2 I-[[#5/2]] J0 ( FINISHING PASS )
G91 G40 G1 X-[[#1/2]]+#11]
G90 G1 Z#3 ( GO TO RETRACT PLANE )
G0 Z#6 ( RAPID TO SAFE PLANE )
M99 ( End of SUBPROGRAM 0070 )
Prosba o sprawdzenie makra
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 2
- Posty: 201
- Rejestracja: 14 cze 2011, 22:05
- Lokalizacja: ...
Masz problem z nawiasami, spróbuj w ten sposób i zadziała:
%
O0070( START OF SUBRPOGRAM 0070 )
(A=8.5 -== HOLE DIAMETER ==- )
(B=13 -== HOLE DEPTH ==- )
(C=3 -== RETRACT PLANE ==- )
(D=8 -== RADIUS OFFSET NUMBER ==- )
(E=8 -== TOOL DIAMETER ==- )
(F=500 -== FEED ==- )
(H=0 -== VARIABLE RESET ==- )
(I=0.3 -== CUTTING DEPTH ==- )
(J=9.95 -== FINISH DIAMETER ==- )
(K=100 -== SAFE PLANE ==- )
G0Z#3
G1Z-#2F#9
G91G1G42D#8X[#1/2]
N10#11=#11+#4
G1X#4
G2I-[[#1/2]+#11]
IF[#11LT[#5-#1-#4]]GOTO10
G91G40G1X-[[#1/2]+#11]
G91G1G42D#8X[#5/2]
G2I-[#5/2]J0
G91G40G1X-[[#1/2]+#11]
G90G1Z#3
G0Z#6
M99
%
Według mnie program nie dopracowany, powinieneś jeszcze dodać możliwość określenia średnicy od jakiej ma zacząć frezować.
%
O0070( START OF SUBRPOGRAM 0070 )
(A=8.5 -== HOLE DIAMETER ==- )
(B=13 -== HOLE DEPTH ==- )
(C=3 -== RETRACT PLANE ==- )
(D=8 -== RADIUS OFFSET NUMBER ==- )
(E=8 -== TOOL DIAMETER ==- )
(F=500 -== FEED ==- )
(H=0 -== VARIABLE RESET ==- )
(I=0.3 -== CUTTING DEPTH ==- )
(J=9.95 -== FINISH DIAMETER ==- )
(K=100 -== SAFE PLANE ==- )
G0Z#3
G1Z-#2F#9
G91G1G42D#8X[#1/2]
N10#11=#11+#4
G1X#4
G2I-[[#1/2]+#11]
IF[#11LT[#5-#1-#4]]GOTO10
G91G40G1X-[[#1/2]+#11]
G91G1G42D#8X[#5/2]
G2I-[#5/2]J0
G91G40G1X-[[#1/2]+#11]
G90G1Z#3
G0Z#6
M99
%
Według mnie program nie dopracowany, powinieneś jeszcze dodać możliwość określenia średnicy od jakiej ma zacząć frezować.
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 3
- Posty: 329
- Rejestracja: 23 sie 2010, 21:32
- Lokalizacja: Świerklany
Witam,
Po pierwsze podałeś trochę mało informacji odnośnie kodu.
To, że parametr E określa średnicę narzędzia nic mi nie mówi. Przez ten parametr przekazujesz rozmiar narzędzia w sensie fizycznym? Czy numer korektora w tablicy narzędzi?
Po drugie w kodzie masz proste błędy, np.: dwa razy masz otwarty nawias, a zamykasz trzy...
Po trzecie możesz zmniejszyć liczbę parametrów (o ile maszyna Ci na to pozwoli) poprzez na przykład automatyczne pobieranie promienia narzędzia z tablicy narzędzi.
Ja w swoim makro (wykonującym to samo co Twoje) mam chyba 5, czy 6 parametrów, z uwzględnieniem wstępnego rozmiaru otworu (na przykład przy frezowaniu pogłębienia).
inż. Mateusz
Po pierwsze podałeś trochę mało informacji odnośnie kodu.
To, że parametr E określa średnicę narzędzia nic mi nie mówi. Przez ten parametr przekazujesz rozmiar narzędzia w sensie fizycznym? Czy numer korektora w tablicy narzędzi?
Po drugie w kodzie masz proste błędy, np.:
Kod: Zaznacz cały
G2 I-[[#1/2]]+#11] J0 ( -== ENLARGING ==- )
Po trzecie możesz zmniejszyć liczbę parametrów (o ile maszyna Ci na to pozwoli) poprzez na przykład automatyczne pobieranie promienia narzędzia z tablicy narzędzi.
Ja w swoim makro (wykonującym to samo co Twoje) mam chyba 5, czy 6 parametrów, z uwzględnieniem wstępnego rozmiaru otworu (na przykład przy frezowaniu pogłębienia).
inż. Mateusz
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 2
- Posty: 201
- Rejestracja: 14 cze 2011, 22:05
- Lokalizacja: ...
Odpowiadasz bez analizy programu i twierdzisz, ze podał za mało informacji, przeczytaj opis parametrów w szczególności opis D i E.PiRo_man pisze:Witam,
Po pierwsze podałeś trochę mało informacji odnośnie kodu.
To, że parametr E określa średnicę narzędzia nic mi nie mówi. Przez ten parametr przekazujesz rozmiar narzędzia w sensie fizycznym? Czy numer korektora w tablicy narzędzi?
Po drugie twierdzisz, ze ma problem z nawiasami, spójrz co ja napisałem, czy nie napisalem o nawiasach i dodatkowo nie poprawiłem programu.
Po trzecie napisałem, ze program nie dopracowany, bo brakuje średnicy początkowej. Spojrz co Ty napisałeś, wspomniałeś, że masz program który uwzględnia średnicę poczatkową. Podziel się programem i wtedy uznam, że pomogleś. Na razie to tylko widzę, ze swoim postem objechaleś kolegę bez powodu i nic nowego nie wniosłeś do tematu. Nabijasz sobie tylko liczbę postów Panie inzynierze.
Amator Mariusz
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 3
- Posty: 329
- Rejestracja: 23 sie 2010, 21:32
- Lokalizacja: Świerklany
Przeanalizowałem program, ale nie mam zamiaru dopasowywać numerów zmiennych do parametrów - szkoda mi na to mojego bardzo cennego inżynierskiego czasu. A dla osoby która pisała makro opisanie parametrów zajmie maksymalnie dwie minuty.mariusz123a pisze:Odpowiadasz bez analizy programu i twierdzisz, ze podał za mało informacji, przeczytaj opis parametrów w szczególności opis D i E.
Tutaj sam sobie przeczysz. Jakbym nie przeanalizował programu, na pewno nie wypisał bym mu konkretnej linii z przykładem.mariusz123a pisze:Po drugie twierdzisz, ze ma problem z nawiasami, spójrz co ja napisałem, czy nie napisalem o nawiasach i dodatkowo nie poprawiłem programu.
W tym momencie nawiązywałem do Twojego postu, ale widocznie emocje stargane moim wyższym wykształceniem i tytułem inżyniera przed imieniem i nazwiskiem nie pozwoliły Ci tego zauważyć. Nie przejmuj się, ani trochę mnie to nie ruszyło, przyzwyczaiłem się już do tego, że w Polsce każdy ma do innych podejście typu: "ja najmądrzejszy, a ta reszta idiotów dookoła mnie...". Tym bardziej jak już liźnie trochę jakiś temat i coś już zaczyna wychodzić.mariusz123a pisze:Po trzecie napisałem, ze program nie dopracowany, bo brakuje średnicy początkowej. Spojrz co Ty napisałeś, wspomniałeś, że masz program który uwzględnia średnicę poczatkową.
Podzielić się? No chyba żartujesz... Ja na tym zarabiam, więc nie widzę powodu dla którego miałbym się tym dzielić. Mam więcej różnego typu makr na FANUC'a, ale na pewno nie do rozdania.mariusz123a pisze:Podziel się programem i wtedy uznam, że pomogleś. Na razie to tylko widzę, ze swoim postem objechaleś kolegę bez powodu i nic nowego nie wniosłeś do tematu. Nabijasz sobie tylko liczbę postów Panie inzynierze.
Amator Mariusz
Porównaj sobie dwie sytuacje.
Ogólny opis sytuacji: ślepa osoba stoi przed przejściem dla pieszych, i chce przejść na drugą stronę. Nie wie jednak kiedy zapala mu się zielone światło, ponieważ sygnalizacja nie wydaje żadnego dźwięku.
Pierwsza sytuacja:
Przechodzę koło tej osoby, i mówię: "idź, masz zielone światło".
Druga sytuacja:
Zaczynam krzyczeć na tą osobę, że gdzie ona się wybiera jak jest ślepa. Że zamiast siedzieć w domu, łazi i przeszkadza innym.
Ogarniasz różnicę?
To teraz powiedz mi w którym momencie "objechałem kolegę" i w jaki sposób. Proszę zacytuj mi ten fragment wypowiedzi w której koledze ubliżam.
Nie wiem co Wy macie z tym nabijaniem postów? Jest to dla Was jakiś wykładnik wiedzy? Czy jak? Proszę wyjaśnij mi to, bo już od jakiegoś czasu mnie to zastanawiam. Poza tym, jeśli moje posty są zbędne, to śmiało zgłaszaj je do moderatora. Koło d... mi to lata.
Twoje rozumowanie od mojego różni się tym, że w Twoim przekonaniu "pomoc" to w moim "wyręczenie kogoś w czymś". Jeśli kolega oczekuje pomocy, to w moim przekonaniu potrzebuje wskazówek, żeby zrozumieć to co napisał, i dlaczego to nie działa tak jak by chciał. A przez wstawienie gotowego kodu, na 99% jestem przekonany, że mimo, że kod mu zadziała, to i tak nie będzie wiedział dlaczego.
To mi się podobamariusz123a pisze:Panie inzynierze

-------------------------------------------------------------------------------------------
Wracając do tematu, jesteś mariusz123a pewny, że poprawiony przez Ciebie program zadziała?
Bo mi się wydaję, że nie. Ponieważ nawet jeśli maszyna czyta kilka bloków z rzędu, i ma możliwość po określeniu interpolacji z korekcją promienia narzędzia wykonać jakieś działanie, następnie wczytać współrzędne określając tym samym kierunek interpolacji i jednoznacznie stwierdzić czy frezowana jest kieszeń czy wyspa (czop), to problemem staje się tutaj ponowny ruch w tym samym kierunku, który blokuje w tym momencie maszynie możliwość określenia konturu po którym narzędzie ma się poruszać (wewnętrzny czy zewnętrzny).
Kod: Zaznacz cały
G91 G1 G42 D#8 X[#1/2] ( COMPENSATION TURN ON )
N10 #11=#11+#4
G1 X#4
W poprawionym przez Ciebie kodzie wygląda to tak samo, dlatego wnioskuję, że Twój kod również nie zadziała. Ale oczywiście mogę się mylić.mariusz123a pisze:G91G1G42D#8X[#1/2]
N10#11=#11+#4
G1X#4

inż. Mateusz