Всем привет. Я в 3D-индустрии уже 30 лет, есть свой фрезерный станок. И, как и многих владельцев ЧПУ, меня преследовала одна и та же боль.

Чтобы вырезать простую плоскую деталь — фланец, прокладку, панель управления или нервюру — нужно пройти через "ад" тяжелого софта. Запустить условный Fusion 360 или ArtCAM (пока он загрузится, можно чай заварить), создать проект, импортировать DXF, настроить вектора, настроить инструмены, сохранит��... Это избыточно долго для простых 2D-задач.

Мне нужен был инструмент по принципу "Автомата Калашникова": Загрузил DXF → Нажал кнопку → Получил G-code. Без регистраций, облаков, установки и лишних кликов.

В итоге я написал Single Click CAM. Это полностью браузерный инструмент (Vanilla JS + Three.js), который делает подготовку файла к резке делом нескольких секунд.

А еще это был мой первый полноценный эксперимент по разработке сложного инженерного софта в паре с ИИ. Спойлер: нейросети (в данном случае Gemini) уже способны писать не только "Hello World", но и вполне рабочую математику, если ими управляет опытный инженер.

Кому это нужно (кроме меня)?

Изначально я делал это для себя, чтобы быстро кроить листовые материалы. Но в процессе понял, что у инструмента есть два важных применения для бизнеса:

  1. Мастерские фрезеровки на заказ.
    Большая часть заказов — это 2D раскрой. Клиенты постоянно пишут: "Посчитайте, сколько будет стоить вырезать вот эту кракозябру?". Менеджер тратит время, открывает файл, меряет длину кривых...
    Этот сервис можно использовать как калькулятор. Закинул файл — он сразу показал общую длину реза (Total DXF Length) и количество врезок. Умножил на тариф — цена готова. Можно даже дать ссылку клиенту, чтобы он сам прикинул стоимость.

  2. Мейкеры и хоббисты.
    Те, кто не хочет пиратить ArtCAM или платить за подписку Fusion, но кому нужно просто вырезать деталь на домашнем станке.

Что под капотом? (Tech Stack)

Я сознательно отказался от React, Vue и тяжелых фреймворков. Я считаю, что интерфейс инженерного софта должен быть под полным контролем, каждый пиксель на счету. Поэтому — чистый JavaScript (ES Modules).

Для визуализации используется Three.js. Весь софт весит копейки и грузится мгновенно.

1. Автоматический Нестинг и Оффсеты

Самая большая проблема простых CAM-ов — они не понимают, где "дырка", а где "внешний контур". Обычно пользователю приходится тыкать мышкой и указывать: "это режем внутри, это снаружи".

Я реализовал алгоритм, который сам определяет вложенность контуров.

  • Синие линии на скриншотах — это рассчитанный оффсет (смещение на радиус фрезы). Он строится сразу при загрузке.

  • Софт автоматически понимает: если контур внутри другого — это отверстие (режем изнутри). Если снаружи — это деталь (режем снаружи).

2. Спиральное врезание

Фрезеровщики знают: вертикальное врезание (Plunge) — это зло. Фреза горит, нагрузка на подшипники дикая.
Здесь реализовано наклонное врезание (Ramping) и спиральный заход в отверстия. Фреза заходит в материал плавно, по спирали, что бережет инструмент.

3. Мосты (Bridges)

Килер-фича, на которую я потратил немало времени. Чтобы деталь при финишном проходе не "отстрелила" и не сломала фрезу, нужны перемычки.
В интерфейсе есть режим Bridge Mode. Включил, кликнул в нужное место на контуре — мост готов (для всех контуров в области действия моста). Софт сам поднимет фрезу на безопасную высоту и опустит обратно.

4. Таймлайн и Визуализация

Снизу есть ползунок (Timeline). Можно прокрутить его и посмотреть симуляцию движения фрезы: где она поднимется, где опустится, в каком порядке будут вырезаться детали. Оранжевые линии — рабочий ход (G1), голубые — аутлайн.

ИИ как Экзоскелет для инженера

На написание этого ушло не "пара выходных", а приличное время, но без нейросети (Gemini) на это ушли бы месяцы. Я использовал ИИ не просто как "автокомплит", а как полноценного соавтора кода.

Мой вывод: ИИ всё еще не может придумать архитектуру и логику продукта за вас. Если вы не понимаете, как должен работать CAM "под капотом", вы не сможете поставить задачу.

Но если вы знаете «Что» нужно сделать, ИИ великолепно справляется с тем «Как» это сделать.

Весь код визуализации на Three.js, математика пересечений, парсинг DXF и генерация строк G-кода были написаны в плотном диалоге с нейросетью. Я выступал в роли Tech Lead, определяя логику и требуя исправлений, а ИИ взял на себя реализацию сложной геометрии, кватернионов и рутину верстки.

Это не "Джуниор", за которым надо переписывать. Это мощнейший ускоритель, который позволяет инженеру-одиночке создавать продукты уровня целой команды разработки.

Планы и ссылка

Сейчас у меня есть мысли о создании полноценного 3D-редактора в браузере. С таким же минималистичным, "инженерным" интерфейсом, без лишней мишуры, но с серьезными возможностями моделирования. Но это огромная работа, и мне нужно понять, есть ли на это спрос.

А пока — пользуйтесь CAM-ом. Он полностью бесплатен.

? Ссылка на инструмент: https://schoolscience.org/cam/index.htm

Если этот инструмент сэкономил вам рабочее время или избавил от рутины — внизу интерфейса есть кнопка "На чай автору". Буду благодарен за поддержку, это мотивирует развивать проект дальше.

Жду ваших комментариев: каких функций не хватает? Глючит ли на ваших DXF?

Комментарии (5)


  1. kraken2018
    27.11.2025 14:58

    Чтобы деталь при финишном проходе не "отстрелила" и не сломала фрезу, нужны перемычки.

    Кроите левой фрезой (стружка вниз) и ничего не будет отстреливать. Перемычки только для толстых материалов, которые за несколько проходов идут. Или для плавких, типа полистирола, потому что заплавившаяся стружка штука неприятная. ПВХ, АКП - перемычки не нужны. Их эже потом еще и зашлифовывать.
    Реализуйте импорт pdf, а не только dxf.
    А так - круто, завидую реализованной идее, хотя тоже использую ИИ для написания. Но у меня задачки помельче


  1. VBKesha
    27.11.2025 14:58

    на JS+WebGL, чтобы не запускать тяжелый CAD

    Для меня сейчас вопрос, что тяжелей, "тяжелый" CAD или "легкое" приложение JS+WebGL

    PS. Хотя на глаз работает шустро.


    1. mozg4d Автор
      27.11.2025 14:58

      Тут же надо мерить по "надбавке" браузер то у вас уже стоит, так что JS всетаки выигрывает


  1. xSVPx
    27.11.2025 14:58

    Вы ведь шутите ? Есть вагон и маленькая тележка готовых мелких камов начиная от каких-нибудь дескпрото и заканчивая флаткамами.

    И в отличии от вашего решения они хоть как-то протестированы людьми.

    Вообще в чем проблема с серьезными камами мне не очень понятно. Если они сильно долго стартуют - надо всё-таки ssd купить, хотябы бу с авито гигов на 60 рублей за триста...

    ЗЫ. Для раскроя какие-то свои совершенно камы есть в которых буквально пяток кнопок.


  1. MegaHard
    27.11.2025 14:58

    В чём писали, сколько времени суммарно потратили на разработку и тестирование?