Project to plane, creating solid

I’m working on some mold making and need to project a brep onto a plane, but creating a solid between the brep’s countours and the plane. In something like Solidiworks or Onshape, I would extrude the projection with “up to next” to fill in the space under the brep. But for the life of me I can’t figure it in Grasshopper.

The sample pics and file shows that I may have any number of breps and planes which are not necessarily in the same orientation.

Help please?

project-and-fill.gh (404.1 KB)

project-and-fill-prog

1 Like

that’s a nice tricky question!

I honestly have no idea, played around for a like 20 minutes without finding a clue on how to do it :slight_smile:

then joined the two halves together and came out with this:

and then this:

project-and-fill_Re.gh (796.4 KB)

I’m not happy at all with this :smiley: it won’t work with any shape that do not have holes lying directly on one of its own bounding_box_faces… but I’m following this conversation because for sure someone will come up with something incredibly smart <3

1 Like

Thank you! It’s progress, but won’t solve all cases as I add more parts to the mold, and as you say, when holes aren’t parallel to a bounding box face.

My current idea is to create solid extrude of the projection, up past the brep, and then use the brep to cut that extrusion. But it’s not working great because it makes a lot of pieces and it’s hard to determine which ones are on the correct side. This has to be doable, I think?

1 Like

Is it something like this?
project-and-fill.gh (424.0 KB)

I’m not proud either - too many tweaks and naked edges are produced eventually - I think it’s absolute trash! :smiley:

Will you also be projecting these holes that aren’t parallel to a bounding box face?

Related to the previous question, how is this handled when a part of the model isn’t parallel to the projection plane?

Do you have an image of these other cases?

I agree with Inno this is interesting/tricky - in fact I don’t think I’m following correctly haha.

1 Like

Assuming you’re ok with curves being created from a mesh. Might want to try running the mesh through one of weaverbird subdivisions to smooth it out but actually just plugging the brep straight in doesn’t look too bad.

sort2.gh (209.5 KB)

1 Like

Is it something like this?

It’s that, but with the whole half-cup filled solid. Imagine you took that image and filled it like a cup, right to the brim so the outside filet remains but top is flush from the top of the fillet to the wall dividing the cup (and also the handle would be completely solid).

Will you also be projecting these holes that aren’t parallel to a bounding box face?

Yes – the idea is that the master mold cannot have undercuts, so any geometry that would result in an undercut (like the filet on the inside of the cup above) is just filled in. I’ll try to post an image with more cases later today.

Thanks for exploring it!

1 Like

Thank you for working on it! I don’t mind bouncing to mesh; these will be printed in plastic, used to make a plaster mold, and then slipcast in clay… so my tolerances are pretty big.

FWIW, this part has one hole in the profile for the handle, but other designs might have zero or 2+ holes, so I’ve hit dead ends with solutions that assume one cutout and subtract it from a solid outline.

Here’s what I’m trying for, importing into Onshape and using extrude / up to part:

1 Like

Shamelessly bumping this post-holiday since I’m still spending hours on this with no luck unless I special case everything for just this one design. I’ve tried approaches using meshes and mesh difference, various solids and boolean operations, extrusions from the projected profile curve… and no luck. Any clever ideas?

tl;dr: I need to project a closed brep onto a plane, creating a single solid closed brep that includes all of the space “inside” the projection.

1 Like

hmmm :thinking: getting more coffee, brb… :coffee:

I’m not sure but sounds like smashing and creating overlapping 3D data onto a 2D plane – which doesn’t sound good to me…

I’ve been keeping my eye on this thread cause this sounds like a good example of real world ‘constraint’ based modeling etc.

ahh yes I remember those days of doing lots of that ability. I think Rhino should learn something from real world constraint based parametrics. GH skips these fundamentals alot imo, and goes off into the abyss.

It’s as if GH took off in a rocket ship, but teleported first into orbit and skipped the basics lol.

There’s a parallel universe where the GH ppl think they know what parametric modeling is, and the regular 3D solid modeling folks actually think they know too, but they’re much much different – It’s pretty weird dichotomy imo :coffee:

Still waiting for GH to make a ‘helix’ component :relieved:

Seems like there’s a thread recently that discussed the ‘upto next’ strategy for ‘fillets’ …

I think this was the other thread that reminded me of this ‘upto’ ‘next’ modeling strategy:

The words that were used were ‘extend’ but some reason my neurocortex puts them together, ‘extend’ ‘upto’ ‘next’ :smiley:

Yeah this is jus smooshing the data onto the plane I think:

I recommend looking at this from a ‘geometrical-constraint’ standpoint. There’s definitely lots of value in these type(s) of tool(s).

Devs should add to their pile.

Bascially these smooshed ‘breps’ are useless being all smooshed:

I’ve dealt with similar dilemma. I think it lead me to using ‘mesh outline’.


Silhouette is similar but probably too messy.

‘brep outline’ would prob be better idea, but might not exist yet.

too bad there’s not a mesh outline component

I was thinking to maybe do an intersection at the plane between the two breps, but I think my CPU exploded lol

This is slightly related imo maybe:

It would probably help to know where the original brep geo is derived from imo.

Also, not sure what you’re after. It seems like you want to automate the mold making process for any given geometry, which is easier said than done.

But it’s not that hard to do it manually either. While each different design may require different custom attention.

There’s more than one way to make a mold for the same object.

Unfortunately I found signs of a possible pattern of anomalies:

I was able to ignore the anomalies and extract a full upper profile to make a planar srf ‘plug’.

It’s a good indication that that upper curve is really close to being at the apex all the way around the brim edge of the cup – per say.

Not sure if this illustrates what the geometry is you want:


bbl

Wow, thank you for the thorough and varied thoughts! A couple of notes:

It seems like you want to automate the mold making process for any given geometry, which is easier said than done.

Oh yeah, that is far far beyond my ability or aspiration. My goal is to be able to take one portion of a multi-part mold and produce the mold positive. All of the logic about how to split a part is upstream; in this example I know that half-mug brep should be laying sliced-side down and filled in solid, and that’s my mold positive. I just can’t get it to go!

I do want that part to be automated for geometries with zero, one, and two-plus holes, but that seems reasonable, as easy as it is to do in Solidworks / Onshape (granted different tools and all that).

too bad there’s not a mesh outline component

Ah, but there is Mesh Shadow:

That shadow outline (or a boundary surface from it), extruded up to the brep… that’s my holy grail. Here’s one that has the pieces I need, but thwarted by solid difference (which I know is notoriously finicky):

project-and-fill2.gh (414.5 KB)

2 Likes

Oh snap! :smiley: interesting :face_with_monocle: :thinking: :thought_balloon:

I’ll keep this in mind, although I think there’s a few things ‘up stream’ that might actually be necessary ‘down stream’ – like parting line ‘ribbon’ for example.

https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/ribbon.htm#(null)

I did an attempt using mesh shadow and discarded it because it produces a polyline whereas the intersection with nurbs objects would be smoother, true to the object(s)? Curves instead of polylines. But then maybe it won’t matter if you’ll end up meshing the mold object?

1 Like

Indeed.

I was searching for the grasshopper primer, cause I was going to study something but it took me so long to find it I forgot what I was looking for :sweat_smile:

Maybe it was the mesh shadow or the brep solid boolean difference or something idk lol

I guess one of the things I was wondering was which one subtracts, and which one is subtracted from, A or B? … for ‘solid diff’.

I been trying to get it too, idk why it’s not working lol :sweat_smile: Maybe GH doesn’t like the zero distance around the profile. We might want to add a ‘ribbon’ first…

Now I wonder if there’s a ribbon component lol. :face_with_monocle:

Maybe the mesh shadow polylines are adding to the issue too idk.

Wish there was a brep outline shadow component haha.

We might want to try one half at a time, cause the component might not like the multiple A’s n’ B’s?

there is also the Eye of Mordor variation, where you put a point and delete all the faces the point can “see”

then join whatever remains and patch the holes (at this point the best would be to shrinkwrap the “remains” of the brep + the patch?)

the_Eye_of_Mordor.gh (803.2 KB)

still, this works “well” on this shape just because the top rim has a pretty neat and nice boundary in the middle… I’m thinking if this thing could be used on very refined meshes using face centers (and a ton of meshrays)

Multiple_Eyes_of_Mordor.gh (2.3 MB)

I just keep coming back to this post because it’s fascinating, and also it’s a problem that needs be be solved :slight_smile:

2 Likes


project-and-fill2_emod.gh (211.9 KB)

I thought I was getting close but my lack of experience in GH is limiting my ability to do stuff :sweat_smile:

need someone to deconstruct the brep or something idk lol’s

I’m trying to figure out how to close this curve, but seems like it’s not joining etc:


Maybe I’ll just split the brep first…bbl

Thanks for continuing creative ideas! I’m also stuck on using the brep, especially considering that the rim of the mug might be non-planar (which would suck to drink out of, but the mug form might become a pitcher, etc).

I’ve made progress using meshes – here’s an approach that meshes the brep, then deconstructs the mesh and checks each vertex to see if it is occluded “above” by another portion of the mesh. If so, that vertex gets moved to the floor of the mold. Then the mesh is rebuilt.

project-and-fill-mesh.gh (417.9 KB)

Seems pretty good, with a few odd artifacts. But maybe shrinkwrap or mesh smoothing is the next step.

EDIT: argh, the mesh has problems, hidden in the screenshot by having too many components showing preview. Solved with Align Vertices. Seems like the way to do it.

1 Like

Not sure exactly what you’re after but this mold for a cup will probably have to be at least three pieces, maybe even four pieces – something like an ‘inner core’ and two ‘outer wraps’. The outer wraps would be ‘negatives’ and inner core would be a ‘positive’. Or maybe all negatives depending on the relativity of the description if however concaved or convexed.

I forgot about this problem. Probably why the curves I’m trying to use are acting funny. I’ll have to find those puny ones and add them into my algo.

yep lol

been wondering why they weren’t joining :rofl:

Think I finally got them all lol

ok now the closed crv component works :sweat_smile:

k got it



open brep though

project-and-fill2_emod.gh (220.2 KB)

This will be a plaster mold for slipcasting, so there isn’t necessarily a piece to form the inner shape of the mug. Thickness is controlled by how long you leave the slip in. So I think this is a two-part mold for now, though the flat bottom is not great. Moving to a third piece to enable a proper foot is the next step :slight_smile:

Will download and try your latest… thanks!

1 Like