Intersection of planar shapes

I need to get the intersection of planar shapes.
Easier said than done.
If these planar shapes are each composed of a single curve, “Region Intersect” works fine, but if the shapes have “Holes” (inner boundaries), then all goes haywire.
You would be tempted to make planar surfaces and to intersect them with a “Solid Intersection”, but then you get stupid results like Unions instead of Intersections.

Maybe there’s a plugin tool somewhere that does a good job at this rather basic task ?
230223_PROG_Planar shape intersection.gh (40.7 KB)

Hello,

Solid operations only work with closed Breps.
Extruding those breps 1mm seems to give the correct result ?

Yes, but what a hassle !
Then you need to add a bunch of code to retrieve the shape you need : explode the resulting Brep, find the two large faces, then figure out which one is on the initial plane of your shapes.

This is completely silly…

Moreover, if solid operations are not supposed to work with non-closed Breps, why does it not throw an error message instead of doing crazy shit ?

I used Brep | Plane to avoid that.

Surface Split could be another way…

SInt works if your extrude the surfaces first.


Planar shape intersection _2023Feb23a.gh (37.6 KB)

Hi Joseph,

Thanks for the suggestion.
The thing is, I know there’s a bunch of workarounds, and I’ll resort to them if there’s no smarter way I’m trying to make an afficient definition as I need to perform shitloads of such operations…

Well, OK, but still : lousy workarounds for what should be a mundane planar operation.

I must admit that this simple case with circles on XY plane not working is quite perplexing…

When you whine, David listens! Sometimes. :wink: Cluster this?


Planar shape intersection _2023Feb23b.gh (42.3 KB)

He he…
Guess what ? Blocks can now be referenced with native components in the WIP’s GH1 !
Only took 10 years of crying, begging, making a total arse of myself…

Thanks for your code snippet :wink:

1 Like

… and now that we’re dealing with GH"s booleans, we get all the ususal miscarriages…
Amusingly enough, if you bake the Breps and perform the boolean intersection in Rhino, it works.
Really fed up wasting my time on stuff like that.
230223_PROG_GH Boolean fails again.gh (20.9 KB)

Yeah because one Brep from set B doesn’t touch the other brep from set A… I guess the component doesn’t detect that, so a Brep|Brep is needed first to remove those cases…

230223_PROG_GH Boolean fails again.gh (28.5 KB)

Well that doesn’t bother Rhino’s _BooleanIntersection

Your filtering is kind of neat, by the way, thanks !

The RhinoCommon method also works :man_facepalming:

230223_PROG_GH Boolean fails again.gh (30.8 KB)

That’s a whole lot of C# code to do what my last post does with standard components!

I realized I needed to find the intersection between 3 sets of curves.
I ended up using a robust intersection tool from the “Clipper” plugin called “Polyline boolean”.

1 Like

The piece is finished.

Here’s a little album showing key parts of the process

8 Likes

That’s a very nicely done shape - congrats. Would it be fair to say it’s an example of 5-axis machining? Or is there another term for what you did?

What Kuka model did you use? And which CAM software?

Hi Birk,

Most typically, “5 axis-machining” refers to CNCs with 3 linear axis for the tool and 2 rotating axis for the stock support, or similar combinations.
In the case of my setup, the robot has 6 rotating axis for the tool, and the stock stands on a turntable, which makes a total of 7 rotating axis.
For this sculpture, I was going for a full synchronus “5 axis” milling, but decided otherwise because of the difficulty of holding the part properly and avoid vibrations.
I finally chose a rather basic strategy which is sequential 3 axis milling (multiple 3 axis passes, each having a different tool orientation).

My robot is a KR210 R3100 Ultra with a 8KW HSD ES951 spindle.
I use Grasshopper+KUKA|prc for the offline programming, plus FUSION 360.

1 Like

Great info - thanks. The Kuka certainly does complicate things, and I can see how it has become such a popular device given all it’s degrees of freedom. I’m not sure the old nomenclature of 3, 4, or 5 axis machining makes sense with this type of machine. But I guess that doesn’t matter given the kinds of shapes it can make.

1 Like