Everytime I try to subdivide or use a boolean on an object with a smooth surface I get ugly artifacts as seen here. Is there a way to punch a hole through a smooth object while keeping sharp edges?
Without Edge Split modifier (left) and after applying Edge Split modifier (right).