El objetivo con este ejercicio es crear un Digital Asset, en este caso es una Valla procedural que permite editar la forma del perímetro, la altura, grosor y densidad de columnas.
Las Columnas
La Columna está siempre sobre el limite superior de la Base pues su posición en Y esta dada por esta expresión:
bbox("../YMAX", D_YMAX)Que nos devuelve el valor máximo en Y del bounding box de la Base.
Base y Top comparten el mismo valor de Height, el cual será expuesto para el usuario, al igual que el valor de Height de la Columna.
La Forma del Perímetro
Al perímetro se le da forma usando una curva (MainCurve) y se puede variar la densidad de points que tiene usando un Resample, de aquí sale la cantidad de columnas que tendrá la Valla.
Las columnas son copiadas a cada punto de la curva usando el nodo Copy1 (Copy Stamp)
Las Filas (Rows)
Para crear las filas, usé un nodo Line (Rows) para generar puntos de forma vertical y asi copiar a cada punto la misma MainCurve, la cantidad de puntos en la linea determinan la cantidad de filas que tendrá la Valla.
El nodo top_of_base1 me permite posicionar la linea (Rows) sobre Base y el Length de la linea es igual a el Height de la Columna.
- circle1 es la geometría que sera extruida sobre la curva usando el nodo sweep1.
- polybevel1 me permite darle curvas suaves a MainCurve.
Pregunta: Como evito que el copytopoints1 haga una copia en el primer y último punto de la linea ?
Con un Group SOP y usando esta expresión en Base Group
Con un Group SOP y usando esta expresión en Base Group
0 `chs("../Rows/points")-1`0 siempre es el primer punto, y la única forma que encontré para seleccionar el último punto es copiando la referencia de Length del Line (Rows) y restandole 1, ya que si tengo 7 puntos en la linea, empieza en 0 y el último es 6.
Lo siguiente fue invertir la selección de puntos usando un Group Combine, donde el Grupo anterior se iguala a todos menos el mismo grupo, osea todos lo demás puntos.
Tuve problemas al decirle al Copy to Points SOP cual grupo copiar, pero simplemente este grupo se asigna en el campo: Target Points.
No hay comentarios:
Publicar un comentario