Closed Curve Silhouette of a Brep

I’ve got a clunky, slow, and somewhat imprecise method for creating a single closed curve silhouette of a brep. The only good thing about it is that it’s reliable.

My question is: is there a faster and/or more precise way to achieve this?

Here is my script. Very simple. Very processor intensive. Works as long as there are no holes that go all the way through the Brep.
Closed Curve Silhouette.gh (1.4 MB)

Method’s I’ve tried that don’t work at all or are very unreliable:

  • Make2d in Grasshopper, followed by projecting curves a plane and attempting to join them and split a surface with them.
  • Draft angle analysis in Rhino, followed by project to Cplane, and curve boolean
  • Silhouette in Rhino, followed by project to Cplane and curve boolean.

The above methods all fail because the curves each of these processes create end up overlapping each other and/or having gaps between each other. Sometimes, when they do work, they produce curves that need to be rebuilt in order to be able to be offset without glitchy results.

So is there a better way? Or is my brute force method the only way that will reliably create a closed curve silhouette? Any chance we’ll see improvements to the make2d, silhouette or draft angle analysis curve commands in Rhino 8?

How about Mesh Shadow?

2 Likes

woah. thanks.

way faster, produces hole silhouettes, and it’s precise enough for most of my needs.

Closed Curve Silhouette Re.gh (17.0 KB)

I thought I could use “Mesh shadow” reliably, but that’s not the case.

it’s still working for me. can you post your definition? I’ve had a few situations where it was buggy with the simple mesh settings so I started using the detailed mesh settings component, using the minimum edge length, max edge length and aspect ratio settings to create a “tolerance” of sorts.

Strangely, some BREPs within GH projet badly, but if baked to Rhino and referenced back in GH, it works :confused:


Mesh Outline issue.3dm (195.2 KB)
Mesh Outline issue.gh (47.6 KB)

I wonder exactly what mesh GH is using in both cases…