如何通过bpy.types获取具体的修饰符属性信息?
How to obtain specific modifier properties information through bpy.types?
例如我得到:
bpy.types.Modifier.bl_rna.properties['type'].enum_items[12]
(布尔修饰符)
布尔修饰符有一个名为 "object" 的 属性 用于实际的布尔网格。
我如何才能快速检查它是否真的获得了可用的 "object" 属性(通过 bpy.types)?
我想按类似的属性过滤修饰符:
[modifier.identifier for modifier in bpy.types.Modifier.bl_rna.properties['type'].enum_items if modifier.object != NULL]
显然这行不通,添加它只是为了让您更好地了解我要做什么。
bpy.types
contains the class definitions. bpy.data
contains the instances used to define objects in your blender scene. bpy.context
可以轻松访问多个兴趣点,而不是直接使用 bpy.data
,例如活动场景和对象以及选定和可见对象的列表。
作为class的定义,bpy.types
只能告诉你每个类型可以包含哪些属性,这可能是修改后的。例如,插件可以使用 bpy.props
向现有数据类型添加属性,这是在 bpy.types
.
中的 class 定义中完成的
bpy.types.Modifier
has its own properties, the BooleanModifier
的每个子 class 都有一个对象 属性,这是将与修改器父网格的网格交互的第二个对象。
要访问项目特定实例的数据,您需要在 bpy.data
或 bpy.context
.
中找到相关数据
例如,如果一个立方体有一个将其网格与球体网格结合的布尔修改器,您可以在 python console.
中获得以下内容
>>> bpy.data.objects['Cube'].modifiers['Boolean'].object
bpy.data.objects['Sphere']
>>> bpy.data.objects['Cube'].modifiers['Boolean'].operation
'UNION'
在另一个论坛上,我了解到 python 函数 dir()
,它列出了一个实体的所有属性。
所以:
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'.")
有点笨拙,但很管用。
例如我得到:
bpy.types.Modifier.bl_rna.properties['type'].enum_items[12]
(布尔修饰符)
布尔修饰符有一个名为 "object" 的 属性 用于实际的布尔网格。 我如何才能快速检查它是否真的获得了可用的 "object" 属性(通过 bpy.types)?
我想按类似的属性过滤修饰符:
[modifier.identifier for modifier in bpy.types.Modifier.bl_rna.properties['type'].enum_items if modifier.object != NULL]
显然这行不通,添加它只是为了让您更好地了解我要做什么。
bpy.types
contains the class definitions. bpy.data
contains the instances used to define objects in your blender scene. bpy.context
可以轻松访问多个兴趣点,而不是直接使用 bpy.data
,例如活动场景和对象以及选定和可见对象的列表。
作为class的定义,bpy.types
只能告诉你每个类型可以包含哪些属性,这可能是修改后的。例如,插件可以使用 bpy.props
向现有数据类型添加属性,这是在 bpy.types
.
bpy.types.Modifier
has its own properties, the BooleanModifier
的每个子 class 都有一个对象 属性,这是将与修改器父网格的网格交互的第二个对象。
要访问项目特定实例的数据,您需要在 bpy.data
或 bpy.context
.
例如,如果一个立方体有一个将其网格与球体网格结合的布尔修改器,您可以在 python console.
中获得以下内容>>> bpy.data.objects['Cube'].modifiers['Boolean'].object
bpy.data.objects['Sphere']
>>> bpy.data.objects['Cube'].modifiers['Boolean'].operation
'UNION'
在另一个论坛上,我了解到 python 函数 dir()
,它列出了一个实体的所有属性。
所以:
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'.")
有点笨拙,但很管用。