Advertisement
pietrograndi

MBE-subobject assigner [BMESH Api]

Jun 4th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. import bpy
  2. import bmesh
  3. import random
  4.  
  5. # getting current mode
  6. curr_mode = bpy.context.active_object.mode
  7. bpy.ops.object.mode_set(mode='EDIT')
  8.  
  9. bpy.context.scene.tool_settings.mesh_select_mode = (False, False, True)
  10. mesh = bpy.context.object.data
  11.  
  12. bm = bmesh.from_edit_mesh(mesh)
  13. assigned=[] #to trace assigned face
  14.  
  15. for f in bm.faces:
  16.     if f in assigned:   #if already assigned
  17.         pass            #do nothing
  18.     else :
  19.         f.select_set(1)                 #select
  20.         bpy.ops.mesh.select_linked()    #select linked
  21.         matindex=random.randint(0,4)    #generate ID
  22.         for s in bm.faces:              #for s in faces
  23.             if s.select:                #if selected
  24.                 s.material_index = matindex #assign m ID
  25.                 assigned.append(s)          #mark as assigned
  26.         bpy.ops.mesh.select_all(action='TOGGLE')    #unselect
  27.                
  28. bm.select_flush(True)
  29. #mesh.update()
  30. bpy.ops.object.mode_set(mode=curr_mode)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement