Топологическая оптимизация приварного кронштейна, нагруженного сосредоточенной силой на краю

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

Создаем этот объем в меню Геометрия -> Объем -> Создать. Вводим в поля значения как показано ниже и нажимаем "Применить".

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

Переходим в меню Геометрия -> Объем -> Разрез. 

Выбираем "Координатная плоскость".

Кликаем в строку "ID объема(ов)", а затем кликаем на объем. В поле должен появиться номер выбранного объема.

Далее выбираем плоскость сечения "ZX" и ставим галочку в поле "Срастить", чтобы получившиеся в результате разрезания объекты были связаны друг с другом.

Нажимаем "Применить".

Далее повторяем эту процедуру, только в поле "ID объема(ов)" вписываем "all", чтобы выбрались все объемы. 

Затем выбираем другую плоскость сечения - "XY".

Далее нажимаем "Применить".

Получим следующий результат.

Далее можно переходить к построению сетки.

Переходим в меню Сетка-> Объемная-> Интервалы. 

Выбираем "Автоматический размер" и в поле "Выбор объемов" пишем "all".

Сдвигаем ползунок чуть левее середины и нажимаем "Построить сетку".

В итоге получим следующий результат построения сетки.

Следующим этапом можно создать материал.

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

После того как мы задали имя (в нашем случае "MAT1"), необходимо развернуть дерево свойств в ветке "Упругость"-"Материал Гука" и перетащить, зажав левой кнопкой мыши свойства "Модуль Юнга" и "Коэффициент Пуассона" из дерева свойств в правую нижнюю область. Также необходимо поступить со свойством "Предел прочности" из ветки "Прочность"-"Изотропная прочность".

Затем задать значения по примеру ниже.

Далее нажимаем "Применить" и затем "Х" в правом верхнем углу панели "Управление материалами".

Следующим шагом создадим блок для передачи свойств нашему объему.

Переходим в меню Блоки-> Блок-> Добавить сущность в блок. 

Выбираем в списке сущностей "Объем", а в строке "ID объекта(ов)" пишем "all", чтобы добавить в блок все объемы сразу.

Затем нажимаем "Применить".

Далее переходим в меню Блоки-> Блок-> Свойства/параметры блока. 

Выбираем из выпадающего списка "Имя блока" созданный нами блок (в нашем примере он будет единственный).

Далее из выпадающего списка "Материал" выбираем созданный нами материал.

Нажимаем "Применить".

На следующем шаге создадим граничные условия. Для этого переходим в меню Граничные условия-> Перемещение-> Создать.

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

Ставим галочку в поле "Все" в меню "Степени свободы" и нажимаем "Применить".

Далее необходимо приложить нагрузку.

Важно! 

  • Нагрузка должна быть адекватна прочностным свойствам материала (на первом шаге расчета итоговые напряжения по Мизесу не должны превышать предел прочности, поэтому сначала проведите статический расчет и убедитесь в этом). Иначе алгоритм либо оставит весь материал на месте при слишком большой нагрузке, либо материала останется меньше, чем может отразить сетка, что приведёт к артефактам, если нагрузка слишком мала.

Переходим в меню Граничные условия-> Точечная сила-> Создать.

В списке объектов выбираем "Вершина", кликаем в поле "ID объекта(ов)", а затем в центральную вершину на противоположном краю блока, после чего в поле "ID объекта(ов)" появится ее номер.

В поле "Сила" вписываем значение "-1000000000" или "-1e9".

В поле "Направление" задаем "0 0 1", тем самым указывая направление вдоль оси "Z".

Нажимаем "применить".

Далее переходим в меню Настройки расчета-> Топологическая оптимизация.

Выбираем размерность "3D".

Нажимаем "Применить", а затем "Начать расчет".

В открывшемся окне выбираем место сохранения результатов и имя файла. Затем нажимаем "Сохранить". 

После этого начнется расчет.

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

Для просмотра результатов необходимо перейти в постпроцессор Fidesys Viewer.
Чтобы это сделать нужно перейти в меню "Результаты" и нажать "Открыть результаты", после чего откроется папка с результатами.

Папка с результатами

Далее надо перейти внутри нее в папку "model" и найти в ней последний файл с результатами result_XX.pvd (с наибольшим порядковым номером вместо ХХ) и открыть его двойным кликом, после чего запустится постпроцессор Fidesys Viewer.

В открывшемся окне Fidesys Viewer необходимо применить фильтр "Порог".

Далее выбрать входной массив "Модуль упругости", поставить галочку в поле "Все скаляры" и нажать "применить".

Далее необходимо подвинуть ползунок минимального значения модуля упругости до значения порядка 1е10 и нажать "применить".

В окне модели мы увидим результат - топологически оптимизированную конструкцию. Далее ее можно экспортировать в формате для 3D печати.

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

Необходимо перейти в меню "Файл"->"Сохранить данные окна".

Выбрать место сохранения и формат .x3d и нажать "ОК".

Затем нужно перейти в папку с сохраненной модель и двойным кликом открыть ее. Если у вас установлен слайсер для 3D принтера, к примеру Cura, то он сможет открыть модель и подготовить ее к печати. 

reset
brick x 10 y 6 z 10
webcut volume 1  with plane xplane offset 0 preview
webcut volume 1  with plane yplane offset 0 preview
webcut volume 1  with plane yplane offset 0 merge 
webcut volume all with plane zplane offset 0 merge preview 
webcut volume all with plane zplane offset 0 merge
volume all size auto factor 4
mesh volume all
create material 1
modify material 1 name 'MAT1'
modify material 1 set property 'MODULUS' value 2e+11
modify material 1 set property 'POISSON' value 0.3
modify material 1 set property 'ISO_ULTIMATE_STRENGTH' value 4.5e+08
set duplicate block elements off
block 1 add volume all
block 'Block 1' material 1 cs 1 element solid order 1
create displacement  on surface 23 35 29 21  dof all fix  
create force  on vertex 17  force value -1e9 direction 0 0 1
analysis type optimization elasticity dim3
optimization bc_protection 1.0 block all