ale*_*rai 3 python arraylist blender-2.67
我面临一个相当容易解决的问题,但我不知道该怎么做.我希望blender列出所有被选为字符串的对象.例如.如果我跑:
selection_names = bpy.context.selected_objects
print (selection_names)
Run Code Online (Sandbox Code Playgroud)
它给了我这一行:
[bpy.data.objects['Cube.003'], bpy.data.objects['Cube.002'], bpy.data.objects['Cube.001'], bpy.data.objects['Cube']]
Run Code Online (Sandbox Code Playgroud)
但我想要的是selection_names
打印出来:
['Cube.001','Cube.002','Cube.003','Cube']
Run Code Online (Sandbox Code Playgroud)
小智 8
解决这个问题的最快方法是通过列表理解:
selection_names = [obj.name for obj in bpy.context.selected_objects]
这完全等同于:
selection_names = []
for obj in bpy.context.selected_objects:
selection_names.append(obj.name)
Run Code Online (Sandbox Code Playgroud)
小智 6
>> selection_names = bpy.context.selected_objects
>>> print (selection_names)
[bpy.data.objects['Armature 05.04 p'], bpy.data.objects['Armature 04.08 l'], bpy.data.objects['Armature 04.07 p'], bpy.data.objects['Armature 04.07 l'], bpy.data.objects['Armature 04.04 p'], bpy.data.objects['Armature 04.05 p'], bpy.data.objects['Armature 04.05 l']]
>>> for i in selection_names:
... print(i.name)
...
Armature 05.04 p
Armature 04.08 l
Armature 04.07 p
Armature 04.07 l
Armature 04.04 p
Armature 04.05 p
Armature 04.05 l
Run Code Online (Sandbox Code Playgroud)
如果希望它们成为数组中的对象,则可以执行以下操作:
>>> SelNameArr=[]
>>> for i in selection_names:
... SelNameArr.append(i.name)
...
>>> SelNameArr
['Armature 05.04 p', 'Armature 04.08 l', 'Armature 04.07 p', 'Armature 04.07 l', 'Armature 04.04 p', 'Armature 04.05 p', 'Armature 04.05 l']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7247 次 |
最近记录: |