Eliminar espacios "de más" en textos....

Ir abajo

Eliminar espacios "de más" en textos....

Mensaje por eliasp el Vie Feb 23, 2018 7:52 pm

Buen día para todos.

Resulta ser que estoy "arreglando" algunos planos, me encontré con la sorpresa que, quien los hizo, alineó los textos dándole espacios... no se si fué intencional o parte de un proceso. El hecho es que para poder ordenar correctamente los textos, estoy quitándole "a mano" estos espacios... son miles... Alguien tendrá una sugerencia para esto? Por ejemplo, en VB existe la función TRIM.... en vlisp habrá algo parecido?

Saludos y gracias........

eliasp

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

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por saulo2016 el Vie Feb 23, 2018 9:45 pm

Checa la pagina del Maestro Lee Mac, haber si esto es lo que necestas...


http://www.lee-mac.com/aligntext.html


Nos cuentas haber como te fue.


Saludos
avatar
saulo2016

Mensajes : 139
Fecha de inscripción : 17/03/2016
Edad : 52
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por eliasp el Sáb Feb 24, 2018 12:25 am

Primeramente gracias por responder.



Aunque la rutina (obviamente) está muy buena, no es lo que busco. Anexo una imagen donde creo explicar en tres sencillos pasos lo que necesito, el punto es que son literalmente cientos de textos por plano.... y son 20 planos.... unos con mas, otros con menos.

Espero que esté mas claro. Y muchas gracias........

eliasp

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

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por eliasp el Sáb Feb 24, 2018 1:21 am

Bien... luego de algunas intensas horas de búsqueda, por fin di con lo que necesito.

Lo dejo aquí por si le sirve a alguien o hay comentarios.

Saludos
Código:

(defun c:xtextos()
  (setq txt(vlax-ename->vla-object(car(entsel "\n Texto..."))))  
  (setq aaa(vlax-get-property txt 'TextString))
  (setq aaa(vl-string-trim " " aaa))
  (vla-put-textstring txt aaa)  
  )

eliasp

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

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por bernie67 el Sáb Feb 24, 2018 2:48 am

Que bien que lo resolviste
avatar
bernie67

Mensajes : 67
Fecha de inscripción : 22/03/2016
Edad : 50
Localización : Bogota DC-Colombia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por bernie67 el Sáb Feb 24, 2018 2:48 am

Hola Eliasp
Te voy a dar una solución un poco pedrera pero que tal vez te sirva y de un solo envión sacas todos los letreros.
Lo único es que solo te va servir para volver todos los textos a TEXT , Mtext no pues te quedarían mal.
Lo primero es usar el comando dataextraction y sacar solo las características de los elementos text o los Mtext (no dices que elementos son), entre ellos el valor, las coordenadas x,y y el angulo de rotación. Esto lo sacas en una tabla de excel.
A esa tabla de excel le insertas una columna donde usaras la oden =RECORTA(A*) y así eliminas los espacios innecesarios https://www.educadictos.com/eliminar-espacios-sobrantes-en-excel/
Y luego usas la tablita que te adjunto con un ejemplo en donde usando concatenar devuelvo los datos a su punto de inserción original pero ya sin espacios. Los puedes insertar en un nuevo dibujo
Con paste seleccionas esa columna de concatenas y en autocad pegas en el cuadro de dialogo o command y el te pegara todos los textos, ya tu veras como le ajustas la altura, desde excel o en el autocad
https://www.dropbox.com/sh/uw067kh74n42eo1/AABqWJ_CU1Vv6yv6dZ3GwT39a?dl=0
Si tienes dudas me cuentas y te pongo un seguimiento con imágenes
saludos
Bernardo Corradine
avatar
bernie67

Mensajes : 67
Fecha de inscripción : 22/03/2016
Edad : 50
Localización : Bogota DC-Colombia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por Admin el Sáb Feb 24, 2018 12:10 pm

Hola Elías , por favor envíame el dwg con los textos , ya que me gustaría poder ver cómo están ubicados los espacios.
Saludos

Admin
Admin

Mensajes : 181
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: Eliminar espacios "de más" en textos....

Mensaje por Dominguez el Sáb Feb 24, 2018 9:20 pm

Bueno aqui dejo otra solucion, que quita los espacios en blanco del inicio de los textos elegidos de forma masiva.
Código:
 ; Elimina todos los espacios del inicio de todos los textos designados.
 ; Luis Dominguez Gómez 2018
(defun c:quita_inic (/ gru num data cad_old cad_new ent)
 (setvar "cmdecho" 0)
 (vl-load-com)
 (prompt "Selecciona textos para modificar: ")
 (setvar "nomutt" 1)
 (setq gru (ssget '((0 . "TEXT"))))
 (setvar "nomutt" 0)
 (setq num 0)
 (while   (< num (sslength gru))
  (setq data (entget (ssname gru num)))
  (setq cad_old (cdr (assoc 1 data)))
  (setq cad_new (vl-string-left-trim " " cad_old))
  (setq ent (subst (cons 1 cad_new) (assoc 1 data) data))
  (entmod ent)
  (setq num (1+ num))
 )
 (prin1)
)
Saludos
avatar
Dominguez

Mensajes : 73
Fecha de inscripción : 20/03/2016
Edad : 68
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por Dominguez el Sáb Feb 24, 2018 9:48 pm

Tambien esta otra hecha al paso, un poco mas moderna.
Código:
 ; Elimina todos los espacios del inicio de todos los textos designados.
 ; Luis Dominguez Gómez 2018
(defun c:quita_inic (/ gru num txt_vl txt_new)
 (vl-load-com)
 (setvar 'cmdecho 0)
 (prompt "Selecciona textos para modificar: ")
 (setvar 'nomutt 1)
 (setq gru (ssget '((0 . "TEXT"))))
 (setvar 'nomutt 0)
 (setq num 0)
 (while   (< num (sslength gru))
  (setq txt_vl (vlax-ename->vla-object (ssname gru num)))
  (setq txt_new (vl-string-trim " " (vlax-get-property txt_vl 'textstring)))
  (vla-put-textstring txt_vl txt_new)
  (setq num (1+ num))
 )
 (prin1)
)
espero que te sirvan.
avatar
Dominguez

Mensajes : 73
Fecha de inscripción : 20/03/2016
Edad : 68
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por eliasp el Lun Feb 26, 2018 6:51 pm

Gracias a todos.

La verdad es que de a poco voy re-aprendiendo y recordando.

Saludos

eliasp

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

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por Admin el Mar Feb 27, 2018 2:16 am

Código:
;;;;;-------------------------------------------------------------------------------------------------------------
(DEFUN SACAESPACIOS  (/
                      ACAD-OBJ
                      ADOC
                      MODEL
                      SELECTIONSETS
                      TEXTO-$
                      TEXTO-CAPA
                      TEXTO-EJEM
                      TEXTO-EJEM-OBJ
                      TEXTO-SIN-ESP
                      TEXTOS-SS-OBJ
                      TODOS-A-CAMBIAR
                      )


  (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))
  (SETQ SELECTIONSETS (VLA-GET-SELECTIONSETS ADOC))

  (PRINC "/n Elije el texto ejemplo")
  (SETQ TEXTO-EJEM (SSNAME (SSGET ":s" (LIST (CONS 0 "text"))) 0))


  (SETQ TEXTO-EJEM-OBJ (VLAX-ENAME->VLA-OBJECT TEXTO-EJEM))
  (SETQ TEXTO-CAPA (VLA-GET-LAYER TEXTO-EJEM-OBJ))

  (SETQ TODOS-A-CAMBIAR (SSGET "X" (LIST (CONS 0 "text") (CONS 8 TEXTO-CAPA))))
  (SETQ TEXTOS-SS-OBJ (VLA-GET-ACTIVESELECTIONSET ADOC))


  (VLAX-FOR TEXTO  TEXTOS-SS-OBJ
    (SETQ TEXTO-$ (VLA-GET-TEXTSTRING TEXTO))
    (SETQ TEXTO-SIN-ESP (VL-STRING-TRIM " " TEXTO-$))
    (VLA-PUT-TEXTSTRING TEXTO TEXTO-SIN-ESP)
    )

  )



Admin
Admin

Mensajes : 181
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: Eliminar espacios "de más" en textos....

Mensaje por nolo el Miér Feb 28, 2018 5:04 pm

Deduzco que los espacios estan siempre al principio y final de los textos porque no he podido visualizar la imagen con la suficiente nitidez
Por aportar algo, yo suelo hacer un bucle para eliminar los espacios de más entre palabras que aplicado aqui, sería algo así

Código:
(defun c:lt( / quita ss obj txt)
(defun quita(a)
(while (wcmatch a "*  *")
 (setq a (vl-string-subst " " "  " a))
)
(VL-STRING-TRIM " " a)
)
(setq ss (ssget "_a" '((0 . "TEXT"))))
(while (>(sslength ss)0)
 (setq obj(vlax-ename->vla-object (ssname ss 0))
 txt(quita (vlax-get-property obj 'TextString))
 )
 (vla-put-textstring obj txt)
 (ssdel (ssname ss 0)ss)
)
(princ (strcat (chr 10)"hecho ..."))
(princ)
)

Un saludo

nolo

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

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

Mensaje por Admin el Miér Feb 28, 2018 8:28 pm

Los espacios están siempre adelante del texto, en este caso



Admin
Admin

Mensajes : 181
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: Eliminar espacios "de más" en textos....

Mensaje por bernie67 el Jue Mar 01, 2018 12:15 am

Gracias por los aportes!!!
Un saludo
Bernardo
avatar
bernie67

Mensajes : 67
Fecha de inscripción : 22/03/2016
Edad : 50
Localización : Bogota DC-Colombia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Eliminar espacios "de más" en textos....

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.