Wersja/21.12.155

Z Rainsted
Skocz do: nawigacji, wyszukiwania

Wersja 21.12.155.16911 została opublikowana w dniu 2021-12-31. Główne zmiany dotyczą porządkowania edytorów RSF i SCM, ale dodany też został generator rozkładów jazdy.

Zobacz też zmiany w poprzedniej wersji 154.

Zmiany w edytorze RSF

Ograniczenia w definiowaniu komórek

Ograniczenia te mają na celu przede wszystkim ostrzeganie o użyciu kodu komórki w złym miejscu (obszar z jednym kodem powinien być spójny). Przy dodawaniu kwadratu kilometrowego do komórki sprawdzane jest, czy sąsiaduje on co najmniej z dwoma innymi (chyba że jest dopiero drugim). Jednocześnie przeliczane i od razu zapisywane są rozmiary komórek. Wcześniej trzeba było uruchamiać przeliczanie rozmiarów z menu. Po przekroczeniu rozmiaru 16km będą wyświetlane ostrzeżenia przy każdym kolejnym dodanym kwadracie.

Zmiana koncepcji bramek trakcyjnych

Dotychczas bramki trakcyjne nie różniły się wiele od pozostałych obiektów z obrysem. Przesunięcie ich z warstwy 0xA1 (obiektów z obrysem) do warstwy 0xA9 miało głównie na celu ograniczenie przyklejania innych elementów sieci do obiektów z obrysem. Obecnie bramki stały się obiektami o odrębnych właściwościach, ze względu na konieczność uwzględnienia szerokości nogi (słup krańcowy albo krańcowo-przelotowy) podczas przyklejania wysięgników (szerokość jest mierzona w poprzek do osi toru). W parametrach pliku INC należy podać szerokość nogi — domyślnie wpisuje się 0.2 [m]. Rysowanie bramek zostało uzupełnione o dodatkowe prostokąty, symbolizujące nogi. Nie jest jeszcze do końca jasna sytuacja półbramek o stałej szerokości, dla których należałoby podać zarówno szerokość nogi, jak i całej półbramki.

Drugą zmianą, poniekąd niezależną, jest inny sposób pozycjonowania pionowego. Dotychczas bramki były wstawiane względem jakiegoś punktu na dole, pozycjonowanego względem główki szyny. Do tego należało dobrać parametry, aby się to ładnie wstawiało na scenerię. Teraz bramki będą wstawiane z wysokością dolnej powierzchni dźwigara (prześwitu), wpisaną w parametrach obiektu. Czyli bramka wstawiona z wysokością 0 powinna mieć dźwigar ułożony na szynach... Jako wysokość bramki w parametrach INC podajemy rozmiar pionowy dźwigara (aby elementy sieci mogły być pozycjonowane względem dolnej albo górnej powierzchni dźwigara). Scenerie w RSF, z dotychczasowymi parametrami, będą jeszcze przez jakiś czas prawidłowo przeliczane przez edytor, ale z czasem wyszukiwarka błędów będzie pokazywać, że wobec braku wymiarów nie można wyliczyć położenia pionowego zwisu w bramce. Wysokość dolnej powierzchni dźwigara względem pivota modelu wpisujemy z minusem w parametrach INC jako korektę eksportowania w pionie — wartości te nie mają już wpływu na współrzędne obiektu w RSF, są doliczane tylko podczas eksportowania.

W MaSzynie występują dwa rodzaje bramek: 770 oraz 730 — będzie trzeba więc ustawiać wysokość obiektu na 7.7m albo 7.3m ponad główkę szyny (dla standardowego zawieszenia sieci przyjętego na 5.4m — takie wyszło twórcom modeli mocowań sieci). W modelu bramki 770 dolna powierzchnia dźwigara jest na wysokości 8.1m, takie przesunięcie z minusem trzeba docelowo wpisać w parametry pliku INC. Aby dostosować obiekty do nowych wytycznych, najlepiej najpierw wpisać korektę wysokości +7.7 i przekopiować ją do wszystkich obiektów używających danego pliku INC, po czym w korektę wysokości wpisać -8.1. Wysokością bramki będzie rozmiar pionowy dźwigara, w przypadku bramki 770 będzie to 0.9 (9.0-8.1). Inna wysokość zawieszenia sieci (niż 5.4m ponad główkę szyny) będzie wymagać odpowiedniej zmiany wysokości wstawienia obiektów bramek (bez konieczności ingerowania w parametry INC). Dla porównania, bramki w Wielkim Kacu są wstawione na 7.72m ponad główkę szyny, a sieć wisi na 5.42m ponad główkę szyny — ale w tym przypadku prześwit został powiększony o 2cm względem zakładanego prześwitu bramki, więc zarówno sieć oraz bramka powinny być o 2cm niżej, żeby prześwit się zgadzał.

Doklejanie wysięgników do nóg bramek

Wstępna wersja. Dla wysięgników z ciągiem "/-" w nazwie INC (z wyjątkiem zawierających "zwis" oraz "kotwa"), np. tr/-3D.inc będzie również korygowana odległość od osi toru tak, aby punkt wstawienia znalazł się na bocznej krawędzi nogi bramki. W planach jest analogiczne przyklejanie na zewnętrznej krawędzi bramki oraz odpowiednio dla drugiej nogi, ale także przyklejanie do słupów (słupy parasolowe). Przyklejanie będzie udoskonalane w ramach edycji tras w RSF, aby od razu testować poprawność działania.

Obrysy prostokątne dla słupów

W związku z planami precyzyjnego regulowania sieci pokazywane będą obrysy prostokątne słupów, o ile podane zostaną wymiary słupa w parametrach pliku INC. Docelowo wymiary te będą uwzględniane podczas przyklejania wysięgników mocowanych bokiem. Dla słupów o wymiarach zmieniających się wraz z wysokością należy podać wymiary przekroju słupa mniej więcej na wysokości mocowania wysięgu pomocniczego. Dla zwisów (wsporniki montowane do dźwigara bramki) rozmiar jest domyślnie ustalany na 120mm szerokości i 200mm długości, aby też rysowały się obrysy prostokątne.

Wyrównanie słupów na linii dwutorowej

W przypadku mocowań sieci zawierających w nazwie INC ciąg "/s" (tzn. słupów) użycie przycisku [Przyklej] będzie wyszukiwało inny obiekt sieci w odległości ok. 10m od strony wysięgnika, a następnie słup zostanie przestawiony tak, aby znajdował się w linii do znalezionego. Funkcjonalność ma na celu wygodniejsze wstawianie sieci na liniach dwutorowych. Niemniej, ze względu na uruchomiony już mechanizm kopiowania sieci na inny tor, znaczenie może mieć raczej przy korygowaniu plików RSF, w których sieć została już wstawiona bez kopiowania. Przyklejenie słupa nie zapisuje powiązania pomiędzy słupami — jest to jeszcze do rozważenia, czy wyrównane słupy powinny być powiązane w parę i przestawiane jako para.

Wyliczanie wysokości na podstawie punktów

Dotychczas trzeba było wstawić trójkąty, aby wyliczała się wysokość. Trójkąty te nie były potem użyteczne, ponieważ kolidowały z przekrojami poprzecznymi. Obecnie można z menu wybrać opcję wyliczania wysokości z trójkątów — w okolicy danego punktu będą wyszukiwane punkty wysokościowe, a wysokość będzie aproksymowana z nich. Punkty są poszukiwane w każdym kierunku, aktualnie w każdej ćwiartce kąta pełnego (może się to zmienić w ramach testów). Punkty mogą być z NMT-100 albo fundamentów budynków. Dla scenerii fikcyjnych, które posiadają wymodelowany teren, zalecane jest wczytanie trójkątów terenu do RSF i używanie ich do wyznaczenia wysokości. W ramach testów planowane jest przeliczenie przekrojów w pliku RSF "Wyczerpy". Dalszym krokiem rozwoju będą mechanizmy wstawiania trójkątów pomiędzy punktami o ustalonej wysokości a przekrojami tworzonymi na niwelecie. Albo będą to obiekty podobne do szycia niwelet, albo trójkąty łączone do poprzeczek, albo będzie to realizowane w ramach poprzeczek.

Krzywe pomocnicze dla łuków koszowych

Tworzenie łuków koszowych nie zostało jeszcze kompleksowo rozpracowane. Można zrobić łuk koszowy bez krzywych przejściowych, wstawiając krótkie odcinki proste pomiędzy łukami o różnych promieniach. Odcinek prosty powinien być przyklejony do linii kierunkowej, a dopasowanie takiego łuku do mapy zwykle wymaga wielokrotnego korygowania położenia linii kierunkowej i naprawiania odcinków łukowych, zanim udaje się ustalić wersję dobrze pasującą do ortofotomapy. Obecnie dodana została obsługa krzywych pomocniczych o kodzie 0x78, których działanie ma być podobne do linii kierunkowych — jednak dowiązany będzie tylko punkt wspólny łuków. Zastosowanie krzywych pomocniczych będzie jeszcze ulepszane w kolejnych wersjach i testowane. Do czasu ustabilizowania funkcjonalności możliwe będzie ich uzyskanie poprzez zmianę kodu obiektu (np. torów kolejowych) na 0x78 (tzn. 0x7801 — odcinek prosty, 0x7802 — łuk o stałym promieniu w lewo od P1 patrząc, 0x7803 — łuk w prawo, 0x7806 — krzywa przejściowa w lewo, 0x7807 — krzywa przejściowa w prawo). W związku z koniecznością wprowadzenia dodatkowych (ale przy tym opcjonalnych) uzależnień do liczenia geometrii odcinków mogą pojawiać się niespotykane wcześniej błędy — będą one naprawiane w pierwszej kolejności.

Krzywe pomocnicze będą miały dwa zastosowania. Pojedynczy odcinek będzie "trzymał kształt", tzn. będzie łukiem o zadanym promieniu albo krzywą przejściową styczną do prostej w P1, a w P2 do okręgu o zadanym promieniu. Łuki (trajektorii) o różnych promieniach, przypisane do takiej krzywej, będą utrzymywać punkt styczności na krzywej. Dzięki temu będzie można dodać krzywą w spodziewanym miejscu zmiany promienia i dopasować ją do torów na ortofotomapie, a następnie ustawić promienie łuków (promień łuku nie będzie się w tym przypadku kopiował do sąsiedniego). Również w ten sposób będzie można obsłużyć łuki odwrotne bez wstawki prostej. Drugie zastosowanie to budowa wieloodcinkowego łuku z parametrami (i krzywymi przejściowymi) — umożliwi dowolny podział odcinków w ramach krzywej przejściowej. Krzywe pomocnicze nie są trajektoriami ruchu i nie muszą być ze sobą styczne — w takim przypadku należy jedynie pilnować, aby łączenie łuków nie wypadło na łączeniu krzywych pomocniczych. W przypadku przeliczania trajektorii ruchu styczność (ciągłość linii stycznej, czyli brak wierzchołka) ma większy priorytet niż inne parametry, które zostają dostosowane (np. przeliczenie położenia końców, wyliczony promień). Promień dla krzywych pomocniczych będzie modyfikowany tylko w przypadkach konieczności geometrycznej, tzn. promień musi być co najmniej połową odległości pomiędzy punktami końcowymi.

Łączenie ścian lasu z profilami poprzecznymi

Jako rozwiązanie być może prowizoryczne, ale w miarę proste do realizacji, wprowadzone zostało niejawne szycie pomiędzy ścianami lasu a profilami poprzecznymi. W swoim działaniu będzie podobne do szycia niwelet, jednak nie będzie wymagało wstawiania dodatkowych obiektów. Można zapamiętać punkt poprzeczki i ustawić z pamięci punkt ściany lasu — współrzędne końców nie zmienią się, ale zostanie utworzony trójkąt terenu o boku na dole ściany lasu i wierzchołku na bliższym końcu poprzeczki. We własnościach ściany lasu można ustawić liczbę dodatkowych trójkątów, opartych bokiem na kolejnych poprzeczkach i z wierzchołkiem w P2 ściany lasu (na dole). W założeniu wysokość końców ściany lasu ma się przeliczać do wysokości terenu — wyznaczanej z trójkątów terenu (warstwy 0x30 i 0x31) albo z punktów terenu (nie potrzeba obecnie wstawiać trójkątów, ale wyznaczanie wysokości z punktów musi być jeszcze ulepszone, gdyż powstają nagłe zmiany wysokości). Jeśli jednak dane o wysokości terenu nie będą dostępne, zostaną użyte wysokości interpolowane pomiędzy końcami poprzeczek (od bliższej strony). Tekstura terenu i parametry mapowania będą brane z poprzeczki przypisanej do ściany lasu. Funkcjonalność jest testowana na Linii 181, komórce Wyczerpy oraz na trasach scenerii "Tarnowskie Góry" — do zakończenia testów mogą się zmieniać detale, jak również pojawiać błędy w tym zakresie. Docelowo planowane jest też pozycjonowanie drzew na obszarze generowanych trójkątów, aby urozmaicić powierzchnię ściany lasu.

Łączenie terenu z profilami poprzecznymi

Dotychczas łączenie trójkątów terenu (np. NMT-100) z profilami poprzecznymi musiało być robione w nieco uciążliwy sposób, poprzez ręczne wszywanie profili w teren edytorem SCM. Po wyeksportowaniu profili trzeba było ręcznie dzielić trójkąty terenu na potrzebną liczbę, zapamiętywać wierzchołki profili i ustawiać z pamięci wierzchołki trójkątów terenu. W ten sposób zostały wszyte profile na sceneriach Quark, Tarniowo2 oraz Linia 61. Po uruchomieniu szycia ścian lasów z profilami poprzecznymi pojawiła się koncepcja rozszerzenia funkcjonalności ścian lasów — linia nie będzie generowała ściany lasu, za to końce będą przyciągane do punktów (warstwy 0x10 i 0x11, być może innych), jednocześnie pozostanie możliwość szycia z profilami poprzecznymi. Być może z czasem funkcjonalność ta zostanie przeniesiona na obiekty innego typu, ponieważ główną cechą szczególną ścian lasu jest ciągłe naliczanie mapowania (podobnie jak kilometraż na niwelecie), niepotrzebne w tym przypadku. Tymczasowo można ustawić flagę 0x40 zaptaszeniem we Własnościach, która wyłączy pionową ścianę, a włączy przyciąganie końców do punktów (warstwy 0x10 i 0x11).

Wyłączony zapis przy dodawaniu poprzeczki

Ze względu na występujące ongiś problemy z poprzeczkami na niweletach, do sortowania poprzeczek zostało kiedyś dodane prewencyjne zapisywanie plików tymczasowych. Następnie sortowanie poprzeczek zostało podłączone pod dodawanie poprzeczek, aby się sortowały automatycznie. W efekcie tymczasowy plik RSF był zapisywany przy dodaniu każdej poprzeczki. Ponieważ problemy z niweletami i poprzeczkami nie występują już w takim natężeniu, a do tego można je sprawdzić z poziomu wyszukiwarki błędów, zapisywanie tymczasowego pliku RSF będzie wykonywane tylko w przypadku jawnego użycia sortowania. Ponieważ sortowanie poprzeczek wykonuje się automatycznie, przycisk do jawnego sortowania zostanie usunięty, a sortowanie będzie ewentualnie można wykonać z menu.

Zmiana kroku dodawania poprzeczek

Dotychczas po dodaniu poprzeczki licznik kilometrażu zwiększał się o 100 [m]. Obecnie będzie to działało tylko dla liczb podzielnych przez 20 (w przyszłości może być też zmniejszone na 10 albo będzie można ustawić). Jeśli poprzeczka została dodana na odcinku niwelety będącym łukiem, kolejna wartość zostanie zwiększona o 20. A jeśli na prostym, wartość będzie zwiększona do najbliższej wielokrotności 100. Pozwoli to sprawniej dodać poprzeczki na łuku, a wobec wprowadzonego szycia ścian lasu oraz terenu z poprzeczkami jest już bardzo łatwo stworzyć dodatkowe trójkąty do wszywania profili.

Podgląd przekroju poprzecznego

Po zaznaczeniu przekroju poprzecznego w polu miniaturki wyświetli się przekrój podtorza. W szczególności można skontrolować wysokość słupka hektometrowego.

Usprawnione przyklejanie do bramek

Po użyciu przycisku [Przyklej] na mocowaniu sieci zostanie sprawdzone, czy jest to mocowanie z własnym słupem oraz czy w okolicy jest bramka. Jeśli oba te warunki będą spełnione, pojawi się pytanie, czy wymienić słup na zwis. Dla pozytywnej odpowiedzi na pytanie zostanie wyszukany bardziej odpowiedni plik INC dla mocowania z zachowaniem dalszych członów. Negatywna odpowiedź ewentualnie wyrówna słup do innego słupa w okolicy. Funkcjonalność będzie przydatna w szczególności na stacjach z bramkami, gdzie wstawia się sieć jednym ciągiem, a następnie dodaje bramki — pozwoli sprawniej wymienić mocowania na zwisy.

Testowe pokazywanie punktów do liczenia wysokości

Na zakładce NMT dodane zostało zaptaszenie, włączające testowe pokazywanie punktów, użytych do liczenia wysokości w miejscu kliknięcia. Pozwala się zorientować, skąd biorą się przeskoki wysokości na przekroju terenu i będzie służyło do optymalizacji wyliczania wysokości z punktów. Jednocześnie usunięte zostały wcześniejsze zaptaszenia, które od dawna nie były używane (związane z pobieraniem wysokości z SRTM oraz generowaniem bitmapy z wysokościami).

Poprawione dodawanie obrotnicy

Okazało się, że dodawanie obrotnicy było zepsute (dodawał się obiekt z kodem ściany lasu). Dodatkowo zostało wyłączone przeliczanie długości toru, jeśli wpisany jest promień obrotnicy mniejszy niż 1m. Na razie nie jest to kompleksowe ulepszenie obsługi obrotnic, a jedynie poprawki wykrytych błędów.

Dwie tabliczki hektometrowe dla bramki

Wprowadzona została możliwość podania dwóch liczb w nazwie bramki jako dwóch osobnych tabliczek, rozdzielonych ukośnikiem. Czasem bywa tak, że na jednej bramce znajduje się niezależny kilometraż dwóch linii, podczas gdy bramkę da się przypisać tylko do jednej niwelety. W planach jest również budowanie bramek o niezależnych nogach, z których każda będzie mogła być przypisana do innego toru.

Dodatkowe linie łączenia komórek

Łączenie torów sąsiednich komórek nie musi być na siatce kilometrowej, może być też na ±100m od niej albo ±50m od niej. Powinno to być używane w sytuacjach konieczności ominięcia łuku pionowego albo łuku z parametrami, jeśli łączenia komórek nie da się przenieść na inną linię siatki. Trzeba też zwracać uwagę, że obiekty na łączeniu mogą podlegać filtrowaniu względem przynależności do komórki, przez co mogą się wyeksportować do nieodpowiedniego pliku (faktyczny punkt łączenia powstanie w innym miejscu). Po wprowadzeniu filtrowania obszarowego będzie to jeszcze analizowane, czy obiekty na łączeniu załapują się na odpowiednią komórkę i co można zrobić, aby ustalić przynależność do komórki mimo "wystawania poza" (o te 50 czy 100 metrów).

Dodatkowe opcje głowic sygnalizatorów

Oprócz konfiguracji głowic typu "I" (prosta, po środku masztu), "Y" (odchylona w lewo), "YN" (odchylona w prawo) dodane zostały trzy następne: "L" (ostatnia komora po prawej stronie przedostatniej, jak w tsop.inc) "J" (ostatnia komora po lewej stronie przedostatniej, jak w tsopn.inc) oraz "D" (dla parzystej liczby komór, górne pół po lewej, dolne pół po prawej). Rozwiązanie to umożliwia pokazywanie mniej typowych głowic. Są zrobione wyjątki, żeby "L" nie było znajdowane w "SBL".

Poprawka dotycząca uproszczonych niwelet

Poprzeczki na uproszczonej niwelecie odwracały się o 180°, jeśli nie miały zablokowanego kilometrażu, a były na odcinkach torów ułożonych przeciwnie do niwelety. Obecnie jest uwzględniany znak pola Id (kilometrażu) odcinka, według którego liczony jest kąt (dla niwelety liczonej po jej odcinkach Id powinien być zawsze dodatni). Z przyczyn organizacyjnych ma to również wpływ na położenie np. słupów i jedna z wersji edytora mogła je w związku z tym obracać (jest to już poprawione). Obecnie jest przyjęte, że dla określenia położenia lewo/prawo względem toru istotny jest znak kilometrażu odcinka, a nie jest istotna obecność niwelety (ze względu na tworzenie plików RSF z plików SCM i uniknięcie przerzucania obiektów na drugą stronę przy dodawaniu niwelety — można uzupełnić kilometraż wraz ze znakiem na poziomie SCM i dodanie niwelety jedynie skoryguje wartości).

Wstępna wersja liczenia łuków koszowych

Można już stworzyć łuk koszowy bez potrzeby wstawiania odcinka prostego. Zacząć trzeba od wpisania łuku w kąt, jak w przypadku stałego promienia. Łuk powinien mieć co najmniej 4 odcinki. Następnie ułożyć krzywą pomocniczą (typ 0x78) w okolicy zmiany promienia i przypisać dwóm kolejnym odcinkom łuku (poprzez zapamiętanie punktu krzywej pomocniczej i ustawienie punktu dla odcinka — przypisanie działa podobnie jak przypisanie linii kierunkowej do odcinka prostego). Następnie można ustawić promień odcinka "początkowego" dla łuku w lewo, a promień odcinka "końcowego" zostanie wyliczony — obecnie przycisk wyliczenia jest na zakładce Linie nazywa się [Koszowy #2]. Punkt styczności różnych promieni będzie przemieszczany po krzywej pomocniczej, aczkolwiek styczna może być inna niż styczna krzywej pomocniczej w tym punkcie. Punkt styczności będzie przesuwany po krzywej pomocniczej aż do uzyskania współliniowości ze środkami łuków. Obecny algorytm nie uwzględnia krzywych przejściowych ani nie obsługuje łuku z parametrami (może zepsuć). Dalsze prace będą prowadzone w kierunku obsługi krzywych przejściowych, parametrów łuku oraz wielokrotnej zmiany promienia. Rozważana jest też opcja przypisania tylko jednego odcinka do krzywej pomocniczej, wtedy ten odcinek w całości będzie na niej położony (a nie punkt łączący dwa odcinki).

Zmiany w starterze do MaSzyny

Pokazywanie obiektów dźwięków w scenerii

Dźwięki o podanych współrzędnych (node...sound) będą się wyświetlać jako białe okręgi (o podanym zasięgu, ale ograniczonym do 2km) z białą kropką w środku. Po wybraniu warstwy dźwięków pojawią się również ich nazwy.

Rozpoczęty edytor rozkładów

W związku z brakiem innych narzędzi do obsługi rozkładów, dodane zostało nowe okno w tym celu, dostępne z zakładki Debugger. W założeniu minimalną funkcjonalnością jest odpowiednie przetworzenie danych z systemu Hafas (podobnie jak w programie Timegraph). W ramach testów planowane jest utworzenie rozkładów TXT dla linii 131, 146 oraz 152.

Naprawione przeliczanie kozłów

W związku z pracami nad obróceniem scenerii "Kaliska" zostało tymczasowo wyłączone zaokrąglanie współrzędnych (dokonywane podczas zapisywania pliku), aby zredukować liczbę różnic w plikach po obróceniu. Efektem ubocznym było zwiększanie liczby cyfr dziesiętnych podczas przeliczeń, między innymi przy przeliczaniu torów na potrzeby kozłów oporowych z zasypem. Aby zniwelować wyłączenie zaokrągleń, zaokrąglanie współrzędnych zostało wprowadzone do obliczeń. Jednak w przypadku kozłów, na skutek błędu przeliczone kozły okazały się być 10000 razy mniejsze, a w praktyce tworzyły się zerowe odcinki. Obecnie jest to naprawione, również przywrócone jest zaokrąglanie współrzędnych podczas zapisywania (do 4 cyfr dziesiętnych).


Rok Rainsted - wersje
2023 167168169170171172 • ...
2022 156157 (MaSzyna 22.11)158159160161162163164165166
2021 152153154155
2020 148149 (MaSzyna 20.04)150151
2019 141142 (MaSzyna 19.04)143144145146147
2018 132133134135136137138139140
2017 124125126127128129130131
2016 114115116117118119120121122123
2015 108 (MaSzyna 15.02)109 (MaSzyna 15.04)110111112113
2014 107
2013 102 (MaSzyna 01.13)103104105 (MaSzyna 08.13)106
2012 100 (PC2011)101
2011 98 (PC2010)99
2010 929394959697
2009 74 .. 91
2008 37 .. 73
2007 0 .. 36