У меня есть два 2D-сечения, определенные как список точек, хранящихся в shapely.Polygon, и я хочу создать 3D-сетку, подняв первое сечение (cs1) до второго сечения (cs2). Это похоже на выдавливание, но вместо простого добавления глубины d к 2D-фигуре я хочу соединить две 2D-фигуры на заданной глубине d.
Мне не удалось найти в pygmsh встроенную функцию для этого. Однако pygmsh предлагает ряд геометрических примитивов, которые я могу использовать для получения того, что хочу.
Обратите внимание, что полигоны cs1 и cs2 могут быть произвольными и содержать дыры. Я не знаю, как бы это сделать, но сейчас я пытаюсь решить простейший случай, когда я пытаюсь создать 3D-сетку из двух квадратных сечений, как показано ниже. Трехмерная фигура заключена в два квадрата и жирные черные линии.

Я попробовал выдавливать свои 2D-фигуры с помощью pygmsh.geo.Geometry().extrume, но я не хочу этого делать здесь.
Я пытаюсь вручную создать 3D-объем, выполнив следующие действия:
[*]Из полигонов получите curve_loop [*]Используйте curve_loop, чтобы создать поверхность [*]создайте поверхность из списка поверхностей, определяющих оболочку и отверстия. [*]создать объем из цикла поверхности оболочки и отверстий
Но я споткнулся на втором этапе создания поверхности из цикла кривой:
# Создайте 2D-полигоны поли1 = geom.add_polygon(polygon1.exterior.coords) поли2 = geom.add_polygon(polygon2.exterior.coords) # добавляем петлю кривой к поверхности surf1 = geom.add_surface(poly1.curve_loop) Но я получаю сообщение об ошибке:
Исключение: неправильное определение поверхности 3: 5 границ вместо 3 или 4. Я не знаю, как это решить.