2
$\begingroup$

How to parent two object without selecting them manually in blender python scripting console? I want parent object which stored in variable like

Add a cube at the origin:

a=bpy.ops.mesh.primitive_cube_add()

Create an empty object:

b=bpy.ops.object.empty_add(type="SPHERE")

How to parent a to b?

$\endgroup$

2 Answers 2

4
$\begingroup$
bpy.ops.mesh.primitive_cube_add()
a = bpy.context.object
bpy.ops.object.empty_add(type="SPHERE")
b = bpy.context.object
const = b.constraints.new(type='CHILD_OF')
const.target = a
$\endgroup$
0
$\begingroup$

The simplest way to set a parent for an object is by accessing its parent property:

import bpy

# Create cube and reference the cube object
bpy.ops.mesh.primitive_cube_add()
cube = bpy.context.object

# Create sphere empty and reference the empty object
bpy.ops.object.empty_add(type="SPHERE")
empty = bpy.context.object

# Set the sphere empty as the parent of the cube object
cube.parent = empty
$\endgroup$
1
  • 2
    $\begingroup$ The drawback there is that the child will snap to the parents location, if they had been positioned first. You can select both, make the parent active and use bpy.ops.object.parent_set(type='OBJECT') to fill in the matrix to keep the child offset. $\endgroup$ Commented Sep 6, 2018 at 9:58

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.