在cython-csg中使用bsp树在网格上构造实体几何。
cython-csg的Python项目详细描述
cython csg
埃文·华莱士的javascript https://github.com/evanw/csg.js/和tim-knip原始python版本https://github.com/timknip/pycsg的cython端口。
cython csg是什么
CSG代表结构实体几何。它允许对三维对象(如减法)进行布尔运算。
用法
减法
简单的减法如下
from_cython_csgimportCSGa=CSG.cube()b=CSG.cube([0.5,0.5,0.0])c=a-bc.saveVTK('subtract.vtk')
联合体
一个简单的联合如下所示
from_cython_csgimportCSGa=CSG.sphere(center=[0.5,0.5,0.5],radius=0.5,slices=8,stacks=4)b=CSG.cylinder(start=[0.,0.,0.],end=[1.,0.,0.],radius=0.3,slices=16)a.union(b).saveVTK('union.vtk')
自定义对象
下面是一个自定义对象的示例
from_cython_csgimportBSPNode,Polygon,Vertexv0=Vertex([0.,0.,0.])v1=Vertex([1.,0.,0.])v2=Vertex([1.,1.,0.])p0=Polygon([v0,v1,v2])polygons=[p0]node=BSPNode(polygons)
如果要将其转换回csg对象,可以执行
CSG.fromPolygons(node)
安装
构建运行
python setup.py build python setup.py install
其他注意事项
要查看输出,我建议使用paraview这样的程序
需要帮助
欢迎为源代码或文档提供修补程序