From 279cfdeef5f17767d7c662a493be1f236484bebe Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 29 Oct 2014 13:06:08 +0100 Subject: 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! --- release/scripts/startup/bl_operators/rigidbody.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'release') diff --git a/release/scripts/startup/bl_operators/rigidbody.py b/release/scripts/startup/bl_operators/rigidbody.py index 9a3aae53ceb..237c2d55672 100644 --- a/release/scripts/startup/bl_operators/rigidbody.py +++ b/release/scripts/startup/bl_operators/rigidbody.py @@ -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)) -- cgit v1.2.3