Про KulmanLab
Проєкт однієї людини, створений без поспіху.
Привіт, я Володимир, живу в Україні. За освітою я інженер-будівельник — багато років провів за кресленнями та в настільних CAD-програмах, перш ніж змінити професію на бекенд-розробку. Але інженерна жилка нікуди не зникла. Зрештою вона привела мене у світ верстатів з ЧПК — і до того, що я з нуля зібрав власний CO₂-лазерний різак.
Звідси й з'явився KulmanLab: мені постійно був потрібен швидкий спосіб відкрити DXF-файл, почистити його, підправити кілька ліній і надіслати на верстат — без запуску важкої CAD-програми та реєстрації в черговому хмарному сервісі. Тож я почав робити власний інструмент. Це було у 2023 році; відтоді це проєкт вечорів і вихідних.
Назва
Кульман — так у нас називають класичну креслярську машину, дошку Кульмана. За нею вчилися креслити покоління інженерів. KulmanLab — моя спроба зберегти цей дух у браузері.
Яким, на мою думку, має бути CAD-інструмент
Безкоштовним, миттєвим і приватним. У KulmanLab немає облікових записів, завантажень на сервер і самого сервера — ваші креслення обробляються та зберігаються цілком на вашому пристрої, а застосунок працює й офлайн. Нічого встановлювати, ні на що підписуватися, нічого віддавати. Деталі — у політиці конфіденційності, яка коротка, бо розповідати справді майже нічого.
Це свідомо сфокусований інструмент: швидке 2D-креслення з командним терміналом, шарами, розмірами та чесним імпортом/експортом DXF — не заміна повноцінного настільного CAD-пакета. Якщо ви ріжете деталі на верстатах з ЧПК чи лазерних верстатах або вам потрібні швидкі технічні ескізи для лабораторної роботи — він створений саме для вас.
Під капотом
KulmanLab написано на Angular поверх HTML5 Canvas, і він спокійно працює з кресленнями на понад 100 000 об'єктів. Найскладнішою частиною був сам формат DXF — читати його легко, а от записувати файли, які прийме будь-який CAD-редактор, — це мінне поле зі сплайнів і групових кодів, розібраних методом зворотної розробки.
Напишіть мені
Знайшли помилку, бракує функції чи просто хочете показати, що ви зробили? Створіть issue на GitHub, приєднуйтеся до r/kulmanlab або напишіть мені на kulmanlab@gmail.com. Я читаю все.