I have a question about the workflow that is used to create parametric designs in grasshopper.
I am getting better at creating definitions in grasshopper, but I wonder how to approach more complex designs.
I created this design (it is an ice cream cone holder I made for a friend) using a combination of grasshopper and Rhino modelling (grasshopper for the delausnay structure, traditional modelling for the structure).
Now, after lasercutting and testing it, I need to make some changes (expecting to have further iterations, like all prototyping, I guess) which means adjusting some parameters, baking, recreating the structure…It takes time, is quite error-prone and not very satisfying work :).
Wat would be your design strategy for such projects? Do you create everything in grasshopper so it is fully parametric (seems fairly complex to me at this point) ? GH is becoming more natural to me, is it reasonable to think that with some further learning I’ll be able to create such designs as fast in GH as with traditional modelling (with the added benefit of a parametric model)? What is your experience?
Or are there other approaches to streamline this? Woudl it be better to create the (parametric) structure in other software (freecad comes to mind? Would need to learn that software though) and add the surface geometries in GH afterwards?
Thank for sharing your insights :).
I would say that it is not a one size fits all situation. I use grasshopper to create certain parts of a model but still use Rhino for a good chunk of my modeling. So I prefer a combination of Rh + Gh. The thought of making every part parametric seems a little daunting to me. So I do things like say the trusses parametrically. Maybe that will change in the future. But as you are saying, if you are doing alot of the things like you picture above maybe it would be better to use more gh.
You may want to look into something like Adaptive Parts where you can change that section of the model any time. Never had it but it appeals to me. Maybe someday.
Anywho there is my two cents.
Hi, thanks for your feedback! I looked into Adaptive Parts, nice plugin, but I don’t really see the difference with creating a GH definition…Isn’t this tool aimed at Rhino designers without grasshopper knowledge? Seems like its functionality is similar to GH Remote panel (but more advanced).
If you practice GH everyday, converting existing Rhino modeling workflow to grasshopper, you will get faster. Maybe you won’t be as fast as modeling in Rhino, but you will be a better programmer.
Grasshopper allows you to flexibility of saving definitions that you can insert into other definitions to help speedup design time. You can also export common definitions to a cluster, create a userobject from it, then call that functionality whenever you need it, again, speeding up design time.
I personally will start working in Rhino to discover or identify the specific workflow I need if the design is a new concept, then transfer the workflow to Grasshopper. If I already know the workflow in GH, I will just straight there.
Most of my designs today are completely written in grasshopper by the time I create my final output.
The strategy depends a lot on which aspects of your model you need to be changeable. How to figure out a strategy? Think through the geometry of the project’s parts, and how they depend on each other, and what parameters you need to be changeable.
In this case, what you’ve created is four simple extrusions that are only dependent on each other in one way: the notch/tab joint.
Aside from that dependency, your project is four rectangular exterior profile cuts with complex interior profile cuts.
So start with making four rectangles in grasshopper. Then add the tabs/notches to them, making the tabs and notches dependent on each other. Then create your parametric pattern within the rectangles. Then extrude. This is an oversimplification, but you get the idea.
One other thing about planning a project: take note of what parts of it you don’t know how to do in grasshopper at all, and do that part first. Try, fail, get on this forum and ask specific questions about where your stuck and for tips on which plugins might help.
Thank you for your insights!
Great to read that it is not a bad idea to go down the road of trying to create this geometry using only GH. I know a bit about programming (as a hobbyist) and it took a while to grasp the logic of GH, but now it starts to feel more natural to me…In that sense the reusability of code seems a great way to speed up designs…
I’ve started to recreate this project using GH only. As Max suggested I started with the difficult/new parts, and I already bumped into something…And asked some advice on this forum !
GH ‘code readabilty’ is going to be a thing though…I quickly end up with chaotic definitions which are difficult to sort out when I open them again a few weeks later…The clusters might be a good solution for that as well…
Wat would be your design strategy for such projects? Do you create everything in grasshopper so it is fully parametric
Depends on the project but almost everything is designed in another (parametric) cad package. I then bring those files into Rhino (usually at STEP) and do what I need to in Grasshopper. Bake the geometry, export as STEP and import into the original program where the part was designed. So all changes to the mechanics and fit of the part are handled by the original cad software and visual flourishes are handled by grasshopper. That example of yours I just couldn’t bothered to create those joints in GH when they can be modelled really quickly with regular CAD. Though obviously if a bunch of iterations on size where required GH might make more sense, but I never need to create stuff like that.
Send me a copy of your definition when you have some time. I will organize it the way I do my definitions, and see if that works for you as a model.
When you’re new to this, don’t cluster. It can be more confusing because if you change your input geometry or parameters and the cluster fails as a result, you’ll have a harder time realizing that’s where the failure is.
Group. Group components by the task they accomplish and label the group with the task that it accomplishes. This will help you avoid feeling overwhelmed when you come back to your file after being busy with something else for a few weeks.
I still do this, and only use clusters when a simple task that I totally understand requires a clunky and awkward number of components.
My way to approach designs in GH is quite similar to @ftzuk. I usually design parts (or even just parts of parts) in another parametric CAD software and then puzzle them together in GH. I found this to be the fastest way, especially if your basic design consists of basic shapes (boxes, cylinders, etc.).
Even if you have to import/export STEPs it still is faster than designing in RH with lots of iterations. To do this I usually use the Pancake plugin, which provides some functionality for automatic imports. If you have a clean file structure you can keep most the parametric structure from parametric CAD and from GH.
Additionally, I can only support what @Max3 says: Use groups and label them. Document the code for yourself. Avoid spaghetti code at all costs and try to keep all connections as straight as possible. Use plugins like Telepathy to clean up your code. Use Pancake for emergency saves. Use scribbles with the biggest font size so you can still read them when you zoom out. And whenever you try to do complex operations like a boolean difference with 1000 BREPs: Try it with 5 BREPs first, to see if you would run into vast calculation times. Nothing is more frustrating than GH frozen for ages and you come up with an idea for a faster solution which you cannot try out.
That would be really great…I put a file in attachment! Thanks!
Finger Joint 2.gh (19.6 KB)
This is just one example of how you could better organize your definitions.
Group related components based off their inputs, related processes and outputs.
Try to create input containers at the beginning of the groups with relays or specific parameter nodes.
And using Telepathy plugin will help with this style as well.
Install and use SnappingGecko plugin to help line up your wires and components.
Finger Joint 2.gh (18.0 KB)
I would make a project like this one 99% in grasshopper, starting with one box and 3 cylinders referenced from rhino. Sometimes mixed workflow using geometry pipeline+elefront named baking is very useful.
Particularly for lasercutting or CNC, Elefront (or Human plugin) baking geometry with color can be very handy because it allows you to use a different color for each machining or laser operation. And that means you can use the selcolor command in RhinoCAM or the equivalent in Fusion or whatever CAM program you’re using. For example, make laser engraving lines blue and through-cut lines red. Instantly visible, easy to select, helps a lot with idiot-proofing a digital fabrication process.
thanks again for sharing your insights, very much appreciated.
I managed to build the definition in GH:
Very happy with the result .
Some thoughts to share:
- plugins like telepathy, snappingecko are great. They really make it all more readable, no fooling around with connectors,…
- Clusters work quite well, too. They at least allow a more orderly definition, similar to using user-defined functions in programming.
- It took me a loooot of time. I’m still learning, for sure, but I really doubt I will ever be faster in GH than using CAD + GH, as suggested by @ftzuk and @henry.langner. I’m looking into Alibre Atom and Freecad, trying out both (suggestions?) and it’s working great. Each software has it strenghts, I guess and Rhino/GH is working so well for many other aspects of modelling, so…