cinetic
Cinematic launch films and motion design from code, directed by your coding agent.
3D-переглядач креслень CAPLAN (Cremer) у форматі CPZ — працює в браузері та на телефоні
Translation pending
DesignGitHub @OlYermakovAvailability not checked yetOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
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).
Сторонні компоненти: