Today marks my first day making a post with a question of my own. I am a total beginner with Grasshopper, so if my question ends up being very basic, I hope other novice users out there might stand to gain something from it too
I am trying to make a simple cylindrical stool with variable diameters at each end and in the centre. Crucially, the chair must have a wall thickness of 10mm, though I’ve made it adjustable in the script for good measure
So far, I’ve managed to achieve the basic shape using Pipe Variable. From this, I can simply bake the geometry and finish the rest of the geometry in Rhino by using Cap, then Shell
However, I would like the script to handle this part too. This is where I’ve hit my first roadblock. There seems to be no “Shell” command within Grasshopper itself. Another trick I tried was using offset surface within Grasshopper to get the required 10mm thickness, but this leaves me without a capped end
Summary: Within Grasshopper, Cap and Shell the geometry so I can bake a stool with 10mm wall thickness
Please see the script and images attached. Thank you in advance for any advice
(I have another question for this project too, but I figured best one part at a time. I may follow up with further questions but I’ll see how I get along first)
@Ruri
I suspect the Pufferfish component is just a wrapper for the RhinoCommon method.
If you do not have the plugin, you can use it through e.g. python directly.
for this type of shape (basically two untrimmed extrusions with planar ends) with no plugins or coding, you need to create surfaces between the top and bottom edges and then join all surfaces together.
Guys, I am going to go out on a limb here, and assume that a stool has a seat?
@Ruri Unfortunately, Rhino, being a surface modeller, does not have any real sense of what a solid is. If your objective was to create a solid with a void inside, Rhino can’t do that. At best, you can trick it into making the solid by creating internal walls as below:
I am not sure that is helpful here, but thought it was related.
You can achieve void inside closed brep without cutting it using brep regions.
Using merge breps method (different from append) and brep regions rhino understands what region is finite and what infinite, and allows to choose what regions to leave
Oh, wow. So it is possible? The native boolean solid operations in Grasshopper will not work unless the solids actually intersect. So you cannot use Solid Difference to create a void inside a Brep.
I am guessing I do not understand what a regions are.
It is possible, but many operations with such brep will result it losing its properties, or just fail. For example, if you use push/pull on such brep in rhino, it will leave only the brep you’re trying to edit. Or boolean union will not do anything with it. Because many methods expect brep faces to be connected by edges. Also I am not sure what happens with brep loops in such cases, which many methods use.
so it may be useful only in some cases
I can not think of any good examples right away honestly, maybe pull point to brep.. But append will work with that just fine.
See, I am mostly informed by playing around with the Grasshopper components, and the boolean operations for regions under the Shape panel work similarly to the solid boolean operations, only that they work with curves instead of Breps and similarly do not allow for cut outs. This left me quite uniformed. It would make sense that a “region” is part of some other object.
If regioned Breps are disadvantaged to manipulation, would it be fair to say you can use them as long as they are the last operation you do?
I found these methods in rhino common just a week ago, so I am not the wise one here. I am experimenting with it from time to time, maybe i will add to this thread in the future after some more tests. I think it is fine to use them as last operation, some cad software unlike rhino work with such geometry.
but some components seem to work too..
here’s contour outputing correct data structure for such brep. But again, why would you want to use it instead of just giving it a list of breps?
who knows, but from my experience, sometimes I find myself in such difficult situations, that only shit like that actually solves the problem just it time
Alot of CAD software works with such geometry. It is a source of confusion for many beginners that they cannot perform solid boolean operations on BReps as they intuitively think they could.
… struggling to find documentation on how to work with regions.
in RC in boolen operations methods manifoldOnly boolean exists, which sugests there is possibility of actually performing boolean operations on such breps
NO it does not work i checked ;C
AND
there seems to be difference from Merged brep and its Region
Look at the difference in boolean difference:
so for boolean difference it is possible to use regions, as long as your cutting shapes intersects all the internal voids. When it does not intersect the void, it will be removed from the brep
There are two ways to connect unconnected in any way breps (as join mesh for meshes) in rhino of which i know of -
Append (we have that in pufferfish) puts all info about breps into one brep container, (so it just displays as one brep even though there’s multiple) without actually merging geometry, which allows to use operations such as Brep Closest Point on multiple breps at the same time, which is very handy for complex data trees. That is why, unlike merge, append does not take computation time at all.
and
Merge, which allows to create non manifold surfaces. As I understand it works like join when edges are close together, allowing more than 2 surfaces to share one edge (non manifold), that is why method has tolerance, unlike append. It just joins everything it can join, and puts all edges and vertices in one brep.
which i guess (i am not sure) would work with append but not with merge.
I would love if some very smart people @DanielPiker@laurent_delrieu@wim we have on that forum gave us their comments on that.
also one good example of using such geo:
I went ahead and installed Pufferfish as it seems to have lots of useful features (that I too am suprised are not part of stock Grasshopper, no matter)
After a little experimenting, I got the basic shape I was after in one fell swoop with Pufferfish Shell. Cap on top for the seat, open face on the bottom and a 10mm wall thickness
The next step will be to add a lattice structure on the underside of the seat to give it a little strength, but I’ll try and get that much myself before I ask more questions
As long as the BRep is open, you can create a shell. Which is why the Removal input of Pufferfish’s Shell component exists; to turn a closed Brep into an open one.
If it is important that your script works only with native Grasshopper components, you can still create a shell. A construction method that starts with the form’s cross-section profile is the way forward then.