Modeling with Python

Hey

I try to model with Python. On each faces, I want a shape. The problem is that the origin face. I do not get that way. I have tried to use it unless one the new faces but that does not work well because then skips the index of the faces.

import bpy
from mathutils import Vector


ob=bpy.context.selected_objects[0].data
for j in range(len(ob.faces)):
    face=ob.faces[j]


    ver=face.vertices
    l=len(face.vertices)
    co=Vector((0.0,0.0,0.0))
    for i in face.vertices:
        co = co +ob.vertices[i].co
        
    
    
    
    for i in range(len(face.vertices)):
        ob.vertices.add(1)
        ob.vertices[-1].co=0.5*ob.vertices[face.vertices[i]].co+ 0.5*co/l+face.normal/3
        ob.edges.add(1)
        ob.edges[-1].vertices=(face.vertices[i],ob.vertices[-1].index)
    
    if len(face.vertices) == 3:    
        midden = ob.vertices[len(ob.vertices)-3:len(ob.vertices)]
    if len(face.vertices) == 4:    
        midden = ob.vertices[len(ob.vertices)-4:len(ob.vertices)]
    
    for i in range(len(midden)):
        ob.edges.add(1)
        ob.edges[-1].vertices=(midden[i-1].index,midden[i].index)
       

    
    for i in range(len(midden)):
        ob.faces.add(1)
        ob.faces[-1].vertices_raw=[face.vertices[i-1],face.vertices[i],midden[i].index,midden[i-1].index]    


    for i in range(len(midden)):
        midden[i]=midden[i].index

    ob.faces[j].vertices_raw=(midden+[midden[0]])[0:4]
ob.update()

It is a test version. But it would be nice if it would work.

Sorry, it seems that you are busy with an too old Blender version to be seen from len(ob.faces) ==> Error!

ob.data has ‘polygons’ (what WAS faces) and evt. tessfaces … !

With other words you should get a newer Blender and have to learn using BMESH to change an object
(maybe build a new one out of the info you have …)