Wersja/21.5.153
Wersja 21.5.153.15978 została udostępniona w dniu 2021-06-01. Większość zmian miała na celu porządkowanie koncepcji działania edytora RSF. W kolejnych wersjach planowane jest dalsze porządkowanie, w zakresie eksportu do SCM, współpracy z serwerem notatek oraz dopracowania obsługi łuków pionowych.
Zobacz też zmiany w poprzedniej wersji 152.
Spis treści
- 1 Zmiany w edytorze RSF
- 1.1 Reorganizacja zależności linii kierunkowych
- 1.2 Pozycjonowanie słupków hektometrowych
- 1.3 Porządkowanie nazewnictwa SBL i TOP
- 1.4 Zmiana koncepcji załomów profilu
- 1.5 Zmiana koncepcji obiektów punktowych
- 1.6 Ograniczenie przeliczania torów z gwiazdką
- 1.7 Zapis współrzędnych łączenia torów do pliku
- 1.8 Kod ortofotomapy w liniach kierunkowych
- 1.9 Zapis obiektów brzegowych do CSV
- 1.10 Poprawione usunięcie parametrów łuku
- 1.11 Dodatkowe punkty łączenia komórek
- 1.12 Wybór formatowania eksportu
- 1.13 Zmiany w obsłudze notatek
- 1.14 Dodawanie rozjazdu do P4 rozjazdu
- 1.15 Przesuwanie przyklejonych wskaźników ze słupem
- 1.16 Pytanie o odklejenie wskaźnika
- 2 Zmiany w starterze do MaSzyny
Zmiany w edytorze RSF
Reorganizacja zależności linii kierunkowych
Aby ułatwić wstawianie np. rozjazdów krzyżowych, uruchomione ongiś zostało wstawianie linii kierunkowej umieszczonej pod kątem do innej. Powiązanie było przez pole Path (obiekt nadrzędny). W związku z planami zapamiętania ortofotomapy, na której linia kierunkowa została zaczepiona, powiązanie kierunkowych zostało przeniesione do pola BaseItem (obiekt pomocniczy), co zaburza zgodność wsteczną (starsze wersje Rainsted będą rozłączać powiązanie kierunkowych w plikach zapisanych z nowszej wersji). Użycie pola BaseItem ujednolica sposób określania zależności z innymi przypadkami (np. kierunek wyznaczany przez rozjazd — planowane jest ewentualnie uruchomienie uzależnienia kąta kierunkowej od kąta wyznaczonego rozjazdem).
Pozycjonowanie słupków hektometrowych
Jakiś czas temu została uporządkowana kwestia słupków hektometrowych: przyjęte zostało, że punkt wstawienia słupka znajduje się na jego górnej powierzchni, co np. upraszcza obliczanie konfliktu ze skrajnią. W oknie Własności poprzeczki wyświetla się wysokość słupka ponad niweletę i dotychczas było możliwe jedynie wyzerowanie tej wysokości. Rozwiązanie to było prowizoryczne i wprowadzone jeszcze przed ustaleniem punktu wstawienia na górnej powierzchni. Obecnie dodane zostały przyciski ustalające wysokość słupka na 0, 20cm, 40cm i 60cm ponad niweletę (oznaczone pojedynczą cyfrą). Można również wpisać wartość z zakresu <-0.2; 0.8> i będzie ona doliczona do wysokości poprzeczki, co nie działało wcześniej. Wartości spoza tego zakresu można ustawić jedynie poprzez ręczne wpisanie wysokości w tabelce współrzędnych, jako P[1].Z. Wysokości słupków należy sprawdzić po zmianie profilu niwelety, ponieważ ich wysokość jest przechowywana jako wartość "nad poziom morza", bez redundancji w postaci wysokości ponad niweletę.
Porządkowanie nazewnictwa SBL i TOP
Przyjęte zostało, że pierwszy odcinek niwelety (przyklejony do poprzeczki z zakotwieniem XY) określa jej nazwę. Nazwy kolejnych odcinków są tworzone automatycznie przy przeliczaniu jej długości. Semafory samoczynnej blokady liniowej (SBL) oraz tarcze ostrzegawcze przejazdowe (TOP) powinny mieć zgodność pierwszego członu (do pierwszego podkreślenia) z pierwszym członem niwelety (do kropki). Oznacza to, że odcinkom niwelety należy nadać nazwy, np. LK139 (albo, jeśli kilometraż naliczany jest osobno dla każdego toru linii dwutorowej, będzie to LK139.1 i LK139.2) i taki człon (tzn. LK139_) trzeba też stosować w nazwach SBL i TOP. Wyszukiwarka błędów wypisze niezgodności (tymczasowo błędy dotyczące nazewnictwa TOP są w kategorii błędów nazewnictwa SBL). Niezgodności można uznać za dopuszczalne, jeśli np. dwie linie przebiegają obok siebie, a tory są przypisane tylko do jednej niwelety. Niemniej jednak dodany został mechanizm dodawania odcinków niwelety do ułożonego toru, więc dodanie osobnej niwelety dla drugiej linii nie jest bardzo pracochłonne.
Zmiana koncepcji załomów profilu
W związku z usprawnieniem przeliczania obiektów na łukach pionowych planowana jest zmiana koncepcji funkcjonowania poprzeczek definiujących wysokość (blokada Z, wysokość wpisana jako P[2].Z). Poprzeczki takie nie będą zawierały profilu poprzecznego (ze względu na łuk pionowy, profil taki i tak byłby albo zbyt wysoko względem torów, albo zbyt nisko), natomiast będą zawierały parametry potrzebne do obliczania łuków pionowych. Planowane jest dodanie operacji, która doda poprzeczki definiujące przekroje przed i za załomem (w tej samej odległości od poprzeczki definiującej załom). Wyłączone też zostanie eksportowanie profilu przez poprzeczkę z zablokowaną wysokością. Prawdopodobnie poprzeczka taka nadal będzie mogła posiadać słupek hektometrowy, jednak jego pozycja będzie korygowana o odległość łuku pionowego od wierzchołka kąta załomu. Obecnie załomy profilu sprawiają wiele problemów i konieczna jest znaczna przebudowa ich funkcjonowania. Ze względu na przechowywanie dodatkowych parametrów poprzeczki z zablokowaną wysokością będą mieć automatyczne nazwy, ewentualnie nazwa będzie mogła być w osobnym rekordzie, jak to jest dla słupów oraz nazw dłuższych niż 19 znaków.
Zmiana koncepcji obiektów punktowych
Dotychczas w parametrach INC można było wpisać dodatkową korektę wysokości i była ona uwzględniana przy wyliczaniu wysokości obiektu, a wysokość ta była bezpośrednio używana przy eksportowaniu do SCN. Obecnie korekta wysokości nie jest używana w obliczeniach i będzie użyta dopiero na etapie eksportowania (przejściowo mogą wystąpić błędy w tym zakresie). W związku z powyższym wysokości w pliku RSF dla niektórych obiektów mogą nie odpowiadać wysokościom zapisanym w SCN i po utworzeniu RSF z SCN konieczne będzie wykonanie operacji korygującej, odwrotnej do doliczenia korekt przy eksporcie. W dalszym toku prac zostanie to również rozszerzone na przesunięcie w planie i kąt obrotu. Należy zwracać uwagę na przemieszczenia obiektów w sceneriach utworzonych przed tą zmianą oraz dokonać przeliczenia całości scenerii przed eksportowaniem. Celem tej zmiany jest usprawnienie obliczeń i weryfikacji prawidłowości sieci trakcyjnej.
Przykładowo, dotyczy to bramek trakcyjnych o kodach 0xA8 i 0zA9. Stan docelowy jest taki, że z wyjątkiem jakichś szczególnych przypadków (np. bramka nad torami o różnej wysokości) bramki będą wstawiane na poziomie niwelety (zerowe przesunięcie w pionie), a rozmiar pionowy wpisany w parametrach INC będzie używany do ustalenia wysokości zwisów (aby pasowały wysokością do bramki, niezależnie od wysokości zawieszenia sieci trakcyjnej). Z kolei przesunięcie pionowe wpisane do INC będzie dotyczyło jedynie korekcji danego modelu 3D używanego przez konkretny INC, natomiast nie będzie miało wpływu na koncepcję konstrukcji bramki i spasowania zwisów.
Ograniczenie przeliczania torów z gwiazdką
Jeśli tor ma gwiazdkę w nazwie, to jego punkt 1 (P[0]) będzie dociągany do najbliższej krawędzi siatki kilometrowej (jedna ze współrzędnych płaskich będzie wielokrotnością 1000m). Ze względu na bliżej niezidentyfikowany błąd wyliczenie drugiej współrzędnej może różnić się w sąsiednich plikach o ułamek milimetra. Aby tymczasowo obejść ten błąd, można dokładniejsze współrzędne wpisać ręcznie, a automatyczne przeliczenie nie wykona się, jeśli z wyliczenia wyjdzie różnica mniejsza niż 5mm. W planach jest synchronizacja współrzędnych połączenia przy pomocy dodatkowego pliku: wyliczany i zapamiętywany będzie punkt odcinka z dodatnim (nieujemnym) kilometrażem, ustawiany ten z ujemnym.
Zapis współrzędnych łączenia torów do pliku
Z menu można wykonać wyszukanie torów z gwiazdką w nazwie i zapisanie do pliku ich współrzędnych punktu 1. Pozwala to sprawdzić, czy tory umieszczone w różnych plikach RSF zetkną się po wczytaniu do symulacji. Zapisywane są również współrzędne słupów przy torach z gwiazdką.
Kod ortofotomapy w liniach kierunkowych
Funkcjonalność ta ma na celu jednoznaczne określenie, wg której wersji ortofotomapy zostały narysowane tory. Ponieważ powiązanie linii kierunkowych zostało przeniesione z pola Path (obiekt nadrzędny) do pola BaseItem (obiekt bazowy), to pole Path zawierać będzie kod ortofotomapy. Kody będą się ustawiać przede wszystkim przy przestawianiu końców linii kierunkowej. Dla plików utworzonych wcześniej można ustawić kod ortofotomapy wszystkim liniom z menu Mapy. Dla linii bez ustawionego kodu będzie również ustawiał kod w momencie aktywacji linii kierunkowej (jeśli się źle ustawi, to można usunąć poprzez kartę Własności, bez potrzeby przestawiania końców). Jeśli kod jest już ustawiony, aktywacja linii kierunkowej wybiera ortofotomapę wg tego kodu.
Zapis obiektów brzegowych do CSV
Podczas zapisywania pliku RSF zostanie utworzony plik CSV o nazwie takiej, jak plik RSF, ale bez kolejnego numeru. W pliku tym zapisane zostaną współrzędne obiektów brzegowych, czyli końce torów z gwiazdką oraz początkowe słupy przy nich. Celem zapisania tych współrzędnych jest ich wczytanie przy edycji pliku zawierającego sąsiednią komórkę. Obecnie zapis jest dokonywany zawsze, ale może się to zmienić w przyszłości, zależnie od potrzeb.
- Dla torów z gwiazdką w nazwie (na brzegu komórki) zapisywane będą współrzędne odcinka z dodatnim kilometrażem (Id), a ustawiane te z ujemnym.
- Dla słupów, zapisywane będą te na początku listy, przyczepione do toru z gwiazdką w nazwie. Natomiast ustawiane będą pozycje słupów na końcu listy, ze słowem "void" w nazwie pliku INC.
Poprawione usunięcie parametrów łuku
Przy usuwaniu powiązania odcinków z usuwanym obiektem parametrów łuku zmieniany jest także typ odcinka na zwykły łuk, jeśli odcinek był krzywą przejściową. Zerowane są również przechyłki. Zmniejsza to ilość potencjalnych problemów, jaka może wyniknąć z nieprawidłowego typu odcinka.
Dodatkowe punkty łączenia komórek
W miarę rozwoju edytora i symulacji powstała koncepcja podziału scenerii na komórki, które jako pewne całości mogłyby być wczytywane i usuwane z pamięci w miarę potrzeby. Podział na komórki rozwiązuje też kwestię połączenia fragmentów scenerii tworzonych w osobnych plikach RSF. Aby uprościć łączenie torów na granicy komórek przyjęte zostało, że tory na granicy komórki mają się stykać punktem 1, a jedna ze współrzędnych ma być wielokrotnością 1000. Takie tory muszą być proste i mieć gwiazdkę w nazwie, aby punkt 1 ustawił się automatycznie. Jednak przy tworzeniu scenerii realistycznych okazało się, że w pewnych przypadkach znalezienie prostego odcinka przecinającego siatkę kilometrową może być trudne. Możliwa jest też sytuacja taka, że dobre miejsce zostanie wytypowane, jednak później znajdzie się w nim łuk pionowy, który skomplikuje kwestię łączenia (podział łuku pionowego nie jest jeszcze poprawnie wyliczany). Aby nieco złagodzić warunki łączenia, dopuszczone zostało przeniesienie punktu łączenia o 100m względem linii siatki (czyli na -100, 0 albo +100). Jednocześnie, współrzędne punktu 1 toru z gwiazdką w nazwie będą się zapisywać do pliku CSV z obiektami brzegowymi, o ile kilometraż będzie dodatni (odcinek ułożony zgodnie ze wzrostem kilometrażu). Z kolei odcinek brzegowy z ujemnym kilometrażem będzie miał ustawiane współrzędne łączenia z pliku CSV zamiast ich wyliczania. Tory kończące się punktem 2 (nie połączone innym odcinkiem od strony tego końca) są uważane za zakończone kozłem, jednocześnie umożliwia to wstawienie taboru "przodem do kozła", o ile tor taki ma unikalną nazwę.
Wybór formatowania eksportu
W oknie Własności dla plików INC można wybrać format eksportowania — jako obiekt nadrzędny (z listy możliwych oraz wpisując liczbę obok). Format eksportowania (np. NXYZAT) składa się z kodów literowych o następującym znaczeniu:
- XYZ — współrzędne scenerii MaSzyny (X rośnie na zachód, Y w górę, a Z — na północ),
- A — kąt obrotu w osi pionowej
- BC — kąty pochylenia wzdłużnego i poprzecznego
- RD — jak BC, ale przechyłka i pochylenie odczytane z toru (np. dla rezonatorów, wiaduktów)
- N — nazwa obiektu
- T — tekstura
- P — obiekt powiązany (np. tarcza ostrzegawcza sterowana semaforem)
Kody te dla poszczególnych plików INC są wstępnie ustawione w katalogu obiektów, docelowo będzie można je z niego pobrać. Eksportowanie obiektu będzie uwzględniało ustawiony kod. W przyszłości mogą pojawić się kolejne formaty eksportowania. Zamiast formatu eksportowania można również używać wzorców, w których zamiast nazwy pliku podaje się pełną wersję wpisu, a litery kodu literowego poprzedza się gwiazdką.
Zmiany w obsłudze notatek
Notatki są plikami tekstowymi o nazwach utworzonych ze współrzędnych WGS84 (np. 49.685348,18.837934.txt), umieszczonymi w katalogach rsfnotes, rsftext,rsftodo oraz rsfdone. Pierwsza linia pliku zawiera współrzędne WGS84 (mogą być o większej dokładności) oraz ewentualnie kąty ustawienia kamery, druga linia to skrócony opis (tytuł), kolejne linie to komentarze opisujące zagadnienie oraz zakres wykonanych prac. W planach jest współpraca mechanizmu notatek z serwerem internetowym, który będzie obsługiwał zgłoszenia błędów oraz ewentualnie wymieniał notatki pomiędzy użytkownikami. W obecnym etapie rozwoju edytora zostało uruchomione dodawanie linii komentarza do wybranego pliku oraz możliwość wyboru, z którego katalogu zostaną pokazane notatki (oraz ze wszystkich). Zasadniczo katalog rsftodo gromadzi błędy, którymi należy się zająć podczas pracy z edytorem RSF, aby po ich obsłużeniu przenieść je do katalogu rsfdone. Katalog rsfnotes ma zawierać notatki niezwiązane z wykonaniem konkretnej pracy, np. uwagi i komentarze do przyjętych rozwiązań. Z kolei rsftext to przede wszystkim napisy pokazywanie w oknie edytora, np. nazwy stacji. Dodany został też przycisk umożliwiający przenoszenie notatek pomiędzy tymi katalogami.
Dodawanie rozjazdu do P4 rozjazdu
Normalnie, dodając zwykły tor w P4 rozjazdu, dodawał się on tylko wtedy, gdy nic nie było do P4 podłączone. Natomiast w przypadku obecności podłączenia tor dodawał się obok (jako równoległy). Dotyczyło to również wstawiania rozjazdu — wstawiał się on obok, jeśli do P4 zaznaczonego rozjazdu był podłączony tor. Zostało to zmodyfikowane tak, żeby wstawianie nowego rozjazdu miało miejsce pomiędzy zaznaczonym rozjazdem a podłączonym torem.
Przesuwanie przyklejonych wskaźników ze słupem
Jeśli przestawiany w inne miejsce będzie słup z przyklejonym wskaźnikiem, to wskaźnik również zostanie przesunięty. Dotychczas przesuwane były tylko zwisy przyklejone do bramki, a wskaźniki przyklejone do słupów musiały być dostosowane osobno. Niemniej jeśli wskaźniki będą przyklejone do zwisów, a przesuwana będzie bramka, to taki poziom zagnieżdżenia nie będzie jeszcze działał.
Pytanie o odklejenie wskaźnika
Jeśli wskaźnik przyklejony do słupa zostanie przestawiony dalej niż 5m, to pojawi się pytanie, czy go odkleić. Potwierdzenie spowoduje odklejenie wskaźnika, natomiast przy negatywnej odpowiedzi wskaźnik nie zostanie przemieszczony. Funkcjonalność przydatna np. przy wstawianiu W6a oraz W13 — łatwiej jest je dodać do słupa i przestawić niż wstawić zwykłą metodą wstawiania dowolnego obiektu.
Zmiany w starterze do MaSzyny
Dodatkowe opcje mapowania terenu
Dotychczas mapowanie terenu było normalizowane (skracane) poprzez odjęcie stałych całkowitych od mapowania UV wyliczonego ze współrzędnych XZ. Obecnie możliwe jest wyłączenie tego mechanizmu, a także użycie dowolnej liczby całkowitej, której wielokrotności będą odejmowane od UV. Przykładowo, dla powtarzania mapowania co 5m i stałej 200, środek mapowania 0UV będzie się znajdować co 1000m. Nie jest zalecane używanie większego rozmiaru niż 1000m, ponieważ fragmenty (komórki) scenerii są łączone w siatce 1000m i mogą pojawiać się artefakty mapowania na łączeniu.
Łączenie dróg w skrzyżowania
Dodane zostały dwa algorytmy łączenia dróg w skrzyżowania (menu Linie). Pierwszy z nich wymaga, aby trzy odcinki (o dowolnym kształcie) miały jeden punkt wspólny (P1 zaznaczonego przed wybraniem opcji z menu) i tworzy skrzyżowanie trójkierunkowe. Drugi wymaga, aby dwa odcinki proste przecinały się i tworzy skrzyżowanie czterokierunkowe. Nie jest sprawdzane ani korygowane ułożenie odcinków (skrzyżowanie o niewłaściwej kolejności punktów końcowych może się nieprawidłowo renderować w symulacji). Teksturę skrzyżowania trzeba zmieniać ręcznie. Wstępnie składanie skrzyżowań z odcinków było testowane na sceneriach Quark oraz Kaliska. W ewentualnych planach są algorytmy ulepszające skrzyżowanie, jak korygowanie rozmiaru skrzyżowania i sąsiednich odcinków, zmiana tekstury, automatyczne wstawianie znaków drogowych. Skrzyżowania wymagają też usprawnień w symulacji, np. dostosowywanie przekrojów do sąsiednich dróg.
Przygotowanie do ortofotomapy 96DPI
Po analizie danych z serwisu WMTS okazało się, że oferowana tam ortofotomapa jest w "rozdzielczości poligraficznej" 96 DPI (pikseli na cal), co przy maksymalnej dostępnej skali 1:1000 daje około 3779.527559 pikseli na kilometr. Prowizorycznie zostało dodane przeliczanie wyświetlania do takowej rozdzielczości (wybierane z menu Mapy). Dotychczas były obsługiwane rozdzielczości 4000px/km (dla ortofotomap z geoportal.gov.pl, pobierane przez WMS — całkowita liczba pikseli na metr w zakresie od 1 do 64) oraz 4096px/km (pierwotnie skanowanie map topograficznych w rozdzielczości 128px/km, później również pobieranie z geoportal.gov.pl — całkowita liczba pikseli na kilometr w głównym zakresie od 128 do 1024). W dalszych planach jest ewentualne uruchomienie pobierania kafli z WMTS oraz ich wyświetlania. Głównie byłoby to przydatne do ortofotomapy z 1996 roku (niedostępnej przez WMS) i odtwarzania tras historycznych...
Rok | Rainsted - wersje |
---|---|
2023 | 167 • 168 • 169 • 170 • 171 • ... |
2022 | 156 • 157 (MaSzyna 22.11) • 158 • 159 • 160 • 161 • 162 • 163 • 164 • 165 • 166 |
2021 | 152 • 153 • 154 • 155 |
2020 | 148 • 149 (MaSzyna 20.04) • 150 • 151 |
2019 | 141 • 142 (MaSzyna 19.04) • 143 • 144 • 145 • 146 • 147 |
2018 | 132 • 133 • 134 • 135 • 136 • 137 • 138 • 139 • 140 |
2017 | 124 • 125 • 126 • 127 • 128 • 129 • 130 • 131 |
2016 | 114 • 115 • 116 • 117 • 118 • 119 • 120 • 121 • 122 • 123 |
2015 | 108 (MaSzyna 15.02) • 109 (MaSzyna 15.04) • 110 • 111 • 112 • 113 |
2014 | 107 |
2013 | 102 (MaSzyna 01.13) • 103 • 104 • 105 (MaSzyna 08.13) • 106 |
2012 | 100 (PC2011) • 101 |
2011 | 98 (PC2010) • 99 |
2010 | 92 • 93 • 94 • 95 • 96 • 97 |
2009 | 74 .. 91 |
2008 | 37 .. 73 |
2007 | 0 .. 36 |