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.