Strona 1 z 1

Mach 3 i programowanie na zmiennych czyli te krzaczki #

: 13 mar 2011, 19:46
autor: wieslawbarek
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:

: 13 mar 2011, 21:00
autor: dziabi3
takie programowanie jest dobre jeśli masz dużo podobnych detali i zmiana kliku zmiennych powoduje szybką zmianę programu

: 13 mar 2011, 21:17
autor: wieslawbarek
Tak tylko ja potrzebuję podstaw programowania ze zmiennymi :?:

: 13 mar 2011, 22:51
autor: gaspar
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

: 14 mar 2011, 09:23
autor: freakolot
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.

: 20 mar 2011, 19:29
autor: wieslawbarek
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

: 21 mar 2011, 16:13
autor: gaspar
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

....

: 22 mar 2011, 09:44
autor: wieslawbarek
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.