DOPシミュレーションの内容に関する詳細は、hou.DopDataを参照してください。 このクラスのメソッドは、暗黙的に現行フレームのシミュレーションデータを使用します。
メソッド
findData(data_spec)
→ hou.DopData or None
指定した名前のDOPデータを返します。 その名前には、スラッシュで区切ったパスを使用してネスト化したサブデータを指定することもできます。
そのデータパスがDOPオブジェクトを参照している場合、このメソッドはhou.DopObjectインスタンスを返します。 DOPリレーションシップを参照している場合、hou.DopRelationshipインスタンスを返します。 それ以外の場合、hou.DopDataインスタンスを返します。
このメソッドは、暗黙的に現行フレームのシミュレーションデータを使用します。
hou.DopData.findSubData()も参照してください。
findAllData(data_spec)
→ tuple of hou.DopData
パターンを指定すると、そのパターンに一致した名前のDOPデータのタプルを返します。 hou.DopSimulation.findData()も参照してください。
objects()
→ tuple of hou.DopData
シミュレーション内のDOPオブジェクトすべてのタプルを返します。
オブジェクトID(hou.DopObject.objid()を参照)を使用して、このリストにインデックを付けることはできません。 オブジェクトIDをhou.DopObjectにマッピングした辞書を作成するには、以下のようにします:
id_dict = dict((obj.objid(), obj) for obj in simulation.objects())
findObject(obj_spec)
→ hou.DopObject or None
指定した名前のDOPオブジェクトを返します。その名前のオブジェクトがなければNone
を返します。
hou.DopSimulation.findData()とhou.DopSimulation.objects()も参照してください。
findAllObjects(obj_spec)
→ tuple of hou.DopObject
パターンを指定すると、そのパターンに一致した名前のDOPオブジェクトのタプルを返します。
>>> simulation = hou.node("/obj/AutoDopNetwork").simulation() >>> [obj.name() for obj in simulation.findAllObjects("box_object?")] ['box_object1', 'box_object2'] >>> [obj.name() for obj in simulation.findAllObjects("o* b*")] ['obj1', 'obj2', 'box_object1', 'box_object2']
relationships()
→ tuple of hou.DopRelationship
シミュレーション内のDOPリレーションシップすべてに対するhou.DopRelationshipオブジェクトのタプルを返します。
# 以下のサンプルでは、2つのボックスオブジェクトを作成し、それらを # リジッドボディにしていることを想定しています。 >>> simulation = hou.node("/obj/AutoDopNetwork").simulation() >>> relationship = simulation.relationships()[1] >>> affecting_objects = [ ... simulation.objects()[record.field("objid")] ... for record in relationship.records("ObjInAffectors")] >>> [obj.name() for obj in affecting_objects] ['box_object1'] >>> affected_objects = [ ... simulation.objects()[record.field("objid")] ... for record in relationship.records("ObjInGroup")] >>> [obj.name() for obj in affected_objects] ['box_object2']
findRelationship(rel_spec)
→ hou.DopRelationship
名前でDOPリレーションシップを探します。その名前のリレーションシップがなければNoneを返します。 hou.DopSimulation.relationships()も参照してください。
findAllRelationships(rel_spec)
→ tuple of hou.DopRelationship
パターンに一致した名前のhou.DopRelationshipオブジェクトのタプルを返します。 hou.DopSimulation.relationships()とhou.DopSimulation.findRelationship()も参照してください。
save(file_name)
time()
シミュレーションの現行時間を返します。
Python Solver DOPをコールしない限り、またはDOPネットワークのTime Scale
やOffset Time
のパラメータのデフォルト値を変更しない限りは、
この値はhou.time()と同じであることがほとんどです。
memoryUsage()
シミュレーションの合計メモリ使用量を返します。
frame()
globalTimeToSimTime(global_time)
globalFrameToSimTime(global_frame)
simTimeToGlobalTime(sim_time)
simTimeToGlobalFrame(sim_time)
objectGroups()
→ tuple
of hou.DopObjectGroup
findObjectGroup(name)
→ DopObjectGroup or None
createObject(name, solve_on_creation_frame)
→ hou.DopObject
新しいDOPオブジェクトを作成して、それを返します。オブジェクトの作成に失敗するとNoneを返します。
name
新しいオブジェクトの名前。
solve_on_creation_frame
Trueの場合、そのオブジェクトが最初に存在するフレームで、そのオブジェクトが計算されます。
Python DOP外からコールすると、hou.PermissionErrorを引き起こします。
既存オブジェクトのデータを複製するのであれば、hou.DopData.copyContentsFrom()を使用します。
removeObject(object)
シミュレーションから、指定したDOPオブジェクトを削除します。
object
削除するhou.DopObject。
Python DOP外からコールすると、hou.PermissionErrorを引き起こします。
createRelationship(name)
→ hou.DopRelationship
新しいDOPリレーションシップを作成して、それを返します。リレーションシップの作成に失敗するとNoneを返します。
name
新しいリレーションシップの名前。
Python DOP外からコールすると、hou.PermissionErrorを引き起こします。
既存リレーションシップからデータを複製するのであれば、hou.DopData.copyContentsFrom()を使用します。 そして、"ObjInGroup"と"ObjInAffectors"のレコードを更新するには、hou.DopRelationship.setGroup()とhou.DopRelationship.setAffectorGroup()を使用します。
removeRelationship(rel)
シミュレーションから、指定したDOPリレーションを削除します。
rel
削除するhou.DopRelationship。
Python DOP外からコールすると、hou.PermissionErrorを引き起こします。