Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Obecnie miejsce zatrzymania pociągu w bloku określane jest w "Parametrach bloku". A czy można zrobić to tak, by również poprzez zdarzenia ustalać miejsce zatrzymania. Chodzi o coś takiego np.:
"jeśli do bloku A wjeżdża lok X to odległość od prawej czujki do miejsca zatrzymania wynosi m cm, a odległość od lewej czujki do miejsca zatrzymania wynosi n cm"
Mam składy o różnej długości i potrzebuję, by zatrzymywały się w różnych miejscach bloku. Do tej pory robiłem karkołomne sztuczki z funkcją "czekaj" i "zmień prędkość" w zależności od tego jaki skład wjeżdżał do bloku.
Będę wdzięczny za pomoc.
"jeśli do bloku A wjeżdża lok X to odległość od prawej czujki do miejsca zatrzymania wynosi m cm, a odległość od lewej czujki do miejsca zatrzymania wynosi n cm"
Mam składy o różnej długości i potrzebuję, by zatrzymywały się w różnych miejscach bloku. Do tej pory robiłem karkołomne sztuczki z funkcją "czekaj" i "zmień prędkość" w zależności od tego jaki skład wjeżdżał do bloku.
Będę wdzięczny za pomoc.
Andrzej
Re: Miejsce zatrzymania pociągu w bloku
A gdyby w bloku pokazać cechę 'DistanceToStop', to rozwiązałoby to ten problem?
Tylko trzeba by było zmieniać tą cechę przed wjechaniem do bloku. I to jest chyba problem...
Tylko trzeba by było zmieniać tą cechę przed wjechaniem do bloku. I to jest chyba problem...
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku
W moim przypadku tego problemu nie ma. Zmiany tej cechy można dokonywać w bloku poprzedzającym podczas wjazdu bądź przejazdu.
Generalnie widzę to tak:
Przy definiowaniu zdarzenia, w sekcji Operacje należałoby dołożyć element np. 'DistanceToStop'
Dla tego elementu określane byłyby:
- nazwa bloku
- wybór od której strony liczona jest odległość (lewa/dół lub prawa/góra)
- odległość do miejsca zatrzymania w cm
Generalnie widzę to tak:
Przy definiowaniu zdarzenia, w sekcji Operacje należałoby dołożyć element np. 'DistanceToStop'
Dla tego elementu określane byłyby:
- nazwa bloku
- wybór od której strony liczona jest odległość (lewa/dół lub prawa/góra)
- odległość do miejsca zatrzymania w cm
Andrzej
Re: Miejsce zatrzymania pociągu w bloku
W uzupełnieniu poprzedniego wpisu.
Gdyby udało się rozwiązać ten problem, to można by wtedy, dla tego samego loka, w zależności od długości jego składu definiować różne miejsca zatrzymania. Te miejsca można by także zmieniać w zależności od tego jaki Autoprzejazd jest uruchomiony.
Gdyby udało się rozwiązać ten problem, to można by wtedy, dla tego samego loka, w zależności od długości jego składu definiować różne miejsca zatrzymania. Te miejsca można by także zmieniać w zależności od tego jaki Autoprzejazd jest uruchomiony.
Andrzej
Re: Miejsce zatrzymania pociągu w bloku
Wystawiłem nową wersję testową, w której dla bloku dodałem dwie cechy:
DistanceToStopTmp_RightTopEnd
DistanceToStopTmp_LeftBottomEnd
Ustawienie wartości >0 powoduje chwilowe nadpisane wartości 'DistanceToStop'. Ustawienie wartości 0 powoduje powrót do wartości zdefiniowanej w oknie 'Blok' (do wartości standardowej).
W zdarzeniach, aby ustawić jakąś wartość należy użyć bloku "Wyrażenie" (lub pokrewne np: Wyrazenie_Calkowite) i w polu 'Zapisz jako Liczbę' wskazać 'ActiveBlock.DistanceToStopTmp_RightTopEnd' lub drugie pole.
Ciekawe jestem, czy to zadziała...
DistanceToStopTmp_RightTopEnd
DistanceToStopTmp_LeftBottomEnd
Ustawienie wartości >0 powoduje chwilowe nadpisane wartości 'DistanceToStop'. Ustawienie wartości 0 powoduje powrót do wartości zdefiniowanej w oknie 'Blok' (do wartości standardowej).
W zdarzeniach, aby ustawić jakąś wartość należy użyć bloku "Wyrażenie" (lub pokrewne np: Wyrazenie_Calkowite) i w polu 'Zapisz jako Liczbę' wskazać 'ActiveBlock.DistanceToStopTmp_RightTopEnd' lub drugie pole.
Ciekawe jestem, czy to zadziała...
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Zrobiłem tak:
- określić blok dla którego chcę zmienić miejsce zatrzymania
- gdzie wpisać nową wartość dystansu do zatrzymania
i nie wiem jak:- określić blok dla którego chcę zmienić miejsce zatrzymania
- gdzie wpisać nową wartość dystansu do zatrzymania
Andrzej
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
ad1. A spróbuj tak:
ActiveTrain -> CurrentBlock -> NextBlock -> DistanceToStop...
ale nie jest to najlepszy sposób... Muszę coś wymyśleć...
ad2. Najlepiej w Argument1
ActiveTrain -> CurrentBlock -> NextBlock -> DistanceToStop...
ale nie jest to najlepszy sposób... Muszę coś wymyśleć...
ad2. Najlepiej w Argument1
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Nijak nie mogę sobie z tym poradzić. Wpisywałem wartości dla kilku argumentów. Nic nie działa.
Andrzej
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Wystawiłem nową wersję.
- W pozycji "Zapisz wynik do - ustawienia.ActiveBlock" wpisać nazwę bloku, w których chcemy zmienić DistanceToStopTmp_RightTopEnd
- w pozycji "Zapisz wynik do.ZapiszJako Liczbę" wpisać (wybrać) po prostu: ActiveBlock.DistanceToStopTmp_RightTopEnd
- w pozycji "Wyrażenie.Argument1" wpisać liczbę, którą chcemy wpisać do DistanceToStopTmp_RightTopEnd
Program podmieni "ActiveBlock" na blok, którego nazwa została wpisana.
PS. Wartość do wpisania jest obliczana tak:
- brana jest liczba wpisana w Argument1
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument2 biorąc pod uwagę operację wpisaną w Operacja1
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument3 biorąc pod uwagę operację wpisaną w Operacja2
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument4 biorąc pod uwagę operację wpisaną w Operacja3
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument5 biorąc pod uwagę operację wpisaną w Operacja4
i po tym wszystkim otrzymujemy liczbę, która zostanie wpisana tam, gdzie wskażemy w "Zapisz wynik do.ZapiszJako..."
A w skrócie, przy ustawieniu domyślnym!, jak wpiszemy liczbę w Argument1, to ta liczba będzie wynikiem, bo dodawania zera nic nie zmienia.
Jeżeli podczas obliczania wartości chcemy się odwołać do konkretnego bloku lub lokomotywy, to:
- ustawiamy jej nazwę w "Wyrażenia - ustawienia.ActiveBlock/ActiveTrain"
- odwołujemy się do jakieś cechy poprzez wybranie "ActiveBlock.<cecha>" lub "ActiveTrain.<cecha>" w Argument1..5
Teraz proponuje zrobić tak:andrzej-n pisze: i nie wiem jak:
- określić blok dla którego chcę zmienić miejsce zatrzymania
- W pozycji "Zapisz wynik do - ustawienia.ActiveBlock" wpisać nazwę bloku, w których chcemy zmienić DistanceToStopTmp_RightTopEnd
- w pozycji "Zapisz wynik do.ZapiszJako Liczbę" wpisać (wybrać) po prostu: ActiveBlock.DistanceToStopTmp_RightTopEnd
- w pozycji "Wyrażenie.Argument1" wpisać liczbę, którą chcemy wpisać do DistanceToStopTmp_RightTopEnd
Program podmieni "ActiveBlock" na blok, którego nazwa została wpisana.
PS. Wartość do wpisania jest obliczana tak:
- brana jest liczba wpisana w Argument1
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument2 biorąc pod uwagę operację wpisaną w Operacja1
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument3 biorąc pod uwagę operację wpisaną w Operacja2
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument4 biorąc pod uwagę operację wpisaną w Operacja3
- do tego jest dodawana/odejmowane/itd. liczba wpisana jako Argument5 biorąc pod uwagę operację wpisaną w Operacja4
i po tym wszystkim otrzymujemy liczbę, która zostanie wpisana tam, gdzie wskażemy w "Zapisz wynik do.ZapiszJako..."
A w skrócie, przy ustawieniu domyślnym!, jak wpiszemy liczbę w Argument1, to ta liczba będzie wynikiem, bo dodawania zera nic nie zmienia.
Jeżeli podczas obliczania wartości chcemy się odwołać do konkretnego bloku lub lokomotywy, to:
- ustawiamy jej nazwę w "Wyrażenia - ustawienia.ActiveBlock/ActiveTrain"
- odwołujemy się do jakieś cechy poprzez wybranie "ActiveBlock.<cecha>" lub "ActiveTrain.<cecha>" w Argument1..5
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Nie wiem co robię źle, ale u mnie o nie działa.
Wypróbowałem to na następującym przykładzie:
pociąg wyrusza z bloku b2 i po przejechaniu kilku bloków wraca do bloku b2. Dla bloku b2 w opcji "po ruszeniu pociągu z bloku" wstawiłem zdarzenie: I niestety nic się nie dzieje. Pociąg nie zatrzymuje się w oczekiwanym miejscu. Również w parametrach bloku b2 nie zostały zmienione miejsca zatrzymania.
Wypróbowałem to na następującym przykładzie:
pociąg wyrusza z bloku b2 i po przejechaniu kilku bloków wraca do bloku b2. Dla bloku b2 w opcji "po ruszeniu pociągu z bloku" wstawiłem zdarzenie: I niestety nic się nie dzieje. Pociąg nie zatrzymuje się w oczekiwanym miejscu. Również w parametrach bloku b2 nie zostały zmienione miejsca zatrzymania.
Andrzej