Ошибки после операций объединения, пересечения, вычитания

Для моделирования простых конструкций я сначала освоил немного Blender. Чтобы делать простые коробочки, крючки и подставки (в том числе и для электроники) мне его хватало. Иногда после операций выдавливания отверстий или углублений в детали происходило “нечто” для меня, после чего любая друга операция между этим и другим объектом приводила к полному разрушению. Т.е. в результате получался кусочек объекта совершенно не являющийся результатом последующей булевской операции. Приходилось возвращаться на несколько шагов назад и руками по граням и вершинам чинить обьект. Я сейчас понимаю, что это происходило в результате неправильно ориентированных нормалей. Но как они получались, когда на вход (предположим, вычитания) подавались простейшие объекты в виде кубов и цилиндров?

Я списывал это на глюки Blender как свободной и глючной программы.

Недавно стал осваивать компас 3д, и уже на втором уроке по азбуке схлопотал тот же самый глюк, хотя, как мне кажется, четко делал все по шагам из азбуки. Очередная операция выдавливания приводила не к появлению “ямочки“ на исходном объекте, а оставляла от него маленький кусочек. Хотя в исходных данных тоже ведь были простейшие объекты.

Такое поведение в программах моделирования допустимы? На что обращать внимание, чтобы такого не происходило? Иногда бывает берешь два цилиндра, пересекаешь под определенным углом - и все, последующие операции уже невозможны, т.к. уже получен объект с ошибками. Одно из наблюдений - такое происходит, когда часть граней пересекаемых объектов находятся в одной плоскости. По этому многоугольнику соприкосновения часто возникают совершенно дикие фигуры пересечения с непредсказуемыми нормалями.

Такое возможно если компас не верно определил какой именно объект ты хочешь выдавить. Его (этот объект) можно менять.

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

Я пытался юзать FreeCad, там чуть что не так всё в кучу… зато на Маке он есть. Оказалось вернее собрать Мощщный Комп Для Работы™ с виндой, для Солида специально ахаха.

Так и у меня сложности возникали на нормально выглядящей детали. Если это уже последние шаги и надо в печать, то пофиг. Слайсеру на эти дырки глубоко фиолетово. Но так не всегда же. Особенно обидно это было в блендере, в котором нельзя поправить что-то в последовательности операций. Вычлось плохо, а ты это не заметив сидишь скругления фигачишь, размеры подгоняешь. После нескольких часов зализывания по этим округлостям делаешь еще одну логическую операцию, и у тебя вся деталь разваливается. И сидишь сотню полигонов руками чинишь. В компасе хоть можно “в прошлом” чуть двинуть все починится за один шаг, не надо последствия переделывать.

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

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

Некоторые проги моделирования это умеют автоматически делать. Это из серии кинематики, где движок умеет сталкивать разные объекты. Делается рогатина, сила тяжести направляется вниз к “точке роста“, а сверху просто роняется шар. И он оказывается как раз там где должнен. Но я так не умею.

А похожие примеры видел. Например тут (результат в конце) падают кубики

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

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

1 лайк

Респект!