What you'll learn
Industrial designer Claas Kuhnen demonstrates how to build a fully adjustable rack model using Variables and Expressions in Shapr3D. Drive consistency across sketches and features, set global values for wall thickness, angle, or spacing, and explore geometry variations without breaking constraints.
Learn how to:
- Add variables: Control dimensions like wall thickness and bracket spacing across the design.
- Apply expressions: Define relationships using simple math to maintain logic between features.
- Use Shell, Offset Face, and Extrude: Apply variable-driven geometry changes in 3D tools.
- Create parametric sketches: Lock down critical geometry while keeping forms flexible.
- Mirror and pattern bodies: Speed up design repetition without losing parametric control.
- Split and subtract parts: Use modeling logic that adapts with every variable update.
- Structure with folders: Keep variations and design logic organized for easier iteration.
Transcript
00:00
Hello everybody and welcome to this tutorial in which I'm going to show you how you can create and use variables and expressions to drive your design in Shapr3D. Before we get started, what are actually variables? Think about variables as global variables or input fields you could create that store different type of data.
00:25
So for example, here I have a variable called wall thickness, 5 millimeters. So that stores 5 millimeters. I have here angle with 150 degrees. And these variables can be used by different sketch and modeling commands. You see, for example, here shell 1 and shell 3, they all say 5 millimeters. They have an FX, which means there is an expression working.
00:55
And this number comes from here. So if I change the 5 to 10, you see the geometry updated automatically because these two commands now say 10 millimeters. If I click into it, you see this is actually the wall thickness. So now this explains kind of like this idea of a global function or variable, and then you can feed that information into other.
01:23
modeling commands and an expression that is actually when you can use one variable and then very basic mathematical equations, plus, minus, divide, multiply with, for example, another expression or value. And the values also work with sketches. So for example, you see here 150, if I change this to 140 or
01:52
160, that sketch is updated and everything else follows it. With all that said, let me show you now how we can recreate this truck bed design. Let's get started with a new empty file. First, let's make sure snapping is all turned on and the unit system is in millimeters. I will go to the front view and create an elevation sketch of this truck bed rack.
02:21
to simply block out the volume. So go to Sketch, from the origin, I draw a line up by 400 millimeters. I have to zoom out a little bit. we are. Click this onto the Z-axis, one horizontal line straight to the left, one line a little bit dark and all down, one line straight down onto the X-axis and back to the endpoint origin. Then right click.
02:50
to drop the line tool, the 400 millimeters dimension is good. My case, the 731, I will adjust to 800. The vertical horizontal blue line, I will select and make a horizontally vertically constrained line. The small line, I will change to 60 millimeters and then the angle between these two lines.
03:18
I will specify it to be 150. Now, as you can see, everything is green. The sketch is perfectly constrained. And this is enough to build the post construction that goes onto the truck bed. But we also need to create the mounting brackets. So I will zoom in to the lower left corner and with the line command, draw a very simplistic rectangle.
03:48
Right click, right click, all the lines, horizontal, vertical. The vertical line will be 50 millimeters. And in case width and height, I would like to adjust. I also specify a dimension for the width of this rectangle. Before I exit the sketch, I always have always show dimensions turned on. So when I exit the sketch and go into a three-dimensional view,
04:18
you can see the dimensions and edit them from outside the sketch. Beautiful. That's actually all I need now for modeling. And what I'm going to show you is just a process where the sketches are very simplistic. This has the benefit they're very easy to read and update. And because we are creating a 3D model anyway, I solved the most simply with 3D modeling commands.
04:48
I will adjust the position of these dimension lines a little bit. So everything is a tick easier to read. And let's start with the bracket. I'll select the sketch face, go to Extrude, select the Symmetric function, and then I push this one out by 60 millimeters. And that then turns it into a 120 millimeter beautiful block. So how do we turn this block now into...
05:18
a sheet metal representation. The Shell command will be super useful for that. So I select all the four faces I would like to change to a 5mm material thickness, call them the Shell command and say 5mm. There we are. You see this actually also what I meant with keeping the sketches really simple because the rest time we can do with 3D modeling comments.
05:47
Let's do the same with the top piece. I will go select the sketch face, select Extrude Symmetric, and then push this out by 40 millimeters. Let's isolate that part. Because now with two times using the Shell command, you see how I can build everything. This I would like to Shell to be 40.
06:15
millimeters or 50. It's very good, nice and solid. And then here I will select all these faces I would like to core out to turn this into a sheet metal representation. Beautiful and unisolate. This is actually now the perfect moment to show you how we can create expressions and variables and how they function.
06:44
So one way to add a variable is go to Add Variable. I will call this one Wall Thickness and specify that with 5mm. When we create names, use something that's very easy to understand. Also for somebody else who might have to work with your file. There we are. I create this.
07:10
And I can go to this Shell command, go to where it says 5 millimeters and select the wall thickness by clicking on the Expression icon. Let's do the same here.
07:25
There we are. And I have my wall thickness variable here. And if I change this to 2 millimeters and I zoom in, you see everything updates automatically. Beautiful. I have here 50 millimeters. I can click onto this field, click on the expression icon, and then instead of selecting something, I just select here,
07:54
create length 1 equal 50. Here I have now this variable and I can right click, rename it. I call this one bracket depth. There we are. So this edge of my rack is actually as deep as the bracket. I would like to have a 10 millimeter material offset.
08:24
How can I do this? That is actually how expressions work. So here I have my Shell command that as you can see, created this 50 millimeter reduction. And then I will go to select bracket depth, and then say minus 10 millimeters, just 10, because we are working with millimeters. And you see it moves it back.
08:52
So if I go ahead and say the bracket now should be 20 millimeters, you see that this is 20 and then this is 10 because this is 10 millimeters. You could also, for example, add something so you can do subtraction, addition, multiplication or division. You could even say...
09:21
just as an example. So instead of 10 millimeters, I say minus the wall thickness. So we have then a 5 millimeter offset. You see, there it is. So if I change this to 2, look at that.
09:45
Beautiful. Okay, very nice. Let's bring this back to 50. There we are. And in the next step, we need to block this one out into two pieces and then also create a material offset and an overlap. This is also where the variables come in very, very handy.
10:13
So I go back to the sketch and somewhere here, draw a straight vertical line, right click, drop the line tool, go to a side view, construction and horizontal vertical aligned. This line should be 100 millimeters. I can keep this in the sketch, so it's easy to see.
10:43
And then I will create a construction line, a long edge, this one to this plane and click Done. There we are. And this line is pretty good. Sorry, this plane is pretty good. It's quite big. We will scale this later down a little bit. Double click this body too.
11:10
and then Shift click this plane, and then we can call this Split Body command. There we are.
11:18
I will make now this plane a little bit smaller. So I see where it is and it's not in my way. I performed first the split command because it was easier to select a bigger plane than a smaller plane. Beautiful. So now we have to do the overlap stuff. So now based on your preference, either while working,
11:47
You can create a variable or you create a variable first. I will call this one overlap 30 millimeters. There we are. And then if I select this part and say isolate, then I select this cut face and that I would like to extrude by our overlap and enter. There we are.
12:16
turn isolate off, select the opposite part, isolate. And then also here, we use the Extrude command and give this overlap variable to it. we are, isolate off. And just to show you again, if we change overlap variable to 10, each command updates. You see how... Beautiful. actually really is. If I change this, you see how nicely this can be used to prototype design variations. Now, material thickness is defined by 5 millimeters. This piece needs to be 5 millimeters bigger. How can we do this? Super easy. We simply select the faces we need to offset.
13:13
So I select the outside three faces and then select the wall thickness variable. we are. Then the same also for the inside. However, here, this cannot be positive. It has to be negative because it has to shrink.
13:37
And let's zoom in there. You see beautifully this fits. One more time, we change the material thickness. You see also then everything updates perfectly. I think at this point, you really get how powerful the new variables and expressions are.
14:00
So we have this actually done. We can now go to a top view, create a sketch, and I will draw myself a line straight up and horizontal to the Y axis, right click, right click, drop the tool. These are just helper lines, horizontal, vertical constraint and construction line. And this will be...
14:27
1500 millimeters max. Now this is kind of like the maximum length of this rack system. I will also start sorting everything into individual folders. So it's later going to be very easy to turn things on off. I will select these three bodies to just do a quick
14:57
prototyping test, then I will call the pattern command linear and bring this over 690 millimeters in this case. There we are.
15:12
You also see I work only with half of a design and that's on purpose because when everything is symmetrical and multiples, I only work on one piece. And then later I copy mirror pieces I need. It actually shortens a lot of your work. So this is actually looking quite good. Perfect. Now I could select...
15:38
all these parts and go to a mirror command, mirror this over to the opposite side, left mouse button, click and drag right to the left side, select the bodies, and then we fuse those together. There we are. Pretty cool. This actually looks really, really nice. I have here so far always like,
16:08
dimensions for like a length. I would like to go back to the sketch. You see here, this says 50. I could actually create also an angle. There we are. And right click and rename. I just keep this angle because just so you see, I can then select different length.
16:38
or numbers, I only have one angle, but you see things are later also being sorted into different categories. So it makes it very easy to then when you have to select those to assign them. And you see also here, this variable has an angle icon and this has a length icon.
17:03
And this number, for example, can be very useful when, let's say here with the pattern, you need to make three or four pieces. I think this kind of covers most of the different types of variables also we have. Now, how do we continue? I need to create a connection.
17:31
that goes over these three pieces and the same then here. So I will go to this face and go to the front view, create a sketch. Here's my midpoint. That's beautiful. I draw a line straight to the left, up to the right, down, back to the edge and to the end point, right click and drop the line tool. The first and last line will be...
18:00
equal constraint, then I can say that this rib should be 100 millimeters wide. good. And I can call this one rib width, for example. And then the height, that should be all of them all thickness. And that's all constructed out of the same material thickness.
18:15
selecting everything, say horizontal, vertical, constraint. And you see now this sketch is green, perfectly constraint.
18:41
You also see here now with FX, that always means that this number is actually the result of an expression or a single variable. I can select that sketch profile, extrude this out, and then move it directly onto the end of this face. So that looks actually pretty good. I can select this.
19:10
Make a copy, move this over and then select this lower edge, select align and center align this onto this edge. This is too long. this face, Shift click this face, we can replace, so align it with it.
19:39
The cool thing about the parametric modeling is now if I go to the pattern comment and I adjust this, you see how everything updates automatically. That's pretty cool. So this piece and this one, I would like to be thicker so I can get those to 30 millimeters.
20:09
How much is the offset? Now distance to 30. I could create a variable for this if I would like to, for example, to make this video a little bit shorter, I skipped that step. Then we have to turn this into sheet metal again. You see, I select these individual faces, shell, there we are, and select wall thickness, press Enter.
20:39
and unisolate. Beautiful. That's really nice. From these two bodies, I now have to actually select the volume of those others and remove it. So select everything, then select, subtract, and make sure these two are our targets and we are keeping the removed bodies. Beautiful.
21:09
Let's see how we can clean up everything a little bit easier. So there are linear patterns. Very good. And then this one and this one, those two are put into a folder. And you see, then I have all these individual pieces here. I can delete them. Right click. We could call this one, for example, being...
21:39
The ribs. One thing to keep in mind is with the naming of folders, et cetera, specifically when you work with the Mirror Pattern command, it creates folders automatically. So don't spend too much time on these things at the beginning, or understand the naming might change. So this is actually quite nice. I will select these two pieces and isolate them.
22:07
So what we have to do now is we need to offset these faces. So you see, I select left to right, and then always select the face command. And we are going to add a little bit of a tolerance so things can move around a little bit. Minus 30, let's create a variable for that. And then that is actually the rib.
22:37
Tolerance. There we are.
22:45
Unisolate. This looks actually quite nice. Why these tolerances? So in case these ribs might have to move around a little bit. And because we have added a variable, we can adjust this also very easily afterwards.
23:11
Last thing to do, this actually also really nice to show is how can we create the slot pattern and how can we then inside the sketch also make use of these variables. It's really useful actually. So I will start working on this piece. I will go to isolate. I will create a sketch on this face and I will draw one line.
23:42
Right click, draw another line. Then I will select the circle command, draw two circles on these endpoints. Then I will draw two lines, bottom and top. Right click, right click. I will select all lines and make them horizontally, vertically.
24:12
inner parts of these circles, I will trim away. Then circle to line, will add a Tendency constraint, or it's not circle. this case, it's now half a circle. These circles, technically speaking, can also be equal. The radius. 10 millimeters. I make this a little bit bigger, so it's easier to see. Now this is kind like the hole where the through would go through. Then these two first green lines. Now I will select and make equal to. Beautiful. And now how long is this line? So that is 90. So...
24:44
If we think about this one, that should be 90 divided by 2. There we are. Not because this is then, how could I say that? From here to there and there, that's always the exact distance. This will be very useful soon. Then I can select this face.
25:13
or sketch, cut it through, but to always prevent cutting by accident later into other parts. So I only say cut through the material thickness. There we are. That's it. Unisolate. Now I would like to kind of like do the same at the bottom and here already see, oh, this is going to be very tricky.
25:42
I might need to make this a little bit wider.
26:00
I just actually...
26:08
Need to see where is... One second, because I noticed where is actually this command for that.
26:27
So that is that.
26:32
Here, that's the one. Oh, 30. So overlap. Oh, there's overlap. Sorry. I did not see actually my value here. So I need to make this a little bit wider. This might have been actually also really good demonstration of really have very logical names. So you understand later also really what...
27:01
variable is doing what? So now instead of overlap, maybe I should have given this the rib overlap. So I see all the pieces that work with the rib, for example. So to produce the same pattern on these other faces, we can simply make copies of this sketch. it's actually,
27:30
important that we follow a very logical system here. So I bring this one up a little bit on purpose, because you see by moving this up with a copy, it makes a new copy on a different plane. So this is a new sketch and this sketch, I can now project onto that face. Click done. Then I would like...
27:59
to select this one and Shift select this one and say isolate. Oh, unfortunately that did not work out, but I can actually now show this one. And here, look at this. I will simply snap this one to there. And this has to go to there. This has to cut through also here by the material thickness.
28:28
And since we are in this mode, I can select a sketch, make a copy. I can simply move this down a little bit and then say here, project onto that face, move this one to there and there.
28:50
So it's actually quite nice to recycle our sketches and sort of having to recreate them. Okay. Unisolate. You see now here, this looks actually quite nice. is quite good. If we need to have a little bit more, then...
29:17
Maybe this should be 60. And because I do have kind of like this broken out inside the sketch, it might make sense to be honest, to put this also into a variable. There we are. So I don't have to look where is what. I can easily find all these pieces there. So, split point.
29:46
Beautiful. So with this, if I adjust this, I make this bigger or smaller.
30:00
You also see how I'm restructuring my design. This is another thing that's really important actually to understand that you can do this.
30:15
Then we can select this sketch. will exit it, make a copy, move this up, keep this copy still on, rotate it. That makes a copy of the sketch, but inside the same sketch container, double click on the sketch we don't want, delete, and then same process.
30:54
Select a sketch and then we project this onto this rib. Bring everything to there. Bring this back. This we would like to cut through by the wall thickness. There we are. If you look from below, look, this is actually really perfect.
31:23
This will work really well. If we put all the sketches into this folder, then I could select this edge and say, align to this edge.
31:41
bring this over so it snaps now so I can see, there's a little bit of an overlap. So on this, for example, the position could be changed. I just exit the sketch because I was just only quickly prototyping how this actually would work. Back to the sketches. We have to do our last one. So here I will make a...
32:09
I'll move this one up so I can then project the sketch onto there. Bring it to there and bring that one to there. Select this and cut through wall thickness. There we are. Beautiful.
32:38
You see here, this doesn't work out. Well, that is because this is five millimeters per offset shorter than this one here.
32:55
So when I go in to this line, so there I have a value, there I have a value. So now we can dimension this actually. So this would be 40.
33:16
I might have to just delete this one.
33:22
So there it is. And now I can go ahead and say here 40. And if I look from behind, there you see that fits beautifully.
33:38
Very good. Very last method cleanup. You see, we do have these others. What do we do with them? This is a case where, since we are exploring this design step-by-step without having an initial, how could I say that, construction plan to execute, I will delete all the parts I...
34:08
now don't need anymore. So I select them. we are. Beautiful. And then I recreate them with a pattern comment again. And this one, this one, this one, and this one, I will mirror over to there. Perfect. Beautiful.
34:36
I could have made here a copy of bringing one over. There we are. I will move this in front of the mirror command and then for this mirror command here, add this one to it. There we are. Beautiful. Now, because if I then move this around, you see how nicely that other one actually updates too.
35:02
That's it. This was what I wanted to show you, how you can use the new variables and expressions in Shapr3D with modeling and sketch features to drive then your design and explore different design verifications. And also make sure ultimately that if you do one change to your design, that everything will fit. That's it. Bye-bye.
Try it yourself
Download ↓
About the instructor
Claas Kuhnen is a German 3D designer known for his strong interdisciplinary
background in product, space, and animation design. He holds an undergraduate
degree in Color Design for Interior and Product Design from the University
of Applied Science and Art in Hildesheim, Germany. He further pursued
his education and obtained a Masters in Fine Arts in 3D Studio Art
with a focus on Jewelry Design and 3D Animation from Bowling Green
State University.
As a designer, Claas Kuhnen is particularly interested in design-informed
solutions and exploring the relationship between consumerism, products,
and their impact on society. He engages in a wide range of projects,
including furniture design, interior and exhibit design, consumer
product design, and medical product design.
In his research and studio practice, Claas Kuhnen delves into the
application of a modern multi-application and interdisciplinary workflow.
His areas of investigation encompass parametric, generative, and
subdivision surface modeling, as well as AR (Augmented Reality),
VR (Virtual Reality), photogrammetry, and AI-powered tools. He collaborates
with various national and international universities and companies
on research and design projects, contributing his expertise and exploring
innovative approaches.
Claas Kuhnen's design projects span diverse domains. For instance,
he has designed exhibit artifacts for The Henry Ford Museum, developed
medical devices for the Department of Pharmacy Practice, and undertaken
interior design projects that serve the community. His work showcases
a keen understanding of the intersections between design, technology,
and societal impact.
In addition to his design practice, Claas Kuhnen is actively involved
in teaching and sharing his knowledge with students. His classroom
experience is strongly influenced by his diverse research background,
providing students with a modern, interdisciplinary, and competitive
education.
Furthermore, Claas Kuhnen's work and techniques have been featured
in exhibitions such as Autodesk University, SIGGRAPH, SOFA, and SNAG.
He actively engages in educational collaboration efforts with both
national and international universities and serves as a Matter Expert
for leading design software companies, contributing to the advancement
of design tools and methodologies.