import nmesh import nmesh.visual as viz # define a simple mesh and submit request to mesher box=nmesh.box( [0.0,0.0], [1.0,1.0] ) cone = nmesh.conic([3.0,0.0],1.0,[3.0,4.0],0.0) bbox = [[-1.,-1.],[7.,6.]] mesh = nmesh.mesh(objects = [box,cone],a0=0.4, bounding_box=bbox) mesh_info=mesh.tolists() # create mesh_info lists for parts 1&2 combined and for part 2 alone [mesh_info1, mesh_info2] = viz.separate_parts(mesh_info, listOfParts=[[1,2],[2]]) # generate a VTK dataset for parts 1&2 combined vtkData, points, simplices,indices, icradii, ccradii = \ viz.mesh2vtk(mesh_info1, VTKonly=False) in2circ=viz.findRatios(icradii, ccradii, factor=2) vtkData=viz.append2vtk(vtkData, in2circ, "in2circ") vtkData=viz.append2vtk(vtkData, indices, "part indices") viz.save_vtk(vtkData, "compound_example_1.vtk") # create VTK data for part 2 alone and apply outer_skin() to it # request that only cells with two or more points on the surface are shown mesh_info2 = viz.outer_skin(mesh_info2, condition='>=2') vtkData2, points2, simplices2, indices2, icradii2, ccradii2 = \
Attempt to demonstrate the separate_parts() function. Author: James Kenny Last modified: $Date$ """ import nmesh import nmesh.visual as viz # define a simple mesh and submit request to mesher box=nmesh.box( [0.0,0.0], [1.0,1.0] ) cone=nmesh.conic([3.0,0.0],1.0,[3.0,4.0],0.0) bbox=[[-1.,-1.],[7.,6.]] mesh=nmesh.mesh(objects=[box,cone],a0=0.4,bounding_box=bbox) mesh_info=mesh.tolists() # separate the triangle and square into different VTK datasets [mesh_info1, mesh_info2] = viz.separate_parts(mesh_info, listOfParts=[(1,),(2,)]) # calculate inradius/circumradius and append part indices to vtk dataset1 vtkData, points, simplices, indices, icradii, ccradii=viz.mesh2vtk(mesh_info1,VTKonly=False) in2circ=viz.findRatios(icradii, ccradii, factor=2) vtkData=viz.append2vtk(vtkData, indices, "part indices") vtkData=viz.append2vtk(vtkData, in2circ, "in2circ") viz.save_vtk(vtkData, "temp_1.vtk") # calculate inradius/circumradius and append part indices to vtk dataset2 vtkData2, points2, simplices2, indices2, icradii2, ccradii2=viz.mesh2vtk(mesh_info2,VTKonly=False) in2circ2=viz.findRatios(icradii2, ccradii2, factor=2) vtkData2=viz.append2vtk(vtkData2, indices2, "part indices") vtkData2=viz.append2vtk(vtkData2, in2circ2, "in2circ") viz.save_vtk(vtkData2, filename="temp_2.vtk")