Hej!
Opowiem dziś jak w OpenRoads Designer zmieniać szerokość nawierzchni względem szerokości z Template. Przyda się to przykładowo przy:
- Zmianie szerokości pasów ruchu na łuku,
- Dodawaniu wyjazdów i wjazdów w obszarze węzła,
- Definiowaniu własnych krawędzi po których chcemy kontrolować punkty korytarza.
W artykule jako przykład pokażę jak poszerzać pasy ruchu na łuku. Skorzystam z Workspace Training and Examples, który jest domyślnie instalowany razem z ORD.
Dostępne metody
W OpenRoads Designer poszerzyć pasy ruchu możemy na wiele sposobów:
- Metoda linii śledzenia – z wykorzystaniem Horizontal Feature Constraint
- Parametric Constraint
- Metoda linii śledzenia – z wykorzystaniem Point Control
- Curve Widening
Ja najczęściej korzystam z pierwszej metody i ją zademonstruję w tym artykule. Najpierw jednak opiszę pokrótce na czym polegają pozostałe metody i kiedy z nich korzystać.
Inne metody – Parametric Constraint
Polega na ręcznej zmianie Constraint (więzów) z przekroju Template. Dla danego Constraint zdefiniujemy: początkowy i końcowy kilometraż oraz początkową i końcową wartość Constraint. Pozwoli nam to przykładowo na zmianę wartości szerokości pasa ruchu od 3 m do 4 m na odcinku od km 0+100 do km 0+200.
Kroki:
- Dodajemy Label na Constraint dla danego punktu naszego Template. Nazwę Label w pierwszym punkcie wpisujemy ręcznie i przy następnych punktach powinna być już dostępna z listy.
- W Corridor Objects dodajemy Parametric Constraint na podstawie początkowych i końcowych kolejno wartości kilometraża oraz wartości danego Constraint.


Zalety:
- Całą listę Parametric Constraint możemy trzymać w Excelu i wykonywać eksport/import do programu.
- Wygodna i intuicyjna przy pojedynczych zmianach.
Wady:
- Zależy od ręcznie wpisanych wartości takich jak kilometraż osi, więc przy każdej zmianie w planie trzeba aktualizować wszystkie Parametric Constraint.
- Mało czytelna przy dużej liczbie danych. Już dla jednego poszerzenia łuku trzeba dodać 3 rekordy – dwie zmiany poszerzenia na krzywych przejściowej i jedno stałe poszerzenie na łuku.
- Pozwala jedynie na liniowe zmiany szerokości.
Przykłady wykorzystania:
- Gdy mamy pewność, że oś się nie zmieni, a naprawdę chcemy skorzystać z tej metody.
- Małe lokalne zmiany, które niewygodnie byłoby wprowadzać innymi metodami np. poszerzenie dna rowu na odcinku lub pojedyncza zmiana pochylenia poprzecznego.
Inne metody – Point Control
W tej metodzie rysujemy linie śledzenia (linie kontroli), do których dowiążemy punkty z Template. Działa podobnie do metody z wykorzystaniem Horizontal Feature Contraint.
W Corridor Objects dodajemy Point Control:
- Mode – Horizontal
- Control Type – Linear Geometry
- Point – Punkt Template, który będzie zmieniał szerokość. Możemy wybrać go z planu klikając na element korytarza.
- Plan Element – Element po którym będzie podążał wybrany przed chwilą Point. Również można go wybrać z planu.

Zalety:
- Mamy do wyboru 3 typy kontroli – Horizontal, Vertical i Both.
- Możemy narysować własny element, do którego dowiążemy się punktem z Template.
Wady:
- Może wprowadzić brak czytelności przy większej liczbie Point Controli.
- Trochę gorszy performance niż Horizontal Feature Constraint.
Przykłady wykorzystania:
- Kontrola Horizontal – jako uzupełnienie lub zamiennik metody linii śledzenia.
- Kontrola Vertical – doczepianie rzędnych rowu do niwelet rowów.
- Kontrola Both – jako zamiennik End Condition Exception lub gdy chcemy coś dowiązać wysokościowo do innej linii w 3D.
Inne metody – Curve Widening
W tej metodzie program automatycznie utworzy poszerzenia pasów ruchu na łuku na podstawie tabeli w formacie WID. Nie będę analizował bardziej szczegółowo tej metody, bo szczerze mówiąc zbyt często jej nie używam.
Zalety:
- Jest szybka
Wady:
- Działa tylko dla poszerzeń pasów ruchu na łuku. Nie wykorzystamy jej do tworzenia np. wjazdów/wyjazdów w obszarze węzła.
- Mało czytelna i trudna w edycji.
- Całkowicie automatyczna przez co trzeba ją kontrolować.
Przykłady wykorzystania:
- Gdy chcemy bardzo szybko utworzyć poszerzenia np. na etapach optymalizacji.
Metoda linii śledzenia z Horizontal Feature Constraint
Działa analogicznie jak Point Control z kontrolą Horizontal, omija jednak dodawanie Point Controli przez co poprawia czytelność korytarza. Składa się z 3 kroków:
- Przygotowanie template – ustawienie Horizontal Feature Contraint
- Narysowanie linii śledzenia (linii kontroli)
- Dodanie linii śledzenia do referencji korytarza
Jeżeli w korytarzu korzystamy zarówno z Horizontal Feature Constraint i Point Controli, to przy generowaniu korytarza warunki Horizontal Feature Constraint przetwarzane są przed Point Controlami.
Przygotowanie Template
Będziemy chcieli śledzić lewą i prawą krawędź nawierzchni, więc musimy przygotować oba punkty Template pod poszerzanie. Wybieramy więc Feature Definition (FD) dla Horizontal Feature Contraint.

Jak to działa? Otóż w kolejnym punkcie narysujemy ręcznie w planie krawędzie nawierzchni (linie śledzenia) na wybranym FD i program automatycznie będzie śledził te krawędzie na podstawie tego samego FD, który przypiszemy teraz do punktu w Template. Ja dla lewej krawędzi wybrałem FD o nazwie „Linear/Pavement/Profile_EdgeOfPavement_L” (dla drugiej analogicznie R). Dodam, że warto pomyśleć nad utworzeniem własnych niedrukowalnych FD dla tych kontroli np. HFC01, HFC02, HFC03 itd. Wtedy możemy przykładowo przygotować nasz Template w taki sposób:
- Krawędź lewa nawierzchni – HFC01
- Krawędź prawa nawierzchni – HFC02
- Pobocze lewe z poszerzeniami pod barierę itd. – HFC03
- Chodnik prawy z lokalnymi poszerzeniami – HFC04
Pod wyborem Horizontal Feature Contraint jest jeszcze coś takiego jak Range. Chodzi o wskazanie programowi jak daleko danego punktu ma szukać linii śledzenia. Range przyjmuje ujemne wartości dla lewej strony od danego punktu i dodatnie dla prawej strony. W 95% przypadków zostawiamy Range na 0 – program traktuje to jako nieskończoność. Range przyda się przy projektowaniu łącznic pośrednich w formie tzw. ślimaka, lub serpentyn.
Narysowanie linii śledzenia
Do rysowania linii korzystamy z zakładki Horizontal -> Offsets and Tapers. Znajdują się tam narzędzia do rysowania linii zależnych od innego elementu. Przykładowo możemy narysować linię odsuniętą 3 m od osi drogi na danym odcinku. Taka linia będzie pamiętać przywiązanie do osi drogi i gdy będziemy zmieniać oś w planie, to linia podąży dynamicznie za osią.
Dostępne funkcje:
- Single Offset Entire Element – stały offset na całej długości osi
- Single Offset Partial – stały offset na wybranym odcinku
- Variable Offset Taper – zmienny offset (różne odsunięcia na początku i końcu) na wybranym odcinku

Całą lewą krawędź narysuję funkcją Single Offset Entire Element, bo mam łuk prawy, a chcę go poszerzyć tylko do środka. Pamiętajmy o ustawieniu poprawnego FD – w tym przykładzie jest to „Linear/Pavement/Profile_EdgeOfPavement_L”. Warto też nadać logiczną nazwę, żeby potem wiedzieć do czego służy element.

Prawą krawędź narysujemy funkcjami Single Offset Partial i Variable Offset Taper. Nie musimy od razu ustawiać FD i nazw, bo i tak będziemy musieli na końcu połączyć elementy w jeden funkcją Complex. Jeśli chcemy to przy wybieraniu kilometraża możemy snapować się do osi. Wtedy przykładowo przy zmianie promienia osi dostosują się również poszerzenia. Ja osobiście nie przepadam za częstym snapowaniem w ORD, ale tu nie będzie to groźne.


Gdy jesteśmy zadowoleni z narysowanych linii dla prawej krawędzi, to musimy je połączyć w jedną geometrię. Korzystamy z Complex Geometry w zakładce Horizontal. Tu wybieramy poprawny FD i ustawiamy nazwę.

Dodanie linii śledzenia do referencji korytarza
Ostatni punkt, o którym się często zapomina. Tworzymy nowy korytarz i przechodzimy do Corridor Objects. W zakładce External Reference dodajemy obie linie śledzenia. I tyle 😊 Korytarz powinien się przeliczyć i wykonać poszerzenia.

Podsumowanie
W OpenRoads jest dostępnych kilka metod do tworzenia kontroli punktów w planie. Ja polecam metodę linii śledzenia z wykorzystaniem Horizontal Feature Contraint. Wtedy takie linie śledzenia są widoczne w planie i łatwe do edycji.