Dunno if anyone has made this before, but here it is.
You select the objects you want to parent, then pops up with a window so you can choose the parent from a list (for the clumsy people, you know who you are :P) the last chosen is handily at the top.
It doesn’t clear the relationships first though, so any parenting loops will bring up a blender error.
#!BPY
""" Registration info for Blender menus:
Name: 'Make multiple children'
Blender: 234
Group: 'Object'
Tip: 'parent multiple objects at once'
"""
__author__ = "zenoscope"
__url__ = ("blender", "elysiun")
__version__ = "0.2"
# revision hist
# 0.01 - parent multiple kids
# 0.02 made this script so that you can choose from a list of
# objects to parent the others to?
import Blender
from Blender import Object, Draw,BGL
def make_list(oblist):
counter = 0
list=list="Choose the parent%t"
for ob in oblist:
list = list + "|" + ob.name + "%x" + str(counter)
counter = counter + 1
ChangeThis=Draw.PupMenu(list,20)
newParent=oblist.pop(ChangeThis)
newParent.makeParent(oblist, 0, 0)
def parentSelected():
global message
oblist=Object.GetSelected()
listLength=len(oblist)
if listLength > 1:
make_list(oblist)
#else:
# Draw.PupMenu("You need to select stuff",1)
def event(evt, val): # the function to handle input events
Draw.Redraw(1)
def button_event(evt): # the function to handle Draw Button events
if evt == 1:
parentSelected()
elif evt == 2:
Draw.Exit()
def gui(): # the function to draw the screen
global message
BGL.glClearColor(0,0,1,1)
BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
BGL.glColor3f(0,1,0)
Draw.Button("parent", 1, 10, 120, 80, 20,"append")
Draw.Button("Quit", 2, 10, 10, 55, 20,"append")
Draw.Register(gui, event, button_event) # registering the 3 callbacks
I’ve got a script that lets you assign the same texture to multiple objects as well, and might whip one up for changing attribs such as the drawtype, subsurf level, blah blah if i have the time and anyone is interested?