How to transform (translate, rotate, scale) Vertex Groups using drivers? I'm trying my hand at procedural modelling using Blender. Houdini is known for procedural modelling, however, I want to achieve the same with an open source software like Blender.

I am currently trying to model a simple window frame with a cross (+) shaped frame in the middle. I want to adjust the width and height of the frame while still maintaining the integrity of the original shape. I've attached the .blend file. When I scale the frame width along the X or Z axis, the corners of the frame gets stretched out creating weird distortions.

I thought that the simplest way of getting rid of the distortions is by simply translating the vertices at the corner in the X or Z directions, thus giving us the illusion of scaling them along the X or Z axis. So I created vertex groups for the corner vertices, but how do I translate just the vertex groups with the help of a driver?

My driver object is an empty cube seen below the frame that has a few custom properties such as WinHeight and WinWidth which is supposed to achieve what I mentioned above. Is there a way for the driver to control only those vertices of the vertex group or is this not possible in blender?

Thanks in advance.
The simplest way to move a vertex group is using an armature: create a single bone armature, give to the bone the exact name of the vertex group, add an armature modifier to the mesh and select the newly created armature in the modifier's object field.

Now if you move, rotate and scale the bone (even with drivers) the vertex group will exactly follow.

You can have as many bones (and associated vertex groups) as you want in the armature, but - if you want rigid movements - make sure that every single vertex is affected by one bone-vertexgroup only.