gpt4 book ai didi

python - Blender 的内部数据在缩放操作后不会更新

转载 作者:行者123 更新时间:2023-12-01 05:55:47 28 4
gpt4 key购买 nike

我有以下脚本:

import bpy
import os

print("Starter")

selection = bpy.context.selected_objects

for obj in selection:

print("Obj selected")

me = obj.data

for edge in me.edges:

vert1 = me.vertices[edge.vertices[0]]
vert2 = me.vertices[edge.vertices[1]]
print("<boundingLine p1=\"{0}f,0.0f,{1}f,1.0f\" p2=\"{2}f,0.0f,{3}f,1.0f\" />".format(vert1.co.x, vert1.co.y, vert2.co.x, vert2.co.y))

非常基本,对吧?它只是将所有边缘打印到控制台中,以便我将粘贴复制到 xml 文档中。当我缩放对象并在该对象上执行此脚本时,我会在缩放之前获得输出到控制台的对象的旧未缩放值。我尝试在所有轴上移动对象中的每个顶点,这导致输出的值被放大,然后根据我的移动进行转换。

如果我按 n 检查顶点全局值,它们会正确缩放。

为什么我没有得到正确的值?!?

这个脚本本来是为了节省时间,但是让任何东西在 blender 中工作是一件苦差事!他们刚刚更新了 API,这并没有帮助,因此所有示例代码都已过时!

最佳答案

好吧,事情就是这样:当您在 Blender 中缩放、平移或旋转对象或以其他方式执行变换时,该变换会以某种方式“存储”。您需要做的就是选择要应用变换的对象,然后使用快捷键 CTRL + A,然后应用变换。

...

因此,通过 Blender API 访问的内部数据与实际显示的值之间并不缺乏偶然性(我用这个词对吗?检查了它的定义,它似乎是正确的)。

我确信这个设计是有道理的,但现在我想打那个想出这个设计的人的喉咙。如果我缩放某些东西,我希望缩放的东西也被缩放!

但无论如何,我得到奇怪值的原因是因为在对象模式下选择了缩放的对象后,未应用缩放,您可以使用 CTRL + A 执行缩放。

关于python - Blender 的内部数据在缩放操作后不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12665235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com