Piston snap modal

A tool that can snap a piston to (planned piston instance) empties and objects aligned along a vector. Can scale as well. Select 1 planned piston instance empty, or, two objects(of any kind). Then any piston object.