Реверс-инжиниринг: точно - значит криво.
Как-то у меня в работе был старый чугунный корпус водяного насоса, отлитый в песчаную форму. Я заметил: отверстия по периметру корпуса не лежат на одной окружности и находятся на разном расстоянии друг от друга. Сначала я создал окружность нужного диаметра, указал количество отверстий и угловой шаг — отверстия не совпали со сканом.
Тогда я сменил подход: вместо радиуса стал ставить длины от начальной точки слева направо, как по миллиметровке. Отверстия сошлись, и до меня дошло: их сверлили на ручном станке по бумажному чертежу.
Фрезеровщик указывал положение каждого отверстия координатами по X и Y. Небольшие погрешности при округлении размеров, позиционировании сверла и установке детали привели к тому, что фактические отверстия не совпадали с заданными изначально. Такую деталь нам и принесли для реверс-инжиниринга.
Что делать?
Точно повторить расположение отверстий или построить идеальную окружность и распределить их по ней? Мы обсудили этот вопрос с клиентом и сделали отверстия на равном расстоянии, как они и должны быть.
На первый взгляд задача реверс-инжиниринга простая: есть готовая деталь — нужно воссоздать его цифровую модель. Но это не просто цифровое копирование.
3D-сканирование — ещё не реверс-инжиниринг
Цифровая копия создаётся 3D-сканированием. Сканер фотографирует предмет либо измеряет лазером расстояние до него с разных ракурсов, объединяет данные в облако точек и соединяет их. На выходе получается полигональная сетка - поверхность из множества маленьких треугольников.
В большинстве задач производства полигональная сетка сама по себе не является полноценной геометрической моделью. Мы отсканировали цилиндрическую деталь — сканер описал её поверхность тысячами или миллионами треугольников. Но геометрическая модель цилиндра, с которой работает конструктор, - это математически заданная поверхность с определёнными длиной и диаметром, осью и положением в пространстве.
Поэтому 3D-сканирование и обратное проектирование — не одно и то же. При сканировании безразлично оцифруется всё: царапины, вмятины, сколы, следы коррозии и износа, деформации конструкции. Чем точнее мы сканируем, тем точнее копируем все несовершенства детали.
А что с точностью?
Главный вопрос тех, кто обращается за 3D-сканированием и реверсом: «Насколько точно вы сможете воспроизвести деталь?» С позиции заказчика он кажется понятным: вот деталь, нужна такая же цифровая — насколько близко в микронах вы её повторите?
Но такая постановка не совсем корректна. Представьте: приносят сломанную ручку и просят «такую же, только целую». Что значит «такую же»? Заказчику не нужна точная копия сломанной ручки — ему нужна целая, какой она была до поломки. А целая — уже не копия сломанной с утерянными фрагментами. Выходит, что точная копия исходной детали — не то, что нужно заказчику.
Точность 3D-сканирования
Со сканированием ситуация понятнее. У каждого сканера есть заявленные производителем характеристики — в определённых условиях их можно использовать для оценки точности измерений. Например, наш сканер RangeVision Pro 2 при габарите детали 200 мм имеет заявленную точность 0,036 мм. Но это значение относится именно к измерению, а не к готовой инженерной модели. Здесь есть принципиальная разница.
На фото 3д-сканер RangeVision ProII.
3D-сканирование — измерительная задача, построение детали — инженерная. Предположим, сканер измерил поверхность с точностью 0,04 мм. Значит ли это, что мы построим CAD-модель с точностью 0,04 мм? Нет. Между измерением и построением модели есть ещё один большой этап — интерпретация данных. Инженер решает, какие размеры находятся в пределах допуска, а какие имеют отклонения, какими они должны быть на самом деле. И чем выше требования к точности, тем важнее правильно интерпретировать исходные данные.
И снова мы упираемся в главную проблему реверса: наш мир не идеален.
Все предметы вокруг нас имеют отклонения от идеальной геометрии: поверхности не идеально плоские, круги не идеально круглые, углы не идеально прямые. Даже совершенно новая деталь уже имеет отклонения: усадку материала, следы инструмента, температурные деформации, погрешности станка. А поверх производственных отклонений ложатся следы жизни — износ, истирание, трещины, вмятины, деформации, неудачный ремонт. Просто в жизни мы этого почти не замечаем. Поэтому ответить на вопрос о точности в миллиметрах или микронах часто невозможно.
Чем точнее - тем больше ошибок
Попытка максимально точно скопировать физическую деталь даёт неожиданный результат: чем точнее копируем поверхность скана, тем больше отклонений попадает в цифровую модель. К несовершенствам детали добавляются собственные погрешности измерения: особенности оптики, совмещение отдельных сканов, шум.
Чтобы понять это, вернёмся к самому началу. До того как деталь изготовили, она существовала как чертёж или цифровая модель: идеальная, симметричная, математически определённая форма. Например, задан радиус 14,8 мм.
Так указан номинальный размер — значение, характеризующее конструкцию до появления производственных отклонений. Затем модель уходит в производство. И вот вместо ровных 14,8 мм получаем, например, 14,79 мм — уже очень точно.
Но это реальная физическая деталь, а не математическая модель. Причём 14,79 мм — лишь результат нашего измерения. В реальности радиус будет не ровно 14,790000 мм, а 14,793638… мм. Деталь не знает, сколько знаков после запятой мы способны отобразить в программе или на измерительном оборудовании. Она просто имеет реальную геометрию, которая отличается от идеальной номинальной.
На изображении: жёлтый - 3D-скан детали, серый - цилиндрическая автоповерхность, которая повторяет 3D-скан. Обратите внимание на два момента: 1) скан и автоповерхность не совпадают - скан не идеально круглый; 2) радиус авто-цилиндра имеет 4 знака после запятой - в нормальной 3D-модели размер ставят максимум на 2 знака.
Реверс – это работа с отклонениями
Все отклонения, которые влияют на результат обратного проектирования, можно разделить на десять групп:
- Ошибки при разработке;
- Технологическая подготовка к производству;
- Производство;
- Эксплуатация;
- Характер поверхности детали;
- Точность и разрешение измерительного инструмента;
- Особенности технологии 3D-сканирования;
- Подготовка 3D-скана;
- Интерпретация 3D-скана человеком;
- Особенности программ для 3D-моделирования (САПР).
Разберём их по порядку.
1. Ошибки при разработке
Как ни странно, первый источник отклонений появляется ещё до производства. Всё вокруг нас так или иначе спроектировано людьми, а люди ошибаются — и разработчики не исключение. Если мы делаем реверс изначально неудачной конструкции и просто воспроизводим её без изменений, получаем ту же неудачную конструкцию.
Но именно на этапе разработки создаётся номинальная форма — то самое идеальное представление о том, каким должно быть изделие. И именно её мы по умолчанию пытаемся восстановить при обратном проектировании.
2. Технологическая подготовка к производству
На этом этапе квадрат становится трапецией, на ровной стенке появляется стык, красивое становится приземлённым, а простое — дорогим. Дизайнеров и конструкторов сменяют технологи, которые адаптируют идеальный продукт к реальным условиям производства: нужно выбрать технологию изготовления, учесть её ограничения и одновременно уложиться в требуемую себестоимость.
Например, при производстве пластиковых деталей литьём в пресс-форму красивую дизайнерскую 3D-модель адаптируют к возможностям технологии: сложную форму делят на несколько элементов, задают технологические уклоны, стенкам придают определённую толщину.
На изображении: типовой уклон, необходимый для производства деталей методом литья в пресс-форму.
3. Производство
В производстве действует система допусков и посадок — диапазоны, в рамках которых отклонение от заданного размера считается нормой. Например, если на чертеже длина указана 60,0 мм с допуском ±0,2 мм, то деталь с фактическим размером 60,18 мм полностью соответствует чертежу и не считается браком. Но при обратном проектировании этот размер должен стать обратно 60,00 мм.
Помимо этого каждое производство оставляет на детали характерные следы:
- после сварки — сварные швы;
- после механической обработки — следы режущего инструмента;
- после формовки — облой, усадки, утонения.
Эти следы — не часть исходной конструкции, их не нужно автоматически переносить в новую CAD-модель. Для это нужны знания технологий. Именно производственные деформации и технологические артефакты часто становятся главной причиной, почему точное копирование не даёт правильной инженерной модели.
На изображении стрелками показаны вмятины от усадки пластика при производстве - так называемые “утяжины”.
4. Эксплуатация
Сколы, трещины, отломанные куски, истирания, перегибы и вмятины повторять никто не просит. Если деталь не абсолютно новая, она точно несёт следы жизни.
В своё время для меня стало открытием, что автомобильные кузова уже после первых поездок перестают быть ровными и симметричными. Они не обладают абсолютной жёсткостью, металл пластичен, и любой автомобиль незаметно гнётся на ямах, кочках и даже в повороте.
То же происходит с любой деталью, которая работает под нагрузкой. Поэтому при реверс-инжиниринге нужно отделить исходную геометрию от того, что случилось с деталью за время эксплуатации. Иначе можно очень точно воспроизвести не конструкцию, а историю её использования.
На изображении изрядно потёртая деталь. Стрелками показаны участки, сохранившие исходную толщину - по ним была восстановлена исходная поверхность.
5. Характер поверхности детали
Очевидно, что размеры скан-модели изначально покрашенной, не очищенной от грязи и смазки и вдобавок задутой матирующим спреем детали станут чуть больше исходных. Истинная поверхность окажется под многослойным «бутербродом» из покрытий. Бывает, толщина такого «бутерброда» достигает пары миллиметров.
В норме при поточной промышленной покраске толщина слоя составляет 0,1–0,2 мм и меньше. Слой небольшой, но всё равно добавляется к реальному габариту детали. Краска ложится неравномерно и иногда собирается наплывами на краях и рёбрах, а острые углы скругляются. Именно на наплывах при многократной покраске «набегают» те самые +2 мм к габариту.
А ещё есть грязь и смазка. Детали станков и механизмов как при хранении, так и при эксплуатации, особенно снятые со старого оборудования, часто покрыты смесью грязи с маслом или иной смазкой. Если сканировать такую деталь без очистки, сканер честно зафиксирует поверхность грязи, а не основного материала под ней. Грязь забивается в углы и мелкие элементы рельефа и может полностью изменить их геометрию на скане.
Следующий фактор — сама поверхность материала. Здесь играют роль шероховатость, возникающая при производстве, и фактура (рельеф), которую создают целенаправленно.
Яркий пример — поверхность металлической детали, отлитой в песчаную форму. По ГОСТ Р 70117-2022 допускается шероховатость литейных поверхностей до 0,8 мм. При этом наш сканер снимает такую деталь с точностью до 0,036 мм. Получается парадокс: 3D-сканер может снять деталь в 20 раз точнее, чем она изготовлена относительно исходной геометрии. В таких случаях нужно понять, где среди песчинок находится та самая поверхность конструкции, которой и должна соответствовать 3D-модель.
Типичная металлическая деталь, отлитая в песок. Отчётливо видны все неровности.
6. Точность и разрешение измерительного инструмента
У 3D-сканеров точность зависит в том числе от размера объекта, на который настроен сканер, — так называемой рабочей области, или поля сканирования. Чем меньше поле, тем выше точность. Например, для нашего RangeVision Pro 2 заявленная точность при работе с объектами до 10 см достигает 24 микрон (0,024 мм). Это максимальное отклонение, на которое Pro 2 может ошибиться на маленькой детали.
Именно точность сканирования ошибочно могут выдавать за точность реверс-инжиниринга.
Помимо точности у сканера есть ещё один важный параметр — разрешение. Оно показывает, насколько мелкие элементы поверхности сканер способен различить. Оно всегда ниже точности в 2 и более раз. Для RangeVision Pro 2 на тех же объектах до 10 см разрешение составляет 0,04 мм против погрешности 0,024 мм. Из-за этого большие предметы получаются достаточно точными по размеру, но заметно менее чёткими, чем маленькие.
7. Особенности технологии 3D-сканирования
На фокусах с точностью и разрешением проблемы не заканчиваются. Помимо зеркальных и прозрачных поверхностей есть геометрия, которую оптический сканер физически не может распознать или видит плохо и куда сканер просто не может заглянуть. Например:
- узкие и глубокие отверстия;
- внутренние полости;
- глубокие канавки;
- внутренняя резьба;
- острые кромки;
- поднутрения;.
Если луч лазера или камера не имеют прямой видимости участка, информация о нём просто не попадает в измерение — возникает слепая зона. На итоговой полигональной модели это выглядит как неровное отверстие или разрыв поверхности. Поэтому файл сканирования часто нельзя напрямую отправить в 3D-печать — его приходится обрабатывать, “лечить” модель.
На изображении ручка багажника. Видны сквозные дыры вместо углублений.
8. Подготовка 3D-скана
Подготовка, сканирование и итоговый 3D-скан крыла мотоцикла.
Результатом непосредственно 3D-сканирования является облако точек с координатами. Чтобы превратить его в поверхность, программа соединяет точки и формирует полигональную сетку.
В зависимости от алгоритмов и настроек один и тот же набор данных программа интерпретирует по-разному. Например, можно получить модель, в которой сомнительные участки будут удалены — тогда появляются дыры. А можно позволить программе достроить поверхность по окружающим данным — дыры исчезнут, но часть геометрии окажется предположительной, а не измеренной.
Помимо этой проблемы, поверхность 3D-скана всегда получается с шагренью — микрошероховатостью, которая появляется, какой бы гладкой ни была сама деталь. И она тоже напрямую влияет на итоговый результат.
Видна шагрень на поверхности винта. Сам винт гладкий, а его скан - с рытвинами.
Самое очевидное решение — просто сгладить шагрень. Но здесь легко испортить результат. При агрессивном сглаживании исчезают не только шумы, но и реальные элементы геометрии: острый угол становится мягким, радиус скругления увеличивается. Например, реальный радиус 4 мм после чрезмерного сглаживания может превратиться в заметно больший — вплоть до 6 мм.
Как правило, любое автоматическое восстановление сетки работает довольно вольно, поэтому для ответственных технических деталей мы предпочитаем не обрабатывать сканы дополнительно.
9. Интерпретация 3D-скана человеком
Или человеческий фактор в полной мере. У нас есть тестовое задание для претендентов на должность реверс-инженера: сделать реверс кронштейна для очков офтальмолога. Изначально это был обычный заказ, но модель оказалась настолько разносторонней в работе, что я сделал её тестовым заданием. На момент написания статьи по одним и тем же исходным данным тестовое выполнили 23 человека — и все 3D-модели вышли разными.
Обратное проектирование похоже на работу сыщика: вещи бывают спроектированы так тонко, а 3D-скан так замылен, что разглядеть построение формы бывает непросто даже опытному человеку.
На изображении: зуб (красный) и коронка (жёлтая) от ковша экскаватора. Синим обведены питатели - каналы, через которые в форму заливали расплавленный металл. После застывания питатель спиливают, но характерный выступ остаётся. При реверс-инжиниринге (ниже) такие элементы не воспроизводят, так как они не являются частью исходных 3D-моделей.
10. Особенности CAD/САПР
Довольно часто для задач реверс-инжиниринга используют специализированные программы — например, Geomagic Design X, созданную именно для работы с результатами 3D-сканирования и восстановления CAD-геометрии.
В Geomagic есть инструменты анализа 3D-сканов и автоматического построения. Но при этом программа сама по себе не является типичной САПР вроде распространённых в нашей стране систем SolidWorks, T-Flex или Компас: в них намного больше инструментов проектирования, но нет или мало инструментов, полезных для реверс-инжиниринга.
Любая программа имеет специализацию, а значит — свои возможности и ограничения. Если пытаться решать любую задачу одним инструментом, рано или поздно упрёшься в его ограничения. Например, задать 3D-скану точную ориентацию в пространстве в бесплатном Blender и дешёвом Rhinoceros бывает намного проще, чем в дорогущих «всесильных» Siemens NX и Catia.
Заключение
Так что же на самом деле означает «точность» в реверс-инжиниринге?
Теперь, надеюсь, понятно, почему на этот вопрос нельзя ответить одной цифрой в микронах. У нас никогда нет прямого пути от физической детали к идеальной CAD-модели. Между ними — длинная цепочка, которая начинается ещё до рождения детали:
проектирование → технологическая подготовка → производство → эксплуатация → подготовка детали → 3D-сканирование → обработка данных → интерпретация инженером → построение CAD-модели.
На каждом этапе появляются свои отклонения. Поэтому главная задача реверс-инжиниринга — понять, что из увиденного действительно соответствует исходной геометрии, а что является результатом производства, следствием износа, неточностью измерения или артефактом сканирования.
- Если нужна точная замена существующей детали — максимально сохраняем фактическую геометрию и компенсируем только износ.
- Нужно восстановить исходную конструкцию — отделяем номинальные размеры от производственных и эксплуатационных отклонений.
- Нужно улучшить деталь — сознательно меняем геометрию.
Во всех трёх случаях исходная деталь одна и та же, а результат разный.
А бывает, что всё это нужно совместить: сохранить то, что определяет работу детали, восстановить утраченное и одновременно адаптировать конструкцию к современной технологии производства.
Это путь восстановления номинальной формы. И именно здесь заканчивается работа 3D-сканера и начинается работа инженера. Сканер может показать поверхность с точностью в десятки микрон. Но только инженер решает, оставить ли эти десятки микрон в итоговой модели. Потому что точность копирования и правильность конструкции — не одно и то же.
Хороший реверс-инжиниринг — это когда новая 3D-модель повторяет ту геометрию, по которой создавали деталь.
---------------
Еще больше интересных статей
Макет электростанции
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Любите ли вы головоломки так, как люблю их я? Каждый раз ко...
Кольцо размера 17 в Blender: шинка, круглый камень и шесть крапанов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Самодельный станок для намотки пластика
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Думаю каждый из нас сталкивался с такой проблемой ка...


Комментарии и вопросы
Да кто бы спорил. Так уж получ...
(наружные поверхности корпуса....
вот вы перегибаетеничего я не....
Когда хотите напечатать что-то...
Приобрел свой первый принтер....
Во время печать принтера сопло...
В папке logs до хрена файлов и...