KREMEN Реклама
KREMEN Реклама

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

envalid
Идет загрузка
Загрузка
28.03.2026
107
0
3D-моделирование

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

2

Про начало разработки я писал в предыдущей статье.

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

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

На самом деле изменений масса, особенно в техническом плане:

Для бинарных операций была внедрена очень продвинутая библиотека Manifold3D, это существенно подняло скорость выполнения, а также результат теперь гарантированно манифолдный (без дыр и других проблем). Ядро редактора было переписано на параметрическую работу с отдельными исполнителями для каждой операции, а также весь редактор переписан на модульную ES6 архитектуру.

Об этом всем я подробно написал с технической статье на хабре, а тут уделю ещё пару слов про текущую архитектуру моего редактора:

КонтрБагCAD работает целиком на клиенте, со всеми преимуществами и недостатками. В качестве геометрии, в отличие от большинства САПР, используются сетки, а не BREP. Это сделано в угоду легкости и скорости работы в браузере (у Tinkercad, кстати, тоже сетки). Благодаря этому, STL и прочие сеточные форматы поддерживаются напрямую, и нет никаких проблем их редактировать (в отличие от того же Fusion 360, где сначала нужно как-то получить твердое тело). Ядро работает напрямую на Three.js. Начиная с версии 0.8, для бинарных операций внедрена библиотека manifold, а начиная с 0.9 ядро переписано на параметрическую работу.

Также я внёс кучу других изменений.

Для начала про изменения интерфейса:

Я убрал этот позорный крест навигации (можно посмотреть в первой статье) и сделал великолепный куб :DОбзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!Он поддерживает смену темы, смену языка и просто красиво выглядит. Появилась полноценная ортогональная камера и удобное перемещение. А, да, появилась смена языка. Причём локализации являются просто json-файлом, и нет никакой проблемы добавить в редактор любой язык. 

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Изменения выдавливания и вращения

В старом инструменте вращения неправильно формировались крышки и отверстия у фигуры, это тоже было доработано. 

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

В выдавливании появилось визуальное отображение операции: красный - вырезать, желтый - добавить, зелёный - новый объект. Как светофор :)

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Но главное! В выдавливание и вращение добавлена поддержка выделения граней. Теперь через эти операции можно вытянуть не только фигуры чертежа, но и любую грань (как в моем любимом fusion360). Грани подсвечиваются при наведении, просто кликаете и вытягиваете.

 Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Изменения чертежа

Чертеж теперь можно строить сразу на гранях объектов. При клике сразу открывается режим чертежа, и обводится грань, на которой вы его строите.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Для поддержки выделения граней в выдавливании я оптимизировал алгоритм очерчивания (он общий с очерчиванием граней при построении чертежа на объекте).  Сложность из квадратичной стала линейной. Благодаря чему теперь обводка работает заметно быстрее.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Все замкнутые фигуры которые можно вытянуть теперь закрашиваются. Для тестирования я сделал цвет заливки рандомный, но аудитории в ТГ зашло, поэтому решил оставить, но сделать зависимым от площади, чтобы не менялся).

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Определение регионов вытягивания переехало в скетч, и теперь происходит сразу после добавления элементов чертежей. А заодно появилась подсветка этих регионов, и был доработан алгоритм определения (но над этой задачей я все ещё работаю).

Новые бинарные операции

Еще я заморочился над инструментом бинарных операций. У старого варианта не было предпросмотра, для объединения и пересечения это приемлемо, но с вычитанием не особо понятно, что из чего вычитается. Теперь получилось прям круто, включить инструмент можно без выделенных объектов: на ЛКМ фигура добавляется в операцию, повторным кликом исключается.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

В вычитании ещё задействована ПКМ для добавления вычитаемых фигур.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Новая библиотека и примитивы

Прокачал библиотеку, реализовал ленивую загрузку. Теперь каждая категория грузится только при переходе на нее. Поддерживается работа с удаленными каталогами, и объединение нескольких категорий в одну (собственно категория "все" так и сделана. Но она временная, пока моделей мало). Также подтянул немного дизайн, он теперь немного больше напоминает Tinkercad. Вообще библиотека задумывалась больше для электронных модулей (чтобы вокруг них удобно модели строить), но по просьбам пользователей Tinkercad добавил немного примитивов.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

А также все примитивы теперь настраиваемые. После предыдущей статьи в проект пришло много пользователей Tinkercad, поэтому несколько последних обновлений  были по их просьбам. Изначально я вообще не хотел приближать работой с примитивами свой редактор к Tinkercad. Но немного подумав, решил что это же не уменьшает функционал редактора. Да и примитивы без изменяемых параметров выглядят бесполезно. 

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Новые инструменты трансформации

Были серьёзно переработаны инструменты трансформации. Изначально они работали только с одним объектом. Теперь во всех инструментах  трансформации (перемещение, вращение, масштабирование) поддерживается работа с несколькими объектами.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Работа происходит группой, т.е. как будто выделенные объекты это один объект (аналогично Tinkercad).

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Инструмент масштабирования получил работу по глобальным осям. Тут надо рассказать поподробнее: Изначально в Three.js геометрия объекта хранится как исходная геометрия, плюс три матрицы преобразования. Т.е. изначально Three.js не поддерживает глобальное масштабирование. Поэтому ранее в моем редакторе глобальное масштабирование и не работало (точнее работало как проекция глобального на локальное, что давало неправильный результат). В целом реализовать правильное глобальное масштабирование было не сложно, но при этом создаётся новая геометрия, а старая удаляется (грубо говоря, результат масштабирования запекается). Из-за этого после глобального масштабирования изменить параметры примитивов нельзя, т.к. это уже новая модель. Но так как у меня параметрическая история, можно откатиться к любой операции до изменения размера, изменить параметры примитива, и вернуться обратно.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Также появилось масштабирование в одну сторону (которого так не хватало пользователям Tinkercad).

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Инструмент выравнивания. Вообще я ещё в самых первых версиях внедрил что-то подобное, ибо в Tinkercad это самый полезный инструмент. Но так как я лет 6 не работал в тинкере я банально забыл как он выглядит :D И почему-то по памяти думал, что это просто 4 кнопки (выровнять по X, Y, Z или всем осям). Благо пришедшие пользователи мне указали на это, и я, освежив память, за пару дней повторил инструмент из Tinkercad.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Повышение стабильности

В прошлом редактор иногда не открывался, или не полностью подгружался из-за проблем с загрузкой библиотек (даже библиотек иконок). Для решения этой проблемы пришлось положить все библиотеки локально. Теперь все грузится из одного места, и такой проблемы быть не должно.

Также я прикрепил к редактору свой домен. Теперь он по адресу: https://cad.контрбагтех.рф/

И заодно добавил зеркало на gitverse, чтобы с доступом точно проблем не было.

Инструмент фаска/скос

Ну и главное нововведение, инструмент фаска. Хотя это уже многофункциональный инструмент.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

По умолчанию инструмент просто снимает фаску под 45° для выбранной цепочки ребер. Можно выбрать по отдельности, все связанные и все связанные до заданного угла.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

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

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Если вы делаете скос, то часто нужно его не срезать, а добавить. Ещё одна фишка этого инструмента - это поддержка отрицательных значений. Благодаря этому, вы на острых углах просто можете наклонить скос в другую сторону.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

И, естественно, скос работает не только на прямой поверхности.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

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

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Ещё некоторые доработки

Существенно доработан инструмент "отражение". Он поддерживает отражение по локальным осям объекта, а также отражение относительно рабочей плоскости. В том числе для нескольких объектов.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Внедрен менеджер единиц измерения. Теперь операции трансформации, вытягивания, свободного перемещения, рулетка (в общем все, кроме чертежа) поддерживают смену единиц измерения (мм/дюймы) и смену шага привязки. В чертеже пока только изменение шага сетки. Все это можно поменять в настройках.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Была существенно доработана мобильная версия. Теперь на телефоне (и планшете) работать намного удобнее. Хотя надо ещё поработать над поддержкой мультитач.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Доработан импорт SVG. Раньше с некоторыми файлами были проблемы.

Обзор последних обновлений КонтрБагCAD. Наконец фаска и скосы!

Напомню, это все работает online, без регистрации и совершенно бесплатно: https://www.контрбагтех.рф/контрбагcad

Обратите внимание! Редактор находится на стадии активной разработки, постоянно становится лучше и пополняется новыми функциями. Новости об обновлениях в основном выходят в Telegram и ВК. 

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

Буду благодарен за рекламу, обратную связь, сообщения об ошибках и предложения по развитию :)

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

2
Комментарии к статье
Lider 3D Реклама
Lider 3D Реклама