Selective scaling in 3D?


I work in a small carpentry specialized in making custom made kitchens. I am now working on shifting our drawing process from pencil and paper to CAD, most likely Rhino. At this stage I’m mainly trying to figure out how far I can take the process of standardizing my drawing modules, while still being able to modify the measurements quickly.

The picture below shows a model of how a basic cupboard could look. My wish is that I could make a bunch of standard cupboards etc, and then easily scale them to the correct width. The tricky part (for me at least) is how to scale ONLY the lines marked with the circle, while keeping the frame widths etc as they are (marked with X), as well as keeping the handle in the centre (marked with an arrow)…?

I don’t quite know if this can be done in a good way with Rhino, or if perhaps I should learn Grasshopper (which I feel should be able to do it)? Or do you guys have any ideas how this could be solved in a simple way? My dream would be if I could simply type in the correct width (which I think Grasshopper could do) or do just one simple scaling, without having to move a lot of components or scale the parts individually etc…

Thankful for all help and ideas!


I’m afraid that Grasshopper is currently the only way to make this stuff parametric in the way you would like… some stuff could be drawn/modeled in Rhino (like the handle, or a special Ogee molding profile) and then the drawn components could be referenced by Grasshopper for the parametric part - mostly panels which will have varying widths, heights and thicknesses, I suspect.


Hi Josua,

How automated should this be?
I think a simple manual solution could be to use sub-object selections and move those:

In order to scale the cabinets while preserving the relationship of specific features you can use sub-object selection:
With CTRL+SHIFT pressed drag a window with your mouse around a side and the features to move:

You now have sub-objects selected.
These can be moved with the regular Move command or via gumball:

I think it’s feasible to have a set of standard cupboards and adjust the measurements manually by sub-object manipulation.

Let me know if it’s clear or if you have any questions.


SolidPtOn = 3D stretch! Indispensable for stretching furniture :smile:

If you need to do some renders, use “ApplyEdgeSoftening” instead of fillets. That way yout geometry will still be easy to modify.

+1 to solidpton. Still the reigning champ in my book for this kind of stuff.

Thank you all very much for your inputs! I will try out your ideas and see how I think they work for me… I’ll be back with further questions as they arise :wink:

Great tip with the “ApplyEdgeSoftening” btw, I’m sure I will have great use for that one as soon as I get to the point of rendering :grinning:

i wish that would work with v-ray as well

If you mean ApplyEdgeSoftening, you could use ExtractRenderMesh and hide the NURBS objects.

It does work with V-Ray!
As well as ApplyShutlining and ApplyCurvePiping…

@BrianJ There’s no need, it works without you need to extract the mesh and hide the NURBS objects.

With edge softening and shut lining:

I thought so… but assumed he might have had a build prior to full RDK support. Thanks for checking.

The ApplyEdgeSoftening? Does it work with Flamingo…?

Not currently, but you can always use the ExtractRenderMesh command.

Ok, so now I’ve had some time for testing! Result:

The SolidPtOn was really a simple trick for the geometry/cupboard I posted previously, and would be an easy enough way to work if all my standard modules where that simple. However, from my tests I don’t think it works quite as well when my cupboard looks like this:

This obviously gets a little more complex, as I want to keep the framework widths and cc-distance intact while scaling… And ideally, the handles would follow and stick to the centre of each drawer. With SolidPtOn I think I’d have to change each drawer individually (starting from one side moving towards the other)…? This would be a bit too much manual work, as I will normally place a lot of different modules like this in a room and want the process to be as quick as possible.

Perhaps Grasshopper would be the best option after all? I’m unfortunately not yet very familiar with it and don’t quite know its limitations, but from looking at a few tutorials I think it could be well invested time for me to learn it. My dream would obviously be to have a block like this cupboard in a standard dimension, say 2m wide, and then after inserting it just opening Grasshopper and typing 2.15 (at the right place ofc) - and boom all widths are correct, handles in the right spot, etc etc… Someone with more experience of Grasshopper could perhaps merely confirm if this would be possible? (I don’t need to know how at this stage, just IF…) My knowledge of mathematics and programming tells me that the coding should be simple enough to figure out, I just don’t know how Grasshopper works :stuck_out_tongue_winking_eye:


there are none :sunglasses:

Anyway, yes, this is certainly possible and using Grasshopper to do it is way easier than taking up scripting for this purpose.

Thanks! I better get down to business and download Grasshopper then :sunglasses: