これは非常に単純な質問ですが、私はいたるところを見てきました。たぶん、私はポイントを失っています、私は知りません。しかし、これはかなり簡単なはずです。
私の質問は、単純に、Python Blender 2.6では名前でオブジェクトをどのように選択しますか?
2.4-5では、次のものを使用できます。
_bpy.ops.object.select_name("OBJECT")
_
...しかし、これは廃止され、何に置き換えられますか?
次のように現在選択されているオブジェクトを取得できます...
_bpy.context.selected_objects
_
そして、シーンのアクティブなオブジェクトを設定する方法があります...
_bpy.context.scene.objects.active = bpy.data.objects["OBJECT"]
_
また、select_all()
やselect_by_type()
などのoperationsで選択することもできます。
_bpy.ops.object.select_all(action="TOGGLE")
_
しかし、私は単にname。で選択する方法を見つけることができません
おかげで、私は完全に失われました...
bpy.data.objects['OBJECT'].select = True
選択データは個々のオブジェクトに含まれています。次のようにandを読むことができます。もう少し読みやすい形式で:
object = bpy.data.objects['OBJECT']
object.select = True
bpy.ops.object.select_name()
はbpy.ops.object.select_pattern()
(2.62前後)と置き換えられました。これはより強力なバージョンです(正確な名前を選択できますが、ワイルドカードを含むパターンも使用できます) -insensitiveなど):
bpy.ops.object.select_pattern(pattern="Cube")
import bpy
def returnObjectByName (passedName= ""):
r = None
obs = bpy.data.objects
for ob in obs:
if ob.name == passedName:
r = ob
return r
obs = bpy.data.objects
bpy.ops.object.select_all(action='DESELECT')
for ob in obs:
print (ob.name)
myObj = returnObjectByName(ob.name)
if myObj != None:
print (dir(myObj))
myObj.selected = True
myObj.location[2] = 10
myObj.selected = False
私のコードではなく、動作が保証されていません。