# I would like the parent to rotate and translate with the child but scale the parent independently

I have parent and child objects. I want the child to move and rotate with the parent, but I would like to be able to scale the parent without affecting the child in my Python script. I know that I can set the parent to transform independently with this: bpy.context.scene.tool_settings.use_transform_skip_children = True or in the Options menu in the upper right hand corner of the 3d view window.

In my Python code, I would like to be able to detect that a translation in the parent object is occurring, set the parent to transform independently, and then reset that the child transform with the parent. Is that possible? I am not sure if a modal operator would work, and I do not know what to call the event that would trigger it.

• If your overall goal is to have the child translate and rotate with its parent but scale independently, then one option is to use a Child Of constraint instead of parenting. Clear any parent the "child" object may have with Alt+P, then add the Child Of constraint. Once you assign the "parent", you can then choose which components of its transform are inherited (you can disable all three scale axes). Feb 24 at 2:13
• This is an answer TTJ Feb 24 at 2:48
• @TheTrueJard please write this as an answer and not as a comment, so that it can be upvoted and accepted.
– susu
Feb 24 at 21:46
• I originally added it as a comment cause it seemed the OP might want a python solution, but after re-reading it I see otherwise. I've added the answer now. Feb 25 at 8:57

If your overall goal is to have the child translate and rotate with its parent but scale independently, then one option is to use a Child Of constraint instead of parenting. This solution does not require any Python scripting.
2. Add the Child Of constraint. Once you assign the "parent" object, you can choose which components of its transform are inherited. In your specific case, you'll want to disable all three scale axes.