【问题标题】:How to update mesh data via blender python script?如何通过搅拌机 python 脚本更新网格数据?
【发布时间】:2020-05-22 06:05:24
【问题描述】:

我可以用这个脚本在搅拌机中创建一个网格:

mesh = bpy.data.meshes.new("mymesh")
obj = bpy.data.objects.new("myobj", mesh)
bpy.context.scene.collection.objects.link(obj)
mesh.from_pydata([[0, 0, 0], [1, 0, 0], [1, 1, 0]], [], [[0, 1, 2]])

但是,如果我再次尝试使用from_pydata 更新网格数据,则会导致错误:

RuntimeError: internal error setting the array

有没有办法在网格创建后更新网格数据?
(我试图避免删除该对象并使用新数据再次创建它。)

【问题讨论】:

    标签: python blender


    【解决方案1】:

    from_pydata 函数获取数据列表并创建一个mesh data block。获得网格数据块后,您可以直接调整网格属性。这些可以在网格数据的verticesedgespolygons 属性中找到。

    obj.data.vertices[0].co.x = 1.25
    

    大多数情况下,不应直接更改此数据,在编辑模式下所做的任何更改都将被覆盖,因为编辑网格存储为 bmesh 数据。 bmesh module 提供更快的访问和更改网格数据的方法,还可以在编辑模式下更新网格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2019-09-04
      • 2019-02-24
      • 2020-01-06
      • 2019-12-22
      • 2014-01-15
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多