Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

«Мучаем кубик»: параметрическое проектирование и анализ нагруженности 3D модели (для FDM 3D печати) во FreeCAD

Дата публикации: 23-06-2026 07:06:55

В одной из прошлых статей мы рассмотрели такой интересную тему, как анализ нагруженности 3d модели, производимый с помощью open source программы PrePoMax, где для себя отметили, что подобный подход, с использованием внешних модулей, в значительной степени развязывает руки, позволяя производить моделирование в любом удобном инженерном CAD-е, даже том, в котором не реализован анализ нагруженности. Таким образом, с одной стороны, это может быть довольно удобно, с той точки зрения, что можно делать модель в абсолютно любой среде, после чего произвести её анализ;с другой стороны, подобный подход, с использованием внешних программ может быть несколько проблемным с той точки зрения, что приходится производить «лишние телодвижения» вместо того, чтобы произвести анализ, и, при необходимости, укрепить модель, в той же самой среде, в которой производится и разработка этой модели. Для чего всё это вообще может быть нужно: основной целью всего этого является прикидка — а выдержит ли 3d модель ту нагрузку, которая будет к ней прилагаться в дальнейшем? Далее мы рассмотрим самый простой и доступный в понимании подход, который, на мой взгляд, имеет смысл с точки зрения его применения при анализе моделей для 3d печати, в домашнем техническом хобби творчестве… Читать далее

Основное содержимое страницы с новостью.

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

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

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

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

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

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

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

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

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

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

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

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

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

7bf561febab6955edcb0ac2fa71a88ff.jpg

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

b1ab08d87afb97dbeeffbe09b7baa28f.jpgd5407a9d2fe2d08b70e91e064caa8f06.jpg

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

e56a556342109b182c3d0bf5109df552.jpg

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

24df8ba9fd4fb39773785c4d1e048213.jpg

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

8605834b5f24b43ae87bcddedeb1a6f1.jpg3836b8a1b522c42fd465959a5d7ec825.jpg

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

759449bd905616e07a053a33f6558361.jpg

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

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

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

93b8e09edab1ea128612dad6f8b1e158.jpg

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

7479cd880838715f41942c5ee8c208cc.jpg950b7c2728e024fe39267d3a2b4c9c40.jpg

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

1eb43caabd619d30f7f84bf2108ca071.jpg

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

46bd17667a5fae6358667183566974ec.jpgf5d7aaf06ecd96df3c5b50c6eacf2d21.jpg

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

fd216aa0a4df2ddf0619f31a6a6b34eb.jpgff592efa50c738944f645ec24c5ac4fb.jpg

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

7c59e5040b25a1d22b2d5e690ac3e0a1.jpg49884a26f0b7adabd75197a215a655cb.jpg

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

cdc9ae342192249f15235834165a9ee3.jpg

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

46e7b542e13fd20824a8b2dc0b3eec28.jpg

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

774fc76e504feaa1d6e5b634b1ee2238.jpg575fe150f6cb25e1fd3c6aba3bcbfe3f.jpgb93c398caba41c8030f6b0d31579f719.jpg

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

ca11b52a1f5b0f603552cd3d6fb1d946.jpg

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

90950643b0dc7962a3de02d18340b650.jpg

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

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

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

93664dc4a82b5e29132b8c1fbd2d194b.jpgaf86e91143e96abbbc0de12e824e1bd0.jpg

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

9f560a6bde5cab0e4075a324602d2a42.jpg

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

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

dd9905bbe519f572c8fb05d354ab4c64.jpg

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

e64b653c8d750d8fd2074e7ec5cc2119.jpge2264a674870e8ad94cf10bb1ae8e42b.jpg7a3239715c7e69e61ed9c0fa688db19e.jpga6b179df7ede4e24724b95e07c878343.jpg

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

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

d6e8258565bfc98668bfbbb3f0b61087.jpg

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

378eeb8f6de86c9a27a7af1a5e558aa6.jpg

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

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

2624e7ffbc007451a1c34a5c049df772.jpg

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

9866f1fbd27630f1b0548464a7c37e96.jpg

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

e3170fc666d30b59eed896d96e5af754.jpgd7069dede575bf7a5b024e8ac1a55e1c.jpg

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

c25aca7f063eabbdfbf65d11754320a6.jpgab5e349181afeb3b479666d219f2209e.jpg

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

6671a94894b1e9cfd8b3e092b7dcc19d.jpg

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

e778f1c5676cf62803e016e57a5ff1cf.jpg

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

34ac7ad8122fbd30f6a58cb0199cd5d6.jpg

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

fa07eae3f5bcfeb2d2acb5942bbe68ea.jpg

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

aa9301559f8c23387e467b9fde447d5b.jpg

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

f236fe4e910435d156616f857c839857.jpg

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

b0a1e4db92a16fa638ca560f461c47f5.jpg

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

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

2b95a0e84cf77b20f4564ea0fbc55cc8.jpg

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

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

82d439c5298118b1e613d351ed4d2d9d.jpg

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

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

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

d31d3e8da79e1b072d8c131c3f3b0f5d.jpg

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

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

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

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

a9476ed47851d00b8c230a576436125b.jpg

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

0a1d1cb3366411f915fca736c63d3d3e.jpg

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


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

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

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

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Анализ прочности 3D печатных моделей и пути её усиления06.1711-06-2026
2Усиление прочности 3D печати деталей — за счёт внутренней их архитектуры09.9509-06-2026
3Соединение деталей 3D-печатных изделий… Простое ли дело?07.3721-05-2026
4Моделирование резьбы для 3D печати07.8124-04-2026
5FDM vs SLA: когда послойное наплавление проигрывает фотополимеру — разбор на реальном проекте07.4206-04-2026
6Модификаторы в Blender: осваиваем Boolean08.7923-05-2026
7Тест народных средств для 3D-сканирования: от муки до сухого шампуня07.3209-06-2026
8Лазерная 3D-печать WC-Co010.8312-08-2026
9Одна деталь, разные сплавы: как изменение пути лазера открывает новые возможности в металлической 3D-печати08.2823-06-2026
10Метод, которого не существовало: как я собрал локальный RAG для CAD API07.2410-07-2026

Классификация: Наука. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7. Источник: habr.com.