AutoCad - Asignar Z a una poligonal de forma proporcional

 
Vista:
sin imagen de perfil

Asignar Z a una poligonal de forma proporcional

Publicado por David (2 intervenciones) el 02/02/2017 21:57:06
Buenas tardes,
me ha surgido una duda que en principio parece bastante simple, pero no se resolverla sin programar (y no se me da muy bien que digamos).

Os pongo en situación, si tengo una polilínea en la que todos los puntos están a la misma cota, pongamos Z=0, pero ahora quiero que la cota del punto final este en Z=5 y que todos los puntos de la misma aumenten en Z de forma proporcional, de forma que definan una pendiente constante desde el punto inicial (que seguiría en Z=0) hasta el punto final. Cómo lo harían?

En principio pensé en ponerme en vista de perfil y aplicarle un giro 3D, pero claro, si hago esto, modifico la polilínea en planta, porque ya no se correspondería la proyección de la polilínea girada con la polilínea inicial.

Un saludo y gracias de antemano,
David
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Asignar Z a una poligonal de forma proporcional

Publicado por Gerardo (986 intervenciones) el 03/02/2017 02:34:24
hola

Yo lo resolveria con programación, pero tambien se puede usando el giro 3d que dices.

Como sin programar?

-pones el eje X del sistema de coordenadas sobre el vector que va del punto inicial al final
-Mirandolo lateralmente desde donde harias la rotacion, supones un triangulo rectangulo donde la base o adyacente es el estado actual de la poly, y la nueva distancia a dar entre ambos puntos es la hipotenusa. (el opuesto sería la elevación esperada para el último punto, en tu ejemplo= 5) Con un pitagoras obtienes esa nueva distancia (hipotenusa) y con ella el factor de escalado (hipot / adyacente)
-Luego conviertes la polilinea en un bloque
-Asegurando el sistema de coordenadas en el eje X que te decia, le aplicas ese factor en la escala X del bloque, pero dejas las escalas Y y Z en 1.0 - Logicamente se deformara halando el ultimo punto alejandolo del primero
-Luego haces la rotacion 3D y si vuelves a la vista en planta veras que los puntos aparentemente regresan a donde estaban, solo que ahora tienen la elevacion. Entonces explotas el bloque.
Como estaba con escala no uniforme, la poli se convertirá irremediablemente en una serie de lineas sueltas por lo que tendras que convertirlas o trazar sobre ellas de nuevo.

Como programando?
Eso depende de cuanto sepas. Yo lo haria con autolisp y extensiones ActiveX, aprovechando unas funciones llamadas vlax-curve-getDistAtPoint , vlax-curve-getEndPoint, vlax-curve-getPointAtParam, vlax-curve-getDistAtParam
Ellas te devuelven los diversos puntos y las distancias desde el origen de la poly a cada uno de ellos, entonces por regla de 3 se saca la elevacion que debe tener cada punto, relativo a la elevacion deseada para el ultimo punto y la longitud total de la poli.
Lo otro es modificar cada vertice con el valor calculado.

Yo podria subir un ejemplo la proxima semana pero ahora ando muy ocupado con unos proyectos. Quizas si te pones con el vlide y la ayuda en linea del cad puedas crear algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Asignar Z a una poligonal de forma proporcional

Publicado por David (2 intervenciones) el 04/02/2017 13:42:54
Buenos días, gracias por la rápida respuesta.
En cuanto al método sin programación no había pensado en escalarlo convirtiéndolo en un bloque, pero será la última de las opciones porque debería de repetir el proceso unas 80 veces, ya que se trata de definir la pendiente para un paseo marítimo que consta de unas ochenta y pico polilíneas.

En cuanto a la programación, si te digo la verdad, no tengo ni idea de programar en autolisp, estaba intentándolo resolver mediante python y software SIG, pero voy a probar a ver si no es tan complejo.

Un saludo y muchas gracias!
David

PD: En el mensaje inicial se me olvidó explicar el objetivo principal de querer conocer pendiente en todo el trayecto y es que sería para poder replantear cualquiera de sus puntos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar