Eliminar espacios "de más" en textos....
+2
saulo2016
eliasp
6 participantes
Página 1 de 1.
Eliminar espacios "de más" en textos....
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........
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 : 195
Fecha de inscripción : 17/03/2016
Re: Eliminar espacios "de más" en textos....
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
http://www.lee-mac.com/aligntext.html
Nos cuentas haber como te fue.
Saludos
saulo2016- Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico
Re: Eliminar espacios "de más" en textos....
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........
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 : 195
Fecha de inscripción : 17/03/2016
Re: Eliminar espacios "de más" en textos....
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
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 : 195
Fecha de inscripción : 17/03/2016
Re: Eliminar espacios "de más" en textos....
Que bien que lo resolviste
bernie67- Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 56
Localización : Bogota DC-Colombia
Re: Eliminar espacios "de más" en textos....
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
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
bernie67- Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 56
Localización : Bogota DC-Colombia
Re: Eliminar espacios "de más" en textos....
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
Saludos
Re: Eliminar espacios "de más" en textos....
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)
)
Dominguez- Mensajes : 152
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
Re: Eliminar espacios "de más" en textos....
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)
)
Dominguez- Mensajes : 152
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
Re: Eliminar espacios "de más" en textos....
Gracias a todos.
La verdad es que de a poco voy re-aprendiendo y recordando.
Saludos
La verdad es que de a poco voy re-aprendiendo y recordando.
Saludos
eliasp- Mensajes : 195
Fecha de inscripción : 17/03/2016
Re: Eliminar espacios "de más" en textos....
- 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)
)
)
Re: Eliminar espacios "de más" en textos....
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í
Un saludo
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 : 182
Fecha de inscripción : 17/03/2016
Re: Eliminar espacios "de más" en textos....
Los espacios están siempre adelante del texto, en este caso
Re: Eliminar espacios "de más" en textos....
Gracias por los aportes!!!
Un saludo
Bernardo
Un saludo
Bernardo
bernie67- Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 56
Localización : Bogota DC-Colombia
Temas similares
» Eliminar vértices
» Eliminar mensaje de error
» Eliminar líneas repetidas de una lista
» Sumadora de Textos
» Filtar textos
» Eliminar mensaje de error
» Eliminar líneas repetidas de una lista
» Sumadora de Textos
» Filtar textos
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|