Grasshopper

algorithmic modeling for Rhino

I would like some help creating Set Sizes for custom geometry after using attractor points

Hello All,

We have created a simple design showcasing the rotating perforation patterns that CNC punch press machines are capable of. Here is the problem: the shape of the perforation is a custom shape and not a circle that subscribes to the rules of radii and diameters. This creates a problem because when it comes to normalizing the sizes of the shape to about 9 different sizes, we cannot figure out how to do it. We have been working with circles and they normalize quite easily because components already exist. Is there a way to normalize custom geometry to about 9 set sizes? I am attaching what we have so you can see our process. The ultimate goal is to end up with our design with 9 sizes. If you can help, let me know, but I appreciate the help anyways. The forum has always been a great help for us. Thanks for your time.

Views: 563

Attachments:

Replies to This Discussion

I think what you are on the right track with the Consecutive Domains and Includes components. Instead of creating radii, though, test the "D" output of your Pull Points component to see if the value falls in one of the domain ranges, adjust the value to that range (perhaps the top of the range), then use those for the scaling factor.

I've played with it a bit and it is tricky, but I do think you are on the right track with that approach.

Thanks for the reply. I am not quite sure what you mean by your reply. My assumption is that the D output from "pull points" component in comparison to a domain value will only adjust the attractor intensity. How would I use that information (values) to specify range sizes?

Well, lets say you want four scale factors, just for simplicity. Start by normalizing the distance values to be 0.0 To 1.0.

Create domains for

0.00 To 0.25

0.25 To 0.50

0.50 To 0.75

0.75 To 1.00

Test each distance value to see which domain it falls in.

If it falls in the 0.00 To 0.25 domain, then set it to 0.25, let's say.

If it falls in the 0.25 To 0.50 domain, then set it to 0.50.

If it falls in the 0.50 To 0.75 domain, then set it to 0.75.

If it falls in the 0.75 To 1.00 domain, then set it to 1.00.

That's all I'm suggesting. I haven't done it yet, so it might not be as straight forward as I imagine. Just a thought.

OK, so with some help from around here, I've pieced this together. I haven't played with it much to see what problems it still has, but I think it is working as you want.

Attachments:

YAY. YOU DID IT. I like that vb script action you got going on. Pretty sweet stuff. I will start playing around with it and see if I need help calibrating it. Thanks for the help. I hope there are any others out there who have another version. I would like to see another version.

Cleaned it up a bit, including he logic of the grouping into discrete sizes. First unitize the output of the Pull Points so it is a 0 To 1 domain, group it, then remap it to whatever range you want for your scaling factors.

I also used the unitized domain for the graph mapper input, so that can have a 0 To 1 domain in X and Y as well.

Finally, I added an Area component to get the center of the holes right at the end to use for the rotation, because before it was rotating from the grid points, not the center of each hole.

Attachments:

check this version out. You might need to set the custom geometry again.

Attachments:

Looks good! If you haven't, check out my updated definition. It really does clarify and improve the logic of the grouping.

I opened it. I will be playing with it in a few minutes. I will let you know how it goes.

I am beginning to understand your logic. I had trouble at first because my mind was set on the function that we created. I like your logic. great work. thanks for this version.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service