リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Переглядач креслень CAPLAN (Cremer) у форматі *.CPZ у 3D.
Онлайн: https://olyermakov.github.io/cpz-3d-viewer/ (працює й на телефоні; після першого відкриття — і без інтернету)
Відкрийте сторінку за посиланням вище або локально dist/CPZ-Viewer.html у Chrome або Edge (подвійним кліком; інтернет не потрібен) і перетягніть у вікно файл .CPZ
або натисніть «Відкрити файл…». Можна також відкрити .CP разом із .L / .KOR.
F вписати · T/1 зверху · 2 спереду (з півдня) · 3 збоку (зі сходу) · 4 3D-вигляд · O вигляд без перспективи / перспективаM вимірювання (похила/горизонтальна відстань, ΔH, ухил, дирекційний кут у ° та gon); наступні точки — ламана
із загальною довжиною, клік по першій — замкнений контур із площею й периметром; площа замкнених ліній кресленняN назви точок · C коди точок (Objektart) · H висоти · Esc скинути.CP; подвійний клік по шару — показати тільки йогоObjType.DAT (поле «Linientyp»), а якщо там «von Layer» — з Layer.DAT;
малюнок типу — з Linien.DAT (рухи пера, зокрема подвійні лінії й зубці паркану), перерахований з аркуша
в метри для масштабу 1:500. Стандартні типи 2–6 у файлах не описані — довжини штрихів виміряно на зображенні
з довідки CAPLAN (CAHLP4.CHM, «Linienmuster»). Вбудовані символи на лініях (квадрати, блискавка, «Ω» у типах
9, 12–16) відтворено за тим самим зображенням; заливки (h) не відображаються$DWGCODEPAGE (кирилиця ANSI_1251) або UTF-8. Шари CAPLAN
(L_/S_/H_ + назва шару каталогу) отримують назви Objektart@mlightcad/libredwg-web, GNU GPL v3) у фоновому потоці й далі обробляється тим самим кодом, що й DXF.
Лише на сайті (не з локального HTML-файлу); модуль ≈ 9,5 МБ вантажиться при першому відкритті DWG.
Спеціальні об'єкти (proxy: Civil 3D тощо), штрихування й растри не відображаютьсяZIP-архів, усередині:
| Файл | Вміст |
|---|---|
*.CP | проєкт: DATA=L, LAYER=<id>|<колір COLORREF BGR>|<видимість>|<товщина>|…, ZOOM=, VIEW= |
*.L | точки <Назва> <W> <Rechtswert> <Hochwert> <Höhe> |<Objektart>|<атрибути> та заголовки ліній <Назва лінії> |<Objektart>; точки після заголовка утворюють лінію |
*.A | осі, поля фіксованої ширини: <Achsname> 31|35 <Rechtswert> <Hochwert> <RiWi, gon> <A-Station> <A-Krumm·1000> <E-Krumm·1000> <Länge> — елементи в плані (31 — пряма, дуга чи клотоїда, 35 — крива Блосса); <Achsname> 41 <A-Höhe> <E-Höhe> … <A-Station> … <Länge> — градієнта |
Дуга між двома точками лінії записується рядком після першої точки: 0 <радіус> <1|0> . — знак радіуса задає
напрямок (+ за годинниковою стрілкою, − проти), ознака 1 — більша з двох можливих дуг, 0 — менша; коло — це дві дуги
A→B (1) і B→A (0). Висота на дузі змінюється лінійно.
Осі показуються на шарі «Achsen» (тип лінії шару ACHSEN з Layer.DAT) з підписами станцій (40+170). Якщо в CPZ є
точки чи лінії, видно лише ділянки осей у межах креслення плюс запас (не менше 30 м), а «Вписати» бере межі креслення.
Висота осі — з градієнти; без неї вісь двовимірна. Стики елементів сходяться точніше 0,5 мм; явні помилки в даних
(кривина, що суперечить напрямку наступного елемента) замінюються сталою кривиною. Для вибраної точки в панелі «Точка»
і в рядку стану показуються станція основи перпендикуляра (km 40+169.928) і відстань ліворуч / праворуч (за напрямком
зростання станцій) від кожної осі в межах 100 м; для осі з градієнтою — ще й висота точки над віссю.
Об'єкти з висотою 0.00000 (наприклад, QuickLn) вважаються 2D і розміщуються на рівні найнижчої точки.
npm install
npm run build # → dist/CPZ-Viewer.html
npm run watch # перезбірка при змінах
src/cpz.js — читання ZIP (через DecompressionStream), парсери .CP та .Lsrc/axes.js — осі .A: розбір і розрахунок прямих, дуг, клотоїд і кривих Блоссаsrc/dxf.js — парсер DXF у ту саму модель (точки, лінії, тексти, шари; OCS → світові координати)src/dwg.js, src/dwg-worker.js — читання DWG у фоновому потоці (LibreDWG) → записи DXF → src/dxf.jssrc/main.js — сцена Three.js, інтерфейс, вимірюванняsrc/i18n.js — переклади (uk / de / en) та перемикання мовиcatalog/ObjType.DAT — каталог Objektart з CAPLAN (C:\Cremer\DAT\ObjType.DAT), вбудовується в збірку;
назви шарів беруться з поля «Bedeutung»catalog/Layer.DAT (перекодовано з Windows-1252 в UTF-8) і catalog/Linien.DAT — шари й типи ліній
з C:\Cremer\DAT; src/linetypes.js — їх читанняsrc/objtypes-i18n.js — переклади назв Objektart українською та англійськоюsrc/index.html — розмітка та стилі (скрипт вбудовується під час збірки)src/sw.js — service worker для роботи без інтернету: build.mjs підставляє список файлів сайту з хешами
вмісту (dist/sw.js); при новій версії завантажуються лише змінені файлиicons/icon.svg — основна іконка (аркуш креслення + 3D-полілінія), icons/favicon.svg — спрощена для 16–48 pxicons/concepts/ — альтернативні концепти (A «Віяло», C «Скляний куб»)npm run icons генерує з SVG у public/ PNG 16/32/48/192/512, maskable-версію для Android,
apple-touch-icon.png і favicon.ico; public/ копіюється в dist/ під час збірки разом із manifest.webmanifestСкопіюйте новий C:\Cremer\DAT\ObjType.DAT у catalog/, перезберіть (npm run build) і запуште.
Нові назви без перекладу показуються німецькою — додайте їх у src/objtypes-i18n.js.
Copyright © 2026 Oleksii Yermakov
Код застосунку поширюється на умовах GNU General Public License v3.0 — повний текст у файлі LICENSE.
Його можна використовувати, змінювати й поширювати лише на тих самих умовах (з відкритим вихідним кодом).
Не підпадають під GPL: файли catalog/ObjType.DAT, catalog/Layer.DAT і catalog/Linien.DAT — дані CAPLAN, права на які належать їхньому власнику
(див. catalog/README.md).
Сторонні компоненти: