blender - 重新选择活动对象
问题描述
Blender 中的 Python 脚本新手,想做一些相对简单的事情 - 创建一个对象,复制它并翻译复制的对象,然后重新选择原始对象。这是我使用 Blender 2.76 的代码:
import bpy
from bpy import context
original_object = bpy.ops.mesh.primitive_cube_add()
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value(90),axis=(1,0,0))
bpy.context.scene.objects.active = original_object
最后一行不起作用 - 原始对象不再处于活动状态。想知道错误在哪里?
解决方案
这个:
bpy.context.scene.objects.active = original_object
只需为当前场景设置活动对象,但您还需要选择它,可以使用以下方法完成:
original_object.select = True
因此,在您的情况下,您可以编写如下内容:
import bpy
from bpy import context
bpy.ops.mesh.primitive_cube_add()
original_object = bpy.context.scene.objects.active
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value=90,axis=(1,0,0)) # you need to put value=90 instead of value(90), otherwise you will get an error
for obj in bpy.context.selected_objects: # deselects all selected objects
obj.select = False
bpy.context.scene.objects.active = original_object
original_object.select = True
推荐阅读
- c# - 只需要使用 EPPlus 从 Excel 返回不同的值
- angular - 从 Angular 5 升级到 6 后过滤不起作用
- swift3 - CocoaAsyncSocket didRead 没有被调用
- r - 更改 ggplot2 中次要网格线的数量(每个主要网格线),r
- python - 为什么 Python 返回“无”
- sql - SQL Server 2014 无法连接到远程服务器
- asp.net - html元素的动态定位 - Asp.net
- haskell - 如何为一组处理程序提供从 Db 中获取的值的服务?
- spring-cloud-gateway - Spring Cloud Gateway - 请求体
- java - 在rabbitmq配置spring boot中在AMQP中配置多个Vhost