def moveOnto(self, a, b):
        """
        Move a onto b

        Where a and b are block numbers, puts block a onto block b
        after returning any blocks that are stacked on top of blocks
        a and b to their initial positions. 
        """
        # Get the actual block objects
        a, b = self._getBlocks(a, b)
        if not a: return # Ignore bad indexes
        # Return blocks ontop of a to original positions (in reverse order of course)
        a.removeBlocksFromAbove()
        # Return blocks ontop of b to original positions
        b.removeBlocksFromAbove()
        # Move block a on top of block b
        a.moveTo(b.position)

        Move a onto b

        Where a and b are block numbers, puts block a onto block b
        after returning any blocks that are stacked on top of blocks
        a and b to their initial positions. 
        
recipes/Python/361168_Vpython_example/recipe-361168.py