Offsetpolyline

Z UMP

(Różnice między wersjami)
(wersja pierwotna)
Aktualna wersja (16:54, 7 lip 2014) (edytuj) (anuluj zmianę)
(wygładzenie tekstu, ujednolicenie wersji o jedynym słusznym sposobie rysowania)
 
(Nie pokazano 7 wersji pośrednich.)
Linia 1: Linia 1:
 +
[[Kategoria:Narzędzia]]
== Offsetpolyline - skrypt ==
== Offsetpolyline - skrypt ==
-
Narzędzie skryptowe do rysowania linii przesuniętej wobec innej linii o zdefiniowaną odległość (offset, przesunięcie) w wybranym kierunku. Do czego można użyć skryptu? Do rysowania [[Szlaki|szlaków]]. Są dwie szkoły rysowania, skrypt wspiera tę szkołę, gdy szlak nie leci po drodze, ale jest wobec niej przesunięty.
+
Narzędzie skryptowe do rysowania linii przesuniętej wobec innej linii o zdefiniowaną odległość (offset, przesunięcie) w wybranym kierunku. Do czego można użyć skryptu? Do rysowania [[Szlaki|szlaków]]. Są dwie szkoły rysowania, ale podobno '''''została tylko jedna''''' - wariant '''szlak obok drogi''' offset -5, -10, -15 lub +5, +10, +15.
-
Skrypt znajduje się domyślnie w katalogu '''.\narzedzia\lua\''' jako '''offsetpolyline.lua'''. Najlepiej chyba przygotować skrypt dla "swojego" obszaru i umieścić go w katalogu poza drzewem katalogów w ramach UMP, np. w obrębie katalogów MapEdit.
+
Skrypt znajduje się domyślnie w katalogu '''.\narzedzia\lua\''' jako '''offsetpolyline.lua'''. Najlepiej chyba przygotować skrypt dla "swojego" obszaru i umieścić go w katalogu poza drzewem katalogów w ramach UMP, np. w obrębie katalogów MapEdit. Skrypt warto trzymać w wariantach: 0, -5, +5, -10, +10 oraz -15 i +15.
 +
 
 +
<gallery widths=250 heights=250>
 +
Grafika:offsetpolyline-001.png|Zaznaczamy linię lub wiele linii
 +
Grafika:offsetpolyline-002.png|Uruchamiamy skrypt (ja już uruchamiałem, dlatego nie muszę szukać)
 +
Grafika:offsetpolyline-003.png|Linia wygenerowana
 +
Grafika:offsetpolyline-004.png|Zbliżenie
 +
</gallery>
 +
 
 +
Skrypt działa bardzo sprawnie. Trzeba tylko na początku i na końcu dociąć zgodnie z potrzebami oraz wyedytować właściwości - typ szlaku oraz plik źródłowy. Można też skorzystać z POI oznaczających początek/koniec szlaku pieszego lub rowerowego (0x670x - SZLAK_x lub ROWER_x - na stronie [[Co-czym]]).
 +
 
 +
=== Parametry skryptu ===
 +
 
 +
Parametry są w samym pliku i są to:
 +
* '''offsetMeter''' - przesunięcie wobec drogi zaznaczonej w metrach
 +
* '''typszlaku''' - definicja linii jaka używana jest do rysowania - jest opisana w tablicy w pliku - wystarczy skopiować
 +
* '''plikObiektu''' - nazwa pliku w jakim domyślnie ma się znaleźć nowy obiekt - mając własny skrypt definiujemy statycznie plik, który będzie domyślnym celem.
 +
 
 +
=== Problemy ===
 +
 
 +
Rysując szlaki lub cokolwiek innego równoległego wobec innej linii (można sobie wyobrazić narysowanie drugiej nitki jezdni w ten sposób) należy pamiętać o:
 +
* jeżeli szlak ma biec wzdłuż wielu dróg - zaznaczmy wiele dróg z Ctrl - kolejno, tak jak będzie szlak biegł i na tak zaznaczonej grupie obiektów uruchamiamy skrypt - pozostaje docięcie końców zgodnie z potrzebami
 +
* <del>czasami na łączeniach dróg (na wysokości łączenia) skrypt stawia dwa węzły obok siebie - do usunięcia od razu lub po sprawdzeniu błędów</del> - problem powstaje tylko wtedy, gdy łączymy dwa odcinki narysowane skryptem i końce są minimalnie przesunięte - nic dziwnego, że w wyniku '''merge''' powstanie zdublowany punkt
 +
* jeżeli szlak biegnie pętlami, a drogi biegną dalej - skrypt może fragmentu nie narysować - wtedy pozostaje zaznaczenie tylko tej drogi, użycie na niej skryptu, później docięcie i wykonanie '''Merge''' (patrz na poprzednią uwagę)
 +
* wszystkie zaznaczone linie muszą być ze sobą połączone, tzn. mieć wspólne węzły - brak wspólnych węzłów będzie skutkował komunikatem o błędzie
 +
* '''z lewej''' lub '''z prawej''' zależy od zwrotu danej jezdni (kierunku), dlatego warto mieć pod ręką skrypt +n i -n by w razie potrzeby narysować szlak z drugiej strony i zbędny usunąć - jeżeli ''przypadkowo'' narysowało się po niewłaściwej stronie drogi to bez zmiany zaznaczenia wykonaj skrypt dla przeciwnej wartości przesunięcia
 +
 
 +
Autorem skryptu jest '''aligeza'''.

Aktualna wersja

Offsetpolyline - skrypt

Narzędzie skryptowe do rysowania linii przesuniętej wobec innej linii o zdefiniowaną odległość (offset, przesunięcie) w wybranym kierunku. Do czego można użyć skryptu? Do rysowania szlaków. Są dwie szkoły rysowania, ale podobno została tylko jedna - wariant szlak obok drogi offset -5, -10, -15 lub +5, +10, +15.

Skrypt znajduje się domyślnie w katalogu .\narzedzia\lua\ jako offsetpolyline.lua. Najlepiej chyba przygotować skrypt dla "swojego" obszaru i umieścić go w katalogu poza drzewem katalogów w ramach UMP, np. w obrębie katalogów MapEdit. Skrypt warto trzymać w wariantach: 0, -5, +5, -10, +10 oraz -15 i +15.

Skrypt działa bardzo sprawnie. Trzeba tylko na początku i na końcu dociąć zgodnie z potrzebami oraz wyedytować właściwości - typ szlaku oraz plik źródłowy. Można też skorzystać z POI oznaczających początek/koniec szlaku pieszego lub rowerowego (0x670x - SZLAK_x lub ROWER_x - na stronie Co-czym).

Parametry skryptu

Parametry są w samym pliku i są to:

  • offsetMeter - przesunięcie wobec drogi zaznaczonej w metrach
  • typszlaku - definicja linii jaka używana jest do rysowania - jest opisana w tablicy w pliku - wystarczy skopiować
  • plikObiektu - nazwa pliku w jakim domyślnie ma się znaleźć nowy obiekt - mając własny skrypt definiujemy statycznie plik, który będzie domyślnym celem.

Problemy

Rysując szlaki lub cokolwiek innego równoległego wobec innej linii (można sobie wyobrazić narysowanie drugiej nitki jezdni w ten sposób) należy pamiętać o:

  • jeżeli szlak ma biec wzdłuż wielu dróg - zaznaczmy wiele dróg z Ctrl - kolejno, tak jak będzie szlak biegł i na tak zaznaczonej grupie obiektów uruchamiamy skrypt - pozostaje docięcie końców zgodnie z potrzebami
  • czasami na łączeniach dróg (na wysokości łączenia) skrypt stawia dwa węzły obok siebie - do usunięcia od razu lub po sprawdzeniu błędów - problem powstaje tylko wtedy, gdy łączymy dwa odcinki narysowane skryptem i końce są minimalnie przesunięte - nic dziwnego, że w wyniku merge powstanie zdublowany punkt
  • jeżeli szlak biegnie pętlami, a drogi biegną dalej - skrypt może fragmentu nie narysować - wtedy pozostaje zaznaczenie tylko tej drogi, użycie na niej skryptu, później docięcie i wykonanie Merge (patrz na poprzednią uwagę)
  • wszystkie zaznaczone linie muszą być ze sobą połączone, tzn. mieć wspólne węzły - brak wspólnych węzłów będzie skutkował komunikatem o błędzie
  • z lewej lub z prawej zależy od zwrotu danej jezdni (kierunku), dlatego warto mieć pod ręką skrypt +n i -n by w razie potrzeby narysować szlak z drugiej strony i zbędny usunąć - jeżeli przypadkowo narysowało się po niewłaściwej stronie drogi to bez zmiany zaznaczenia wykonaj skrypt dla przeciwnej wartości przesunięcia

Autorem skryptu jest aligeza.