Nested coaxial pipes with lumen intersection

I was on a long plane ride recently, and passed quickly several hours trying to model a small pipe inside an larger one, where one end of the small one exits through the wall of the large one:

I was able kludge together something that I could print, and it might work for testing an idea I have – but I suspect there’s a much better way to do this (I understand the basic definitions of surface vs brep vs mesh, but am not well versed in their strengths / pitfalls). Here’s my sketch (using Flexibility’s brep to mesh and Weaverbird’s mesh thicken. pipe X loft with thickness2b.gh (32.3 KB)

You can achieve it with OffsetBrep + SolidUnion+SolidDifference, and for your reference

SolidUnion Grasshopper Online Document
SolidDifference Grasshopper Online Document
OffsetBrep https://developer.rhino3d.com/api/rhinocommon/rhino.geometry.brep/createoffsetbrep

OffsetBrep.gh (18.1 KB)

First practical application of Klein bottle in human history? :laughing:

Thanks Jessesn! Your script enabled me to get what I wanted – no meshes, and the ability to cleanly fillet the edges both inside and outside of the pipe intersection. However, at least for me, it opened up a can of worms in terms of understanding solid Booleans. Your script opened but showed no geometry because the solid union failed (“Boolean Union set is empty”). I tried many ways to figure out why, but failed. In particular, I don’t understand the output of the solid diff that precedes the union:

Weirdly (to me), during my poking and prodding, I tried using solid intersection instead – and voila!

Absolutely no idea why.

Thanks also for the Python routine, which gives me a good template for using RhinoCommon functions (it looks like Sasquatch’s brep offset does exactly this). I’m marking your reply as the solution, but would dearly love an explanation for my findings!

… because @jessesn is likely using Rhino 8 or 9 WIP while you’re still on 7…

I made this GH file in Rhino 8, and here is a Rhino 7 version for your reference.


OffsetBrepV7.gh (20.4 KB)

BTW, Please note that there is slef-intersection in the creation of inner pipe in your GH file. In the GH file I provide, I have slight adjusted the position of one circle to eliminate the possibility of self-intersecting surfade. Appologies for not informing you earlier.

Super helpful and instructive on many levels – thank you again, @Jessesn !

I haven’t upgraded to R8 yet – leery of bugs / upsetting reliable routines that will cost me time to update. I’ve seen this discussed many times before (but not lately). Perhaps it’s improved to the point where I should make the jump?

Sure, you also can experience Rhino 8 with all features enabled for 90 days before purchasing. For details, please visit the url below,