Dynamic components... again!



I’ve been using SU to draw kitchens for ages now. Generally I use groups for everything, but am trying to start using components.

The cabinet below is a very simple double pan drawer… if I want to be able to save this as a component that can be scaled to make it narrower or wider, whilst preserving the size of the face frame around the drawer fronts, do the four elements of the face frame have to be saved as individual components (i.e. top, left, right and bottom)?

I started trawling through the SU tutorial for dynamic components but it is clear as mud!

Thanks for any help!



As you wrote, you can divide into parts, and limit their sizes, then at the junctions hide the geometry. Another way would be to cut holes into a full panel.
The method you choose would be as close to the intended construction. So if the front is made of timber sections then match that, if cut out then the hole method would work. As the image shows no joints, I assume the second method.

I have attached a DC, you can confirm if okay then can go through how to build it, plus can you name the units you use, mine is metric, but can use inches if required

face.skp (43.6 KB)


this is a simple frame, using parts method
face frame.skp (40.8 KB)
you can outer shell this to produce the same as above, but you destroy the attributes


Thanks so much for taking the time to reply…

I think this is a little over my head!

All my face frames are 38mm x 24mm sections for everything. Currently I draw it as a square and then use offset to punch the hole in the face for the doors/drawers, and then extend the “legs” to the ground.

I just tried making it as left jamb/right jamb/top rail/bottom rail and then set tributes to everything except the length of the top and bottom rails, but when scaled it still makes the jambs wider or narrower!

thought id cracked it.skp (71.2 KB)

Thanks again!


first you need fix the cross section sizes, replace the value in bot rail, with an equal sign and the measure without the units
for lenY (thickness)
and for lenZ (depth)
(the DC will add the unit)
do this for all the thickness and depth of the frame members, leave their lengths alone (grey)
expose the other two lengths in the face frame#1 group as we will need to use them

now add the position to all members
is the bottom rail at a fixed always at a fixed position, if so fix all these values at their current position. =2.4, =3.8, =8.2
top rail
fix x,y, same but for z use the overall height - the depth of the rail,
=face frame#1!LenZ-LenZ
you can do this by entering = in to the value box then selecting the lenZ attribute in the face frame#1 group, then the minus then lenZ in the group you are editing (this saves typing,similar to entering cells in a spread sheet formula)
fix all the position attributes in the left jamb, fix x,z for the right jamb, then for its y value enter
face frame#1!LenY-LenX (that is the width of the frame minus the depth of the end stile)

need to call it quits for now, give it ago, if it fails post the stage you are at, then some one can help, otherwise I will check tomorrow


Wow… think I have cracked the individual parts method (left/right jamb etc.), thanks for your help with this.

I am very intrigued by the very first method you mentioned though… where you used one piece with holes punched in it. When I tried that to make a door to go in my newly-expandable cabinet, it only comes up as one component… how did you do it?!!

Thanks again!


First create a standard door panel say 717x597x16

its a good idea to start with a known mix dimensional item and always return the DC to this size before any edits. If you edit a DC that has any of its main attributes changed you can get scaling issues. The mixed dimensions make it easier to match the lenX,lenY…
I assume width (597) is along the x-axis, thickness (16) along y, with z up
At this point one should change the axis (right click context menu) to the back, so change in thickness is out and hinge rotation is correct

you would be aware that you can only produce a cutting component or group on one face at a time, so we need one at the front and one rear. Moreover we need a rim between both.
now enter the door component and use offset on the front face, say 70mm. Then select the inner rectangle and make it a group and name it front cut, enter this group then push the surface to the back of the door (16mm) this forms the rim.

(you will notice that the frount cut group is a natural face cutter, with the green axis up, blue out)
now delete the front and back face
select (triple click) the edge faces and right click context menu, reverse faces, so face is correct orientation as good modelling practice (I miss this step on the one I posted above)

escape that group and move to the rear

whilst still in the door component trace the rectangle, select it (double click) and make it a group “rear cut”. Now enter the rear cut group and delete the surface

So you have the raw component with the size and position attributes exposed

lets assume the user inputs the border width and chooses the door thickness, then one can scale in height and width
one uses the value icon to set the attribute properties, set your units,
then its a matter of working out the relationships to match the greyed values. Always match them, if your formula or value changes the original value you are creating scaling differences that could be problematic, If it happens, undo and try another.

you will notice that the cuts heights seem to be on the wrong axis, but recall that they are cutting shapes and they are always on their XY plane. So for the front cut, leny is the height and its value

added the scale tool control to restrict the user options

door with hole.skp (31.6 KB)


Blimee… that gets pretty involved, doesn’t it!

I’ll have a play with the above, and see if I can get it to work.

I’m made up with the use of the DC function… its made drawing bespoke kitchens so much quicker! I’ve already saved a face frame, door, carcase and drawer box as a collection of components.

Thanks again- I’ll stop bothering you know!



This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.