Добавить базу в сетку STL?

Как добавить основу к поверхности, которую я пытаюсь напечатать?

Целевая машина — Creality Ender 3 Pro.

Я использую numpy-stl и surf2stl, чтобы создать нужную поверхность в Python:

def SOquestion():
   pᵢs = [i / 100 for i in range(50, 96, 1)]
   pⱼs = pᵢs
   X, Y = np.meshgrid(pᵢs, pⱼs)
   Z = pₖGivenpᵢAndpⱼ(X, Y)

   stlFile = "surfaceOfCriticalValues.stl"
   surf2stl.write(stlFile, X, Y, Z)
   theMesh = mesh.Mesh.from_file(stlFile)

   plotFromStlFile(stlFile)

@np.vectorize
def pₖGivenpᵢAndpⱼ(pᵢ, pⱼ):
    a = pᵢ * pⱼ / ((1 - pᵢ) * (1 - pⱼ))
    return a / (a + 1)

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

Surface3dPlot

, 👍1


2 ответа


2

Вы создали одну сетчатую поверхность на основе математической формулы. Если вы можете экспортировать эту поверхность, это первый шаг к созданию 3D-модели!

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

  • Импортируйте сетку в блендер
  • перейти в режим редактирования
  • [E] для выдавливания
    • введите значение, при котором полученная смещенная копия будет располагаться значительно ниже элемента.
  • [s] для масштабирования выбранных вершин
    • [Z]
    • 0, чтобы разместить их все на высоте Z продажи.

,

2

Я не знаю, как работает surf2stl, но в принципе, учитывая, что у вас уже есть способ создать одну поверхность с сеткой, все, что вам нужно сделать, это сделать это еще пять раз:< /п>

  1. Создайте ту же сетку сетки, но со всеми значениями Z равными 0 (или любым другим значением, которое вы хотите, чтобы нижняя поверхность была) вместо значения функции $p_k$.
  2. Для каждой из четырех сторон создайте сетку шириной всего в один ряд вдоль оси Z; одно ребро имеет $Z=0$, а другое ребро имеет $Z=p_k$, таким образом соединяя снизу вверх.

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

Затем поместите все эти треугольники в один файл STL, и его можно будет распечатать.

,