Strona 1 z 1
sub, podprogram nie działa
: 16 lis 2013, 20:08
autor: kmeld
Witam,
mam problem ponieważ nie mogę zmusić programu do użycia pod-procedur (sub).
Wszystko jest dobrze napisane, najprościej jak można
o100 sub
g1 x100 y100
o100 end sub
....
o100 call
w podglądzie ścieżki nie ma tego fragmentu, tak ja by po prostu go zignorował.
Czemu tak może się dziać.
KM
Re: sub, podprogram nie działa
: 16 lis 2013, 21:55
autor: tuxcnc
kmeld pisze:Wszystko jest dobrze napisane
No tak, to Linux jest porąbany ...
Co prawda pliku o zawartości :
Kod: Zaznacz cały
o100 sub
g1 x100 y100
o100 end sub
o100 call
wczytać się do programu nie da, bo brakuje właściwego zakończenia, ale taki już wczytać można :
Kod: Zaznacz cały
o100 sub
g1 x100 y100
o100 end sub
o100 call
m30
a taki to nawet da się wykonać
Kod: Zaznacz cały
f1000
o100 sub
g1 x100 y100
o100 end sub
o100 call
m30
więc naprawdę nie wiem co masz dobrze napisane i nie jestem w stanie Ci pomóc.
.
: 16 lis 2013, 23:14
autor: kmeld
Cześć,
fragment kodu w pierwszym poście to nie cały mój plik tylko fragmencik dotyczący procedury.
Cała reszta potrzebna do wykonania była w nim również i program działał.
Całość kodu poza procedurą była w podglądzie i maszyna po niej chodziła.
Tylko fragmentu z sub - endsub nie chciało przyjąć w miejscu gdzie próbowałem się do niego odwołać.
Wszystko było w jednym pliku więc nie ma możliwości pomyłki ścieżek. Oczywiście nie planowałem używać podprocedury do wykonania polecenia
G1 X100
tego użyłem tylko w celu wyeliminowania ewentualnych błędów kodu wewnątrz procedury.
Po wczytaniu mojego pliku program nie wyrzuca żadnych błędów, całość programu oprócz fragmentu z procedury chodzi.
Nie wiem co jest nie tak, ale problem na pewno nie jest tak prozaiczny jak sugerujesz.
Praktycznie wszystkie swoje programy piszę z palca i po kilku miesiącach stwierdziłem, że kilka procedur sobie zoptymalizuję, ale niestety z jakiegoś powodu program je ignoruje.
KM
: 16 lis 2013, 23:20
autor: Raven
Marnujesz nasz czas... albo dajesz kod który się przemagluje, albo idź do wróżki.
Może masz bardziej skomplikowane G1 X10 a potem G1 X0 i zawsze jedzie dokładnie w tym samym miejscu a ty byś chciał aby robiło kreskę od miejsca wywołania?
Nie wiemy nic poza dwoma - masz gdzieś błąd w myśleniu lub w kodzie.