Computer-aided design
This week we are learning computer-aided design (CAD). I have some experience with some of the tools, so on top of the assessment requirements I have a clear personal objective and an additional "stretch" objective.
-
Do a mechanical analysis in one of the 3D modelling programs. This could be a deflection analysis of a static steel structure or a load analysis for the hanging flexo lamp.
-
(stretch) Do some parametric/generative design, like a topology optimization.
This week in the local class we got an introduction to the different programs that we might use to design our final project or other physical objects.
We had a reference object drawing, a 2x4 Lego brick, which we modelled in different programs to get a feel for the difference between them.
Task
Model (raster, vector, 2D, 3D, render, animate, simulate, ...) a possible final project, compress your images and videos, and post it on your class page
TinkerCAD
TinkerCAD has been fun to play with. I went into the interface and found two designs that I had made 5 years ago!
My impression of it is the same as it was then: for getting set up quick it's great but if you have the time you're better off learning one of the more capable programs.
Blender
I played with Blender a few years ago and it seemed really complex and hard to get into. The class we had this week did nothing to make me think otherwise.
That, combined with the fact that it's a mesh editor and so not super useful for mechanical design, meant that I decided not to sink a lot of time into it.
I quite liked the "modifiers" system, where you retain the original objects and their relationships when you do a boolean operation, for example. This allows you to modify the object you used to subtract from another one and have the subtraction automatically applied.
Some Blender notes for future me:
- G: grab, then:
- X/Y/Z: restrict movement to axes
- hold Ctrl: snap. You can control what snaps to what with the little dropdown menu in the middle of the toolbar directly above the viewport.
- Shift S: selection and cursor menu. Useful for centering things on each other, among many other things.
- Ctrl A (apply) then scale: I didn't get to the point where
- Tab: switch from edit mode to object mode and viceversa:
- In edit mode: 1/2/3 switches between faces/edges/vertices.
You can download here my Lego brick .blend file, if you want.
Autodesk Fusion
Fusion seems quite Useful for CAM as well as CAD.
It's pretty cool. Very mechanical oriented. It seems approachable at first but it has some quirks.
We also did the lego brick in Fusion:
You can download my fusion file here.
Useful video: Assemblies and Joins in Fusion 360
Self assignment
I've wanted to build a ceiling lamp for a while in the style of architect desk lamps. It makes a lot of sense to me because my ceiling lamp and my table are misaligned and it drives me crazy 😂. With an adjustable lamp I could center the lamp and not go crazy anymore.
More seriously, it would be nice to adjust the position of the light so that it's a general ambience light or a more focused spotlight. Also, I like the barebones functionality look of architect lamps.
One element that I find challenging in the design is to choose optimal positions for the springs they have to keep the joints close to neutral. I've always wondered what springs to use and where to place the connections to the structure.
Main Task: Design a hanging flexo light like the one I did in Rhino a while ago.
Stretch Task: do a numerical analysis: 1. Deflection analysis on a steel tube 2. On the lamp: what tension do the strings suffer?
The question that I'd like to answer with this: what's the range of deformation for the springs in open/closed position for a given geometry?
My first challenge with Fusion was understanding the contrast between assemblies, components and bodies.
Before that, I'd been trying to align two components for about an hour. My problem was that I was trying to move the body within the component rather than the whole component. ONE HOUR TO ALIGN A TUBE TO A PLATE!!!!!! AHHGHGHGGGHHH!!!
Then I needed to understand that Fusion is inherently parametric. I asked a couple questions in Mattermost and got great answers. In particular, Lars Mattern posted a link to his superb little tutorial on parameters in Fusion. That was what I needed to get me unstuck. I naturally then proceeded to use parameters everywhere.
Understanding joints and an unexpected interaction between "as is" joints and the history was another stumbling block. After asking Josep Martà we managed to get to a pretty cool point:
In the end, I realized setting up a proper mechanical simulation with the lamp is beyond my abilities with the time available for the week. The relationship between components in Fusion kept tripping me up. For example, I had to go back and redo the "shoulder" plates for the lamp because I had copied the second, rather than mirrored it, and when I wanted to add a pin for the spring it appeared in the wrong side in the other one. After that, I tried to add the corresponding pins to the square tube and it appeared in all 4 of them 🤦. Rather than going back and redoing the tubes one by one, I decided to switch to Rhino for the rest of the time I have for the week. Even though I didn't quite achieve my objective, it was a great learning experience.
My conclusion is that Fusion is powerful and very cool for when you know what you want, but at least at my level of knowledge it's not super amenable to playful exploration. It's very frustrating to have to go back and redo stuff because you didn't "Paste New" instead of pasting.
This is the final state of the lamp:
Click here for the CAD file.
Rhino
Rhino is awesome. I originally got into it around the time I tried TinkerCAD and I have been using it off and on for these last few years.
Julia, the instructor, is really good. She had us do the Lego brick with a different approach than in the other programs: instead of doing solid unions and subtratctions she had us draft lines in 2D and then extrude to get a feel for the unique capabilities of Rhino.
I took the opportunity to try a related workflow that I had never quite nailed in Rhino, but that I found really intuitive when I used Sketchup: make volume, draw on faces, then extrude. I found the Push Pull feature in Rhino 8, which is exactly that! I found it super intuitive and got the Lego brick done in no time. I love this program.
You can download here my Lego brick .3dm file, if you want.
Some Rhino notes for future me:
Awesome commands that I just found out about:
- PushPull: Sketchup style extruding.
- The special case extrusions:
- Boss: Looks great for holes and text!
- Fin, Pipe: Does what it says on the tin.
- Rib: Awesome for reinforcing with, well, ribs. Also for slots, maybe.
- Ribbon: Offset curve and create surface.
- Slab: Like ribbon + extrude.
Self assignment
Task: Create a romboid wire structure parametrically similar to the following sketch:
I wanted to practice some Grasshopper. I did a bit of it about 2 years ago so I wasn't fluent at all, so just making the basic trellis took quite some work.
I tried surface divide but it wasn't quite what I wanted. Specifically, the individual polygons were not the same size, and the edges were curved. My initial idea is to fabricate this using metal rods, so I need straight sections. I decided to use contours to fix the first problem and then use the contour intersections to fix the second one.
One major detour I took that wasn't quite necessary was to due to my rotating the structure. Since I had originally specified the contour guide vectors in reference to world unit vectors, they looked a bit wrong. I guess I could have used a rotate component in Grasshopper, but I decided to figure out the major axes of the structure itself, so that if someone else uses the script they can specify any curves for building the structure that they want.
I found it very hard to find the vector perpendicular to a line within a plane! I needed it to get the axis of rotation. At first, I wanted to intersect two planes, which was the most intuitive operation for me. But I didn't manage to find the proper Grasshopper components. In the end, the best option was to ask ChatGPT! It suggested doing a cross product, which solved the issue right away.
In the end the approach that worked was to:
- Generate surface from curves
- Generate the contour lines with a given angle to the major direction of the structure.
- Intersect contour lines and generate grid from the center points of the resulting rhombi.
- Turn grid wire lines into pipes to generate solids
- Boolean union for single solid <- this step fails; I'm pretty sure it's a bug in Grasshopper since the component is notoriously finicky. I think I could manage to get it working by doing unions two by two breps, but I decide that spending the time in documentation is more worth it at this point.
The final result is something that I'm satisfied with at this point:
You can download the .gh file here.
Solidworks
We didn't get a class on it, but it seems quite interchangeable with Fusion.
2D Software
For 2D software I used Illustrator, since I learned it many years ago. It's slick and works great. I've tried Inkscape a few times, but it always felt like a struggle.
I made a personal logo that I'll be cutting in vinyl in the computer-controlled week.
Yo can find the vector file for the logo here
References
- MODE lab Grasshopper primer: amazing resource. PDF version, 150 pages
- Rhino Developer Grasshopper guides.