suggested exercise
La creación de un jarrón paramétrico es una excelente forma de empezar a aprender a utilizar Dynamo.
En este flujo de trabajo, aprenderá los siguientes procedimientos:
Utilice los controles deslizantes de número para controlar las variables del diseño.
Cree y modifique elementos geométricos mediante nodos.
Visualice los resultados de diseño en tiempo real.
Antes de acceder directamente a Dynamo, diseñemos conceptualmente el jarrón.
Imaginemos que vamos a diseñar un jarrón de arcilla que tenga en cuenta las prácticas de fabricación usadas por los ceramistas. Estos suelen usar un torno de alfarería para fabricar jarrones cilíndricos. A continuación, al aplicar presión en diversas alturas del jarrón, pueden modificar su forma y crear diseños variados.
Vamos a utilizar una metodología similar para definir nuestro jarrón. Crearemos cuatro círculos a diferentes alturas y con diferentes radios y, a continuación, crearemos una superficie solevando esos círculos.
Descargue el archivo de ejemplo. Para ello, haga clic en el vínculo siguiente.
En el Apéndice, se incluye una lista completa de los archivos de ejemplo.
Necesitamos los nodos que representarán la secuencia de acciones que ejecutará Dynamo. Como sabemos que estamos intentando crear un círculo, busquemos primero un nodo que realice esta acción. Utilice el campo de búsqueda o examine la biblioteca para buscar el nodo Circle.ByCenterPointRadius, y añada este al espacio de trabajo.
Busque > "Circle...".
Seleccione > "ByCenterPointRadius".
El nodo aparecerá en el espacio de trabajo.
Examinemos más detalladamente este nodo. A la izquierda, se muestran las entradas del nodo (centerPoint y radius) y, a la derecha, la salida del nodo (Circle). Observe que las salidas presentan una línea azul claro. Esto significa que la entrada tiene un valor por defecto. Para obtener más información sobre la entrada, coloque el cursor sobre su nombre. La entrada radius requiere una entrada doble y tiene el valor por defecto 1.
Dejaremos el valor por defecto de centerPoint, pero añadiremos un control deslizante de número para manejar el radio. Al igual que con el nodo Circle.ByCenterPointRadius, utilizaremos la biblioteca para buscar el control deslizante de número y lo añadiremos al gráfico.
Este nodo es algo diferente al anterior, ya que contiene un control deslizante. Puede utilizar la interfaz para cambiar el valor de salida del control deslizante.
El control deslizante se puede configurar mediante el botón desplegable situado a la izquierda del nodo. Vamos a limitar el control deslizante a un valor máximo de 15.
Lo colocaremos a la izquierda del nodo Circle.ByCenterPointRadius y conectaremos los dos nodos. Para ello, seleccionaremos la salida del control deslizante de número y lo conectaremos a la entrada del radio.
Cambiemos también el nombre del control deslizante de número a "Radio superior". Para ello, haga doble clic en el nombre del nodo.
Vamos a seguir añadiendo algunos nodos y conexiones a nuestra lógica para definir nuestro jarrón.
Vamos a copiar estos nodos cuatro veces para que estos círculos definan nuestra superficie; cambie los nombres de los controles deslizantes de número, como se muestra a continuación.
Los círculos se crean mediante un centro y un radio.
Nos falta un parámetro clave para nuestro jarrón, su altura. Para controlar la altura del jarrón, crearemos otro control deslizante de número. También añadiremos el nodo Code Block. Los bloques de código permiten añadir fragmentos de código personalizados al flujo de trabajo. Utilizaremos el bloque de código para multiplicar el control deslizante de altura por diferentes factores para que podamos colocar los círculos a lo largo de la altura del jarrón.
A continuación, utilizaremos un nodo Geometry.Translate para colocar círculos a la altura deseada. Como deseamos distribuir los círculos a través del jarrón, usaremos bloques de código para multiplicar el parámetro de altura por un factor.
2. Los círculos se trasladan (desplazan) mediante una variable en el eje Z.
Para crear una superficie mediante el nodo Surface.ByLoft, debemos combinar todos los círculos trasladados en una lista. Utilizaremos List.Create para combinar todos los círculos en una única lista y, por último, estableceremos la salida de esta lista en el nodo Surface.ByLoft para ver los resultados.
Desactivaremos también la vista preliminar en otros nodos para visualizar únicamente Surface.ByLoft.
3. Una superficie se crea solevando los círculos trasladados.
Ya está listo nuestro flujo de trabajo. Ahora podemos utilizar los controles deslizantes de número que hemos definido en la secuencia de comandos para crear diferentes diseños de jarrones.
Los puntos de atractor son excelentes para experimentar con patrones geométricos. Se pueden utilizar para crear cambios graduales en los objetos en función de su distancia.
En este flujo de trabajo, aprenderá los siguientes procedimientos:
Cree, administre y edite listas.
Desplace puntos en la vista preliminar 3D mediante manipulación directa.
Cambie el modo de ejecución.
En este ejercicio, vamos a crear un círculo (objetivo) donde la entrada de radio se define mediante una distancia hasta un punto cercano (relación).
Un punto que define una relación basada en la distancia se suele denominar "atractor". Aquí, la distancia a nuestro punto atractor se utilizará para especificar el tamaño del círculo.
Descargue el archivo de ejemplo. Para ello, haga clic en el vínculo siguiente.
En el Apéndice, se incluye una lista completa de los archivos de ejemplo.
Ahora que hemos dibujado un boceto de nuestros objetivos y relaciones, podemos empezar a crear el gráfico. Necesitamos los nodos que representarán la secuencia de acciones que ejecutará Dynamo. Añadamos primero los siguientes nodos: Number, Number Slider, Point.ByCoordinates y Geometry.DistanceTo y Circle.ByCenterPointRadius.
Entrada > Básico > Number
Entrada > Básico > Number Slider
Geometría > Puntos > Punto > By Coordinates(x,y,z)
Geometría > Modificadores > Geometría > DistanceTo
Geometry > Curves > Circle > ByCenterPointRadius
Ahora que tenemos algunos nodos, debemos conectar los puertos de los nodos con cables. Estas conexiones definirán el flujo de datos.
De Number a Point.ByCoordinates
De Number Sliders a Point.ByCoordinates
De Point.ByCoordinates (2) a DistanceTo
De Point.ByCoordinates y DistanceTo a Circle.ByCenterPointRadius
Con el flujo de programa definido, solo tenemos que indicarle a Dynamo que lo ejecute. Una vez ejecutado el programa (automáticamente o al hacer clic en Ejecutar en modo manual), los datos pasarán por los cables y se mostrará la vista preliminar 3D.
(Haga clic en Ejecutar): si la barra de ejecución está en modo manual, debemos hacer clic en Ejecutar para ejecutar el gráfico.
Vista preliminar de nodos: al colocar el puntero sobre el cuadro situado en la esquina inferior derecha de un nodo, se mostrará un elemento emergente con los resultados.
Vista preliminar 3D: si alguno de los nodos crea geometría, esta aparecerá en la vista preliminar 3D.
La geometría de salida en el nodo de creación.
Si el programa está en funcionamiento, debería aparecer un círculo en la vista preliminar 3D que atraviesa el punto atractor. Esto es genial, pero es posible que desee añadir más detalles o controles. Ajustemos la entrada al nodo del círculo para que podamos calibrar la influencia en el radio. Añada otro nodo Number Slider al espacio de trabajo y haga doble clic en un área en blanco del espacio de trabajo para añadir un nodo de bloque de código. Edite el campo en el bloque de código. Para ello, especifique X/Y
.
Bloque de código
De DistanceTo y Number Slider al bloque de código
Del bloque de código a Circle.ByCenterPointRadius
Un comienzo sencillo al que se le añada complejidad es una manera eficaz de desarrollar el programa de manera incremental. Una vez que esto funcione para un círculo, apliquemos la potencia del programa a varios círculos. En lugar de un punto central, si utilizamos una rejilla de puntos y acomodamos el cambio en la estructura de datos resultante, el programa creará muchos círculos, cada uno con un valor de radio exclusivo definido por la distancia calibrada al punto atractor.
Añada un nodo Number Sequence y sustituya las entradas de Point.ByCoordinates: haga clic con el botón derecho en Point.ByCoordinates y seleccione Encaje > Referencia cruzada.
Añada un nodo Flatten después de Point.ByCoordinates. Para aplanar una lista por completo, mantenga la entrada
amt
en el valor por defecto-1
.La vista preliminar 3D se actualizará con una rejilla de círculos.
En ocasiones, la manipulación numérica no es el enfoque adecuado. Ahora puede empujar y estirar manualmente la geometría de punto al desplazarse por la vista preliminar 3D en segundo plano. También podemos controlar otra geometría construida por un punto. Por ejemplo, Sphere.ByCenterPointRadius también es capaz de realizar la manipulación directa. Podemos controlar la ubicación de un punto a partir de una serie de valores X, Y y Z con Point.ByCoordinates. Sin embargo, con el enfoque de manipulación directa, puede actualizar los valores de los controles deslizantes moviendo manualmente el punto en el modo de navegación de vista preliminar 3D. Esto ofrece un enfoque más intuitivo para controlar un conjunto de valores específicos que identifican la ubicación de un punto.
Para utilizar la manipulación directa, seleccione el panel del punto que se va a mover; aparecerán flechas sobre el punto seleccionado.
Cambie al modo de navegación de vista preliminar 3D.
Coloque el cursor sobre el punto; aparecerán los ejes X, Y y Z.
Haga clic y arrastre la flecha coloreada para mover el eje correspondiente; los valores de Number Slider se actualizarán al instante con el punto desplazado manualmente.
Tenga en cuenta que, antes de la manipulación directa, solo se conectó un control deslizante al componente Point.ByCoordinates. Al desplazar manualmente el punto en la dirección X, Dynamo generará automáticamente un nuevo componente Number Slider para la entrada X.
En esta sección, se incluyen flujos de trabajo sencillos para empezar a utilizar Dynamo.