如何在Python中创建2D网格?我试着用meshpy。如果我尝试运行,python告诉我错误:所有顶点都是共面的。
我目前正在开发一个有限元程序,第一步是为几何构建网格。有人能帮助我吗?
这就是我经常使用的代码,你可以在下面看到它。
import meshpy as mp
from meshpy.tet import MeshInfo, build
mesh_info = MeshInfo()
mesh = build(mesh_info)
mesh_info.set_points([
(0, 0, 0), (1.445, 0.19, 0), (3, 0.19, 0), (1.555, 0.19, 0),
(1.555, 2.81, 0), (3, 2.81, 0), (3, 3, 0), (0, 3, 0),
(0, 2.81, 0), (1.445, 2.81, 0), (1.445, 0.19, 0),
(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0),
mesh_info.set_facets([
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
[0,1,2],[0,2,3],
])
print('Mesh Points')
for i,p in enumerate(mesh_info.points):
print(i, p)
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为您正在有效地生成3D网格(使用了tet模块)。因此,由于您尝试生成2D网格,因此所有点都位于同一平面上。您需要在lib中找到2D的特定模块
答案 2 :(得分:0)
您可以使用pymadcad模块,该模块适用于3d,但只要2d是3d的子类,就可以轻松地完成此任务。该模块旨在使事情变得简单直观。
还有一个几何约束求解器,您可以看一下that documentation
为确保您的结果在约束求解过程中完全平整且没有包裹,可以使用OnPlane
约束doc
但要知道:您要寻找哪种几何形状?