Тема обратного (реверс-) инжиниринга становится всё более популярной в инженерной среде. А для некоторых проектно-конструкторских организаций такая деятельность вообще является основной специализацией. Причины здесь на поверхности - санкции, которые приводят к отказу в поставках, например, ремонтных изделий и запчастей; нарушения устоявшихся цепочек логистики вплоть до их полного разрыва либо существенного увеличения сроков поставки. Основная задача реверса – воспроизведение готового изделия (от ремонтно-восстановительных работ до полного копирования конструкции) – всецело помогает обходить указанные проблемы.

Оглавление

Теория

Практика

Шар

Коромысло

Заключение

На практике есть несколько сценариев, по которым работает конструктор, занимающийся реверсом. Мы рассмотрим наиболее прогрессивный – с подготовкой трехмерной модели в САПР и дальнейшей работой с ней. Здесь можно выделить несколько основных этапов:

  1. Трёхмерное сканирование оригинального изделия.

  2. Постобработка результатов сканирования.

  3. Моделирование в САПР редактируемой 3D-геометрии изделия с деревом построения на основе полигонального объекта.

  4. Создание необходимой документации.

  5. Изготовление.

Конечно, было бы идеально, по результатам сканирования и постобработки автоматически получить твердотельную модель, которую сразу можно отдать в производство, но чудес не бывает и на текущий момент такого решения на рынке САПР не существует. Поэтому в рамках статьи разберём подробнее этап №3. В качестве инструмента возьмём систему трехмерного моделирования КОМПАС-3D v24.

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

Тема реверс-инжиниринга в КОМПАС-3D активно развивается на протяжении последних версий. Давайте более подробно познакомимся с полезными командами.

Поддерживаемые типы данных

Конечно, доступна работа с основными форматами STL и OBJ для получения данных с 3D-сканера.

Также существуют дополнительные команды, которые позволяют работать с другими форматами сканированных данных и облаками точек:

Полигональный объект

Для представления в КОМПАС-3D исходных триангуляционных данных, в том числе полученных сканированием, используется специальный полигональный объект. Работа с таким объектом требует намного меньше ресурсов компьютера по сравнению с точной геометрией. При необходимости полигональный объект можно преобразовать в точную геометрию — тело или поверхность.

Подгонка поверхности под полигональный объект

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

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

https://rutube.ru/video/15c315cbf0eac452d8ba16129969f20a

https://vk.com/clip-29994774_456252903

https://vk.com/clip-29994774_456252902

Кривая пересечения с полигональным объектом

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

Анализ отклонений

Команда служит для оценки отклонения полигонального объекта от тела, поверхности или грани. Результат анализа отображается в виде цветовой карты. Также показываются максимальное и минимальное отклонения.

https://rutube.ru/video/b6f7d0b74ad7e88bff32a79480365de3

Совмещение

Команда «Совмещение» позволяет совмещать полигональный объект с имеющимся в этой же модели телом, поверхностью или другим полигональным объектом. Результат работы команды — изменение положения полигонального объекта (или одного из полигональных объектов) таким образом, чтобы отклонение между ним и вторым объектом стало минимальным.

https://vk.com/clip-29994774_456252854

Восстановленная поверхность

Команду удобно использовать для доработки моделей. Убирает лишние вырезы, усечения и т. п.

Проверка непрерывности стыков поверхностей

Команда определяет тип непрерывности на линии стыка поверхностей.

Экспорт моделей

Для сохранения в Stl другими настройками используется команда меню Файл-Экспорт. В команде можно настроить параметры экспорта.

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

В команде также можно выбрать объекты модели, которые должны быть экспортированы. Объекты указываются в Дереве или в графической области, в том числе рамкой.

https://rutube.ru/video/56835f666210be634d9925b798f6e0ff/

Для экспорта также используется команда Файл — Сохранить как... , но при этом не доступны настройки параметров.

Использование инструментов реверс-инжиниринга на примерах

Шар

Сначала простой пример с шаром, чтобы понять базовые принципы применения команд.

Откроем Stl-файл, созданный из сферы диаметром 50 мм, сохраненный с параметром максимального углового отклонения 30 градусов.

Открытый полигональный объект лишь издали напоминает шар, в нём очень мало треугольников, но нам это не помешает.

Запускаем команду меню Моделирование - Подгонка поверхности.

Просто указываем полигональный объект. Система всё определяет автоматически, радиус 25 мм совпадает с исходным — от нас ничего не требуется. Жмём кнопку «Создать» или колесо мыши.

Получили поверхность. Включим Сечение модели. Видно, что она пустотелая. Закрываем команду.

Сделаем её твердотельной. Переключаемся на набор Каркас и поверхности. Запускаем команду Сшивка поверхностей.

Указываем поверхность в окне модели или в дереве. Ставим галочку Создать тело. Включить эту опцию — самое важное, без неё не получится твёрдого тела! Жмём кнопку «Создать» или колесо мыши.

Снова включим Сечение модели. Теперь видно, что модель заполнена внутри. Мы создали тело.

Коромысло

Знакомство с возможностями и инструментами реверс-инжиниринга в КОМПАС-3D продолжим на примере поэтапного моделирования детали коромысла по её представлению в виде полигонального объекта. Этот пример уже серьёзнее и позволит глубже погрузиться в тему.

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

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

Ищем команду в меню
Ищем команду в меню
Либо ищем через поиск в правом верхнем углу
Либо ищем через поиск в правом верхнем углу

Запустим подпроцесс Выбор треугольников.

Подберём комфортный размер кисти для выбора треугольников.

Наведём курсор на торцевую грань в графической области и выделим полигоны поверхности.

Если были выбраны лишние полигоны, на панели параметров можно перевести переключатель в положение Исключать и выделить треугольники, которые необходимо убрать.

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

Убедимся, что на панели параметров указанный тип поверхности — плоскость. В КОМПАС-3D v24 тип поверхности определяется автоматически. Жмём кнопку «Создать» или колесо мыши.

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

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

Небольшие отличия: удостоверимся, что на панели параметров тип поверхности — цилиндр, а в качестве направляющего объекта укажем построенную ранее плоскую поверхность. Указать в дереве не получится, нужно отобразить её и указать в окне модели. Это необходимо для перпендикулярного расположения оси выстраиваемого цилиндра относительно базы.

А еще на панели параметров можно управлять параметрами, так что зададим цилиндру точный радиус 10 мм.

Подтверждаем. Жмём кнопку «Создать» или колесо мыши.

Создадим ось с помощью команды Ось конической поверхности.

Указываем ранее построенную цилиндрическую поверхность.

Построим точку на пересечении плоской поверхности и оси. Команда Точка на пересечении нам в помощь.

Указываем ось и плоскую поверхность.

Теперь в дереве построения есть вся необходимая геометрия для создания локальной системы координат, в которой будет происходить построение твердотельной модели. Мы не можем использовать обычную систему координат детали, потому что в сканах система координат обычно расположена где-то в случайном месте в космосе.

Активируем команду Локальная система координат (ЛСК).

На панели параметров укажем полученную геометрию, как точку привязки и Ось X.

Для построения центральной бобышки детали осталось определить два размера: наружный диаметр и высоту. Просто измерим их.

Выбираем ось и в графической области водим курсор по треугольникам наружного диаметра центральной бобышки полигонального объекта. В информационном окне рядом с курсором указывается, что расстояние примерно 15 мм. Это — радиус. Значит диаметр принимаем равным 30 мм.

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

Построим центральную бобышку коромысла, создав эскиз на Плоскости ZY ЛСК.

Строим эскиз:

Затем элемент выдавливания:

Перейдем к построению боковой бобышки и начнём с определения оси её отверстия. Порядок тот же, что и у центральной бобышки.

Подгонка цилиндрической поверхности отверстия.

Ось конической поверхности.

Так как полученная ось полигонального объекта могла быть отклонена от номинального значения (производство, эксплуатация, сканирование, подгонка), перестроим её с использованием размеров точностью до целых чисел.

Построим плоскость параллельную Плоскости ZY ЛСК в середине тела центральной бобышки с помощью команды Смещенная плоскость.

Расстояние укажем 12 мм (половину высоты центральной бобышки).

Построим перпендикуляр к проекции перестраиваемой оси из начала координат ЛСК.

Удалим ограничения Перпендикулярность и Точка на кривой и зададим округлённые до целых чисел размеры. Делаем мы это из необходимости построения геометрии с использованием точных значений.

На конце построенного в эскизе отрезка создадим перпендикулярную плоскость. Поможет нам в этом Плоскость через точку перпендикулярно ребру.

На только что полученной плоскости создадим эскиз, в котором построим отрезок, коллинеарный нашей предварительной оси.

Удалим ограничение Коллинеарность и зададим угловой размер и ограничение Объединить точки для центра построенного отрезка и начала координат. Округляем значение размера.

Ось отверстия с использованием точных размеров готова.

Теперь создадим плоскость для построения эскиза бобышки перпендикулярно оси её отверстия. Для этого снова используем команду Плоскость через точку перпендикулярно ребру.

Воспользуемся еще одним основным инструментом для реверс-инжиниринга в КОМПАС-3D – Кривой пересечения и построим поперечное сечение боковой бобышки. Для вызова команды можно переключиться на набор Каркас и поверхности или найти её в поиске.

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

Имея все необходимое, построим бобышку.

Создадим эскиз по кривой пересечения (предварительно привязываемся к ней, потом удаляем ограничения и создаём точные размеры).

Определим высоту бобышки с помощью инструмента Расстояние и угол.

Переключаемся на набор Твердотельное моделирование. Активируем команду Элемент выдавливания.

Угол уклона подберем визуально наиболее соответствующим полигональному объекту.

Резьбовое отверстие построим по параметрам, определенным на готовом изделии, воспользовавшись командой Отверстие простое.

Перейдем к проектированию плеча коромысла.

Исходя из визуального анализа, можно предположить, что в оригинальной конструкции данный элемент был спроектирован по сечениям, параметры которых не выяснить по представленному полигональному объекту. Это удобное место, чтобы уточнить: основная цель реверс-инжиниринга в машиностроении и не только – воссоздание объекта с сохранением функциональности, а не копирование точь-в-точь. Стоит иметь ввиду, что иногда можно и ДАЖЕ НУЖНО менять дизайн детали, учитывая специфику производства, сборки и т.д. Однако в рамках этого примера постараемся воспроизвести конструкцию с минимальными отклонениями.

Начнём проектирование плеча с получения кривой пересечения.

Создадим эскиз плеча на плоскости в центре детали по кривой пересечения.

Теперь необходимо определить толщину плеча, но так как она переменная, замерим в самом узком месте вблизи вилки.

Примем толщину 5,5 мм, потому что измеряли от плоскости в центре, и выдавим эскиз плеча симметрично.

Создадим Уклоны.

На панели параметров как основание выберем грань плеча со стороны вилки и как грани для уклонения выберем две его боковые стороны.

Подберём наиболее визуально соответствующий полигональному объекту угол.

Осталось построить последний элемент конструкции коромысла — вилку на конце плеча. Для её проектирования, также как и для плеча, воспользуемся ранее полученной кривой пересечения.

Создадим эскиз паза на плоскости в центре детали.

Создадим эскиз вилки на плоскости в центре детали.

Произведём замеры.

Выдавим вилку.

И вырежем паз.

Завершим проектирование конструкции коромысла созданием фасок и скруглений на кромках модели, ориентируясь на полигональный объект:

Оценить результат, сравнив полученную модель с исходным полигональным объектом, можно при помощи команды Анализ отклонений:

В КОМПАС-3D v24 появилась возможность активировать на панели параметров опцию Допустимый диапазон. После его задания, значения отклонений, выходящие за пределы допустимого диапазона, будут показаны оттенками синего и красного цветов. Зелёным будут показаны участки с допустимыми значениями отклонений.

Ещё можно оценить отклонения на конкретном участке в ловушке курсора графической области.

Заключение

Как мы могли убедиться на данном примере, на текущий момент КОМПАС-3D имеет в своем багаже немало инструментов для работы в рамках реверс-инжиниринга. Конечно, нет предела совершенству, и наши разработчики обещают (уже в самых ближайших версиях!) значительно расширить возможности и сделать функциональность еще богаче.

Попробовать КОМПАС-3D:

https://kompas.ru/kompas-3d/download/