CAD2D — rysowanie
Moduł CAD2D odpowiada za rysunek roboczy: prymitywy, warstwy, edycję, wymiarowanie i wymianę z formatami CAD.
Moduł CAD2D odpowiada za rysunek roboczy: prymitywy, warstwy, edycję, wymiarowanie i wymianę z formatami CAD. Rysuje na tej samej mapie, co GEO, więc rysunek stoi w układzie projektu, a nie w pikselach ekranu.
Prymitywy i decyzja geometryczna
Model danych operuje wyłącznie na geometriach: punkt, linia łamana, multilinia, poligon, multipunkt — tak jak rozporządzenie GESUT.
Okrąg jest dostępny jako narzędzie (środek + promień albo trzy punkty),
ale zapisywany jako koło: poligon o podziale adaptacyjnym, sterowanym
dopuszczalną strzałką δ = 0,01 m:
θ = 2·arccos(1 − δ/R) kąt jednego segmentu
n = clamp(ceil(2π/θ), 16, 512) liczba wierzchołków kołaPodział zagęszcza się z promieniem, więc odchyłka jest stała niezależnie od
wielkości obiektu: R = 0,5 m → 16 wierzchołków, R = 10 m → 71, R = 50 m → 158.
Dolny limit 16 chroni małe studzienki przed karykaturalnym wielokątem, górny
512 — wydajność. Parametry srodek_x, srodek_y i promien są
przechowywane obok geometrii, żeby edycja działała na nich, a nie na
wierzchołkach.
Oś X projektu jest na ekranie pionowa, oś Y idzie w prawo (każda strefa PL-2000 tak samo; przywrócone 2026-09-20 po dniu z północą geograficzną, gdy prostokąt po osiach układu wyglądał na skręcony). Mapa jest obrócona o zbieżność południków liczoną w środku widoku, więc północ siatki układu (PL-2000 albo PL-1992) stoi pionowo — jak w CAD-zie, a nie jak w mapie internetowej, gdzie pionowo stoi północ geograficzna. Obrót przelicza się po każdym przesunięciu mapy; w widoku 3D obrót należy do użytkownika. Przycisk Obróć na północ i powrót z widoku 3D do 2D obracają mapę jednym ruchem prosto na północ układu (od 2026-09-14) — wcześniej widok obracał się najpierw na północ geograficzną, a po chwili przeskakiwał o zbieżność południków.
Krawędzie opisów i symboli są wygładzane (od 2026-09-14): płótno mapy pracuje z wielopróbkowaniem (MSAA), więc skośne krawędzie liter i znaków nie wychodzą schodkami pikseli. Od 2026-09-19 nakładka rysująca znaki i wzory pracuje dodatkowo w buforze o podwójnej gęstości względem ekranu (nadpróbkowanie 2×, razem 16 próbek na piksel). Na ekranach o dużej gęstości (DPR 2–3) gęstość bufora jest ograniczona do 3, bo sam ekran już wygładza.
Napisy mają własny tor z własnym shaderem (od 2026-09-19, polecenie
„własny shader liter i cyfr — nowy, oddzielny tor"). Każda litera i cyfra to
jeden czworokąt w jednej siatce na krój; shader próbkuje pole odległości
(atlas SDF o rozdzielczości 128 px na firet, liczony z tych samych konturów,
co dawne trójkąty, z czterokrotnym nadpróbkowaniem krawędzi) i wylicza krycie
tak, że przejście krawędzi ma zawsze około jednego piksela ekranu — przy
literze 8 px i przy 200 px. Tor nie używa MSAA ani nadpróbkowania i jest
tańszy: dwa trójkąty na literę zamiast kilkudziesięciu, jedno wywołanie
rysowania na krój. Układ liter, rozmiar stały/terenowy, zbieżność
południków, pole trafień i odnośniki są wspólne z dotychczasowym torem.
Do porównania na żywo ?napisyTrojkaty w adresie przywraca stary tor.
Łuków jako osobnego typu geometrii nie ma. Łuki z DXF są aproksymowane tym
samym kryterium strzałki, a CIRCLE importowany jako koło.
Narzędzia
Narzędzia rysowania i edycji stoją w lewym pasku ramki (kolumna ikon 50 px, patrz Układ aplikacji), nie nad mapą — mapa ma dzięki temu całą wysokość ramki.
Rysowanie (każde narzędzie kończy obiekt samo, gdy ma komplet wskazań, i wraca do PRZESUWAJ; spacja powtarza ostatnie polecenie):
| Narzędzie | Wskazania | Co powstaje |
|---|---|---|
| Punkt | 1 | punkt |
| Linia | 2 | linia |
| Polilinia | dowolnie, dwuklik kończy | linia |
| Poligon | dowolnie, dwuklik kończy | poligon |
| Prostokąt | 2 przeciwległe naroża | poligon o bokach równoległych do osi układu projektu; podgląd liczony w metrach, więc jest tym samym, co powstanie |
| Trójkąt | 3 | poligon |
| Okrąg — promień | środek, punkt na obwodzie | koło |
| Okrąg — średnica | 2 końce średnicy | koło (środek w połowie, promień to połowa cięciwy) |
Te same narzędzia przyjmują współrzędne z konsoli: prostokąt i średnica domykają się po dwóch wpisach, trójkąt po trzech.
Edycja
Toolbox CAD (od 2026-09-21, wzorowany na zestawie narzędzi KestrelCAD): obok PRZYTNIJ, WYDŁUŻ, PODZIEL, ODSUŃ i ODBIJ doszły PRZESUŃ i KOPIUJ (wskaż obiekt, punkt bazowy i docelowy), OBRÓĆ (obiekt, punkt bazowy; kąt w gradach z pola w pasku, dodatni zgodnie z azymutem), SKALUJ (obiekt, punkt bazowy; współczynnik z pola, 0,5 = połowa), ZAOKRĄGLIJ (wskaż narożnik; promień z pola — łuk styczny do obu ramion) i SFAZUJ (wskaż narożnik; odległość ścięcia z pola). Pole parametru w pasku pokazuje się tylko przy narzędziu, które go potrzebuje. Każda operacja to jeden wpis na stosie cofania.
Co łapie kliknięcie
Wskazanie obiektu bierze pod uwagę cztery rzeczy naraz, w tej kolejności: kreskę i symbol, opis (kliknięcie w rzędną czy średnicę zaznacza obiekt, którego to opis), punkt rysowany blokiem i — od 2026-09-25, przy włączonym przycisku POWIERZCHNIA — obszar poligonu.
Cały napis jest klikalny (od 2026-09-25). Pole trafienia opisu liczy się z rzeczywistego prostokąta tekstu w pikselach ekranu — tą samą drogą, którą układane są litery — więc obejmuje napis w całości i działa tak samo przy rysowaniu przez MapLibre i przez deck.gl. Wcześniej trafienie dawała przezroczysta warstwa napisów, która pod dużymi rysunkami (deck.gl) nie miała czego łapać, a i tam, gdzie działała, była o blisko trzecią mniejsza od widocznego napisu. Przy napisach zachodzących na siebie pierwszy na liście stoi mniejszy — klikając rzędną leżącą na numerze działki, wskazujesz rzędną.
Wnętrze figury jest klikalne, gdy włączysz przycisk POWIERZCHNIA
(Z-CAD2D-KLIK-OBSZAR-01). Wcześniej trzeba było trafić w sam obrys: linia
0,18 mm to na ekranie jeden–dwa piksele. Obszar liczy się geometrycznie we
współrzędnych projektu, a nie przez przezroczystą warstwę wypełnienia —
dzięki temu działa tak samo przy rysowaniu przez MapLibre i przez deck.gl,
i nie kosztuje nic, dopóki nikt nie kliknie.
Rządzi tym ten sam przycisk, co przyciąganiem (od 2026-09-25). POWIERZCHNIA w zaczepach mówi, czy wnętrze figury jest celem — i dotyczy to zarówno przyciągania przy rysowaniu, jak i zwykłego kliknięcia w polu roboczym. Przy wyłączonym przycisku klik w środek budynku niczego nie zaznacza; trzeba trafić w obrys, w opis albo w symbol. Przycisk jest domyślnie włączony — wnętrze łapie od razu, a wyłączasz je, gdy przeszkadza (na przykład przy gęstej treści, gdzie chcesz wskazywać wyłącznie kreski).
Dla rysowania włączona POWIERZCHNIA jest zmianą łagodną: ten zaczep oddaje sam kursor i ma najniższe pierwszeństwo, więc niczego nie przesuwa — przypisuje tylko wskazanie do obiektu, gdy w pobliżu nie ma wierzchołka ani kreski.
Trzy zasady, które z tego wynikają:
- enklawa nie liczy się jako wnętrze — kliknięcie w dziurę w figurze nie zaznacza figury, która ją otacza;
- mniejszy obiekt ma pierwszeństwo — przy poligonach zachodzących na siebie (studnia na budynku, użytek w działce) na początku listy stoi ten o mniejszym polu; większe pozostają na liście do wyboru;
- obrys ma pierwszeństwo przed wnętrzem — klikając dokładnie w kreskę, wskazujesz kreskę, a nie to, co pod nią leży.
Obiekty z warstwy wyłączonej nie są brane pod uwagę — czego nie widać, tego nie da się zaznaczyć kliknięciem.
Menu kontekstowe obiektu (od 2026-09-21): prawy klik bez ruchu myszą otwiera menu w punkcie kliknięcia — a pod nim EDYTUJ ATRYBUTY (otwiera panel danych z prawej), PRZESUŃ, podmenu EDYTUJ (KOPIUJ, OBRÓĆ, SKALUJ, ODBIJ, ODSUŃ), podmenu EDYCJA WIERZCHOŁKÓW i USUŃ (na stos cofania, Ctrl+Z przywraca). Prawy klik z ruchem dalej przesuwa mapę — i tylko przesuwa: obrót kamery prawym przyciskiem należy wyłącznie do trzeciego wymiaru w GEO-CAD3D i XIS-BASE3D (2026-09-27).
Menu dotyczy ZAZNACZENIA, nie punktu pod kursorem (od 2026-09-24):
- zaznacz obiekt lewym przyciskiem — widać to po animowanym obrysie,
- kliknij prawym gdziekolwiek: obok obiektu, na sąsiedzie, w pustce.
Menu i tak otworzy się dla obiektu zaznaczonego, a jego nagłówek mówi Zaznaczony obiekt, żeby było widać, czego dotyczy. Wcześniej menu brało obiekt spod kursora, więc przy kresce 0,18 mm klik pół milimetra obok nie otwierał nic, a klik na sąsiada po cichu podmieniał obiekt, na którym miało zadziałać polecenie.
Gdy nic nie jest zaznaczone, menu bierze obiekt spod kursora jak dotąd — przy kilku trafieniach pokazuje listę do wyboru (nazwa ze znaku biblioteki, rodzaj, kolor; wybór zaznacza obiekt) pod nagłówkiem Obiekty w tym miejscu. Zaznaczenie, którego już nie ma w rysunku (po cofce albo usunięciu), nie rządzi menu.
Edycja wierzchołków (od 2026-09-24) — trzy narzędzia, w pasku i w menu kontekstowym: PRZESUŃ WIERZCHOŁEK (kliknij w wierzchołek, potem w jego nowe położenie), WSTAW WIERZCHOŁEK (kliknij na krawędzi — nowy punkt staje między jej końcami; w poligonie działa też bok domykający) i USUŃ WIERZCHOŁEK (kliknij w wierzchołek do zdjęcia). Podmenu w menu kontekstowym pokazuje się tylko przy linii i poligonie: punkt ma jeden wierzchołek, którym jest sam, więc przesuwa się go narzędziem PRZESUŃ. Usunięcie, po którym zostałoby za mało wierzchołków (linia 2, poligon 3), nie dochodzi do skutku i mówi dlaczego. Każda zmiana to jeden wpis na stosie cofania.
Narzędzie wzięte z menu omija pytanie „wskaż obiekt" — obiekt jest już wskazany kursorem, więc pierwsze kliknięcie idzie od razu w punkt bazowy. Reszta przebiegu, pole parametru w pasku (kąt, współczynnik, odległość) i Esc działają tak samo, jak przy narzędziu wziętym z paska.
Napisy: kliknięcie w napis zaznacza obiekt, którego jest opisem; przeciągnięcie napisu przesuwa go (od 2026-09-21 bez wcześniejszego zaznaczenia — chwyt od pierwszego kliknięcia; rzędna góry i dołu idą razem), a samo kliknięcie bez ruchu niczego nie przestawia. Chwyt łapie cały napis i działa w obu trybach rysowania (od 2026-09-25, tym samym rachunkiem co zaznaczenie); zaczyna go lewy przycisk — prawym przesuwa się mapę.
- Przyciąganie: punkty (koniec, wierzchołek, środek koła, przecięcie), linie (rzut prostopadły, obwód koła) i powierzchnia (wnętrze poligonu lub koła).
- Opisy na mapie rysują litery z konturów kroju; kontury samoprzecinające się (np. „V", „W", „M" w Inter) są rozcinane na proste pętle, więc wcięcia liter nie wypełniają się trójkątem.
- Offset, trim, extend, kopiuj, obrót, lustro.
- PROSTOPADŁY (lewy pasek): pierwsze kliknięcie wskazuje linię bazową — początek nowej linii staje dokładnie na najbliższym segmencie (spodek rzutu kliknięcia), drugie wyznacza tylko długość i stronę. Powstaje linia prostopadła do bazy na warstwie bieżącej — domiar prostokątny jak przy pomiarze bezpośrednim. Kliknięcie na samej linii bazowej jest odrzucane (linia zerowej długości).
- Menu nagłówka ramki — PLIK, NARZĘDZIA i USTAWIENIA — to trzy obrysowe przyciski na środku paska nad mapą (od 2026-09-14); licznik obiektów stoi po prawej. Każdy przycisk rozwija listę, a pozycje z podmenu (np. PLIK → IMPORT) otwierają je strzałką w prawo albo najazdem.
- Narzędzia → Stwórz punkty z obiektu (menu w nagłówku ramki, obok PLIK): z zaznaczonej linii albo poligonu tworzy punkty na warstwie bieżącej. W oknie wybiera się dowolne połączenie: początek linii, koniec linii, środek każdego segmentu (w poligonie także odcinka domykającego). Okno z góry mówi, ile punktów powstanie; duplikaty (np. początek równy końcowi) są scalane. Pozycja jest nieaktywna bez zaznaczenia i dla punktu. Cały zestaw to jedno polecenie w historii — Ctrl+Z cofa go naraz.
- Narzędzia → Odśwież: zapisuje zaległe zmiany, po czym wczytuje rysunek projektu z bazy od nowa i buduje warstwy mapy od zera — ta sama droga, co przy otwarciu projektu. Do użycia, gdy mapa pokazuje coś innego niż baza (np. po imporcie z innego stanowiska albo po błędzie renderu). Historia poleceń startuje pusta. Gdy zapis zaległych zmian się nie uda, odświeżenie nie rusza — rysunek w pamięci zostaje.
- Duży rysunek z kafelków bazy (od 2026-09-15): gdy projekt ma w bazie ponad 5 000 obiektów (albo ustawiono mu rysowanie kafelkami) — i nie jest to projekt Deck.gl — mapa rysuje rysunek z kafelków wektorowych bazy — przeglądarka dostaje tylko kadr, a cały rysunek widać przy każdym powiększeniu. Obiekty zmienione od ostatniego zapisu (dodane, przesunięte, usunięte) mapa rysuje od razu z pamięci, nad kafelkami; po autozapisie kafelki przychodzą od nowa już z tymi zmianami. Znak, kolor i widoczność warstwy działają jak dotąd, bez czekania na bazę. Mniejsze rysunki zostają przy rysowaniu w całości z pamięci. Deck.gl kafelków nie używa (poprawka 2026-09-24), więc czytanie samego kadru zostawiłoby rysunek urwany na krawędzi okna — projekt Deck.gl wczytuje się zawsze w całości, niezależnie od liczby obiektów. Otwarcie trwa wtedy dłużej, ale to, co widać, jest kompletne.
- Rysunek z nakładki deck.gl (od 2026-09-20): projekt ze sposobem rysowania Deck.gl (dialog projektu) rysuje linie, obrysy, wypełnienia i punkty z buforów binarnych nakładki deck.gl na tym samym płótnie, co mapa; obrót o zbieżność południków obejmuje nakładkę. Kolor i grubość idą ze znaku warstwy i nadpisań w tabeli WARSTWY, grubość w metrach terenu według skali, nie cieńsza niż 1 px. Kliknięcie w obiekt działa jak dotąd (lista kandydatów, gdy obiekty leżą blisko). Wszystkie style linii i symboli idą z biblioteki znaków tak samo jak w MapLibre, ale jako cecha obiektu w jednej warstwie: wzór kreskowania (ciągły przez całą łamaną, przerwa klikalna), kreska–kropka (kropka jako punkt na linii), druga linia znaku dwuliniowego odsunięta do wnętrza, druga linia z kropek, symbole punktów bez bloku z tego samego arkusza sprite (z regułą 75% i obrotem), znaki jednookręgowe jako okrąg, wypełnienie płaskie tylko dla znaku z wypełnieniem. Grubości i rozmiary słuchają przełącznika SKALA LINIE (rozmiar terenowy albo stały ekranowy) jak w pozostałych trybach. Pas po osi i odsunięcie drugiej linii są wymiarem MAPY także przy liniach włoskowych (poprawione 2026-09-22 po zgłoszeniu „ściana oporowa wygląda inaczej w projekcie DEMO JSON niż w projekcie DECK"): przy włączonym skalowaniu z widokiem rosną z przybliżeniem, tak jak w MapLibre, gdzie wyłączenie przycisku SZEROKOŚĆ zmienia samą grubość linii, a nie światło pasa. Wcześniej pas OTDN miał zawsze ~2 px i obie krawędzie zlewały się w jedną kreskę. Zmiana znaku w S-BASE przelicza bufory od razu. Bez otworów w wypełnieniu (obrys otworu jest); opisy, bloki i wzory wzdłuż linii rysuje Three. Kafelki bazy w tym trybie nie wchodzą. Od 2026-09-16 przy otwarciu projektu wczytanie czeka chwilę na widok mapy (najwyżej 5 s), więc duży rysunek wchodzi do pamięci tylko w kadrze — konsola pokazuje np. „z bazy (kadr): 5 z 34418 obiektów”. Reszta dochodzi przy przesuwaniu mapy albo sama przed wydrukiem, eksportem i tabelą. Widok startowy mapy stoi w środku Polski, więc pierwszy kadr dużego projektu bywa pusty — mapa sama dopasowuje się wtedy do zasięgu rysunku z bazy i obiekty przychodzą zaraz potem. Konsola mówi to wprost („ustawiam widok na zasięg rysunku"); nie trzeba niczego przesuwać ręcznie. Licznik nad warstwami i w stopce mapy mówi wtedy oba stany: „obiektów: 12 z 126 304 (kadr)” — tyle jest w pamięci, tyle ma projekt; tabela pokazuje wiersze wczytane. Liczba obiektów projektu liczy obiekty robocze, nie wiersze bazy (stan źródłowy z importu to osobna kopia). Zakładka TABELA sama dociąga cały rysunek (tabela wypisuje wszystko, nie kadr), więc przy dużym projekcie otwarcie chwilę trwa. Od 2026-09-24 nad tabelą stoi pasek stanu: „Wierszy: 34 415”, a w trakcie przebudowy „Przeliczam tabelę — 34 415 obiektów. Poniżej jeszcze poprzedni stan.” Bez niego wyglądało to tak, jakby tabela ucinała listę do kilkunastu pozycji — a pokazywała po prostu poprzedni, mniejszy rysunek, zanim zdążyła przeliczyć nowy. Od 2026-09-20 każdy krok wczytywania zostawia ślad w konsoli przeglądarki (F12), wpisy zaczynają się od „⬇ [rysunek]", „⬇ [dokument]" i „⬇ [obiekty]": START, pytanie o dokument, oczekiwanie na kadr, pytanie o obiekty, „rysuję N obiektów", GOTOWE z czasem w ms — albo BŁĄD z przyczyną. Gdy licznik stoi na 0, konsola mówi, na którym kroku wczytywanie stanęło (np. „trasy /api/rysunek NIE MA (404)" albo „brak dokumentu"). Wczytywanie dużego rysunku nie zatrzymuje już całego serwera (poprawka z 2026-09-25). Wcześniej odpowiedź z obiektami powstawała jednym ciągiem i na ten czas serwer nie odbierał żadnego innego żądania — przy projekcie na 126 tysięcy obiektów trwało to ponad trzy sekundy. Najboleśniej trafiało to w samo OTWÓRZ: kliknięcie wypadało dokładnie w to okno i kończyło się komunikatem „Unexpected token 'B', „Bad Gateway" is not valid JSON", czyli projekt w ogóle się nie otwierał. Teraz odpowiedź powstaje partiami i między partiami serwer obsługuje pozostałe żądania; najdłuższa przerwa zeszła z 3,1 s do 0,19 s. Samo wczytanie dużego rysunku nadal trwa — nad jego czasem pracujemy osobno.
- Historia poleceń — cofanie i ponawianie (Ctrl+Z).
- Wymiarowanie z własną warstwą na mapie. Przycisk WYMIAR w lewym pasku to narzędzie pomiaru: pierwsze kliknięcie wskazuje punkt A, drugie punkt B (z zaczepami jak przy rysowaniu), a na mapie pojawia się wymiar liniowy z odległością w metrach; odczyt trafia też do konsoli. Narzędzie zostaje włączone na kolejne pary, Escape je kończy. Wymiary pomiaru nie są obiektami rysunku i nie idą do bazy; kasuje je Narzędzia → Usuń wymiary pomiaru. Miary automatyczne (promienie kół, długości odcinków) włącza się w menu Ustawienia ramki.
Wymiana danych
| Kierunek | Stan |
|---|---|
| Import DXF | działa; parsowanie w wątku roboczym, limit pliku 60 MB; konwencja osi (x = wschód / x = północ) rozpoznawana z zakresu współrzędnych pliku względem strefy projektu (od 2026-09-13), z ostrzeżeniem przy wyborze odbijającym materiał |
| Eksport DXF | działa, format AC1015, własny pisarz; od 2026-09-12 z menu PLIK → EKSPORT także w GEO-CAD2D (obok przycisku DXF w CAD2D) |
| Eksport Arrow | działa od 2026-09-23; menu PLIK → EKSPORT → .ARROW — obiekty z bazy. Plik składa baza, nie przeglądarka: nie ma „dociągania rysunku" i nie trzeba mieć go w pamięci. Treść to tabela Apache Arrow — geometria w kolumnie geoarrow.wkb (specyfikacja GeoArrow 0.2), atrybuty w osobnych kolumnach. Otwierają ją QGIS, GeoPandas, DuckDB (spatial) i R bez wtyczek |
| DWG → DXF | działa, konwerter zewnętrzny |
| DXF → DWG | nie ma |
| Import KCD (TurboMAP) | działa od 2026-09-22; materiał z ośrodka. Osie zawsze geodezyjne (X = północ), strefa PL-2000 rozpoznawana z pierwszej cyfry Y, nazwy warstw ze słownika TurboMAP-a (3 150 warstw, 837 z klasą obiektu). Pliki zabezpieczone odrzucane z wyjaśnieniem |
| Wydruk PDF wektorowy | działa, w wątku roboczym, do skali; pismo osadzone w dokumencie (od 2026-09-23 dwa podzbiory kroju: ASCII i polskie znaki — wcześniej cały tekst wychodził pustymi prostokątami). Kolory zawsze z rozporządzenia, nie z motywu ekranu: ciemny motyw zamienia czerń znaku na biel, żeby kreska była widoczna na ciemnym tle, ale na papierze czerń zostaje czernią (do 2026-09-23 czarne znaki — działki, budynki, ogrodzenia, komunikacja — wychodziły białe, czyli wcale) |
Eksport Arrow — dlaczego osobny format (od 2026-09-23): DXF niesie rysunek (warstwy, style, bloki), a Arrow niesie dane — każdy obiekt z kompletem atrybutów i geometrią, w postaci, którą narzędzia analityczne czytają bez konwersji. Pomiar na projekcie z 34 414 obiektami: odpowiedź JSON ma 37,4 MB, ta sama treść jako tabela Arrow — 19,3 MB, bo nazwa atrybutu stoi raz w nagłówku kolumny zamiast przy każdym obiekcie (same atrybuty to 81 % masy JSON-a, geometria tylko 14 %).
To NIE jest format wymiany z ośrodkiem — do tego służy GML i eksport różnicowy w module GEO. Arrow jest do liczenia: zestawień, porównań, analiz poza aplikacją.
Podczas importu DXF wątek roboczy trzyma rozebrane drzewo pliku przez całe życie kreatora — zmiana zaznaczenia warstw albo osi nie parsuje pliku ponownie.
KCD — dwa rodzaje plików
KCD to format programu TurboMAP. Plik jest kontenerem binarnym, nie tekstem, i występuje w dwóch odmianach:
- materiał wydany przez ośrodek do zgłoszenia pracy — czytelny, wchodzi normalnie. W zbadanym zasobie takie były wszystkie pliki tego rodzaju;
- plik roboczy z cudzego operatu archiwalnego — zabezpieczony przez program, który go zapisał. Treści nie da się odczytać i nie jest to usterka importu. Kreator mówi to wprost i podpowiada, co zrobić: otworzyć plik w TurboMAP-ie i wyeksportować do DXF albo GML.
Import czyta metrykę materiału (KERG, numer operatu, skalę) i pokazuje ją przed wczytaniem — w DXF-ie takiej informacji nie ma. Elementy z klasą obiektu wg rozporządzenia są liczone osobno: to one nadają się do bazy, reszta jest samym rysunkiem.
Odniesienia do rastrów (:ER) są pomijane, ale policzone w podsumowaniu —
żeby nie znikały po cichu.
Stopka okna jest taka sama we wszystkich importach (od 2026-09-22): po lewej WSTECZ, a na kroku raportu ZAPISZ RAPORT w trzech formatach — PDF, MD i TXT; po prawej ANULUJ (na raporcie ZAMKNIJ) i akcja kroku. Raport KCD niesie to, co widać na ekranie: liczbę elementów, obiekty z klasą, układ z pliku, metrykę (KERG, operat, skala), pominięcia, uwagi i cały dziennik wczytania. Sekcji „raport serwera" w nim nie ma — KCD rozbiera się w przeglądarce i serwer nie bierze w tym udziału.
Warstwy po imporcie KCD i biblioteka „TurboMap KCD"
TurboMAP trzyma osobną warstwę na każdy wariant obiektu: samego „Obrysu przewodu" jest w jego słowniku 36 pozycji o identycznej nazwie. Gdyby import zakładał warstwę na każdy kod, lista warstw miałaby kilkadziesiąt bliźniaczych wierszy, po których nie da się nawigować. Dlatego od 2026-09-22 warstwy powstają po znaku umownym, a nie po kodzie:
- element z klasą obiektu dostaje warstwę nazwaną kodem i nazwą obiektu
(
SUWP przewód wodociągowy) i znak z biblioteki urzędowej — dopasowany po kodzie kartograficznym ze słownika TurboMAP-a, a gdy tego zabraknie, po klasie GML; - wszystko pozostałe idzie torem rysunku — tak samo jak materiał z DXF-a:
elementy bez klasy (rysunek K-1, opisy, ramki, elementy redakcyjne), klasy
w brzmieniu 2015 (
BDZ_*) oraz kody kartograficzne sprzed 2021 (SUUS,KTJZ,PTWP). Warstwa nazywa się jak w słowniku („estakada (powierzchnia)"), zbiera wszystkie kody tej samej nazwy i dostaje neutralną czarną kreskę — niczego nie udaje.
Napisy z pliku (:ET) trafiają na warstwę „Opisy i teksty (KCD)"
(od 2026-09-22, zgłoszenie „brakuje tekstów"). Numery działek, opisy budynków
i rzędne są w KCD osobnymi elementami z treścią przy punkcie wstawienia.
Wcześniej szły na warstwę swojego kodu ze znakiem obiektu, a znaki
z rozporządzenia wypisują etykietę z własnych atrybutów (srednica,
id_dzialki) — których materiał z TurboMAP-a nie ma, więc treść siedziała
w atrybucie KCD_TEKST, ale na rysunku napisu nie było. Teraz wszystkie
napisy stoją na jednej warstwie ze znakiem Opis z pliku KCD, który rysuje
sam tekst (2 mm mapy), bez żadnego symbolu przy nim.
Do bazy kwalifikuje się wyłącznie to, co jest poprawne wg rozporządzenia 2021. Podsumowanie importu mówi, ile elementów poszło którym torem i z jakiego powodu — osobno „rysunek K-1, opisy i elementy redakcyjne", „klasa w brzmieniu 2015" i „klasa spoza kart aplikacji".
Kod źródłowy warstwy zostaje przy każdym obiekcie w atrybucie KCD_KOD, więc
scalenie warstw niczego nie gubi.
Przyporządkowanie jest widoczne i edytowalne w module S-BASE → BIBLIOTEKI STYLÓW jako biblioteka TurboMap KCD — obok GESUT, EGiB i BDOT500. Zawiera te znaki bibliotek urzędowych, których import KCD faktycznie używa.
Ograniczenia
- Brak wprowadzania współrzędnych z klawiatury — funkcja czeka na linię poleceń modułu.
- Złożone typy linii z kształtami SHX są świadomie odłożone; kształty wzorów idą blokami.
- Poprawność eksportu DXF potwierdzona niezależnym parserem oraz audytem
ezdxf (od 2026-09-12:
npm run audyt:dxfbuduje komplet próbek eksportu i ogląda je Auditorem ezdxf; pierwszy przebieg wykrył zdublowany uchwyt bloku *Paper_Space, naprawiony w pisarzu). Weryfikacja w programach zewnętrznych pozostaje ręczna. - Moduł ciągnie najwięcej zależności ze wszystkich — pakiet aplikacji nie jest jeszcze dzielony leniwie.
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.
CAD-DRAW — deska kreślarska
CAD-DRAW to deska kreślarska: rysunek techniczny w układzie prostokątnym, jak w AutoCAD-zie, bez mapy i bez georeferencji.