Grasshopper

algorithmic modeling for Rhino

I saw this interesting idea on instructables.com:

http://www.instructables.com/id/snap-fit-plexiglas-case-for-your-pr...

I thought it could be interesting to create a parametric model of a generic box, which you can then easily change the dimensions of, flatten and bake. And then send flattened pieces to a lasercutter. 

I am having some difficulty getting a nice script for a greek fret joint, especially the corners. I tried a script with a polyline and series, but have issues the corners...

I also tried trimming two surfaces of the box and join the lines together, but grasshopper is giving me some funky results.

Anybody with any suggestions how this could be done?

Thought it could be a nice challenge. Just looking for some inspiration, not necessarily a finished script!

Regards

Fred

(Images of cad interface - property of the chap, andrea biffi I found on the instructable site)

Views: 985

Attachments:

Replies to This Discussion

If you don't want a finished definition/script, then I'll just write here some raw concepts...

Talking about a solution that works in any closed brep, with flat faces, so not only faces that are normals each other, making possible use the final definition to also work on something like a 3Dvoronoi cell.

Given the closed brep, extract all faces, extract then the boundary of each face, and arrange the orientation of the polyline created to be always clockwise(or counter) depending of the normal of the surface.

This because we need the start point of an edge to be coincident to the end point of the "twin" edge but of the adiacent face..... this, to make subsequent part possible.

Edges could and would have an even number of "teeth" and spaces, why this, because it will be simpler to make them! (tell if instead you have a priority to get edges as in your pictures)

An edge with 3 teeth and 2 spaces, require a negative edge with 3 spaces and 2 teeth, and this is somehow unhandy.

If we make even numbers of teeth, we can set every edge in the solution to have the first element a teeth, and the last element a space.

Vertexes adiacent to n faces, would be still easy to solve in this way.

Maybe this is a tip... I'll try to do this because is seems funny :D

Here, done.

Got some time this evening.

Still need some small tweaks to get better edges, but the mechanics is there.

Added comments for who want to follow my steps.

Enable slow, final components (extrude, cap) only when finished editing values.

Certainly somewhere in the forum this topic was already covered....

Btw thanks for the challenge!

:D

Attachments:

Hi Ricardo,

I like the fact that you have also made it possible to use different geometries, i.e. icosahedron and voronoi patterns.

The cross product (xprod) function is new to me, so I don`t think I would have figured it out so quickly on my own, kudos to you! I initially thought the vector amplitude for the panel thickness should be the same as the teeth height, but I think your solution for keeping them both separate is good so that one can work with a tolerance, especially with multi-faceted faces.

People who do a lot of lasercutting perspex boxes will love this script, thanks for the help!

You are right.

With breps with normal faces, i.e. a box, the panel thinckness and teeth height is the same.

But with different angles (not 90°) between adjacent faces, with few trigonometry starting from that angle, it would be possible to automatize the teeth height depending on panel thickness, making a "puzzle" without errors and that can fill every fissure.

At the moment my definition extrude panel only inside the original brep, keeping and still "using" original edges, not optimal.

The final solution would extrude panels bothways in and out from original faces, making original edges the center(or almost) of the final teethes.

Another final fix would make every fragment (teeth and spaces) to be exactly constant in each edge.

At the moment the first and last fragment in each edge is being shortened, and with "too big" thickness values it will bug.

Not sure if this is possible to completely fix tought....

I'll go one whenever someone will ask :P

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