alguien sabe crear listas desde el bucle?
2 participantes
Página 1 de 1.
alguien sabe crear listas desde el bucle?
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.
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))
)
mauro87- Mensajes : 3
Fecha de inscripción : 06/12/2020
Re: alguien sabe crear listas desde el bucle?
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.
El dwg puedes subirlo mediante un enlace a una archivo alojado mediante cualquier sistema de guardado en la nube.
Re: alguien sabe crear listas desde el bucle?
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
mauro87- Mensajes : 3
Fecha de inscripción : 06/12/2020
Re: alguien sabe crear listas desde el bucle?
- 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...)
Temas similares
» Dibujar puntos desde listas
» Crear Rutina Lisp para Crear Tipo de Linea
» Hacer un DWG desde xls
» Plot desde Lisp
» Elegir desde un Initget
» Crear Rutina Lisp para Crear Tipo de Linea
» Hacer un DWG desde xls
» Plot desde Lisp
» Elegir desde un Initget
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|