【问题标题】:Blender Python Script Deleting MeshesBlender Python 脚本删除网格
【发布时间】:2015-08-25 01:09:34
【问题描述】:

我有一个脚本,我试图在搅拌机中运行,它将遍历一个目录中的所有文件,然后一次打开一个文件,并将该文件的顶点数和面数打印到文件中。我遇到的一个问题是在移动到下一个网格之前从场景中删除一个网格。这是我到目前为止所拥有的

import bpy


# print all objects
for obj in bpy.data.objects:
    print(obj.name)


# print all scene names in a list
print(bpy.data.scenes.keys())


# remove mesh Cube
if "Cube" in bpy.data.meshes:
    mesh = bpy.data.meshes["Cube"]
    print("removing mesh", mesh)
    bpy.data.meshes.remove(mesh)


# write images into a file next to the blend
import os
import bmesh

file = open("C:\\Users\\Jon\\Documents\\Dataset\\ReadMe.txt", 'a')
file.write("Name \t Vertices \t Faces \t QuadOrTriangle \t \n")

#os.chdir("C:\\Users\\Jon\\Documents\\Dataset\\SingleObjects\\")

path = "C:\\Users\\Jon\\Documents\\Dataset\\SingleObjects\\"

for data in os.listdir(path):

    bpy.ops.import_mesh.ply(filepath="C:\\Users\\Jon\\Documents\\Dataset\\SingleObjects\\" + data)

    me = bpy.context.object.data
    bm = bmesh.new()   # create an empty BMesh
    bm.from_mesh(me)   # fill it in from a Mesh

    #filepath = bpy.data.filepath
    for t in bpy.data.meshes:
         directory = bpy.path.abspath(t.name)

    FaceCounter = 0
    VertCounter = 0
    #QuadOrTri = 0

    for f in bm.faces:
        QuadOrTri = 0
        for v in f.verts:
            QuadOrTri = QuadOrTri + 1

    for f in bm.faces:
        FaceCounter = FaceCounter +1

    for v in bm.verts:
        VertCounter = VertCounter + 1

    file.write("%s.ply \t %d \t %d \t %d \n" % (directory, VertCounter, FaceCounter, QuadOrTri))

    for item in bpy.data.meshes:
        bpy.data.meshes.remove(item)

    file.close()

这必须使用 ply 文件来完成。 如果有人能给我一些提示或建议,那就太好了!谢谢!

【问题讨论】:

    标签: python io blender ply bpy


    【解决方案1】:

    bpy.ops.object.delete() 将删除选定的对象,包括它的网格数据。

    你不需要 bmesh 来做你想做的事,bmesh 只需要编辑网格数据。您可以从object.data中的顶点列表的长度获取顶点数

    VertCount = len(bpy.context.active_object.data.vertices)
    EdgeCount = len(bpy.context.active_object.data.edges)
    FaceCount = len(bpy.context.active_object.data.polygons)
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 2012-07-21
      • 2011-04-24
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 2020-11-08
      相关资源
      最近更新 更多