consulta con respecto a las polilíneas 3d y el comando entget

consulta con respecto a las polilíneas 3d y el comando entget

xs_xt
Observer Observer
680 Views
5 Replies
Message 1 of 6

consulta con respecto a las polilíneas 3d y el comando entget

xs_xt
Observer
Observer

En algunos videos que circulan en youtube hacen uso del comando "entget" para acceder a las coordenadas de los vértices de las polilíneas valiéndose el código 10 que brinda el comando pero eso solo funciona en 2d ya que para una polilínea 3d solo muestra el primer punto de la polilínea. Mi consulta es como puedo acceder a las coordenadas de los demás vértices de la polilínea sin tener que usar el comando "ID", es decir, obtener todas las coordenadas como es en el caso de 2d; Usé el comando "list", aunque varias veces me pide presionar enter, pero me interesa más saber como es que se almacenan las coordenadas de los vértices para poder leerlas. Gracias de antemano por sus respuestas.

0 Likes
Accepted solutions (1)
681 Views
5 Replies
Replies (5)
Message 2 of 6

Patchy
Mentor
Mentor

Put a text at each vertex, then use DATAEXRACTION of the text locations.

Do this.JPG

Message 3 of 6

ВeekeeCZ
Consultant
Consultant
Accepted solution

Read this

https://www.afralisp.net/autolisp/tutorials/polylines-and-blocks.php

 

If you want to have something simple to get coordinates, use this line

(progn (vl-load-com) (vlax-get (vlax-ename->vla-object (car (entsel))) 'Coordinates))

But result looks like this (x1 y1 z1 x2 y2 z2 ... xn yn zn) 

Message 4 of 6

Kent1Cooper
Consultant
Consultant

For a 3D Polyline, and also a 2D "heavy" Polyline, the vertices are their own entities, not just data entries within the Polyline's entity data [as they are with "lightweight" Polylines]. They have separate entity data lists.

 

But you can get the vertex locations, in the way already suggested as a raw list of numbers, not subdivided into sub-lists for each one.  Or if "ent" is the entity name of the Polyline, or a VLA-object conversion of it, this will give you the starting vertex:

(vlax-curve-getStartPoint ent)

or

(vlax-curve-getPointAtParam ent 0)

And to get subsequent vertices, step up the parameter number -- points at whole-number parameters are locations at the vertices:

(vlax-curve-getPointAtParam ent 1)

(vlax-curve-getPointAtParam ent 2)

....

Kent Cooper, AIA
Message 5 of 6

xs_xt
Observer
Observer

esa línea me basta para lo que necesito por ahora, trataré de entender lo que hace cada orden de esa línea, es diferente a las líneas simples que muestran los videos de youtube. Algún libro o referencia que me recomiendes porfa para poder profundizar más en ello, por ahora estoy en lo básico de la programación en autolisp y quisiera aprender mas sobre ello.

0 Likes
Message 6 of 6

ВeekeeCZ
Consultant
Consultant

Well, all it does is... load the visual lisp library, select entity, convert entity name (ename) to vla-object and get its "coordinates" property.

 

Once you learn the basics with AutoLisp, you can move to the VisualLisp. HERE's the bible.

Anyways, probably the best place to start is HERE . Even the VisualLisp is there, at the end. 

 

 

0 Likes