Mach 3 i programowanie na zmiennych czyli te krzaczki #

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
wieslawbarek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 847
Rejestracja: 05 gru 2006, 22:28
Lokalizacja: Bielsko Biała

Mach 3 i programowanie na zmiennych czyli te krzaczki #

#1

Post napisał: wieslawbarek » 13 mar 2011, 19:46

Szukam jakichś przykładów albo turtoriali aby poznać zasady programowania na zmiennych w Mach 3 jedyne co znalazłem to na Peters CNC Ecke taki przykład ale powiem szczerze jak ja miałbym tak pisać program dla tak prostego detalu to dziękuję wolę normalnie .Trochę już kapuję ale przede wszystkim brakuje mi w tym powtórzenia aby na kilka przejść zjechać na daną głębokość

[ Dodano: 2011-03-13, 19:48 ]
Sorry dwa razy dodałem ten sam plik nigdy nie wiem czy już jest dodany czy nie :twisted:
Załączniki
przykład ze zmiennymi Peters CNC Ecke.txt
(792 Bajtów) Pobrany 313 razy
przykład ze zmiennymi Peters CNC Ecke.txt
(792 Bajtów) Pobrany 462 razy



Tagi:


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#2

Post napisał: dziabi3 » 13 mar 2011, 21:00

takie programowanie jest dobre jeśli masz dużo podobnych detali i zmiana kliku zmiennych powoduje szybką zmianę programu


Autor tematu
wieslawbarek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 847
Rejestracja: 05 gru 2006, 22:28
Lokalizacja: Bielsko Biała

#3

Post napisał: wieslawbarek » 13 mar 2011, 21:17

Tak tylko ja potrzebuję podstaw programowania ze zmiennymi :?:

Awatar użytkownika

gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#4

Post napisał: gaspar » 13 mar 2011, 22:51

Przykład na kieszeń, gdzie Z opuszczana po każdym wykonaniu podprogramu o 1mm (za pomocą zmiennych)

#100=0 (deklaracja zmiennej)

G0 Z5.0
G0 X10 Y10

M98 P100 Q10 (wywołanie popdrogramu 10 razy)

M30

G1 Z[#100-1] ( 0 - 1 = -1)
G1 X20 Y10
G1 X20 Y20
G1 X10 Y20
G1 X10 Y10
#100=[#100-1] (zmiana deklaracji po wykonaniu podprogramu przyrostowo co -1. Po 10 wykonaniach będzie -10)

M99
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie

Awatar użytkownika

freakolot
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 67
Rejestracja: 20 lip 2009, 14:37
Lokalizacja: mazowieckie

#5

Post napisał: freakolot » 14 mar 2011, 09:23

hm..

A jeśli chciałbym jechać na głebokość Z-20 po 6 mm ?
(tzn jeśli - liczba wykonań podprogramu * głebokość dobrania za każdym razem
jest większa niz głębokośc na jaka chcę jechać )
Tzn czy mogę wstawić if'a tak jak w tym programie ?

#1 = 0
o101 while [#1 gt -20]
#1 = [#1 - 6]
o110 if [#1 lt -20]
#1 = -20
o110 endif
*operacje
...
...
0101 endwhile

pozdrawiam,
F.


Autor tematu
wieslawbarek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 847
Rejestracja: 05 gru 2006, 22:28
Lokalizacja: Bielsko Biała

#6

Post napisał: wieslawbarek » 20 mar 2011, 19:29

Dzięki dla kolegi Gaspar że troszkę wyjaśnił (choć żeby ten program poszedł to brakuje po m30 O 100 i według twich wskazówek przerobiłem ten program




(T3 BNF beliebig, #104 beachten!)

(Parameter incl. Fräserradius)
#100=15 (Zapfenbreite X)
#101=12 (Zapfenhöhe Y)
#102=3 (Zapfenradius R)
#103=-1.2 (Frästiefe Z)
#104=5 (Fräserradius max.)

G90.1
T3 S5000 M3 M6
G54
G1 G43 H3 Z2 F500

M98 P1L5

G55
M98 P1L5

G49
G28.1 X12 Y12 M5
M30

O1
G0 X0 Y[#101/2+1+#104]
G1 G42 D3 X[1+#104] Y[#101/2+1+#104]f500
G1 Z#103
G2 X0 Y[#101/2] R[1+#104]
G1 X[#102-#100/2]
G3 X[0-#100/2] Y[#101/2-#102] R#102
G1 Y[#102-#101/2]
G3 X[#102-#100/2] Y[0-#101/2] R#102
G1 X[#100/2-#102]
G3 X[#100/2] Y[#102-#101/2] R#102
G1 Y[#101/2-#102]
G3 X[#100/2-#102] Y[#101/2] R#102
G1 X0
G2 X[0-1-#104] Y[#101/2+1+#104] R[1+#104]
G1 Z2 F1500
G1 G40 X0 Y[#101/2+1+#104]
#103=[#103-1.2]
M99
%

no i niby idzie ale przy g55 nie wraca w Z do 0 tylko zjeżdża dalej czyli tutaj poniżej
Z-6mm i za cholerę nie mogę go zmusić by w G 55 też zaczynał od 0

Awatar użytkownika

gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#7

Post napisał: gaspar » 21 mar 2011, 16:13

Hej.
Wszystko się zgadza. Nie wraca do 0 ponieważ ostatnia wartość przypisana dla #103=-6.

Spróbuj ponownie po wykonaniu podprogramu zadeklarować zmienną #103.
Lub dodaj kolejny podprogram np P2 na innej zmiennej... ale to tak pod górkę trochę. Lepiej według pierwszego sposobu czyli ja bym zrobił tak: (uwaga nie sprawdzane, piszę na sucho ;)

....

#102=3 (Zapfenradius R)
#103=-1.2 (Frästiefe Z)
#104=5 (Fräserradius max.)

G90.1
T3 S5000 M3 M6
G54
G1 G43 H3 Z2 F500

M98 P1L5 (tutaj wykonał podprogram 5 razy i zmienna #103 ma wartość końcową -6 , program główny już tutaj nie będzie wracał więc korzysta ze zmiennej #103 o wartości -6)

#103=-1.2 (a tutaj ponownie zadeklarujemy jej wartość na -1.2 lub dowolnie inna)

G55
M98 P1L5 ( i ten podprogram jest wykonywany ze zmienną #103 o początkowej wartości -1.2)

G49
G28.1 X12 Y12 M5
M30

....
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie


Autor tematu
wieslawbarek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 847
Rejestracja: 05 gru 2006, 22:28
Lokalizacja: Bielsko Biała

#8

Post napisał: wieslawbarek » 22 mar 2011, 09:44

No i działa to co napisałeś tzn. trzeba wpisać zmienną #103 =-1.2 po wykonaniu podprogramu w G 54 czyli w prosty sposób. A tak jeszcze zapytam jak to jest z tymi warunkami (goto, if , then ,while, do,end) bo jakoś mi się nie chce wierzyć że Mach tego nie obsługuje.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”