Extend surfaces on different directions

Hello guys!

I have a window case in which sides have different directions. So I want to extend by 10 cm these side surfaces but following the direction of each surface. I made a definition but I used many components twice in order to achieve that. So I would like to ask you if there is another shorter way or more flexible in case, for example, there are more than 4 surfaces.

Here is my definition!

surface extend.gh (21.2 KB)

Thank you very much!

This is not as short as you might expect, but surely more robust…

surface extend_re.gh (43.4 KB)

Hello HS_Kim!

Thank you very much! Every time you reply to me I learn something new!
Have you any idea why when I open your definition last component shell brep gives an invalid brep and not an closed brep frame as in your capture?

Strange when I change your panel to 2,4 surface to remove it works fine.