All pages
Powered by GitBook
1 of 1

Loading...

Superficies: interpoladas, puntos de control, solevaci贸n y revoluci贸n

El componente an谩logo bidimensional a una NurbsCurve es la NurbsSurface y, al igual que la NurbsCurve de forma libre, las NurbsSurfaces se pueden crear con dos m茅todos b谩sicos: la introducci贸n de un conjunto de puntos base y la interpolaci贸n entre ellos por parte de Dynamo, y la especificaci贸n expl铆cita de los puntos de control de la superficie. Al igual que las curvas de forma libre, las superficies interpoladas son 煤tiles cuando un dise帽ador conoce con precisi贸n la forma que debe adoptar una superficie o si un dise帽o requiere que la superficie pase por los puntos de restricci贸n. Por otra parte, las superficies creadas mediante puntos de control pueden ser m谩s 煤tiles para los dise帽os exploratorios a trav茅s de varios niveles de suavizado.

Superficie interpolada

Para crear una superficie interpolada, simplemente genere una colecci贸n bidimensional de puntos que se aproxime a la forma de una superficie. La colecci贸n debe ser rectangular, es decir, no irregular. El m茅todo NurbsSurface.ByPoints crea una superficie a partir de estos puntos.

Superficie de puntos de control

Tambi茅n se pueden crear NurbsSurfaces de forma libre mediante la especificaci贸n de los puntos de control subyacentes de una superficie. Al igual que las NurbsCurves, se puede considerar que los puntos de control representan una malla cuadrilateral con segmentos rectos que, en funci贸n del grado de la superficie, se suaviza hasta alcanzar la forma de superficie final. Para crear una NurbsSurface mediante puntos de control, incluya dos par谩metros adicionales en NurbsSurface.ByPoints, que indiquen los grados de las curvas subyacentes en ambas direcciones de la superficie.

Podemos aumentar el grado de la NurbsSurface para cambiar la geometr铆a de superficie resultante:

Superficie de solevaci贸n

Del mismo modo que las superficies se pueden crear mediante la interpolaci贸n entre un conjunto de puntos de entrada, estas se pueden crear mediante la interpolaci贸n entre un conjunto de curvas base. Esta operaci贸n se denomina solevado. Las curvas solevadas se crean mediante el constructor Surface.ByLoft con una colecci贸n de curvas de entrada como 煤nico par谩metro.

Superficie de revoluci贸n

Las superficies de revoluci贸n son un tipo adicional de superficie creada mediante el barrido de una curva base alrededor de un eje central. Si las superficies interpoladas son el elemento an谩logo bidimensional a las curvas interpoladas, las superficies de revoluci贸n son el elemento an谩logo bidimensional a los c铆rculos y los arcos.

Las superficies de revoluci贸n se especifican mediante una curva base que representa la "arista" de la superficie; un origen de eje, el punto base de la superficie; una direcci贸n de eje, la direcci贸n central del "n煤cleo", y un 谩ngulo inicial y final de barrido. Se utilizan como entrada en el constructor Surface.Revolve.

// python_points_1 is a set of Points generated with
// a Python script found in Chapter 12, Section 10

surf = NurbsSurface.ByPoints(python_points_1);
// python_points_1 is a set of Points generated with
// a Python script found in Chapter 12, Section 10

// create a surface of degree 2 with smooth segments
surf = NurbsSurface.ByPoints(python_points_1, 2, 2);
// python_points_1 is a set of Points generated with
// a Python script found in Chapter 12, Section 10

// create a surface of degree 6
surf = NurbsSurface.ByPoints(python_points_1, 6, 6);
// python_points_2, 3, and 4 are generated with
// Python scripts found in Chapter 12, Section 10

c1 = NurbsCurve.ByPoints(python_points_2);
c2 = NurbsCurve.ByPoints(python_points_3);
c3 = NurbsCurve.ByPoints(python_points_4);

loft = Surface.ByLoft([c1, c2, c3]);
pts = {};
pts[0] = Point.ByCoordinates(4, 0, 0);
pts[1] = Point.ByCoordinates(3, 0, 1);
pts[2] = Point.ByCoordinates(4, 0, 2);
pts[3] = Point.ByCoordinates(4, 0, 3);
pts[4] = Point.ByCoordinates(4, 0, 4);
pts[5] = Point.ByCoordinates(5, 0, 5);
pts[6] = Point.ByCoordinates(4, 0, 6);
pts[7] = Point.ByCoordinates(4, 0, 7);

crv = NurbsCurve.ByPoints(pts);

axis_origin = Point.ByCoordinates(0, 0, 0);
axis = Vector.ByCoordinates(0, 0, 1);

surf = Surface.ByRevolve(crv, axis_origin, axis, 0,
    360);