Alineamiento Horizontal. Parte 3

Curva de Transición

De todas las opciones para desarrollar las curvas de transición, que permiten pasar de un alineamiento recto a una curva con radio R, la clotoide (espiral de Euler) es la más usada (al menos en carreteras).

La ecuación básica tiene la forma:    R*L = C^2

L  : es la longitud de la curva
R  : es el radio de la curva cuando la curva tiene una longitud L
C  : es un valor constante para cualquier combinación de L y R, también se denomina parámetro de la curva.

Para el dibujo de la espiral se requiere hallar sus coordenadas X y Y, las X se miden a lo largo de la recta tangente y las Y son transversales a ella, el cálculo de estas coordenadas se puede hacer con las siguientes ecuaciones:


estas formas de las ecuaciones tienen como parámetro el ángulo respecto a la perpendicular de la línea recta tangente para el cual la curvatura tiene un radio R y la curva tiene una longitud L.
 
También tomar en cuenta la relación:
La matemática que conduce a estas expresiones no son el objeto de este blog.




En este dibujo se pueden visualizar los elementos mencionados en las ecuaciones.

El cálculo con autolisp

Para el dibujo de la curva espiral en CAD, se pueden usar las ecuaciones para las coordenadas mostradas más arriba, se proporcionan los valores del parámetro ángulo y se calculan las coordenadas respecto a la recta tangente. Con el conjunto de coordenadas se dibuja la polilínea (lwpolyline) que representa la espiral.

Se pueden obtener las ecuaciones de las coordenadas teniendo como parámetro la longitud de la curva de transición, para esta opción la curva se dibujará con segmentos de tamaño constante como se ve en la siguiente figura:


Cuando se usa las ecuaciones en función del ángulo se generan segmentos de ángulo constante y por lo tanto los segmentos de la espiral serán variables. Empezando desde la tangente, los segmentos van reduciendo su tamaño conforme crece el ángulo de despliegue de la espiral. La figura siguiente en contraste con la anterior hará entender mejor la diferencia entre las 2 opciones.


En cualquiera de los dos casos, la necesidad de tener mayor precisión nos obligará a reducir lo más posible el tamaño de los segmentos.

En el segundo caso se obtiene una mayor precisión dibujando la polilinea de la espiral con segmentos de arco en lugar de segmentos lineales, esta es la forma implementada en mis rutinas.

Como puede verse en las ecuaciones mostradas arriba, los denominadores de la sucesión contienen el cálculo del factorial de un número. El cálculo del factorial suele ser el ejemplo más sencillo cuando se quiere mostrar las capacidades de las funciones recursivas en autolisp y tiene la siguiente forma:

(defun factorial (y)
  (cond ((= 0 y) 1)
(T  (* y (factorial (1- y))))
)
)

La programación del cálculo de las coordenadas para dibujar la espiral debe tomar en cuenta la siguiente secuencia:

  • Calcular la longitud de la curva espiral tomando como datos principales la velocidad de diseño y el radio de la curva.
  • Calcular el parámetro de la curva según RxL=C^2
  • Calcular el ángulo total de despliegue de la espiral y con esto elegir el valor del ángulo diferencial. Aquí es posible utilizar una relación aproximada como: delta = raiz (8 * d / Rc) donde d es la flecha del arco medio en cada segmento, si se requiere una flecha de 1 cm, d=0.01, si se requiere una flecha de 5 mm; d=0.005
  • Calcular las coordenadas del punto de inicio de la espiral y desde allí, con una secuencia de ángulos obtener las coordenadas de la polilinea que define la curva. No olvidar que al dibujar se deben hacer las transformaciones de los puntos de acuerdo a la orientación de la línea tangente.
aspecto que podría tener la espiral integrada al alineamiento y efectuando un estacado del eje.
 
Terminando

Finalmente las herramientas para el dibujo y edición del alineamiento horizontal deben considerar facilidades para la generación de curvas compuestas, un buen complemento es la posibilidad de generar la tabla con los parámetros del alineamiento.



La construcción de herramientas para el alineamiento horizontal demanda construir una buena cantidad de lineas de código, siempre es adecuado desmembrar el código en subrutinas o funciones. En mi caso, he tenido que desarrollar hasta 140 funciones, y están, desde la que dibuja una polilinea con ENTMAKE hasta la que genera el estacado del eje de alineamiento.

Más adelante trataré sobre el alineamiento vertical o perfil longitudinal.