Longitud de Polilinea

Ver el tema anterior Ver el tema siguiente Ir abajo

Longitud de Polilinea

Mensaje por Zicaryd el Jue Sep 14, 2017 1:44 pm

Empezando el dia,

Que tal, buenos dias, tengo alguna rutinas de medicion de lines y polilineas por tramos, pero talvez alguien tenga una lips para medir polilinea completa, que te saque la medida.

Envio ejemplo https://drive.google.com/open?id=0B131sP2Zq1-QdEI3bTFoMWFGY3M

Agradeceria si pueden ver si alguien tiene algo que me pueda ayudar a conseguir este resultado.

Gracias

Zicaryd

Mensajes : 22
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Bien venido al foro .

Mensaje por Admin el Jue Sep 14, 2017 6:16 pm

Zicaryd escribió:Empezando el dia,

Que tal, buenos dias, tengo alguna rutinas de medicion de lines y polilineas por tramos, pero talvez alguien tenga una lips para medir polilinea completa, que te saque la medida.

Envio ejemplo https://drive.google.com/open?id=0B131sP2Zq1-QdEI3bTFoMWFGY3M

Agradeceria si pueden ver si alguien tiene algo que me pueda ayudar a conseguir este resultado.

Gracias

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Admin el Jue Sep 14, 2017 7:10 pm

Hola prueba esto , hay que resolver la posición y rotación del texto . Puedes adaptar el otro LISP . O lo puedes poner aquí para ver de adaptarlo


Código:
(defun c:long-poly ()
(VL-LOAD-COM)
  (SETQ ACAD-OBJ (VLAX-GET-ACAD-OBJECT)) ;_ el programa ACAD
  (SETQ ADOC (VLA-GET-ACTIVEDOCUMENT ACAD-OBJ)) ;_ el DWG que esta abierto-
  (SETQ MODEL (VLA-GET-MODELSPACE ADOC))


(PROMPT "\n Seleccione una poly")
(SETQ POLY (SSNAME (SSGET ":S" (LIST (CONS 0 "*poly*"))) 0))
(SETQ POLY-OBJ (VLAX-ENAME->VLA-OBJECT POLY))
(SETQ POLY-LENGTH (VLA-GET-LENGTH POLY-OBJ))
(SETQ POLY-MID-PAR (VLAX-CURVE-GETPARAMATDIST POLY-OBJ (/ POLY-LENGTH 2.0)))
(SETQ POLY-MID-PT (VLAX-CURVE-GETPOINTATPARAM POLY-OBJ POLY-MID-PAR))
(SETQ POLY-FIRST-DER (VLAX-CURVE-GETFIRSTDERIV POLY-OBJ POLY-MID-PAR))
(SETQ POLY-MID-PT-ANG (ATAN (CAR POLY-FIRST-DER) (CADR POLY-FIRST-DER)))

(prompt "\n seleccione un texto ejemplo")
(SETQ TEXT-EJEMPLO (SSNAME (SSGET ":S" (LIST (CONS 0 "text"))) 0))
(SETQ TEXT-EJEMPLO-OBJ (VLAX-ENAME->VLA-OBJECT TEXT-EJEMPLO))
(SETQ TEXT-HEIGHT (VLA-GET-HEIGHT TEXT-EJEMPLO-OBJ))
(SETQ TEXT-INSERT (VLA-GET-INSERTIONPOINT TEXT-EJEMPLO-OBJ))
(SETQ TEXT-COPIADO (VLA-COPY TEXT-EJEMPLO-OBJ))
(SETQ TEXT-PT-MID-PT (POLAR POLY-MID-PT (- POLY-MID-PT-ANG) (* 1.5 TEXT-HEIGHT)))
;; corrige el 1.5 a necesidad

(SETQ TEXT-ROT (- (+ (/ PI 2) POLY-MID-PT-ANG)))
;; puede que no de siempre lo esperado

(VLA-MOVE TEXT-COPIADO TEXT-INSERT (VLAX-3D-POINT TEXT-PT-MID-PT))
(VLA-PUT-TEXTSTRING TEXT-COPIADO (rtos POLY-LENGTH 2 2))
(VLA-PUT-ROTATION TEXT-COPIADO TEXT-ROT)

)

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Zicaryd el Jue Sep 14, 2017 8:20 pm

Buen dia, que tal Admin, gracias por la mención.

He revisado el lips funciona bastante bien, pero si quisiera seleccionar varias polilineas a la vez solo le pone texto a una.

Zicaryd

Mensajes : 22
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Admin el Jue Sep 14, 2017 9:02 pm

A lo pedido.

Zicardy escribió:pero talvez alguien tenga una lips para medir polilinea completa, que te saque la medida.
Dice una sola poly y una sola medida

lo entregado.

Podemos ampliar el Lisp

Envía un DWG con TODAS las POLYS . lo puedes hacer por el gdrive , o a mi correo
Debe venir con al menos UN TEXTO EJEMPLO DE COMO QUIRES LA MEDIDA

devitg@gmail.com

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Zicaryd el Jue Sep 14, 2017 9:23 pm

Gracias por tu atención, me refería a ese ejemplo puntual que subí, que si en una sola selecciono las 4 polilineas me ponga las distancia, ya que según la rutina que me has proporcionado debo seleccionarlo una polilinea y el texto, pero no lo hace masivamente.

Zicaryd

Mensajes : 22
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Admin el Jue Sep 14, 2017 9:40 pm

sube el dwg con muchas poly , un dwg real , no uno preparado para el foro ,

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Zicaryd el Jue Sep 14, 2017 9:46 pm

Subo el ejemplo real,
https://drive.google.com/open?id=0B131sP2Zq1-QTmJXdlp6V09mLWM
Las mismas condiciones, se podria mejorar, una separación del texto a la linea o la opción de tamaño de texto,
Igual Gracias.

Zicaryd

Mensajes : 22
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Admin el Jue Sep 14, 2017 9:50 pm

Debes poner un texto ejemplo , tal como tu quires que quede.
Es mas fácil replicar lo que trines , que adivinar lo que tu deseas, y mas dificil hacer todas las opciones.


Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Zicaryd el Jue Sep 14, 2017 10:09 pm


Zicaryd

Mensajes : 22
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Admin el Vie Sep 15, 2017 1:39 am

Hola , adjunto l o que he hecho hasta ahora , no funciona , no sé porqué .Ruego a quien pueda darle un vista y tratar dd resolverlo. L
No tendré PC hasta el sábado 30de sep .

Código:

(defun saca-long-poly (POLY-OBJ TEXT-COPIADO
                                TEXT-DISTANCE-A-POLY
                                TEXT-INSERT
                                /
                                POLY-FIRST-DER
                                POLY-LENGTH
                                POLY-MID-PAR
                                POLY-MID-PT
                                POLY-MID-PT-ANG


                                TEXT-PT-MID-PT
                                TEXT-ROT
                                )








(SETQ POLY-LENGTH (VLA-GET-LENGTH POLY-OBJ))
(SETQ POLY-MID-PAR (VLAX-CURVE-GETPARAMATDIST POLY-OBJ (/ POLY-LENGTH 2.0)))
(SETQ POLY-MID-PT (VLAX-CURVE-GETPOINTATPARAM POLY-OBJ POLY-MID-PAR))
(SETQ POLY-FIRST-DER (VLAX-CURVE-GETFIRSTDERIV POLY-OBJ POLY-MID-PAR))
(SETQ POLY-MID-PT-ANG (ATAN (CAR POLY-FIRST-DER) (CADR POLY-FIRST-DER)))

(SETQ TEXT-PT-MID-PT (POLAR POLY-MID-PT (- POLY-MID-PT-ANG) text-distance-a-poly))

(SETQ TEXT-ROT (- (+ (/ PI 2) POLY-MID-PT-ANG)))
;; puede que no de siempre lo esperado

(VLA-MOVE TEXT-COPIADO TEXT-INSERT (VLAX-3D-POINT TEXT-PT-MID-PT))
(VLA-PUT-TEXTSTRING TEXT-COPIADO (rtos POLY-LENGTH 2 2))
(VLA-PUT-ROTATION TEXT-COPIADO TEXT-ROT)
)

;;**************************************************************************************

(defun c:long-poly ()
(VL-LOAD-COM)
  (SETQ ACAD-OBJ (VLAX-GET-ACAD-OBJECT)) ;_ el programa ACAD
  (SETQ ADOC (VLA-GET-ACTIVEDOCUMENT ACAD-OBJ)) ;_ el DWG que esta abierto-
  (SETQ MODEL (VLA-GET-MODELSPACE ADOC))
 
 
(prompt "\n seleccione un texto ejemplo")
(SETQ TEXT-EJEMPLO (SSNAME (SSGET ":S" (LIST (CONS 0 "text"))) 0))
(SETQ TEXT-EJEMPLO-OBJ (VLAX-ENAME->VLA-OBJECT TEXT-EJEMPLO))
(SETQ TEXT-HEIGHT (VLA-GET-HEIGHT TEXT-EJEMPLO-OBJ))
(SETQ TEXT-INSERT (VLA-GET-INSERTIONPOINT TEXT-EJEMPLO-OBJ))
(SETQ TEXT-COPIADO (VLA-COPY TEXT-EJEMPLO-OBJ))
(setq TEXT-xy  (REVERSE (CDR (REVERSE  (VLAX-SAFEARRAY->LIST ( VARIANT-VALUE TEXT-INSERT))))))
 
(PROMPT "\n Seleccione una poly")
(SETQ POLY (SSNAME (SSGET ":S:E"(LIST (CONS 0 "*poly*"))) 0))
(SETQ POLY-OBJ (VLAX-ENAME->VLA-OBJECT POLY))
(setq pt@poly (VLAX-CURVE-GETCLOSESTPOINTTO POLY-OBJ text-xy))
(setq text-distance-a-poly (distance text-xy pt@poly)) 
(setq poly-layer (VLA-GET-LAYER POLY-OBJ))
(setq poly-ss (ssget "X" (list ( cons 0 "*poly*") (cons 8 poly-layer))))
(setq poly-obj-ss (VLA-GET-ACTIVESELECTIONSET adoc ))



(setq cont 1)
  (setq POLY-OBJ (VLA-ITEM poly-obj-ss 0))
(VLAX-FOR POLY-OBJ  POLY-OBJ-SS
  (SETQ CONT (1+ CONT))
  (SACA-LONG-POLY POLY-OBJ TEXT-COPIADO  text-distance-a-poly TEXT-INSERT  )
  CONT
  ) 

  )

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por nolo el Vie Sep 15, 2017 1:40 pm

Gabriel, le veo dos cosas a tu rutina:

1º Para seleccionar con ssget una única entidad sería
Código:
(SSGET "_+.:E:S" etc
Lo saco de la página del LEE MAC

2º Como no refrescas la entidad de texto que copias, pues te la vas moviendo a cada nueva entidad de polilinea que tratas con lo que al final no queda constancia alguna de lo que se ha hecho.
Prueba a poniendo en el bucle el refresco
Código:
(VLAX-FOR POLY-OBJ  POLY-OBJ-SS
  (SETQ CONT (1+ CONT))
  (SACA-LONG-POLY POLY-OBJ TEXT-COPIADO  text-distance-a-poly TEXT-INSERT  )

(SETQ TEXT-EJEMPLO-OBJ (VLAX-ENAME->VLA-OBJECT TEXT-EJEMPLO))
(SETQ TEXT-COPIADO (VLA-COPY TEXT-EJEMPLO-OBJ))

  CONT
  )


Ahora si debe funcionar, PERO ......
El tema de la rutina es encontrar como deducir que es arriba y abajo. Poner el texto al derecho es comparar un angulo pero poner arriba depende del ángulo y de como este dibujada la polilinea y ahí me pierdo en este dibujo.
El tema salió en Hispacad varias veces para acotar y numerar vértices en polilineas cerradas, interior o exteriormente (parcelas, habitaciones etc) con lo cual había método para calcular si estaba dentro o fuera, pero aquí no veo claro que es arriba de la línea porque se puede haber trazado de iz a de o al berres ....

Un saludo

nolo

Mensajes : 136
Fecha de inscripción : 17/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Longitud de Polilinea

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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