Grasshopper

algorithmic modeling for Rhino

Grasshopper (and Rhino) newbie here!

I have a cylinder, wrapped with an array of torus rings, and I want to subtract one from the other (the result being a grooved cylinder).  I have gotten the Boolean Difference to work with a number of different types of subtractions, but I'm stuck on getting this particular operation to work.  

Anybody have thoughts?  I'd appreciate the help!

Rhino5 32-bit

GH 0.5.0099

Views: 1217

Attachments:

Replies to This Discussion

Hello JK,

you seem to be using some plugins in your definition so I can't open it correctly.

Can you internalize your geometry right before the boolean difference component and reupload your file?

You might have missed the "newbie" part:

internalize your geometry right before the boolean difference component... can you please explain what that means?

UPDATE: got it to work, sort of.  I discovered when some of the rings failed to intersect the cylinder, the boolean wouldn't work.  HOWEVER: new problem.  After getting the model to work I updated to the new Grasshopper, and after rebuilding some of the tools that the 0.9 didn't recognize I have rings that intersect the tube, BUT the portion where the rings are cut are then filled in on the outside surface of the shaft.

The baked grey model is what I was able to successfully do with the old Grasshopper.  I have some of the parts turned off on the grasshopper model for clarity.

Attachments:

Hello JK,

David has provided some detailed guidelines on how to post files on the forum (step 3):  http://www.grasshopper3d.com/forum/topics/how-to-get-help-when-you-...

On to your case now, on the [Dif] component you have as inputs: one brep on A and 4 lists, with 1 brep each, on B. So GH will "copy" the brep on A 4 times and subtract each one of the 4 rings from one of the 4 copies of A... That's why the holes seem filled, each hole is on a different brep and is covered by the other 3... hope that makes some sense...

The short-term solution is to right-click on input B and select "flatten":

The long-term solution is to study data trees and their behavior in GH. Otherwise you will keep running on problems like this one...

You can start here and here.

Cheers, Nikos

Thanks Nikos. I did read David's post prior, but missed the part about internalizing geometry, that makes sense now.

I don't understand why the cylinder would get copied multiple times in the boolean execution, I will look into your links to see if that gets explained further. I get the sense I am taking the difficult path to make this work anyway, hopefully I can shed the newbie title in a year or two.

Given that I went from .6 to .9, and it worked for me in .6, is flattening something .6 did automatically perhaps?

Data trees(groups of lists) were introduced in GH at some point. I am not sure if .6 had them at all...

I am afraid the "copy" explanation might have been misleading...

Check out this image (what you had):

You can see that the 4 rings have different paths {0;0;0},...,{0;0;3}. That's why [Dif] component will not treat them as a "set of Breps"(leave your mouse pointer over the component to see what inputs it expects) but separately. So it will do 4 subtractions (the output will be 4 Breps).

But if you flatten this data tree into a single list you get this:

Now all 4 rings are in a single list and [Dif] component can treat them as a "set of Breps"

Notice also how the wires change (single line for one object, double line for one list, double dashed line for a data tree). Now the output of [Dif] is one Brep(all four rings subtracted from the rod).

Hope this is more clear now... Still, check the links for a better understanding of trees :)

Let's just say I get a sense of the problem, thank you very much for your time! I now have some homework to do, it's like being back in school. =}

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service