Ayuda con un lisp para poli-líneas

Ir abajo

Ayuda con un lisp para poli-líneas Empty Ayuda con un lisp para poli-líneas

Mensaje por José Francisco el Mar Jun 04, 2019 9:58 pm

Buen día a todos. Espero se encuenren bien.
Una vez más busco ayuda para obtener una rutina lisp.
Pasa que tengo varias poli líneas, unas formadas por arcos y rectas y otras, solo por rectas. En algunos casos el o los arcos que tienen las poli líneas son muy evidentes, en otros, el arco es muy pequeño.
Busco diferenciar unas poli líneas de otras. Por lo que estoy tras una rutina que seleccione las poli líneas y que cambie el color de las que tienen arcos y rectas a azul y que cambie el color de las que están formadas solo por rectas a verde
Sé que con algo de trabajo puedo crear un lisp que seleccione la o las poli líneas pero no sé cómo diferenciar unas de otras, la cuestión está en el “IF”.
Si pueden ayudarme en esto, les agradezco.
Pongo un ejemplo en dwg de lo que busco.

https://www.dropbox.com/s/f5mdaxn719v0y57/Ejemplo%202.dwg?dl=0

De nuevo, muchas gracias


José Francisco

Mensajes : 22
Fecha de inscripción : 30/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Ayuda con un lisp para poli-líneas Empty Re: Ayuda con un lisp para poli-líneas

Mensaje por ark-inge el Vie Jun 07, 2019 6:29 pm

hola, para diferencias que polilineas tiene arco usa esta funcion (vla-getbulge Obj indice) cuando es 0 quiere decir que es recta si es diferente que cero es curva
saludos.

ark-inge

Mensajes : 1
Fecha de inscripción : 07/06/2019

Ver perfil de usuario

Volver arriba Ir abajo

Ayuda con un lisp para poli-líneas Empty Re: Ayuda con un lisp para poli-líneas

Mensaje por José Francisco el Sáb Jun 08, 2019 7:30 pm

Buen día para todos.
ark-inge, muchas gracias por su ayuda.
La verdad, lo he intentado pero no lo consigo, no logro meter la función (vla-getbulge Obj indice) en el lisp que tengo.
En este momento la rutina lo que hace es crear un par de capas, una para las poli-líneas sin arcos y otra para las poli-líneas que están formada por arcos y rectas, luego selecciona las poli-líneas y las cambia de capa o layer, creo que es mejor que como lo pensé en un primer momento (diferenciarlas por color).
Sé que es pedir mucho, pero por favor me puede ayudar con la función?
Este es el lisp que tengo:


Código:
(defun c:tmp ()
  (vl-load-com)
  (vl-cmdf "_layer" "_m" "pl" "_c" "3" "" "")
  (vl-cmdf "_layer" "_m" "pla" "_c" "5" "" "")
  (prompt "\nSeleccione las polilineas:")
  (setq sel-pol (ssget (list '(0 . "LWPOLYLINE"))))
  (if sel-pol
  (progn
  (setq n 0)
  (repeat (sslength sel-pol)
  (setq pol (ssname sel-pol n))
  (vl-cmdf "_chprop" pol "" "_la" "pla" "")
  (vl-cmdf "_chprop" pol "" "_c" "bylayer" "") 
  (setq n (+ n 1))
  );repat
  );progn
  );if
);defun

Le agradezco desde ya.

saludos codiales.


José Francisco

Mensajes : 22
Fecha de inscripción : 30/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Ayuda con un lisp para poli-líneas Empty Re: Ayuda con un lisp para poli-líneas

Mensaje por kasperle el Lun Jun 10, 2019 7:12 pm

A ver si...

Código:

(defun C:TEST (/ blg cmt cnt grp lbg obj)
  (setq
    cnt 0
    grp (ssget (list (cons 0 "LWPOLYLINE")))
    )
  (while (> (sslength grp) cnt)
    (setq
      obj (vlax-ename->vla-object (ssname grp cnt))
      cnt (1+ cnt)
      cmt 0
      lbg nil
      )
    (while (not (vl-catch-all-error-p (setq blg (vl-catch-all-apply 'vla-getbulge (list obj cmt)))))
      (setq lbg (cons blg lbg) cmt (1+ cmt))
      )
    (if (vl-some '(lambda (x) (/= x 0)) lbg)
      (vla-put-color obj 5)
      (vla-put-color obj 3)
      )
    )
  (princ)
  )    

Un saludo,

kasperle

Mensajes : 18
Fecha de inscripción : 18/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Ayuda con un lisp para poli-líneas Empty Re: Ayuda con un lisp para poli-líneas

Mensaje por José Francisco el Mar Jun 11, 2019 3:29 am

Buen día a todos.
kasperle, muchas gracias.
El lisp hace lo que busco, diferenciar las poli-líneas unas de otras.
De nuevo, mil gracias

José Francisco

Mensajes : 22
Fecha de inscripción : 30/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Ayuda con un lisp para poli-líneas Empty Re: Ayuda con un lisp para poli-líneas

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.