Extend face and join to existing solid

Starting with two solids - in the simplified test case, a “band” and a cylinder - I need to extend one face of the cylinder until it meets the band, and then join the band, the extension and the cylinder together as one solid. I have been banging my head against this one for at least a couple of hours. It’s extra frustrating that doing something like this in fusion is utterly trivial. These “should be trivial but seem really hard” problems are a regular occurrence for me with grasshopper, but I remain optimistic and determined to learn and tame the grasshopper beast. Maybe there’s a plugin that does this as a single “extend face to brep” component, or I’ve missed the obvious trivial way of doing it with native components. Note that in the real-world scenario, the band may be slightly more complex and have edges crossing the projected curve from the cylinder. However, it is safe to assume that the projection of the cylinder will always form a single closed curve on the opposing outer surface of the band. Thanks.

image


ProjectAndJoinToSolidProblem1.gh (18.8 KB)

I would scale the cylinder non-uniformly and then subtract the guitar shape from it. Sort the remaining parts and add the largest to the guitar shape.

I have been banging my head against this one for at least a couple of hours. It’s extra frustrating that doing something like this in fusion is utterly trivial. These “should be trivial but seem really hard” problems are a regular occurrence for me with grasshopper

It’s just the nature of grasshopper. I don’t see it as a cad replacement (although you can build a lot with it), for me it functions more like a tool that does specific jobs - I do the bulk of my modelling with traditional cad and use grasshopper where needed. A lot of things you’d do in cad with a few clicks will often require a bunch of nodes in GH to get right.

This is a trivialized example to show the problem. In the real use case, the object to be extended is more complex, but can be extended from a single face. Scaling the actual object is not possible. Also in the real use case there are multiple cylinder-like objects that must connect to the “guitar shape” object (aka band). While over-extending the cylinder face (by some amount which is a bit difficult to work out and may break the sorting order idea where the curvature of the band is significant), and then cutting etc, might work, it seems fragile. I’d really like to work out how to do this more cleanly. I currently got stuck with joining the loft in the example to the band. I also tried to make the loft into a solid first, but I also got stuck here as this would need to include a trimmed part of the band surface on one end of the loft which I could not work out how to do.

The relevant part of my response is the sorting. Another approach would be to create a tween surface of the band which can be used to split the extended shape.

You may want to post an example which is closer to the real situation…

It’s just the nature of grasshopper. I don’t see it as a cad replacement (although you can build a lot with it), for me it functions more like a tool that does specific jobs - I do the bulk of my modelling with traditional cad and use grasshopper where needed. A lot of things you’d do in cad with a few clicks will often require a bunch of nodes in GH to get right.

I agree, and indeed I do most of my technical modelling in fusion. However, I really need the power of grasshopper here to automate a complex task that would be a world of pain in fusion (and includes large complex organic surfaces that would likely break fusion). So I’m happy to take some pain in grasshopper to get it working right. The example given here is a very simplified abstraction of the real-world use case.

And the result is going to be 3D printed?

(Just used a random shape). Isolate the face, extrude along a vector toward your target shape and trim the extrusion back + union everything together.


extr.gh (73.6 KB)

I must be misunderstanding what the problem is, because I do this sort of thing all the time like this:

I added the fillet because that’s just what I usually do for situations like this.

ProjectAndJoinToSolidProblem1-bb1.gh (24.4 KB)

1 Like

That’s great, thanks. The trick I didn’t know is that Solid Union can accept open breps. As per your example, Cap Holes only caps planar holes, and so I though the result was not suitable to feed to Solid Union, and I didn’t even try. Instead I got stuck trying to cap the non-planar end of the loft with a surface trimmed from the band.

Personally, I prefer this solution to those methods which involve extruding into or beyond the target brep, then using the target brep as a cutting tool. While this approach works fine in many circumstances, in my experience it can be difficult to determine how far to extrude when the target object has less a less predictable form, and extruding with a lot of extra distance sometimes has unexpected side effects. I’ve had complex designs break when some input was changed elsewhere and some assumption in the over-extrude-cut-and-join code no longer holds true.