В одной из прошлых статей мы рассмотрели такой интересную тему, как анализ нагруженности 3d модели, производимый с помощью open source программы PrePoMax, где для себя отметили, что подобный подход, с использованием внешних модулей, в значительной степени развязывает руки, позволяя производить моделирование в любом удобном инженерном CAD-е, даже том, в котором не реализован анализ нагруженности. 

Таким образом, с одной стороны, это может быть довольно удобно, с той точки зрения, что можно делать модель в абсолютно любой среде, после чего произвести её анализ;

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

Для чего всё это вообще может быть нужно: основной целью всего этого является прикидка — а выдержит ли 3d модель ту нагрузку, которая будет к ней прилагаться в дальнейшем? 

Далее мы рассмотрим самый простой и доступный в понимании подход, который, на мой взгляд, имеет смысл с точки зрения его применения при анализе моделей для 3d печати, в домашнем техническом хобби творчестве…

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

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

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

Так как в прошлой статье мы затронули одну из самых известных бесплатных open source сред инженерного проектирования FreeCAD — продолжим, пожалуй, прямо в ней… 

Итак, сделаем допущение, что мы разработали некую 3d модель прямо в этой среде,и допустим, что в дальнейшем, эта модель будет печататься на fdm 3d принтере из ABS-пластика…

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

В принципе, почему бы и нет? :-) Сказано — сделано: создадим 3d модель обычного кубика (для простоты рассмотрения) с помощью параметрического проектирования, а затем, нагрузим его разными весами и попробуем улучшить параметры, чтобы он «лучше сопротивлялся этому жестокому миру»! :-)

Итак, для начала скачаем, установим и запустим FreeCAD, после чего создадим новый проект:

Затем перейдём на так называемый «верстак» с таблицами (Spreadsheet):

Создадим новую таблицу:

Далее, когда у вас появилась таблица, заполняем её так, как показано на картинке ниже (можно транслитерацией, главное, чтобы была латиница в названиях):

Затем, нужно нажать на каждую ячейку: B1, B2, B3 — правой кнопкой мыши, зайти в свойства-псевдоним и вбить название (Length и т.д.):

Как мы видим, после того, как псевдонимы назначены, ячейки изменили свой цвет:

Это нужно, чтобы создать понятные для среды переменные: недостаточно просто вбить цифры и рядом с ними какие-то названия — необходимо назначить ещё и «псевдонимы».

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

Теперь, для дальнейшей работы, нам надо перейти на другой верстак:

Затем, создать новую деталь:

Выйдет всплывающее окно, где нужно нажать ОК:

Далее, выбираем прямоугольник и создаём эскиз:

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

Точно так же привязываем и вертикальный размер:

Эскиз нарисован, поэтому выходим из его редактирования:

Затем, выбираем инструмент Выдавливание:

Появляются настройки выдавливания, где нужно проделать то же самое (с привязкой к таблице параметров) — что мы проделали ранее для длины и ширины:

В итоге, у нас должно получиться нечто такое (как на картинке ниже). Ради интереса, чтобы проверить, что у нас все связи с таблицей работают, перейдём во вкладку с таблицей:

И поменяем высоту кубика на 10. Всё отлично работает — мы сразу увидим, когда перейдём обратно во вкладку с кубиком, что он перестроился (остальные параметры проверять не буду, так как во время настройки, я видел, что связь нормально образовалась): 

Итак, теперь, пожалуй, самое интересное — нужно протестировать кубик на нагрузку! ;-)

Мы уже видели в одной из предыдущих статей, как это делается в сторонних программах, но как же нам это проделать прямо внутри FreeCAD? 

Для этого, точно так же как мы выше переходили на верстак Spreadsheet — выберем и перейдём на верстак FEM (Finite Element Method — Метод Конечных Элементов):

Далее, нам нужно создать новый анализ:

Кстати, в качестве любопытного замечания, которое может быть для вас полезным: я писал эту статью не один день и, после открытия сохранённого файла FreeCAD-a все ненужные вкладки закрываются — то есть, наша таблица с параметрами в Spreadsheet тоже закрыта. 

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

Теперь, предположим, что мы будем печатать этот кубик из ABS-пластика, соответственно, применим к нему этот материал, для чего нажимаем на кнопку материала:

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

Чтобы это проделать, зажмём клавишу Shift на клавиатуре и, нажав на правую кнопку мыши повращаем кубик таким образом, чтобы стала видна его нижняя грань, после чего нажмём сюда:

Далее, в появившемся окне, надо выбрать грань, которую необходимо закрепить — у нас это нижняя грань кубика:

Теперь, нам надо создать силу, которая будет давить на кубик сверху. Предположим, что это сила в 200 кг (чтобы более-менее наглядно деформировать кубик).

Для этого, нам надо точно таким же образом, как мы разворачивали кубик, чтобы увидеть его низ, — нужно развернуть кубик, чтобы был виден его вверх (Shift + правая кнопка мыши), после чего, нажимаем сюда:

Далее, применяем эту силу к верхней грани кубика:

В результате, у нас должно получиться нечто вот такое и на этом мы заканчиваем определение силы:

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

В итоге, мы видим, как кубик покрылся мелкой сеткой — то, что нужно:

Теперь, надо создать объект модуля просчета деформаций:

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

Теперь, нам надо как бы снять с кубика «слепок» — все его параметры геометрические, условия задачи и т.д. и т.п. (кнопка «Создать .inp файл») — которые будет использовать модуль расчёта, после чего, собственно, и запустить сам расчёт.

Видим, что расчёт успешно завершился, после чего, это окно с задачей для модуля расчёта можно закрыть — оно нам больше не нужно:

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

Далее, нужно два раза кликнуть мышкой на результат анализа, чтобы посмотреть, что у нас получилось:

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

Таким образом, можно посмотреть, насколько деформируется объект по X, по Y по Z и т. д. Или, выбрать интегральный показатель прочности — «напряжение фон Мизеса»:

Далее, смотрим на шкалу напряжений (или давлений) и делаем выводы — там цифры представлены в экспонентах, которые читать довольно просто:
какое_то_число e- какое_то_число — означает всего лишь, на сколько знаков нужно сдвинуть запятую влево: например, в числе + 3.333e-01 — это означает сдвиг запятой влево на один знак, то есть получаем понятное для нас число: 0,3333 или ~ 0,33. И т.д.:

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

Но понятно, что для инженера такое наблюдение результатов в виде линейки и визуального представления — это сущность весьма приблизительная, сходная с «от забора и до обеда» — что можно интерпретировать кучей разных способов. :-D  

Поэтому, так как инженерам нужна точноcть, и мы хотим абсолютно точно знать, насколько кубик деформируется — мы можем это очень легко узнать — для чего достаточно всего лишь посмотреть на два окошка, «Минимум» и «Максимум». 

Например, в нашем случае, мы видим, что кубик испытывает напряжение в 10,3 МПа (цифра в окне 10,30 MPa) максимум — что в случае с ABS находится глубоко в безопасной зоне: да, кубик напряжён, но ему ещё далеко от разрушения, так как, если мы посмотрим вот здесь, то в графе «Tensile Strength», мы увидим, что пластик ABS может выдерживать от 37 до 110 МПа:

В этом легко убедиться, если переключиться на показ других величин, например, величину смещения по X, где мы видим, что максимальное смещение составляет 0,0087 мм — что в случае 3d модели, изготовленной с помощью fdm-печати, можно охарактеризовать как: «вообще наплевать» :-D — так как можно сказать, что модель практически не деформируется и отлично держит нагрузку. 

Тем не менее, если вы захотите уменьшить даже такие малые деформации — вы всегда это можете сделать: у вас есть параметры этой 3d модели в таблице Spreadsheet и вам будет достаточно всего лишь переключиться на эту таблицу, увеличить, например, размер кубика по XY и затем заново произвести расчёт нагруженности, по тому алгоритму, который описан выше — таким образом, вы сможете увидеть, что, действительно, кубик стал испытывать меньшие напряжение!
Это и есть параметрическое проектирование…

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

Например, в тесте ниже, я увеличил размер кубика по XY до 100х100 мм — и сразу видим, как кардинально упала нагрузка: 574,17 кПа или, примерно 0,57 МПа (а было 10,3 МПа!):

А если мы переключимся на смещение по X, то там показатели такие же существенные: было 8,71 мкм, а стало 758,88 нм, — то есть уменьшение смещения составило более 11 раз:

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


Размещайте облачную инфраструктуру и масштабируйте сервисы с надежным облачным провайдером Beget.
Эксклюзивно для читателей Хабра мы даем бонус 10% при первом пополнении.

Воспользоваться