Python网格生成

时间:2017-08-09 15:29:13

标签: python 2d mesh

如何在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)

3 个答案:

答案 0 :(得分:0)

结帐

获得一些灵感。

答案 1 :(得分:0)

我认为您正在有效地生成3D网格(使用了tet模块)。因此,由于您尝试生成2D网格,因此所有点都位于同一平面上。您需要在lib中找到2D的特定模块

答案 2 :(得分:0)

您可以使用pymadcad模块,该模块适用于3d,但只要2d是3d的子类,就可以轻松地完成此任务。该模块旨在使事情变得简单直观。

还有一个几何约束求解器,您可以看一下that documentation 为确保您的结果在约束求解过程中完全平整且没有包裹,可以使用OnPlane约束doc

但要知道:您要寻找哪种几何形状?