В этой статье Сергей Гальцев, ведущий инженер-программист отдела разработки приложений АСКОН, рассказывает о приложении «КОМПАС-Композиты» и о сценариях применения в нем инструментов полигонального моделирования.
Композит — это составной материал, состоящий из армирующего наполнителя и связующего вещества. Как пример можно привести стеклоткань, пропитанную эпоксидной смолой. Существует множество композитных изделий. С помощью нашего приложения можно проектировать изделия, образованные структурой слоев, ориентированных определенным образом. Например, это набор слоев из углеродистой ткани. Такая структура обеспечивает долговечность, прочность и точность производства таких изделий, что является важным в отраслях авиастроения, вертолетостроения, машиностроения и так далее. То есть там, где изделия работают в агрессивных средах или, например, как в авиастроении, в условиях высоких скоростей.
Одним из таких изделий является авиадвигатель. В нем применяется особая створка, изготовленная как раз из таких слоистых полимерных композитных материалов. На рисунке видно, что на ней много переходов, сгибов, то есть она имеет единую поверхность сложной криволинейной формы.
В нашем приложении мы проектируем такие слоистые изделия слоями. То есть инженер-конструктор получает или строит в CAD-редакторе какую-то сложную поверхность со сгибами и переходами. Далее он строит на ней кривые по поверхности, формирует пакеты для группировки слоев и строит сами слои по границам, помещая их в эти пакеты. Таким образом формируется конструкторская модель. После этого она передается инженеру-технологу. Его задача — подготовить данные для производства и изготовления таких слоев. Для этого он может воспользоваться возможностью построить технологические слои по уже имеющимся в модели конструкторским слоям. Технолог проводит необходимые анализы этих слоев, строит операции и получает развертки изделия, которые отправляются на резак. Дальше он подготавливает данные для проектора, для того чтобы произвести выкладку уже нарезанных слоев и получить само изделие.
Также наше приложение обладает навигатором для работы с объектами композитов в CAD КОМПАС-3D.
Теперь расскажем подробнее о задачах, для которых мы используем инструмент полигонального моделирования у себя в приложении. При моделировании ткани возникает задача спрогнозировать поведение материала на поверхности сложной формы. Это нужно для того, чтобы предотвратить проблемы с укладкой материала, например рассчитать его складки и растяжения.
Первой задачей является анализ драпируемости. Результатом такого анализа является трехмерная сетка, ее цветовая раскраска показывает нам отклонение волокон материала. На рисунке можно увидеть ячейки разной формы. Для того чтобы получить такую раскраску, необходимо измерить угол отклонения ячейки и сравнить его с предельным, указанным для конкретного материала.
Вторая задача — это надрезы и развертки. Анализ драпируемости на левой картинке показал, что у нас есть зона складки, красная зона на рисунке 4. Далее мы выполняем надрез. В итоге инженер должен получить гладкий контур развертки на плоскости уже с учетом этого надреза.
Хотелось бы поделиться историей создания нашей разработки. Год назад мы узнали о появлении внутри ядра C3D функции параметризации сетки. А что такое параметризация? Это отображение сетки на плоскость. Иными словами, это и есть развертка. Можно сказать, что наиболее известное применение параметризации — это натягивание структур на поверхность сложной формы.
На этом этапе мы приняли решение, что будем использовать в своем приложении 3D и инструменты полигонального моделирования. Для этого мы попросили создателей КОМПАС вынести функцию параметризации в API. Однако такая параметризация методом LinAbf++ для нашей оболочки не дала требуемого результата, так как изменение фиксированной точки не влияло на итоговую сетку. Для наших целей это очень важно, из всех точек поверхности нам нужно выбрать точку выкладки таким образом, чтобы на разных моделях красных зон было как можно меньше. Каждая красная зона приводит к разрезу, а лишние разрезы нежелательны.
Следующим нашим экспериментом была оптимизация функции Rectify face и появление Unwrap mesh. Эта функция принимает на вход систему координат, таким образом мы можем задать точку выкладки и направление основы и получить разные деформации. Также в ней присутствует основной параметр оценки искажения — это угол сторон ячейки и сравнение его с углом 90 градусов. На этой рисунке 7 можно увидеть сетку, которая была у нас на начальном этапе, и ее проблемы. Первая проблема — сетка не дотягивалась до границы поверхности. При развертке получалась рваная, неполная граница сетки. Вторая проблема — относительно направления укладки на симметричных моделях мы получали несимметричные квады. На такой модели складки будут с двух сторон, а сетка этого не отражает.
Мы приняли решение форсировать работу, потому что у нас появился интерес к этой области, и запросили у группы полигонального моделирования C3D Labs решение наших проблем.
Текущая наша сетка основана на алгоритмах FishNet и реализована через MbDrapMaker. Она стала более симметрична в симметричных моделях, у нее появилась граница.
Вот так выглядит гладкий контур развертки с двумя надрезами. Он больше не рваный и выглядит достаточно гладко.
Теперь алгоритм нашей работы выглядит так: мы настраиваем точность сетки, настраиваем параметры вычисления развертки, создаем MbDrapMaker, по линии сетки получаем массив углов, для каждой по линии вычисляем направление основы и получаем контур развертки.
В наших планах развития — создание новых методов выкладки. На данный момент мы имеем единственный метод выкладки — это метод распространения точек сетки от точки выкладки. То есть мы берем точку, откладываем от нее направление основы и лутка, геодезически движемся во все стороны, по трем точкам получаем четвертую и таким образом клетка за клеткой получаем сетку на всю поверхность. Нам нужны и другие методы, потому что мы стремимся к тому, чтобы при построении сетки красный зон был меньше. На разных моделях разные методы будут давать разное количество красных проблемных зон. Также необходимы доработки самого MbDrapMaker. Сейчас развертки сложной формы не обрабатываются, часто бывают разрывы, и сетки различной криволинейной формы тоже иногда несимметричны. Мы надеемся на C3D Labs и ждем развития их инструментов полигонального моделирования.
Гальцев Сергей
Ведущий инженер-программист отдела разработки приложений
АСКОН