acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

alguien sabe crear listas desde el bucle?

2 participantes

Ir abajo

alguien sabe crear listas desde el bucle? Empty alguien sabe crear listas desde el bucle?

Mensaje por mauro87 Dom Dic 06, 2020 10:20 pm

hola soy nuevo.

llevo un tiempo aprendiendo auto lisp, queria crear una lista de las distancias entre un punto inicial y punto final con las intersecciones de las lineas transversales que atraviesa la primer linea de seleccion, es para acotar, el problema es que si uso ssname el indice me devuelve los puntos desordenados y no segun la posicion y no se acota como corresponde, puedo ver las distancias con print pero no se como usarlas por eso queria ponerlas en una lista pero no me sale.

Código:

DEFUN C:COTAS()

(SETQ PUNTO-A (GETPOINT "\nPrimer punto: ")
ENTRADA 0
SALIDAA 1
PUNTO-B  (GETPOINT PUNTO-A "\nSegundo punto: ")
CONJUNTO (SSGET "_C" PUNTO-A PUNTO-B)
ANGULO   (ANGLE PUNTO-A PUNTO-B)
)
            
(COMMAND "_EXPLODE" CONJUNTO "")  ;;;por si hay polilinea

(SETQ CONJUNTO2 (SSGET "_C" PUNTO-A PUNTO-B)
ENTIDADES (SSLENGTH CONJUNTO2)
INDICE 0
)

      (WHILE (/= (+ ENTRADA SALIDAA) 0)
     (SETQ ENTIDAD (SSNAME CONJUNTO2 INDICE))

     ( IF  (/= ENTIDAD NIL)
            (PROGN
             (SETQ LISTAS (ENTGET ENTIDAD)
                       INICIO (CDR(ASSOC 10 LISTAS))
                       FINAL  (CDR(ASSOC 11 LISTAS))
                       PUN-A (INTERS PUNTO-A PUNTO-B INICIO FINAL)
                 DISTANCIA (DISTANCE PUNTO-A PUN-A)
                 )

     (SETQ LISTA-2 (CONS INDICE DISTANCIA))
             (PRINT LISTA-2)                                       ;;; me da las distancias pero no se como usarlas
             (SETQ LISTA-3 (LIST LISTA-2))
             )
        (SETQ ENTRADA -1)
        )          
 (SETQ INDICE (+ INDICE 1))
)      
    


alguien sabe crear listas desde el bucle? Captur10

mauro87

Mensajes : 3
Fecha de inscripción : 06/12/2020

Volver arriba Ir abajo

alguien sabe crear listas desde el bucle? Empty Re: alguien sabe crear listas desde el bucle?

Mensaje por robierzo Vie Dic 11, 2020 4:05 pm

Hola mauro87. Debes subir un dwg con un dibujo de ejemplo y explicando, en el propio dibujo, muy bien qué es lo que quieres. Yo intuyo lo que buscas, pero no lo tengo claro.
El dwg puedes subirlo mediante un enlace a una archivo alojado mediante cualquier sistema de guardado en la nube.
robierzo
robierzo

Mensajes : 102
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

alguien sabe crear listas desde el bucle? Empty Re: alguien sabe crear listas desde el bucle?

Mensaje por mauro87 Sáb Dic 12, 2020 6:51 pm

robierzo escribió:Hola mauro87. Debes subir un dwg con un dibujo de ejemplo y explicando, en el propio dibujo, muy bien qué es lo que quieres. Yo intuyo lo que buscas, pero no lo tengo claro.
El dwg puedes subirlo mediante un enlace a una archivo alojado mediante cualquier sistema de guardado en la nube.

quise subir el dwg y me dice esto:
"Los nuevos usuarios no son autorizados enviar vínculos externos o emailes durante 7 días. Por favor, contacta el admin del foro para tener más informaciones."

subo esta captura
alguien sabe crear listas desde el bucle? Ejempl10

mauro87

Mensajes : 3
Fecha de inscripción : 06/12/2020

Volver arriba Ir abajo

alguien sabe crear listas desde el bucle? Empty Re: alguien sabe crear listas desde el bucle?

Mensaje por robierzo Lun Dic 14, 2020 11:20 am

Código:
(DEFUN C:COTAS()
  (setq conjunto nil conjunto2 nil lista-2 nil lista3 nil)
  (SETQ PUNTO-A (GETPOINT "\nPrimer punto: ")
      ENTRADA 0
      SALIDAA 1
      PUNTO-B  (GETPOINT PUNTO-A "\nSegundo punto: ")
      CONJUNTO (SSGET "_C" PUNTO-A PUNTO-B)
      ANGULO  (ANGLE PUNTO-A PUNTO-B)
  )
           
  ;(COMMAND "_EXPLODE" CONJUNTO "")  ;;;por si hay polilinea
  (setq conjunto2 (ssget "_F" (list punto-a punto-b) '((0 . "*LINE"))))
  (setq entidades (SSLENGTH conjunto2) indice 0)
 
  (repeat entidades
    (SETQ ENTIDAD (SSNAME CONJUNTO2 INDICE))
    (SETQ LISTAS (ENTGET ENTIDAD)
     INICIO (CDR(ASSOC 10 LISTAS))
     FINAL  (CDR(ASSOC 11 LISTAS))
     PUN-A (INTERS PUNTO-A PUNTO-B INICIO FINAL)
     DISTANCIA (DISTANCE PUNTO-A PUN-A)
    )
    (SETQ LISTA-2 (CONS (list INDICE DISTANCIA) LISTA-2))
    (SETQ INDICE (1+ INDICE))
  );fin REPEAT
)

Te he quitado, entre otras, la línea (COMMAND "_EXPLODE" CONJUNTO ""), porque si no hay polilineas me da error. Para salvar ese error, antes de usar el EXPLODE tendrías que analizar y ver si hay polilineas. O bien usar otro tipo de funciones para obtener los puntos de las lineas y polilineas, independientemente del tipo de entidad que sean (funciones vlax-curve...)
robierzo
robierzo

Mensajes : 102
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

alguien sabe crear listas desde el bucle? Empty Re: alguien sabe crear listas desde el bucle?

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.