Constructive solid geometry on meshes using BSP trees in Cython CSG.
What is Cython-CSG
CSG stands for Constructive Solid Geometry. It allow Boolean operations to be made on a 3D object like subtraction.
A simple subtraction is as followed
from _cython_csg import CSG a = CSG.cube() b = CSG.cube([0.5, 0.5, 0.0]) c = a - b c.saveVTK('subtract.vtk')
A Simple Union would is as followed
from _cython_csg import CSG a = 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')
You can make custom object here is a example
from _cython_csg import BSPNode, Polygon, Vertex v0 = Vertex([0., 0., 0.]) v1 = Vertex([1., 0., 0.]) v2 = Vertex([1., 1., 0.]) p0 = Polygon([v0, v1, v2]) polygons = [p0] node = BSPNode(polygons)
if you then want to convert it back to a CSG object you can do
To build run
python setup.py build python setup.py install
To view the output I would recommend a program like ParaView
Patches are welcome for the source code or for the documentation
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size cython-csg-0.5.8.tar.gz (160.5 kB)||File type Source||Python version None||Upload date||Hashes View hashes|