11
$\begingroup$

Is there a quick way to subdivide a face and then separate the resulting faces into separated meshes?

Here's what I am doing now:

  1. Select the face
  2. Subdivide the face (e.g. into 16 square pieces)
  3. Select one of the face
  4. Separate by selection
  5. Repeat steps 3 and 4 until there is one face left

This works, but this is really time consuming and I can't even imagine splitting into more pieces (e.g. 256 pieces).

Is there a function (hopefully built-in) to perform the above steps more efficiently?


Here's the result:

The result

Here's the original state:

The original state

$\endgroup$

5 Answers 5

11
$\begingroup$
  1. In Edit mode -> Select the face
  2. W -> Subdivde -> tool shelf T or F6 -> Number of Cuts (in your case 3)
  3. With the subdivided faces selected -> Ctrl + E -> mark sharp
  4. Add edge split modifier -> uncheck edge angle
  5. In Object mode apply the edge split modifier
  6. (optional) in Edit mode -> select the faces if not selected -> Ctrl + E -> clear sharp
  7. In Edit mode -> P -> separate by loose parts
$\endgroup$
1
  • 1
    $\begingroup$ This is a really nice way to do that! $\endgroup$
    – Alvin Wong
    Commented Jun 28, 2013 at 3:59
9
$\begingroup$

Try this:

  1. Select the face
  2. Subdivide
  3. Switch to Edge Select mode
  4. Loop select all horizontal (or vertical) edges
  5. Rip with V and hit Esc so the edges stay in their original places
  6. Box select the edges in the other direction (e.g. vertical if you started with horizontal)
  7. Rip with V and hit Esc
  8. Use P and Separate by loose parts.

On paper, this is more steps, but the workflow is faster.

$\endgroup$
1
  • $\begingroup$ Thanks, your method is nice too, but I think @forest-house's answer is simpler (don't need box select). Anyway, +1'ed :) $\endgroup$
    – Alvin Wong
    Commented Jun 28, 2013 at 4:01
4
$\begingroup$

Heres a script (commands copied from executing them - macro style), you can run this in the python console or text editor.

# select the face in edit-mode and run
import bpy
bpy.ops.mesh.subdivide(number_cuts=3)
bpy.ops.mesh.inset(thickness=0, use_individual=True)
bpy.ops.mesh.delete(type='FACE')
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.mesh.separate(type='LOOSE')
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')

if you wanted to you could make this into an operator and assign a keystroke or a menu item to is.

$\endgroup$
2
$\begingroup$

Extrude individuallly

  1. In Edit mode > Face selecion mode > Select the face
  2. W > Subdivde > tool shelf T or F6 -> Number of Cuts (in your case 3)
  3. Extrude them with Alt+E and choose "Indvidual faces" (extrude them by a zero factor so they'll stay in place)
  4. Invert selection with Ctrl+i
  5. Delete faces
  6. Select all, press than P > Separate by loose parts
$\endgroup$
0
$\begingroup$

Seperate faces by selection iterations

import bpy
for obj in bpy.context.selected_objects:
    obj.name = "OTEMPO"

obj1 = bpy.context.active_object
objName = str(obj1).replace('<bpy_struct, Object("','').replace('")>','')
print(objName)
for I in range(5):
    objname_namerange = objName
    print('doing',objname_namerange)
    bpy.data.objects[objname_namerange].select = True
    obj = bpy.context.active_object
    for I in range(0,1000):
        obj.data.polygons[I].select = True
        bpy.ops.object.mode_set(mode='EDIT')
        bpy.ops.mesh.separate(type="SELECTED")
        bpy.ops.object.mode_set(mode='OBJECT')
        objname_namerange = objName + '.' + str(I)
    for I in range(0,1000):
        objname_namerange = "OTEMPO"
        obj.data.polygons[I].select = True
        bpy.ops.object.mode_set(mode='EDIT')
        bpy.ops.mesh.separate(type="SELECTED")
        bpy.ops.object.mode_set(mode='OBJECT')

---------------------------------------------------------------------------

what this does is selects a polygon, triangle, or face goes into edit mode and then rips the face off of the mesh. It iterates over this same process for about 1,000 times with a check at the end. Unfortunately it quits half way through for some reason, but that shouldn't be to much of a problem. To use, post this source code into the txt editor, select your object and run it from there. It should fail the first time, select your object and run it again, continue doing this until every face has been separated, while it's not perfect it is a lot easier than manually ripping every face off.

as for subdivisions, enter edit mode press A >> selects all press W >> opens panel select subdivide >> will subdivide your mesh once, do so until you're satisfied.

also in your case you'll want to subdivide first then run my script.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .