В прошлой статье мы разбирались с тем, как наука смотрит на вопросы увеличения прочности 3d модели, распечатанных с помощью fdm печати. 

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

Практический смысл в этом знании такой, что мы там увидели, как можно было бы экономить пластик, и что 100%-заполнение при 3d печати — вовсе не единственный способ обеспечения гарантии высокой прочности распечатки. 

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

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

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

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

В инженерном деле есть такая интересная дисциплина как Метод Конечных Элементов (МКЭ) (по-английски — Finite Element Method (FEM)), практический смысл которого заключается в том, что, будучи внедрённым в современное инженерное ПО, он позволяет рассчитывать, как будет отвечать (грубо говоря, деформироваться) деталь, в ответ на приложенную нагрузку.

Проще говоря: наверняка, многие из вас, изготавливая 3d модель, постоянно мучались вопросом: «а вот тут утолщить или так оставить, как есть? Утолщу, на всякий случай, пожалуй…». Было такое? :-D Так вот этот расчётный метод позволяет отойти от подобного «тыкания пальцем в небо» и точно узнать, выдержит ли деталь положенную нагрузку, с этой конкретной стороны (сторон) или нет!

Подобный способ анализа встроен во многие современные среды для инженерного проектирования (CAD-ы) — скажем, в той же самой бесплатной открытой среде разработки FreeCad подобные средства анализа находятся на «верстаке» FEM:

Однако, существуют и полностью отдельные, и даже, мало того, бесплатные проекты для анализа деталей!  

Лично мне этот подход (отдельного от CAD программного обеспечения для анализа) нравится тем, что что он полностью развязывает руки: можно проектировать 3d модель в любой привычной для вас среде, после чего, проанализировать её в специальном ПО на предмет, — а вообще, при такой конфигурации и таком материале изготовления — будет ли модель выдерживать нагрузку, для которой она проектируется? И, даже если выдержит, какие места у неё будут наиболее нагружены, для чего их следовало бы усилить? (как раз ответ на тот самый вопрос «а вот тут утолщить или так оставить, как есть? Утолщу, на всякий случай, пожалуй…» :-) ). 

Но тут есть нюанс: если бы вы, например, построили 3d модель во FreeCad, а потом прямо в нём же и проанализировали — вам бы открылись уникальные возможности, например, по усилению только в тех местах, где нужно, базируясь на результате анализа (это делается в полуавтоматическом режиме)! 

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

Несомненным плюсом внешнего ПО является тот, что оно, обычно (так как у автора больше нет ничего другого) — развивается гораздо более активно, чем встроенные универсальные средства. Так что тут надо думать… 

Я же здесь рассматриваю более общий случай. Вы же, в свою очередь, можете исследовать методы анализа FEM в рамках среды, например, того же самого FreeCad, самостоятельно (при желании). 

Итак, внешние средства… Одним из таких инструментов для анализа является программа PrePoMax. Для последующей работы — скачаем и установим её, после чего, проанализируем с её помощью что-нибудь! :-)  

Для наглядности возьмём забавный пример — тестовый кубик для 3d печати, который скачаем с thingiverse:

                                                                                                                                                                                                              iDig3Dprinting, thingiverse.com

Далее, вам необходимо запустить PrePoMax, создать там новый проект (File-New), где для этого проекта поставить следующие настройки системы измерения:

После чего импортировать туда этот кубик (File-Import). Выглядеть будет вот так:

Далее нажимаем в порядке, указанном на картинке ниже:

Теперь надо сгенерировать саму сетку с теми параметрами которые мы ввели ранее. После нажатия на последовательность, указанную на картинке ниже, компьютер на некоторое время задумается:

После чего модель покроется сеткой и вас перекинет в другую вкладку:

Там мы находим Materials и создаём новый материал:

Который назовём PLA (предположим, что у нас кубик изготовлен из PLA) и вводим параметры эластичности для него*:

*Параметры для других полимеров:
- ABS: 2000 и 0.37;
- PETG: 2100 и 0.38;
- TPU (мягкий, от FD Plast): 15 и 0.48

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

И настраиваем параметры:

Далее настраиваем шаги расчёта, для чего заходим в Steps:

Где практически ничего не делаем, только выбираем Static Step:

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

Чтобы задать такое ограничение, заходим в раздел Boundary Conditions (BCs):

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

Так как программа оперирует не килограммами, а давлением (в конкретно нашем примере), рассчитываемом по формуле:  

Давление (МПа) = (Масса (кг) × 9.81 (м/с²)) / Площадь Грани ( в мм2),  

то для моих 30 кг у меня вышло 0.73575 (обратите внимание, что я дробное число отделил точкой, а не запятой, иначе программа не примет). 

Для ввода силы — переходим в раздел Loads:

Далее вводим настройки для силы:

Ну и наконец, мы всё сделали что могли, остаётся только запустить анализ, где после нажатия последовательности ниже, компьютер задумается на некоторое время:

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

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

После анализа нажимаем на кнопку Results в этом всплывшим окне (не нажимайте на Close! — Иначе он не выводит результаты анализа (по крайней мере, у меня так было), окно должно закрыться и должен появиться результат — раскрашенный в разные цвета 3d объект.  

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

В итоге, нас автоматом перекинет во вкладку Results и мы увидим нечто такое, как картинке ниже, где кубик будет раскрашен в карту напряжений и смещений (плющит — но держится:-D):

Здесь мы видим карту смещений по трём осям (во вкладке DISP: U1, U2, U3) - т.е. X, Y, Z.

А во вкладке STRESS можно видеть распределение давлений. И покликав на любые показатели (что для первого случая, что для второго), можно посмотреть их отдельно. 

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

Однако, такой анализ, по сути, даёт только понять, не разрушится ли деталь, и где будут какие напряжения. 

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

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

  • Применить общие показатели, которые мы рассматривали в прошлой статье;

  • Кроме того, применить специальное программное обеспечение, которое умным образом распределит заполнение, расположив его так и с такой плотностью, чтобы противостоять нагрузке*

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

Таким образом, мы можем предварительно проанализировать свою модель в программе PrePoMax, а затем, загрузить её в другую программу, где и будет произведена адаптивная генерация заполнения.

Что это такое: некоторое время назад, в результате довольно упорных поисков, мне удалось найти бесплатный открытый проект, который позволяет генерировать заполнение, в зависимости от направления предлагаемой силы. 

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

Проект находится вот по этому адресу и называется Strecs3D.

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

  • Экспортируете из своего любимого CAD-а 3d модель в формате. step;

  • Загружаете эту модель в программу Strecs3D;

  • Задаёте с какой стороны модель привязана (то есть, грубо говоря, например, жёстко стоит на нижней плоскости) — если так не привязать, то воздействие силы отбросит её;

  • Задаёте с какой стороны будет на неё воздействовать сила;

  • Задаёте какой стороной эта модель должна будет лежать на печатном столе 3d принтера;

  • Генерируете адаптивное заполнение;

  • Экспортируете модель для вставки в слайсер;

  • Импортируете модель в слайсер;

  • Печатаете.

На выходе должно получаться нечто такое:

                                                                                                                                                                                                                                             strecs3d.xyz

*Хочу сразу предупредить: программа работает только под Windows 11! Если будете пытаться её запускать на версиях ниже — то с виду всё будет работать, но, постоянно будут вываливаться какие-то непонятные ошибки, вы будете пытаться их решать, потратите время, а потом — пойдёте на гитхаб и увидите системные требования.

И даже не спрашивайте, откуда я это знаю :-B.

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

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

То есть: где не нужно материал убран, а где нужно добавлен, причём, не просто так, а с учётом нагруженности! 

Автор поступил очень интересно: он предлагает модель загружать в виде отдельных компонентов, где какие-то из них должны будут быть модифицированы, какие-то должны быть оставлены не без внимания, какие-то будут являться точками опоры и т.д. 

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

Ссылка на видео появляется, после того как в начальном окне интерфейса программы выбрать Yes, под словами «Do you want to import a custom domain?». 

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

                                                                                                                                                                                                   nedu10, github.com/nedu10/optiworks

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

                                                                                                                                                                                                   nedu10, github.com/nedu10/optiworks

Таким образом завершая, можно сказать, что мы здесь видим три очень интересных опенсорсных проекта, а также, по сути, 3 направления для инженерной разработки 3d моделей: предварительный анализ, оптимизация заполнения, а также генеративный дизайн внешнего вида инженерных моделей — где все три весьма интересны, и, на мой взгляд, могут существенно увеличить возможности, при соответствующем изучении и освоении… ;-)


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

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

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