I was looking into this one for a moment and I think I have a calculation that will work for you.
The idea I was working with is that there is a max of 6 euro that will be added to the minimum price if the size is 30 or greater using your posted calculation. So I just made a calculation that checks if it is over 30cm and if so add 1 euro for each 5 cm over 30cm, then also add 6 euro to account for the maximum charge for the first calculation. If it is 30cm or less then just use the original calculation. Here is the calculation code:
[Price]+ (abs([Size] > 30) * ((([Size]-30)/5) + 6)) + (abs([Size] <= 30) * ((([Size]-15)/5)*2))
Please give this a try and let us know if it works for you. Sorry if my explanation of the code is confusing.