Juan Martin Del Potro is through to the semi-finals of the Estoril Open in Portugal after a rain-delayed victory over top seed Robin Soderling.