首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过bpy.types获取特定修饰符属性信息?

如何通过bpy.types获取特定修饰符属性信息?
EN

Stack Overflow用户
提问于 2019-08-05 18:29:44
回答 2查看 1.8K关注 0票数 1

例如,我得到了:

代码语言:javascript
复制
bpy.types.Modifier.bl_rna.properties['type'].enum_items[12]

(布尔修饰符)

布尔修饰符具有一个名为"object“的属性,用于实际bool网格。如何快速检查它是否实际获得了"object“属性(通过bpy.types)?

我想通过它们的属性过滤修饰符,如下所示:

代码语言:javascript
复制
[modifier.identifier for modifier in bpy.types.Modifier.bl_rna.properties['type'].enum_items if modifier.object != NULL]

显然这是行不通的,只是为了让你更好地了解我想做的事情而已。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-13 11:11:29

在另一个论坛上,我注意到了python函数dir(),它列出了一个实体的所有属性。

所以:

代码语言:javascript
复制
    for mods in orig_active.modifiers:
        for properties in dir(mods):
            if "__" not in properties:
                props=eval("type(mods."+str(properties)+")")
                if "Object" in str(props):
                    print(mods.name + "modifier got a property called 'object'.")

有点笨重但很管用。

票数 0
EN

Stack Overflow用户

发布于 2019-08-07 05:25:29

bpy.types包含类定义。bpy.data包含用于在搅拌机场景中定义对象的实例。bpy.context可以提供对多个感兴趣点的轻松访问,而不是直接使用bpy.data,例如活动场景和对象以及选定的和可见的对象列表。

作为类定义,bpy.types只能告诉您每个类型可以包含哪些属性,这些属性可能是修改后的。例如,一个插件可以使用bpy.props向现有的数据类型添加属性,这是在bpy.types中的类定义上完成的。

bpy.types.Modifier的每个子类都有自己的属性,BooleanModifier有一个对象属性,这是将与修饰符父网格的网格交互的第二个对象。

若要访问项的特定实例上的数据,需要在bpy.databpy.context中找到相关数据。

例如,如果一个立方体有一个布尔修饰符,将它的网格与球网格结合在一起,那么您可以在python控制台中得到以下内容。

代码语言:javascript
复制
>>> bpy.data.objects['Cube'].modifiers['Boolean'].object
bpy.data.objects['Sphere']
>>> bpy.data.objects['Cube'].modifiers['Boolean'].operation
'UNION'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57364245

复制
相关文章

相似问题

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