Grasshopper

algorithmic modeling for Rhino

Hi guys I´m trying to learn hoopsnake, but i´m having a hard time trying to understand how it works

i attached a video, showing what i need to reproduce, i fabricated those parts in a cnc, so basically the idea is something like this

-generate a triangle, and have 3 options of assemblage / growth, by selecting randomly one of its three corners (first problem, sometimes the random component selects the same item 3 times)

-rotate and mirror a new triangle untill the mass addition of all the triangles is larger than a mdf sheet area (second problem)

also my incomplete definition

thanks for your help

regards

m

Views: 1549

Attachments:

Replies to This Discussion

Hi Mario,

something like this could work.

The random select part could be a little more ambitious though. The main challenge is probably, how to avoid duplicates. In this definition I used a work around with just the points, but I am sure there would be a more elegant way.

To make it stop you just use a mass addition of the area set equal to the desired area at the termination condition.

Besides that, I think there is a geometrical challenge anyhow.

Best,

Phillip

Attachments:

wow!!!

thanks phillip, i can see i was far far away from solving the problem

i will study your definition

btw, where should i use the mass addition component?

thanks again

regards

 Hi MARIO

HS carries out operation, keeps result in memory and uses it as the entrance data for following iteration. Therefore the criterion of the termination of iterations needs to be calculated after everyone iteration. It is not finished example without a random choice.

Attachments:

hi igor 

thank you so much for the feedback

i will study your definition

regards

Path {0;1} holds your processed triangles - which is in fact the same data as within the recorder. Count up the area of either of them.
This one can trigger a boolean equal and connect to the Termination Condition of HS.
Sorry for my Stenography...on the run.

Hola Mario,

Creo que geometricamente no se puede hacer lo que quieres. Al parecer el problema es el angulo de 90° entre cada pieza que no permitiría que se formara el octagono perfecto. En el modelo probablemente las uniones son forzadas/rotadas levemente para que calcen.

Probablemente se puede variar el angulo de 90° entre cada pieza a un angulo que permita crear el octagono perfecto, pero habría dos posibilidades de giro entre cada pieza.

Tal vez el problema hay que repensarlo desde el octagono/poliedro que forman los triangulos en el modelo y luego generar los triangulos.

Bueno aca mi definicion y algunos comentarios:

- Hoopsnake pide una condicion inicial que solo la utiliza en la primera iteracion (input S).

- Luego hay que definir el algoritmo reiterativo/recursivo que es toda la parte de abajo. Como input se utiliza el output S de hoopsnake (en la primera iteracion es la misma informacion que ingresaste en S).

El resultado de este algoritmo/proceso vuelve a ingresar a hoopsnake en el input D para una nueva iteración.

- El output H es el historial de toda la geometria/datos procesados en las iteraciones.

Ahora te explico el algoritmo:

- Se toma el triangulo y se sacan los puntos en las esquinas.

- Se revisa si los puntos estan contenidos en otro triangulo existente y hago cull para dejar los libres (ocupo el output H del hoopsnake para ver los triangulos de las iteraciones anteriores). En la primera iteracion hago un bypass para dejar todos los puntos iniciales libres (ya que no hay historial en el hoopsnake).

- La parte de abajo es para elegir una de las dos opciones max disponibles (tu comentaste arriba que habia tres opciones... en realidad son tres opciones en la inicial, luego son solo dos opciones. No se que va a pasar si se se completa el octagono, teoricamente habría solo 1 opcion disponible, pero no pude reproducirlo por el problema geometrico).

A modo de ejemplo, en la imagen le deje todas las opciones disponibles y conecte directamente (dos para el triangulo) para tratar de generar los octagonos.

- La parte final es simple, desde el centro del triangulo se genera una linea hacia las opciones disponibles para generar un plano perpendicular para la simetria y luego se rota en 90° (que creo debería ser otro angulo). Puedes mover el slider del plano perpendicular para generar la interseccion deseada en los triangulos (0.5 para interseccion completa).

Como ya te indicaron, yo tampoco hice el tema de las areas.. pero deberia ser simple en mi definición: Calculas el area del output H (triangulos), aplicas flatten, mass addition y si el numero resultante es mayor al area de la placa que quieres, debería generar un valor falso que va en el input B de hoopsnake.

Sorry que no haya ocupado tu definicion, pero ocupe un grasshopper antiguo y ademas ya había solucionado un problema similar con un alumno el semestre pasado, asi que realicé lo que me acordaba :D

Saludos y suerte!

hola manuel, si ya con tu explicacion y las definiciones anteriores me queda mas claro

y si el angulo no es exactamente 90°, pero un material delgado con acrilico o mdf de 3mm tiene una tolerancia q permite el ensamble

saludos y gracias!

 Tetrahedron Hoopsnake - flight for attractor :{)).....

Attachments:

sweet...many thanks igor!

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service