Split solids; from solid to mitered parts

Hi everyone,

I`m working on a project to make from this solid, parts for interior production.


In Rhino my first workfow was: Shell, explode, and then Loft surfaces in Grasshopper. However that ony works if I select the surfaces one by one. (a lot of clicking)
Then I found out it was easyer to take the front surfaces and draw lines where I want the intersectections to be and split the surfaces in Rhino and extrude the parts. I tried to do this in Grasshopper but failed.

Ideal would be to have a script where I can reference the solids (I have about 10 different shapes) and the outcome is the end result as show in the picture.
I already got stuck in Grasshopper when I tried to shell the parts, shell asks for removel indicies but they are different for each solid object.
Shell operation is quite easy in Rhino, so I would like to take the front surface in Grasshopper and make intersection (split) lines and extrude these surfaces.


Split solids.3dm (807.0 KB)
Split solids.gh (21.7 KB)

missing

Hi Joseph,

Thanks for your reply. With the C# component I have the same issue. That is I have to find the faces to be removed (front and back). When I referrence multiple different shapes the input number is different for each shape, so manually in Rhino is for now faster.

But that was acctually not my main question. What I want is to go from the shelled part, to splitted solids.
I thought of three approaches.
One is to explode the shelled part and then loft the surfaces. But that only works if I refference them in the right order. (a lot of clicking when you have 10 shapes)
Two, looks like a simple one but I have no idea how to, is to get the front face, draw lines on the intersection points and extrude the regions.
Three is to find intersection planes and split them. Thoughts anyone?


That sounds like a problem that can be solved with code. Using your shape (which I didn’t see in your Rhino file yesterday because I failed to open it - sorry), I selected the two largest faces like this:
(brep is internalized, no need for Rhino file)


shell_2023Sep30a.gh (16.8 KB)

This is only an example. I would have to see all your breps to suggest different algorithms.

This is where I am lost. I don’t understand your goals? Oh - “mitered parts:question:

It looks like you quickly ignore the hole? How do you get the shelled parts without solving the issue of which faces to ignore? And how can you assemble a closed brep at the end without the removed faces? Don’t they also need to be mitered?

P.S.mitered parts


shell_2023Sep30b.gh (43.7 KB)

2 Likes

Thank you for yor help Joseph!

Thats the result I want. Dont need to shell first i see.
The only thing is that it doesnt work on the letter i, becuase the sides have the biggest area. I have no idea how to select the 2nd largest areas. The other thing is that I also need inside af the letter A. Sorry for the confusion I tried to simplyfy my question. When selecting multiply letters the script fails. I understand the script but Im not skilled enough (Yet) to adjust the script to input multiple breps. If you have some time, can you have a look at that? Or someone else who is interested in helping…
Thanks again!
Here are the letters I need.

Kind regards,

Vincent
Again.3dm (271.5 KB)

I handled that by using Scale NU to shrink all the block letters in the Y direction.

I knew it was a mistake to ignore that hole, and mentioned it in my reply. :man_facepalming: You could also have included multiple letters in your first post instead of moving the goal posts. Maybe later, or maybe not…


shell_2023Oct2a.gh (73.9 KB)

P.S. Here is a hasty “fix” to restore the holes BUT their offset is wrong. Needs to be opposite (positive instead of negative) for the holes. Don’t hold your breath for more from me.


shell_2023Oct2b.gh (72.3 KB)

1 Like

Love it!

Thank you Joseph, you`ve helped me more than enough!!

This version offsets holes correctly. It wasn’t trivial.

Need to test with capital ‘B’, ‘D’, ‘O’, ‘P’, ‘Q’, ‘R’ and lowercase ‘a’, ‘b’, ‘d’, ‘e’, ‘g’, ‘0’, ‘4’, ‘6’, ‘8’ and ‘9’. Deliberate or not (?), this code handles the complications of front vs. back faces (sorted by Y before yellow group, assuming the letters are always in the XZ plain) and despite appearances, their sequence is arbitrary (see the number labels, purple group).


shell_2023Oct2c.gh (77.6 KB)

1 Like