forked from bartvdbraak/blender
Fix T42394: Copy Rigid Body Tools would not work as expected if dest ob had no rigidbody yet.
Adding new object to RigidBodyWorld obgroup is not a good way to do that, since it only takes effect (create rigid_body for new objects) when you change current frame. Better to use rigidbody.object_add() operator here!
This commit is contained in:
parent
a6c2d02366
commit
279cfdeef5
@ -64,17 +64,19 @@ class CopyRigidbodySettings(Operator):
|
||||
for o in context.selected_objects:
|
||||
if o.type != 'MESH':
|
||||
o.select = False
|
||||
elif o.rigid_body is None:
|
||||
# Add rigidbody to object!
|
||||
scene.objects.active = o
|
||||
bpy.ops.rigidbody.object_add()
|
||||
scene.objects.active = obj_act
|
||||
|
||||
objects = context.selected_objects
|
||||
if objects:
|
||||
# add selected objects to active one groups and recalculate
|
||||
bpy.ops.group.objects_add_active()
|
||||
scene.frame_set(scene.frame_current)
|
||||
rb_from = obj_act.rigid_body
|
||||
# copy settings
|
||||
for o in objects:
|
||||
rb_to = o.rigid_body
|
||||
if (o == obj_act) or (rb_to is None):
|
||||
if o == obj_act:
|
||||
continue
|
||||
for attr in self._attrs:
|
||||
setattr(rb_to, attr, getattr(rb_from, attr))
|
||||
|
Loading…
Reference in New Issue
Block a user