首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bpy.context.scene.cursor.location不会在for循环中更新

bpy.context.scene.cursor.location不会在for循环中更新
EN

Stack Overflow用户
提问于 2022-04-03 19:08:54
回答 1查看 234关注 0票数 0

我正在尝试更改我所选择的父对象的所有子对象的起始点。

现在,我正在循环所有选定的对象,看看其中一个是空的。我拿着这个空的,检查它有多少个子对象。我将我的3D光标移动到空的位置,对于每个子程序,我将它们更改为3D光标的原点。

当我选择一个对象时,这是可行的。当我选择更多的空对象时,我将我的所有子对象的起源设置为第一个选择的空。然而,当我打印出我的对象的位置时,它确实显示它应该被更新。由于某种原因,3D光标在分配一次之后就不能移动了;

代码语言:javascript
复制
for obj in bpy.context.selected_objects:
    if obj is not None and obj.type == "EMPTY":
        children = getChildren(obj)
        for c in children:
            print(c.name)
            bpy.context.scene.cursor.location = obj.location
            print("set location to : " + str(obj.location) + "from object :" + obj.name)
            c.select_set(state=True)
            bpy.context.view_layer.objects.active = c
            print("set as active object: " + c.name)
            bpy.ops.object.origin_set(type='ORIGIN_CURSOR')
            print("set new coordinates")
          
def getChildren(myObject): 
    children = [] 
    for ob in bpy.data.objects:
        if ob.parent == myObject: 
            children.append(ob) 
    return children 

EN

回答 1

Stack Overflow用户

发布于 2022-04-03 19:32:49

找出原因:)

当选择我的孩子时,他们选择了,我不得不添加bpy.ops.object.select_all(action='DESELECT')

命令在运行所选对象后清除所选内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71729081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档