Edytor/Słup
Słup jest obiektem wstawianym punktowo, służącym do zawieszenia na nim drutu. Można też wstawiać słupy bez drutu, np. latarnie, ale nie różnią się one wtedy od innych obiektów ozdobnych. Słup jest rysowany kolorem pomarańczowym - kropka oznacza miejsce wstawienia słupa, a wychodząca z niej kreska zwrot słupa (np. wysięgnik do zawieszenia drutu).
Spis treści
Uchwyty drutu
Normalnie pojedynczy słup może utrzymać dwa druty uzależnione od siebie (formalnie jest to jedno połączenie, ale dwa uchwyty). Jeśli słup ma utrzymywać więcej drutów, wtedy obiekt słupa musi obejmować kilka rekordów BinPos, a każdy odpowiada za dwa druty (oba w kierunku innego słupa). W przypadku linii energetycznych większa ilość drutów może być traktowana jako jeden, o ile są umieszczone równolegle do siebie.
Możliwe jest też wstawianie słupów bez zawieszania drutów (np. jako latarnie).
Miejsce wstawienia słupa
Słupy sieci trakcyjnej normalnie wstawia się na wysokości zawieszenia drutu względem główki szyny (czyli niwelety). Dzięki temu drut jezdny jest na wysokości 0 (względem wstawienia słupa) i można określić położenie liny nośnej względem niego, podając jawną wartość. Można by też wstawiać słupy na wysokości główki szyny, ale wtedy w uchwyty drutu trzeba wpisywać wysokość zawieszenia drutu (np. 5.25m) i przeliczać wysokość liny nośnej (np. 5.25m+1.65m=6.9m). Utrudnia to ewentualną zmianę wysokości zawieszenia drutu (np. z 5.25m na 5.35m).
Patrząc od strony punktu 1 w stronę punktu 2 niwelety (albo toru bez niwelety), jeśli słup jest po prawej stronie, a drut jest ponad torem (w lewo od słupa), to Id takiego słupa będzie dodatni (Id>0). Analogicznie, Id słupa po lewej stronie drutu będzie ujemny.
Pomarańczowa kreska rysowana przez edytor będzie obrócona o 90° w lewo względem kąta obrotu obiektu. Wynika to z faktu, że słup jest obiektem poprzecznym do trajektorii ruchu.
Miejsce zawieszenia drutu
W ustawieniach pliku można określić punkty zawieszenia drutu względem miejsca wstawienia słupa (dwa uchwyty na słup).
Parametry w pliku
Dla większej wygody można pewne wartości zapisać na początku pliku słupa w postaci:
//rainsted,h0=3,v0=0,t0=0,h1=3,v1=1.65,t1=0 ... dalsza część pliku...
Znaczenie parametrów:
- h - przesunięcie poprzeczne dodawane przy eksportowaniu
- v - zmiana wysokości dodawana przy eksportowaniu
- h0 - odchylenie poprzeczne zawieszenia drutu 0
- v0 - wysokość zawieszenia drutu 0
- t0 - przesunięcie wzdłużne zawieszenia drutu 0
- h1 - odchylenie poprzeczne zawieszenia drutu 1
- v1 - wysokość zawieszenia drutu 1
- t1 - przesunięcie wzdłużne zawieszenia drutu 1
Tabliczka hektometrowa
Słup może mieć powiązaną tabliczkę hektometrową. Tabliczkę w edytorze dodaje się, umieszczając znak # (krzyżyk) w nazwie słupa — kilometraż zostanie pobrany z niwelety. Normalnie słupy nie posiadają nazwy, ponieważ w symulacji nie jest ona do niczego potrzebna. Jest też opcja umieszczenia tabliczki tylko z jednej strony — należy użyć nawiasu kwadratowego: [ (lewy), gdy tabliczka ma być widoczna w stronę rosnącego kilometrażu, a ] (prawy), gdy malejącego. Po tych znakach można też wpisać konkretny kilometraż, jaki ma się pojawić, jeśli tabliczka nie jest zgodna z niweletą (np. została zawieszona na innym słupie niż być powinna).
Co do zasady, rzeczywiste słupy mają swoją numerację, powiązaną z kilometrażem linii (żółte tabliczki). Ponieważ Rainsted nie jest używany do dokumentowania linii kolejowych, numeracja ta nie będzie obsługiwana. Jednak ewentualnie kiedyś może zostać to zmienione — w nazwie słupa będzie jego numer ewidencyjny, a tabliczka stanie się osobnym obiektem, doklejonym do słupa (podobnie jak doklejane są wskaźniki kolejowe). Wydzielenie tabliczek da również większe możliwości edycji ich zawartości oraz wyglądu.
Klasa opisuje obiekt mocowania przęsła sieci trakcyjnej oraz jednostronnie zamocowane przęsło. Położenie w scenerii jest opisane za czerech punktów o trzech współrzędnych XYZ. Mocowanie ma też określony kąt obrotu względem osi pionowej, a przęsło jest rozciągnięte do następnego mocowania na liście dwukierunkowej (przęsła mogą być połączone ze sobą tylko w jedną stronę).
Mocowanie sieci z przęsłem na ogół odpowiada kategoria Słupy, natomiast ewentualnie w planach jest wykorzystanie ich również do układania pędni. Przęsła mogą również pełnić rolę bramek, np. stanowiąc zawieszenie dla sieci tramwajowej. Również w tej kategorii mogą być latarnie, na ogół wtedy nie występują przęsła łączące pomiędzy nimi.
Zawartość rekordu
Start | 0x00 | 0x01 | 0x02 | 0x04 | 0x08 | 0x0C | 0x10 |
---|---|---|---|---|---|---|---|
Rozmiar [B] | 1 | 1 | 2 | 4 | 4 | 4 | 4 |
Nagłówek — wersje od 13 do 17 | Len | Flags | Type | Path | Id | Prev | Next |
Nagłówek — od wersji 18 | Len | Flags | Type | Id | Path | Prev | Next |
Nagłówek trójkąta (wersja 18) | Len | Flags | Type | Id | Tri[0..2] |
Pole Len zwykle ma wartość 1. Wyjątkiem są "słupy podwójne", które zawierają liczbę 2. W przyszłości mogą pojawić się też inne agregaty, np. słupy potrójne i poczwórne. Zasadniczo złączenie obiektów jako agregat służy do przemieszczania ich razem w sposób bardziej trwały niż np. przyklejenie (zwisu do bramki). Przykładem są słupy z wysięgnikiem oraz kotwieniem, które to kotwienie jest zawsze ściśle określone względem pozycji słupa, a każde zamocowanie drutu jest osobną listą dwukierunkową.
Pole Flags zawiera blokadę dla wartości Id (współrzędnej T w układzie THV). Jeśli blokada jest ustawiona, a obiekt ma połączenie do trajektorii z niweletą, będzie przesuwany wzdłuż trajektorii do odpowiedniego miejsca. Można to ewentualnie użyć do pozycjonowania słupa przy użyciu niwelety, jeśli ma on tabliczkę hektometrową ze znanym przesunięciem (a tabliczka jest na odpowiednim słupie). Pozostałe bity są używane do umieszczenia obiektów w grupach podczas różnych operacji.
Pole Type dla obiektów punktowych zawiera liczbę z zakresu 0x8000..0x8FFF, dzielących się następnie na 16 warstw. Dolny bajt pola Type zawiera flagi blokad:
- 0x80 to "Blokada odległości od trajektorii". Określa ona, czy obiekt ma podążać za korektami położenia np. toru. W przypadku sieci trakcyjnej powinno być to zaznaczone, wyjątkiem mogą być słupy kotwiące czy odciągowe, ustawione w większej odległości.
- 0x40 to "Domyślna wysokość zawieszenia". Mocowania z tą blokadą będą zmieniane operacją [Słupy z listy na [m]], która służy do masowego ustawienia (skorygowania) wysokości sieci. Blokadę należy wyłączyć np. dla mocowań pod wiaduktem, aby nie zostały przestawione przypadkowo na inną wysokość. W menu Operacje znajduje się opcja "Odwróć słupom flagę wysokości sieci", którą można zmienić tę blokadę na przeciwną dla wszystkich mocowań w przęśle naprężania (należących do jednej listy dwukierunkowej). Jest to w szczególności istotne dla starszych plików RSF, dla których działanie tej blokady nie było ściśle określone (sprzed 2018).
Pole Id zawiera kilometraż na niwelecie (współrzędną T w układzie THV, wyrażoną w [mm]). Istotny jest znak tej liczby: dodatni oznacza, że np. — przy patrzeniu w stronę rosnącego kilometrażu — podparcie mocowania będzie po prawej stronie. Liczba ta jest używana do generowania tabliczki hektometrowej, jeśli kilometraż nie zostanie wpisany ręcznie.
Pole Path może być puste (0) albo zawierać wskaźnik na obiekt nadrzędny, np. tor, drogę. Jeśli jest puste, to obiekt jest pozycjonowany w pionie na podstawie trójkątów terenu, punktów terenu, albo danych wysokościowych (SRTM, NMT-1). Jeśli jest wskaźnik na trajektorię, to pozycja względem trajektorii może zostać zablokowana i będzie każdorazowo przeliczana, aby zachować zapisane odległości. Jeśli nie będzie blokady, odległości te będą wyliczane względem rzutu współrzędnych XYZ obiektu na trajektorię.
Pola Prev oraz Next są używane do łańcuchowania obiektów. Dla słupów kolejne obiekty z listy tworzą sekcję naprężania.
Start | 0x14 | 0x44 | 0x48 | 0x4C |
---|---|---|---|---|
Rozmiar [B] | 48 | 4 | 4 | 4 |
Linia prosta | P[0..3] | BaseItem | BaseDist | Length |
Łuk | P[0..3] | BaseItem | Radius | Length |
Poprzeczka | P[0..3] | BaseItem | A0 | Angle |
Obiekt punktowy | P[0..3] | BaseItem | BaseDist | Angle |
Dla obiektów wstawianych punktowo głównym punktem wstawienia jest P[1]. W przypadku sieci trakcyjnej P[0] jest punktem końca wysięgnika (może "wystawać"), a przewód jezdny rozpięty jest pomiędzy P[2] (własny) i P[3] (mocowanie na innym słupie). Współrzędne zapisane są stałoprzecinkowo, w jednostkach równych 1/8129m. Przy eksportowaniu do plików tekstowych zalecane jest zaokrąglenie do 1mm.
Pole BaseItem wskazuje na bramkę, do której przyklejone są zwisy sieci trakcyjnej. W trakcie prac nad siecią w 2017 roku możliwe było sklejanie mocowań ze sobą, ale obecnie jest to zablokowane — możliwe, że zostanie przywrócone w przyszłości.
Pole BaseDist teoretycznie powinno zawierać odległość obiektu od punktu 1 przypisanej trajektorii, w rzeczywistości było błędnie liczone i nie używane do niczego. W przyszłości zastosowanie zostanie zmienione.
Pole Angle zawiera kąt obrotu obiektu, który jest używany podczas eksportu (wtedy może być do niego doliczona wartość stała, powiązana z plikiem). Kąt jest wyrażony czterobajtową liczbą typu float, ale w przyszłych wersjach pliku RSF planowana jest zmiana mapująca __int32 na kąt pełny (2π), co ma zwiększyć dokładność zapisu kąta.
Start | 0x50 | 0x54 | 0x58 |
---|---|---|---|
Rozmiar [B] | 4 | 4 | 4 |
Pola | Pos | File | Texture |
Pole Pos zawiera odległości od osi trajektorii w poziomie (Pos.H) i pionie (Pos.V) w [mm]. Zależnie od ustawionych blokad, odległości te albo są używane do wyliczania pozycji XYZ w P[1], albo są wyliczane jako różnica P[1] i jego rzutu na trajektorię. Jeśli trajektoria nie jest podpięta (jako Path), to P[1].Z jest wyliczany z wybranego modelu wysokości terenu (wg punktów wysokościowych albo wg trójkątów terenu). Ponieważ przyjęcie jednostki 1mm ogranicza odległość od trajektorii do ±32m, w planach było ewentualne użycie kompresji albo skalowania, jednak dotychczas nie zostało to wprowadzone.
Pole File zawiera wskaźnik na nazwę pliku obiektu oraz jego dodatkowe parametry (wymiary). Typ pliku to 0x2080..0x208F (młodszy bajt to warstwa).
Pole Teksture zawiera wskaźnik na nazwę pliku tekstury mocowania (np. mniej lub bardziej zardzewiała, słupy malowane na specyficzny kolor). Typ pliku to 0x2180..0x218F (młodszy bajt to warstwa).
Start | 0x5C | 0x60 | 0x61 | 0x62 | 0x64 | 0x68 | 0x6C | 0x70 |
---|---|---|---|---|---|---|---|---|
Rozmiar [B] | 4 | 1 | 1 | 2 | 4 | 4 | 4 | 16 |
Pola | Hekto | Hmin | Bar | (b) | Power | Wires | Name | WireAt[2] |
Pozostałe 36 bajtów jest wykorzystane na inne parametry, w tym ostatnie 20 bajtów najczęściej zawierają nazwę (wyjątkiem są mocowania sieci trakcyjnej, które zamiast nazwy zawierają współrzędne drutów).
Pole Hekto zawiera wskaźnik na obiekt określający parametry tabliczki hektometrowej, zostało to uruchomione pod koniec 2022 roku. Tabliczki hektometrowe mogą też być osobnymi obiektami, np. w przypadku, gdy na słupie jest kilometraż dla dwóch sąsiednich linii.
Pole Hmin 0..255 [cm] ma zawierać wysokość liny nośnej nad drutem jezdnym w połowie długości przęsła. Wartość ta może być inna niż standardowa, w szczególności na przęsłach pod mostami oraz na końcach (przy kotwieniu). Jeżeli pole zawiera 0, wartość obniżenia będzie brana z obiektu drutu. Jeśli obiekt drutu nie będzie istniał, domyślną wartością jest 0.4m. Ze względu na trwające dopracowanie szczegółów, znaczenie i wielkość pola mogą ulec zmianie.
Pole Bar -128..127 [cm] ma zawierać przesunięcie drążka odciągowego względem jego domyślnego ustawienia (0). Wartość ta służy do regulacji sieci trakcyjnej. Ze względu na trwające dopracowanie szczegółów, znaczenie i wielkość pola mogą ulec zmianie.
Pole (b) nie zostało zdefiniowane i będzie wykorzystane w przyszłości.
Pole Power zawiera wskaźnik na obiekt zasilania. Obecnie obiekty te są w warstwie 0x7D i ich edycja jest utrudniona. Planowane są zmiany w miarę porządkowania i ulepszania sieci. Co do zasady określają, czy dane przęsło ma podłączone zasilanie z podstacji, czy tworzy połączenie pomiędzy punktami zasilania.
Pole Wires zawiera wskaźnik na obiekt drutu, posiadający dodatkowe parametry dla przęseł pomiędzy naprężaniami. Typ obiektu to 0x2280..0x228F (młodszy bajt to warstwa).
Pole Name zawiera nazwę w postaci zakodowanego kilometrażu albo wskaźnik do rekordu z dłuższą nazwą (np. jeśli słup ma mieć inną tabliczkę z każdej strony).
Pole WireAt podaje położenie mocowania drutu jezdnego oraz liny nośnej, względem punktu wstawienia. Są one typu BinHVTA, gdzie H [mm] określa odległość w poziomie, V [mm] — w pionie (zwykle 0 dla drutu jezdnego), T [mm] jest skróceniem przęsła (np. o dodany wielokrążek w naprężaniu). Pole A [0.1°] może zawierać dodatkowy kąt oraz 4 bity ustawień (do sprawdzenia).
Obiekty powiązane
Warstwy ogólne
- 0x40..0x4F — sieć trakcyjna przy torach kolejowych, tramwajowych itd. Obiekty nadrzędne, wpisane jako Path.
- 0x50..0x5F — latarnie przy drogach. Obiekty nadrzędne, wpisane jako Path.
- 0x60..0x6F — ewentualne powiązania z ciekami wodnymi, aktualnie nie używane. Obiekty nadrzędne, wpisane jako Path.
- 0x80..0x8F — łańcuchowanie obiektów danej warstwy, wpisywane jako Prev i Next.
Warstwy specyficzne
- 0x7D — obiekty zasilania sieci oraz grupowania w sekcje zasilania pomiędzy punktami zasilania. Pole Power.
- 0xA8 — bramki o stałej długości (zwykle półbramki). Do przyklejenia jako BaseItem.
- 0xA9 — bramki o zmiennej długości. Do przyklejenia jako BaseItem.
Obiekty nazw
- 0x2020 — nazwa obiektu ogólnego użytku, wskaźnik może być wpisany do pola Name, jeśli nie zawiera ono nazwy skompresowanej.
- 0x2220 — komentarz umieszczony przed obiektem.
- 0x2221 — przedłużenie komentarza przed obiektem.
- 0x2222 — komentarz umieszczony po obiekcie.
- 0x2080..0x208F — nazwy plików INC mocowań (modele 3D). Pole File. Obiekt nazwy pliku może zawierać dwie nazwy plików INC dla mocowań, rozdzielone średnikiem. W takim przypadku zawierać powinien też drugi zestaw punktów zawieszenia drutu dla drugiego mocowania. Jest to rozwiązanie tymczasowe dla słupów podwójnych, gdzie drugim mocowaniem jest kotwienie. Druga nazwa mocowania będzie użyta tylko jeśli obiekt używający będzie "słupem podwójnym", dla pojedynczego mocowania zostanie zignorowana. Ze względu na zamieszanie w kolejności parametrów dla mocowań, obiekt pliku powinien mieć ustawiony kod eksportowania.
- 0x2180..0x218F — nazwy tekstur dla modeli 3D. Pole Texture.
- 0x2280..0x228F — obiekty drutu dla sekcji naprężania. Definiują dodatkowe parametry przęseł, jak liczba drutów jezdnych, lin nośnych, gęstość wieszaków itd. Pole Wires.
- 0x2380..0x238F — wzorce eksportu tabliczek hektometrowych, zawierają również dane do zaokrąglenia przed wygenerowaniem cyfr dla tabliczki. Pole Hekto. Dopuszczalne jest doczepianie w ten sposób innych obiektów, o ile tabliczka hektometrowa nie jest potrzebna. Obiekt tabliczki hektometrowej jest wstawiany w osi słupa oraz na wysokości główki szyny.
Inne
Klasy ogólne | Bin • BinManager • BinRecord • BinItem • BinLine • BinPos |
---|---|
Klasy parametrów | BinFile • BinArcInfo |
Klasy obiektów | BinTrack • BinPath • BinSection • BinTraction |
Linie | Linia kierunkowa • Niweleta • Poprzeczka • Trajektoria • Ściana |
Punktowe | Bramka • Budowla • Drzewo • Obrotnica • Most • Przejazd • Studnia • Ukres
Sygnał • Słup • Słupek kilometrażowy |
Trójkąty | Trójkąty • Teren NMT-100 • CityGML |
Eksport | MaSzyna • Kody eksportu |
Operacje | Układanie niwelety • Łuki koszowe |
Inne | RSF wersja 15 • RSF wersja 16 • Warstwy • Grupa • Komórki • Scenerie • RSFSTRU |