1 changed files with 80 additions and 0 deletions
			
			
		@ -0,0 +1,80 @@ | 
				
			|||||
 | 
					import bpy | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					# in Namaman, the chunk for Darkhorn is near 599000, 410000 to around 685000, 496000 | 
				
			||||
 | 
					# (chunk_col = 6, chunk_row = 4, chunk_size = 100000 | 
				
			||||
 | 
					chunk_size = 100000 | 
				
			||||
 | 
					epsilon = .1 | 
				
			||||
 | 
					for chunk_col in range(10): | 
				
			||||
 | 
					    for chunk_row in range(10): | 
				
			||||
 | 
					        chunk_left = chunk_col * chunk_size - epsilon | 
				
			||||
 | 
					        chunk_right = (chunk_col+1) * chunk_size + epsilon | 
				
			||||
 | 
					        # Lower number is bottom since cartesian: | 
				
			||||
 | 
					        chunk_bottom = chunk_row * chunk_size - epsilon | 
				
			||||
 | 
					        chunk_top = (chunk_row+1) * chunk_size + epsilon | 
				
			||||
 | 
					        bpy.ops.wm.tool_set_by_id(name="builtin.scale") | 
				
			||||
 | 
					        #clear scene, make mesh | 
				
			||||
 | 
					        #bpy.ops.object.mode_set(mode = 'OBJECT') | 
				
			||||
 | 
					        #bpy.ops.object.select_all(action='SELECT') | 
				
			||||
 | 
					        #bpy.ops.object.delete(use_global=False) | 
				
			||||
 | 
					        #bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(1.5708, 1.5708, 0)) | 
				
			||||
 | 
					        #obj = bpy.data.objects["Cube"] | 
				
			||||
 | 
					        obj = bpy.context.object | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        #select vertex | 
				
			||||
 | 
					        obj = bpy.context.active_object | 
				
			||||
 | 
					        bpy.ops.object.mode_set(mode = 'EDIT') | 
				
			||||
 | 
					        bpy.ops.mesh.select_mode(type="VERT") | 
				
			||||
 | 
					        #bpy.ops.mesh.select_mode(type="EDGE") | 
				
			||||
 | 
					        # bpy.ops.mesh.select_mode(type="FACE") | 
				
			||||
 | 
					        bpy.ops.mesh.select_all(action = 'DESELECT') | 
				
			||||
 | 
					        bpy.ops.object.mode_set(mode = 'OBJECT') | 
				
			||||
 | 
					        # for i in range(len(bpy.context.object.data.vertices)): | 
				
			||||
 | 
					        for i in range(len(obj.data.vertices)): | 
				
			||||
 | 
					            # dir(obj.data.vertices[i]) | 
				
			||||
 | 
					            obj.data.vertices[i].select = False | 
				
			||||
 | 
					            #obj.data.edges[7].select = True | 
				
			||||
 | 
					            #obj.data.polygons[2].select = True | 
				
			||||
 | 
					            v = obj.data.vertices[i] | 
				
			||||
 | 
					            if v.co.x < chunk_left: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if v.co.x > chunk_right: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if v.co.y < chunk_bottom: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if v.co.y > chunk_top: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            # v.select_set(False) | 
				
			||||
 | 
					            obj.data.vertices[i].select = True | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        bpy.ops.object.mode_set(mode = 'EDIT') | 
				
			||||
 | 
					        bpy.ops.mesh.separate(type='SELECTED') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					'''makes a dumb square every time for some reason | 
				
			||||
 | 
					import bmesh  # for selecting in edit mode | 
				
			||||
 | 
					# https://blender.stackexchange.com/a/188323 | 
				
			||||
 | 
					context = bpy.context | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					bpy.ops.mesh.primitive_plane_add( | 
				
			||||
 | 
					        enter_editmode=True) | 
				
			||||
 | 
					ob = context.object | 
				
			||||
 | 
					me = ob.data | 
				
			||||
 | 
					bm = bmesh.from_edit_mesh(me) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					for i, v in enumerate(bm.verts): | 
				
			||||
 | 
					    v.select_set(False) | 
				
			||||
 | 
					    if v.co.x < chunk_left: | 
				
			||||
 | 
					        continue | 
				
			||||
 | 
					    if v.co.x > chunk_right: | 
				
			||||
 | 
					        continue | 
				
			||||
 | 
					    if v.co.y < chunk_bottom: | 
				
			||||
 | 
					        continue | 
				
			||||
 | 
					    if v.co.y > chunk_top: | 
				
			||||
 | 
					        continue | 
				
			||||
 | 
					    v.select_set(True) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					bm.select_mode |= {'VERT'} | 
				
			||||
 | 
					bm.select_flush_mode() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					bmesh.update_edit_mesh(me) | 
				
			||||
 | 
					''' | 
				
			||||
					Loading…
					
					
				
		Reference in new issue