Post #2763: ![](https://blenderartists.org/user_avatar/blenderartists.org/pinhead/48/528486_

📋 Metadata

🏷️ Tags

macro scripting advanced solved

  • Macro Editor
  • Python Scripting

💬 Content

Pinhead:

I have little script which duplicate the selected component and then separate to another object.
It is possible to after separate blender automaticly select only separated object?

@Pinhead, @anphung, I didn’t find any good way to get new object name. You can use something like this:

obj_names = {o.name for o in D.objects}
# add object
new_obj_names = {o.name for o in D.objects} - obj_names
new_obj = D.objects[new_obj_names.pop()]
new_obj.select_set(True)  # select new object
C.view_layer.objects.active = new_obj  # activate new object

In your code:

bpy.ops.mesh.duplicate_move(MESH_OT_duplicate={"mode":1}, TRANSFORM_OT_translate={"value":(0, 0, 0), "orient_type":'GLOBAL', "orient_matrix":((0, 0, 0), (0, 0, 0), (0, 0, 0)), "orient_matrix_type":'GLOBAL', "constraint_axis":(False, False, False), "mirror":False, "use_proportional_edit":False, "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "use_proportional_connected":False, "use_proportional_projected":False, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "cursor_transform":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False, "use_accurate":False}); obj_names = {o.name for o in D.objects}; bpy.ops.mesh.separate(type='SELECTED'); bpy.ops.object.mode_set(mode='OBJECT'); bpy.ops.object.select_all(action='DESELECT'); new_obj_names = {o.name for o in D.objects} - obj_names; new_obj = D.objects[new_obj_names.pop()]; new_obj.select_set(True); C.view_layer.objects.active = new_obj

❤️ 1 likes


🔗 View on Blender Artists