I have a set of polygons of different shapes and sizes in shapefile1. What I need to do, is to create new polygons around the boundaries of the polygons in  shapefile1, larger by x meters. Then, I need to compare this new polygons with another set of polygons in shapefile2 and see if the new ones are larger in AT LEAST one direction. How can I do it?

To recap, I would need:

 1. A way to create a new polygon from the perimeter of the existing polygons  (I can't use the centroids because the shapes and the dimensons of the polygons are totally different);
 2. A way to assign the polygons in shapefile2 to each new polygon, (in this case I think I can use the centroids);
 3. A way to check if each polygon in shapefile2 (shp2) exceeds in at least one direction of the new one (new shp1).

Any suggestions?