Ai-Xis 6
Przestrzeń GEO

Znaki umowne (SetBase)

Moduł „Znaki umowne" jest edytorem biblioteki znaków wg załącznika nr 4 do rozporządzenia. Odpowiada za to, jak obiekt zostanie narysowany: definicję znaku, jego walidację i kompilację do warstw mapy.

Moduł „Znaki umowne" jest edytorem biblioteki znaków wg załącznika nr 4 do rozporządzenia. Odpowiada za to, jak obiekt zostanie narysowany: definicję znaku, jego walidację i kompilację do warstw mapy.

Zarządzanie całymi bibliotekami — przegląd schematu aplikacyjnego rozp. 2021, zakładanie własnych — należy do modułu S-Base. To dwa różne poziomy: tutaj pojedynczy znak, tam biblioteka.

Co działa

  • Schemat znaku i walidacja przy każdym zapisie — znak niepoprawny nie wchodzi do biblioteki po cichu.
  • Kompilator znak → warstwy mapy: linie, punkty, wypełnienia, kreskowania, etykiety.
  • Generatory schematu aplikacyjnego (GESUT, EGiB, BDOT500) z treści rozporządzenia oraz z plików DXF, LIN i SHX.
  • Znak dociągany pojedynczo, nie arkuszem (od 2026-09-25). Mapa mówi, którego znaku potrzebuje, i dopiero wtedy wchodzi jego plik — rysunek z pięcioma znakami pobiera pięć obrazków. Wcześniej szedł jeden arkusz ze wszystkimi kaflami naraz, z czego ponad cztery piąte to wzory linii, po które nie sięga żadna warstwa. W trybie deck.gl ten sam arkusz trafiał dodatkowo w całości do karty graficznej i przekraczał jej limit tekstury blisko trzykrotnie — symbole mogły przez to nie rysować się wcale albo wychodzić przesunięte.
  • Symbole jednobarwne są zapisane jako SDF, więc jeden plik obsługuje wszystkie branże — barwę nadaje kolor znaku. Każdy obraz jest w podwojonej gęstości, żeby był ostry na ekranach o dużej rozdzielczości.
  • Teczka na obiekt (od 2026-09-25) — każdy znak ma własny komplet plików, zamiast być rozsypanym po sześciu rejestrach. Układ idzie biblioteka → kod → obiekt, bo kod nadaje biblioteka, a każda ma własną prezentację: gesut/SUEP/suep_napowietrzny_e/. W teczce leżą definicja znaku, blok, wzór linii i przypisanie do schematu aplikacyjnego; obok, poza repozytorium, jego grafika: SVG, dwa PNG i gotowy blok DXF. Składa je npm run teczki — polecenie nie przebudowuje bibliotek, tylko układa to, co już jest, więc ręczne poprawki znaków przeżywają. Mapa dociąga plik znaku dopiero wtedy, gdy warstwa o niego poprosi; na czas pobierania stoi pod tą nazwą przezroczysta zasłona 1 × 1 (rysuje nic), dzięki czemu konsola nie zgłasza „could not be loaded" (od 2026-09-25) — po wczytaniu pliku zasłona schodzi i wchodzi prawdziwy obraz.
  • Warunki wyboru wariantu są danymi, nie kolejnością instrukcji. prezentacja.json każdej biblioteki wypisuje, co decyduje o wyborze znaku (nieczynny przed napowietrzny, ten przed stanem) i skąd to wiadomo: warunek ze schematu (atrybut obiektu, np. przebieg: n) czy z aktu (w skali, warianty rysunku A/B — tego żaden atrybut nie niesie i jest to oznaczone wprost). Kody i klasy pochodzą z XSD, nie z nazw plików.
  • Podgląd wektorowy znaku i bloku.
  • Inwersja motywu — tylko na ekranie. Czerń znaków odwraca się w motywie ciemnym; wydruk i eksport DXF pozostają nietknięte.
  • Rejestr braków (braki.json) — znak, którego nie ma w źródłach, jest wpisywany do rejestru, a nie zastępowany atrapą. Nic nie ginie po cichu.

Zasady, których nie wolno obejść

  • Kolory i wymiary bierzemy liczbowo z aktu, nigdy „na oko" i nigdy z cudzej symboliki.
  • Poprawki symboliki idą do generatorów, nigdy ręcznie do plików JSON — ręczna poprawka zniknie przy najbliższym przebudowaniu biblioteki.
  • Reguły znaku żyją wyłącznie w kodzie aplikacji; druga implementacja tych samych reguł w SQL rozjechałaby się przy pierwszej zmianie.

Ograniczenia

  • Rejestr kreskowań ma dziś jeden wzór (skarpa) — brakuje wzorów dla BDOT500 i EGiB.
  • Rozmiary symboli niosą 15 cyfr po przecinku — artefakt konwersji z DXF, bez zaokrąglenia w generatorze.
  • Uwagi z załącznika nr 4 (kolor SUPK, punkt wstawienia SUPY) nie są jeszcze przełożone na geometrię; warianty napięć SUEP czekają na rozstrzygnięcie, czy rozbić je na osobne znaki, czy nieść atrybutem.
  • Biblioteka nie ma własnego znaku wymiaru — wymiarowanie bierze styl ze znaku warstwy bieżącej.

Rozbieżności planu a rozporządzenie

Katalog kodów GESUT był w starszych zapisach planu napisany wobec rozporządzenia z 2015 r., uchylonego w 2021 r. Rozstrzygnięcia, które weszły do kodu:

Zapis wcześniejszyPoprawnieUwaga
SUPWSUWPprzewód wodociągowy; SUPW to właz do komory lub kanału
SUPKSUKPprzewód kanalizacyjny; SUPK to komora podziemna
SUPGSUGPprzewód gazowy
SUPESUEPprzewód elektroenergetyczny
SUPTSUTPprzewód telekomunikacyjny
SUPZ, SUPI, SUPB, SUPNSUSPsieć specjalna; SUPB to budowla podziemna, SUPN — podpora przewodów

Kod obiektu jest czteroliterowy: trzy litery kategorii sieci, czwarta — rodzaju obiektu. Przewód to litera P na czwartej pozycji, nie na trzeciej. Kolizje znaczeniowe były najgroźniejszą częścią problemu: plik przeszedłby walidację składniową i dopiero PODGiK zauważyłby, że przewody wodociągowe zgłoszono jako włazy.

Nie ma też osobnych sieci paliwowych — rozporządzenie zna „sieć specjalną" (SUS) z przewodem SUSP. Kolejność sieci w katalogu to W, K, E, G, C, T, S, N.

Na tej stronie