Solid Intersection not finding all intersections

So why won’t this union with the main solid? It won’t union when baked into rhino either. I’m going to see if it will combine in solidworks.

How can there be a sold union when the “X” shapes don’t touch each other?

So why won’t this union with the main solid?

Isn’t the main a surface? A surface is not a solid.

Sorry I thought I included the solid. I just pulled that surface off of the solid for the pattern.

Lets see if I internalized all of the data.

Boolean (341.6 KB)

You missed one:


You might need to flatten the input to SUnion?

Of course I did.

EDIT: that Mirror shouldn’t be attached for this. It’s for the entire part, which I cut out.
I screwed that up and cut out the wrong half. Sorry, here’s the right file.

Boolean (396.4 KB)

You didn’t flatten the input to SUnion as suggested, but even when I do, SUnion fails. Inspection indicates that the original surface used for SrfMorph is not quite identical with that “same” surface in your final union. Even if it were, the “X” shapes need to intersect that final Geo shape unambiguously - meaning they need to be slightly “buried” into it. You might want to study the code referenced in the old forum thread to see how that was done. See the yellow group below and note the expression on the Dom ‘A’ input is “-x” (negative height):

Ok, I had a feeling that might be the case.

I’ll try offsetting the original surface used for srf morph into the shape and adjust based on that.

That should have worked, after investigating I found that the solid imported from solidworks has some open edges.

One of the experiments I tried yesterday was to bypass the complex Geo shape connected to SUnion and create a solid from the surface used by SrfMorp, but that failed as well. That tells me that the “X” shapes might be the problem here? Too complex, too many control points, etc. Another interesting test is to try BBX instead of SUnion and notice that some of the curves returned are incomplete.

By the way, for discussion purposes, it would be better to assign more meaningful and unique identifiers to your geometry params instead of Srf, Brep and Geo.

This version starts with my version ‘b’ from yesterday, not your latest. There are various efforts to make SUnion successful, which I will explain, but they all fail.

  • The white group rebuilds the X-shape to have fewer control points.
  • The cyan group was intended to cull one of the ‘X’ shapes that was entirely within the Geo shape and not being trimmed away like the others. Other changes I made later appear to make this step pointless now.
  • The yellow group culls three very tiny remnants of the trimmed ‘X’ shapes.
  • The orange “thicken” group creates a solid from the surface used by SrfMorp to use for SUnion instead of the more complex tray shape.

The BBX indicates the only remaining path forward that I can see. The resulting curves are better than what I saw before “burying” the ‘X’ shapes deeper into the solid but if you look at the text panel output, you can see the data tree is fragmented and curves are not all “clean”. What is happening is that the buried ‘X’ shapes are poking through (or are co-planar with) the edges of the solid. This is unwanted, irrelevant complexity that might be causing SUnion failure?

Tedious, isn’t it? Maybe the shortest ‘X’ shapes at the bottom are too short? I don’t know. (411.7 KB)

Interesting. You’re using a few tools I’ve never used before. I’ll dig in today and learn what they’re doing. After the version you’re using here is what I’ve done:

  1. Spaced out the pattern
  2. Reduced it from 10x10 to 8x8 and increased the Height minimum from .001 to .005
  3. Moved it farther away from the surface edge

I will implement the Yellow group, and the white group (to rebuid the x shape). I noticed this morning that the main solid i’m using (imported STEP from solidworks) has a few naked edges so I’m rebuilding it to make it solid.

I will try and upload this later today. Thank you so much for your help.

It worked. I couldn’t union it in Grasshopper, but I could bake it and union it in Rhino, so I guess that’s a win?

So if I wanted to do a similar pattern to this, but one where it faded into a larger height and then back out again (bell curve). Is the easiest way to do this by just mirroring half of the pattern?

I would use Graph Mapper (deep purple group): (411.2 KB)

The domain is exaggerated to make it clearer.