Преобразование сетки в конструктивную сплошную геометрию

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

Conversion process

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

Формат исходного файла, конечно, не проблема, это может быть любой известный файл сетки.

, 👍2


3 ответа


Лучший ответ:

3

Ответы @markshancock и @fred-dot-u описывают процесс создания примитивной сферы САПР и вычитания куба; это тривиальная задача в большинстве любых 3D-программ САПР. Вы можете вручную измерить сетку, чтобы определить ее размеры, и, честно говоря, я бы рекомендовал этот подход. (Если у вас есть большая задача, такая как преобразование 100 000 сеток полусферы, я бы переосмыслил подход и обратился к источнику, который в первую очередь создал сетки!)

Однако они не касаются преобразования сетки в примитив, что обычно невозможно для произвольных сеток (поэтому программа САПР не будет иметь такой функции), и гораздо сложнее, чем просто измерение и повторное создание.

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

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

Я не буду пытаться объяснить, как создать саму программу, поскольку это не входит в сферу 3D-печати.


,

2

Вычисления для вашей цели можно считать простой геометрией, хотя результаты в терминах формул немного сложнее, чем простые, но не намного.

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

Я нашел упрощенную формулу, которая определяет радиус сферы с учетом длины стороны куба.

$fn = 90;
edge = 10;
cube([edge, edge, edge], center = true);
sphere_radius = sqrt((3 * pow((edge/2), 2)));
sphere(sphere_radius);

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

cube inscribed in sphere

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

Приведенный выше ответ любезно предоставлен Математическим форумом и представлен дословно как таковой:

        ____________________________
  D = \| (L/2)^2 + (L/2)^2 + (L/2)^2

Буква D в этом случае, по-видимому, немного искажена как диаметр, когда ее следует называть радиусом.

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

sphere minus cube

,

1

Во многом зависит от того, что вы хотите сделать.

  1. Если вы хотите математически рассчитать, какой куб помещается в сферу какого размера, это прямолинейно. Диагональ куба должна соответствовать диаметру шара. Для куба с ребром "l" и шпера с диамамером "d" тогда <= d.

  2. Если вы хотите смоделировать куб и сферу в САПР (или одну внутри другой), вы просто делаете это. Они оба примитивны. Это займет меньше минуты.

  1. Вы также можете использовать сетку в дизайне. Я бы предположил, что если вы хотите использовать сетку, сетка должна содержать что-то другое, чем просто гладкая чаша, или в чем смысл сетки? Fusion 360 позволяет импортировать сетку, просто играть с ней и комбинировать ее с объектами модели (как в коробке).

  2. Вы также можете преобразовать сетку в твердотельную модель, если захотите. В САПР Fusion 360 есть способы помочь вам преобразовать эту сетку в скульптуру. Сначала создайте объект скульптуры, представляющий форму сетчатого объекта (например, сферу или квадробол). Затем импортируйте сетку, затем сверните модель поверх сетки (используя ее как модель для формирования формы). Затем вы можете удалить сетку и использовать формованную скульптуру.

,