Code: Select all
objects=[]
sel = FreeCADGui.Selection.getSelection()
sel = sel[0]
linkname=sel.Name
lastlinkfound=linkname
objects.append(linkname)
linkname = sel.InList
#Find all objects AFTER the main selection
while True:
if len(linkname) == 0:
FreeCAD.Console.PrintMessage("no more!")
break
linkname=linkname[0]
linkname = linkname.Name
objects.append(linkname)
sel=FreeCAD.ActiveDocument.getObject(linkname)
FreeCADGui.Selection.addSelection(sel)
lastlinkfound=linkname
linkname=Gui.activeDocument().getObject(linkname).Object.InList
#Find all objects BEFORE the main selection
linkname=Gui.activeDocument().getObject(lastlinkfound).Object.OutList
while True:
if len(linkname) == 0:
FreeCAD.Console.PrintMessage("no more!")
break
linkname=linkname[0]
linkname = linkname.Name
objects.append(linkname)
sel=FreeCAD.ActiveDocument.getObject(linkname)
FreeCADGui.Selection.addSelection(sel)
linkname=Gui.activeDocument().getObject(linkname).Object.OutList
FreeCAD.Console.PrintMessage(objects)