CAD programs have this - some drawing programs do as well. the ability to snap elements together to common reference points (ends, middle, etc)