Makro

Dyskusje na temat systemu Faunc

Autor tematu
elipsesmi
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 265
Rejestracja: 02 lut 2011, 17:53
Lokalizacja: Katowice

Makro

#1

Post napisał: elipsesmi » 09 cze 2013, 19:05

Hej mam pytanie czy ma ktoś program na wykonanie kieszeni w makro?? chodzi mi o to żeby program był tak stworzony żeby frez wykonał dowolną kieszeń opisaną konturem .
czy jest to w ogóle możliwe ??np:
X-43.03Y284.77
Z-3.09
G1Z-8.09F2000
G41Y280.27D09F500
X-5.28
G3X-2.28Y283.27R3.
G1Y313.54
G3X-3.90Y316.20R3.
G2X-4.97Y317.98R2.
G1Y325.98
G2X-3.90Y327.75R2.
G3X-2.28Y330.42R3.
G1Y337.54
G3X-3.90Y340.20R3.
G2Y343.75R2.
G3X-2.28Y346.42R3.
G1Y350.12
G3X-4.63Y353.05R3.
G2X-6.22Y353.99R3.
G3X-8.77Y354.99R3.
G2X-10.75Y356.06R2.
G3X-13.42Y357.68R3.
G1X-29.64
G3X-32.30Y356.06R3.
G2X-35.85R2.
G3X-38.52Y357.68R3.
G1X-54.74
G3X-57.40Y356.06R3.
G2X-60.95R2.
G3X-63.62Y357.68R3.
G1X-78.42
G3X-81.35Y355.33R3.
G2X-82.53Y353.54R3.
G3X-83.78Y351.10R3.
G1Y283.27
G3X-80.78Y280.27R3.
G1X-43.03
G40Y284.77
G0Z5.00

z góry dziękuje



Tagi:


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#2

Post napisał: PiRo_man » 09 cze 2013, 20:44

Zamiast przedstawiać kod programu lepiej by było przedstawić rysunek techniczny, ewentualnie uzupełniony kodem. Oczywiście że jest to możliwe. Aktualnie na maszynach na których pracuję napisałem makrodefinicję pogłębień otworów, planowania blach, fazowania otworów, oraz frezowania wyspy. Mam w planach jeszcze napisać frezowanie gwintu. Z kieszenią było by podobnie jak z wyspą, tylko od wewnętrznej strony.

Spróbuj sam to napisać, w razie czego służę pomocą.


Autor tematu
elipsesmi
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 265
Rejestracja: 02 lut 2011, 17:53
Lokalizacja: Katowice

#3

Post napisał: elipsesmi » 09 cze 2013, 22:47

Obrazek

N1(10 FREZ WYK.)
T1
M6
T1
M01G90
G0G90B0.
G0G90G54.1TOPX-1.02Y29.34S9000M03
G43Z50.00H01
G90M08
G08P1
G0Z5.00
Z-5.00
G1Z-10.00F900
G41Y36.34D02F300
X-46.83
G3X-53.83Y29.34R7.
G1Y-29.34
G3X-46.83Y-36.34R7.
G1X46.83
G3X53.83Y-29.34R7.
G1Y29.34
G3X46.83Y36.34R7.
G1X-1.02
G40Y29.34
G0Z5.00


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#4

Post napisał: PiRo_man » 10 cze 2013, 14:56

Tak w ogóle masz jakiekolwiek pojęcie chociażby teoretyczne o pisaniu Makro? Wiesz jak definiować zmienne? Jakiego są typu (zakresy, od zmiennych lokalnych po stałe)? Potrafisz wywołać makro z parametrami wejściowymi? Masz jakieś doświadczenie w algorytmice?

Tu masz prostą makrodefinicję mojego autorstwa:

Kod: Zaznacz cały

% 
O7301(*** FAZY OTWOROW ***) 
(A - SREDNICA OTWORU) 
(B - GLEBOKOSC ZEJSCIA) 
 
#4=#5003 
#28=2*[#[13000+#4111]] 
(#28 - SREDNICA FAZOWNIKA) 
#29=#1/2 
(#29 - PROMIEN NOMINALNEGO OTWORU) 
#31=600(NOMINALNY POSUW) 
#32=[[#31*[#1-#28]]/#1] 
(#32 - POSUW OBROBKI KOLOWEJ) 
 
G1Z#2F1111 
G1G41X#29Y0.F[#32/2] 
G3X#29Y0.I-#29J0.F#32
G1G40X0.Y0.F1111 
 
G1Z#4F2222 
M99
%
Na tej podstawie spróbuj napisać makro które potrzebujesz. Jak już wcześniej pisałem, jakbyś miał jakieś problemy bądź pytania to jestem do dyspozycji.


Autor tematu
elipsesmi
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 265
Rejestracja: 02 lut 2011, 17:53
Lokalizacja: Katowice

#5

Post napisał: elipsesmi » 10 cze 2013, 15:45

no właśnie nie mam bladego pojecie... wiec raczej sam tego nie napisze:P generuje programy w camie , no i często gęsto programy zajmują mnóstwo miejsca w pamięci , i muszę dzielić programy na operacje, zrobię 1 operację , zgrywam program, następnie wgrywam z 2 operacji itd... no i szukam ułatwienia tego problemu, makro by mi bardzo pomogło:)


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#6

Post napisał: PiRo_man » 11 cze 2013, 19:47

Zamiast makro może skorzystasz z podprogramu? Będziesz miał łatwiej bo w przypadku jakichkolwiek błędów czy problemów będziesz w stanie sobie sam poprawić kod.

Makro na frezowanie kieszeni czy wyspy mógłbym napisać, jednak potrzebował bym trochę czasu na samo jego napisanie, testy, oraz poprawki (nie piszę "ewentualnie" bo na pewno jakieś poprawki trzeba będzie wprowadzić). Także dopóki sam tego nie będę potrzebował, to raczej nie będzie mi się chciało tego pisać. Ale jak już napiszę, to na pewno wstawię pełną i w stu procentach sprawdzoną i działającą wersję.

Pozdrawiam


Autor tematu
elipsesmi
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 265
Rejestracja: 02 lut 2011, 17:53
Lokalizacja: Katowice

#7

Post napisał: elipsesmi » 13 cze 2013, 16:31

No mogę skorzystać z podprogramów.. ale chciałem w inny sposób ograniczyć pojemność programu :):) np. korzystając z makro


artur235
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 271
Rejestracja: 09 lut 2010, 19:40
Lokalizacja: SE

#8

Post napisał: artur235 » 17 cze 2013, 17:45

elipsesmi pisze:no właśnie nie mam bladego pojecie... wiec raczej sam tego nie napisze
Po pierwsze przeglądnij instrukcję, w instrukcjach do centrów HAAS jest to bardzo ładnie opisane.
Po drugie makra nie są takie straszne jak Ci się wydaje, pod warunkiem że zrozumiesz o co chodzi :)

W razie czego pytaj.

Miej na uwadze że coś (sonda pomiarowa, cykle producenta) może już wykorzystywać makra i niektóre zmienne # mogą być zajęte.

Awatar użytkownika

zflaczały
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 138
Rejestracja: 07 gru 2006, 17:14
Lokalizacja: sandefjord norge

#9

Post napisał: zflaczały » 09 lip 2013, 20:50

dawno temu wyskrobałem makra na frezowanie otworów po spirali, założenie było takie że zagłębiam się na pełna głębokość roboczą freza we wcześniej wywiercony otwór i po spirali z niewielkim "wcięciem" rozwiercam otwór w technologii HIGH SPEED, działa super.

dwa zastrzeżenia:
1) napisane to było na centrum tokarsko-frezerskie więc w płaszczyźnie XY x jest napisany na x2=Dr, na konwencjonalna frezarkę trzeba sobie to przepisać
2) wymaga szybkiego sterownika, jeśli sterownik muli program przystaje na końcu bloku


%
O8090(POCKET ZY)
G19
G40
G98
#130=#5001
#131=#5004
#132=#5002
#110=#7-#2
#115=#110/2
#116=#3*2
WHILE[#110LE0]DO1
#3000=1(ERROR D OR B)
END1
#111=#110/#116
#114=FIX[#111]
WHILE[#111LT1]DO1
#3000=2(ERROR C)
END1
G52Y#131Z#132
G0X#5
#112=#3
#113=#112/2
#112=-1*#112
#149=1
GOTO10
N1
#149=#149+1
WHILE[#112LT0]DO1
#112=-1*#112
#112=#112+#3
#113=#113+#3
GOTO10
END1
WHILE[#112GT0]DO1
#112=#112+#3
#113=#113+#3
#112=-1*#112
GOTO10
END1
M0
N2
#111=#114
WHILE[#112LT0]DO1
#112=-1*#112
#113=#115-[[#115-#112]/2]
#112=#115
GOTO10
END1
WHILE[#112GT0]DO1
#113=#115-[[#115-#112]/2]
#112=#115
#112=-1*#112
GOTO10
END1
M0
N10
G3Y#112R#113F#9
IF[#149LT#114]GOTO1
IF[#111GT#114]GOTO2
IF[#111EQ#114]GOTO3
N3
#149=0
N4
#149=#149+1
WHILE[#112LT0]DO1
#112=#115
#113=#115
GOTO20
END1
WHILE[#112GT0]DO1
#112=#115
#112=-1*#112
#113=#115
GOTO20
END1
N20
G3Y#112R#113F#11
IF[#149LT2]GOTO4
G3Y0.R#115F#9
G1Y0.Z0.F#9
G0X#130
G52Y0.Z0.X0.
G28V0.
G18
M99
%

########

%
O8091(POCKET XY)
G17
G40
G98
(X)
#130=#5001
(Y)
#131=#5004
(Z)
#132=#5002
#110=#7-#2
#115=#110/2
#116=#3*2
WHILE[#110LE0]DO1
#3000=1(ERROR D OR B)
END1
#111=#110/#116
#114=FIX[#111]
WHILE[#111LT1]DO1
#3000=2(ERROR C)
END1
G52Y#131X#130
G0Z#5
#112=#3
#113=#112/2
#112=-1*#112
#149=1
GOTO10
N1
#149=#149+1
WHILE[#112LT0]DO1
#112=-1*#112
#112=#112+#3
#113=#113+#3
GOTO10
END1
WHILE[#112GT0]DO1
#112=#112+#3
#113=#113+#3
#112=-1*#112
GOTO10
END1
M0
N2
#111=#114
WHILE[#112LT0]DO1
#112=-1*#112
#113=#115-[[#115-#112]/2]
#112=#115
GOTO10
END1
WHILE[#112GT0]DO1
#113=#115-[[#115-#112]/2]
#112=#115
#112=-1*#112
GOTO10
END1
M0
N10
G3Y#112R#113F#9
IF[#149LT#114]GOTO1
IF[#111GT#114]GOTO2
IF[#111EQ#114]GOTO3
N3
#149=0
N4
#149=#149+1
WHILE[#112LT0]DO1
#112=#115
#113=#115
GOTO20
END1
WHILE[#112GT0]DO1
#112=#115
#112=-1*#112
#113=#115
GOTO20
END1
N20
G3Y#112R#113F#11
IF[#149LT2]GOTO4
G3Y0.R#115F#9
G1Y0.X0.F#9
G0Z#132
G52Y0.Z0.X0.
G28V0.
G18
M99
%
ludzi nie ma, jedz drzem


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#10

Post napisał: PiRo_man » 09 lip 2013, 21:13

zflaczały pisze:dawno temu wyskrobałem makra na frezowanie otworów po spirali, założenie było takie że zagłębiam się na pełna głębokość roboczą freza we wcześniej wywiercony otwór i po spirali z niewielkim "wcięciem" rozwiercam otwór w technologii HIGH SPEED, działa super.

dwa zastrzeżenia:
1) napisane to było na centrum tokarsko-frezerskie więc w płaszczyźnie XY x jest napisany na x2=Dr, na konwencjonalna frezarkę trzeba sobie to przepisać
2) wymaga szybkiego sterownika, jeśli sterownik muli program przystaje na końcu bloku


(...)
Jeżeli chciałeś się pochwalić, to Ci się udało. Jeśli chciałeś komuś pomóc, to wypadało by skomentować kod, nie uważasz? Tym bardziej że sam piszesz, że kod po przerzuceniu na konwencjonalną frezarkę trzeba by przepisać. Twoja makrodefinicja przypomina mi tak zwane "cykle wbudowane", czyli zaprogramowane przez producenta makrodefinicje (tam też nic nie jest skomentowane, bo programista ma z tego korzystać, a nie zastanawiać się co tam się w środku dzieje).

Tu masz mój kod na planowanie blachy wierszowaniem XY, również usunąłem komentarze, czy ten kod który widzisz pierwszy raz na oczy wydaje Ci się przejrzysty i zrozumiały:

Kod: Zaznacz cały

% 
O7302( 
#1=#5003 
#2=2*[#[13000+#4111]] 
#3=#4-#24
#33=#5-#25 
#32=#26+#6 
#31=1
IF[#3GT0]THEN#31=0 
IF[#31EQ1]GOTO1
#31=1
IF[#33GT0]THEN#31=0
IF[#31EQ0]GOTO2
N1 
#3000=1
N2
#30=#33/[#2-3] 
#30=FUP[#30] 
#29=#33/#30
#28=0
#27=1
IF[#30EQ1]GOTO12 
G0X[#4+[#2/2]+5]Y[#25+[#29-[#2/2]]]Z[#26+#6+20] 
GOTO13 
N12
G0X[#4+[#2/2]+5]Y[#25+[#33/2]]Z[#26+#6+20] 
N13
WHILE[#32GT#26]DO1 
#32=#32-#17
IF[#32LE#26]GOTO3
G1Z#32F2222
GOTO4
N3 
G1Z#26F2222
N4 
WHILE[#28LT#30]DO2 
IF[#27EQ1]GOTO5
IF[#27EQ0]GOTO6
N5 
G1X[#24-[#2/2]-5]F#9 
#27=0
GOTO7
N6 
G1X[#4+[#2/2]+5]F#9
#27=1
N7 
#28=#28+1
IF[#28EQ#30]GOTO8
IF[[#28+1]EQ#30]GOTO11 
G1Y[#5002+#29]F3333
GOTO8
N11
G1Y[#5-[#29/2]]F3333 
N8 
END2 
IF[#5003EQ#26]GOTO10 
IF[#33LT[#2-3]]GOTO9 
G1Z[#5003+20]F2222 
G0X[#4+[#2/2]+5]Y[#25+[#29-[#2/2]]] 
G1Z[#5003-20]F2222 
#27=1
N9 
#28=0
N10
END1 
G1Z[#26+20]F3000
M99
%
??? Podejrzewam że nie dojdziesz ani do połowy kodu, i odechce Ci się analizować żeby zrozumieć kod.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Fanuc”