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 jenpm 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.jsonkażdej biblioteki wypisuje, co decyduje o wyborze znaku (nieczynnyprzednapowietrzny, 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śniejszy | Poprawnie | Uwaga |
|---|---|---|
| SUPW | SUWP | przewód wodociągowy; SUPW to właz do komory lub kanału |
| SUPK | SUKP | przewód kanalizacyjny; SUPK to komora podziemna |
| SUPG | SUGP | przewód gazowy |
| SUPE | SUEP | przewód elektroenergetyczny |
| SUPT | SUTP | przewód telekomunikacyjny |
| SUPZ, SUPI, SUPB, SUPN | SUSP | sieć 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.
GEO — mapa zasadnicza
Moduł GEO (identyfikator mapa) pokazuje mapę zasadniczą: trzy rejestry urzędowe — GESUT, EGiB i BDOT500 — narysowane znakami umownymi z załącznika nr 4 do rozporządzenia.
CAD2D — rysowanie
Moduł CAD2D odpowiada za rysunek roboczy: prymitywy, warstwy, edycję, wymiarowanie i wymianę z formatami CAD.