acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Aplicar estilo a texto existente

Ir abajo

Aplicar estilo a texto existente Empty Aplicar estilo a texto existente

Mensaje por eliasp el Sáb Feb 22, 2020 7:34 am

Buenas noches amigos.

Pues mi pregunta es esta: Tengo que actualizar algunos documentos que vienen de diferentes fuentes, entonces, cree un estilo de esta
forma:
Código:

(vl-cmdf "_-style" "cuadros" "verdana" "0" "1" "0" "_no" "_no")

La idea es seleccionar algunos textos en un conjunto de selección (o manualmente, como sea) y aplicarle el estilo....
Que líneas de lisp debo escribir para la asignación???

Gracias....

eliasp

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por Admin el Dom Feb 23, 2020 2:31 am

(vl-cmdf "_-style" "cuadros" "verdana" "0" "1" "0" "_no" "_no")

(VL-LOAD-COM)

(setq texto-a-cambiar (car (entsel)))

(setq texto-a-cambiar-obj (vlax-ename->vla-object texto-a-cambiar))

(vla-put-StyleName texto-a-cambiar-obj "cuadros")

Admin
Admin

Mensajes : 216
Fecha de inscripción : 16/03/2016
Edad : 72
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por eliasp el Dom Feb 23, 2020 6:01 am

Código:

(repeat(sslength conj1)
 (setq nombre(ssname conj1 n))
 (setq ob(vlax-ename->vla-object nombre))
 (vla-put-layer ob "Cuadros")
 (vla-put-StyleName ob "cuadros")
 (vla-put-color ob 256)
 
 (setq n(1+ n))
 )
Buen día MAEXTRO..... así lo intenté, pero precisamente, en la linea  (vla-put-StyleName ob "cuadros").... marca error...

ACAD escribió:
Command: ; error: ActiveX Server returned the error: unknown name: StyleName
; reset after error
Cuando lo hago de uno en uno si funciona...
Código:

(defun c:xcambia()  
  (setq txt(car(entsel "Texto...")))
  (setq obt(vlax-ename->vla-object txt))
  (vla-put-StyleName obt "cuadros")
  )

eliasp

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por eliasp el Dom Feb 23, 2020 7:05 am

Otro intento fallido:
Código:

(repeat(sslength conj1)
    (setq lista(entget(ssname conj1 n)))
    (setq estilo(cdr(assoc 7 lista)))
    (SETQ lista(SUBST (CONS 7 estilo) (CONS 7 "cuadros") lista))
    (ENTMOD lista)
    (setq n(1+ n))
    )

Ya se me agotaron las ideas.

Tal vez sea la versión de autocad....2015, 2018, 2020.
Espero puedan orientarme.

Gracias.................

eliasp

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por Dominguez el Miér Feb 26, 2020 3:47 pm

Prueba esta opcion:
Código:
(defun c:cha_stl (/ can ent gru)
 (vl-load-com)
 (if (not (tblobjname "STYLE" "cuadros"))
  (entmake (list '(0 . "STYLE")   '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbTextStyleTableRecord") '(2 . "cuadros")
       '(70 . 0) '(40 . 0.0) '(41 . 1.0) '(50 . 0.0) '(71 . 0) '(3 . "verdana") '(4 . "")
      )
  )
 )
 (setq gru (ssget))
 (setq can 0)
 (repeat (sslength gru)
  (setq ent (ssname gru can))
  (if (= (cdr (assoc 0 (entget ent))) "TEXT")
   (vla-put-stylename (vlax-ename->vla-object ent) "cuadros")
  )
  (setq can (1+ can))
 )
)
Saludos
Dominguez
Dominguez

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por Dominguez el Miér Feb 26, 2020 4:22 pm

Tambien puedes usar este otro.
Fichero ddchs.lsp
Código:
 ; Cambia estilo de los textos disignados.
 ; (C)2001, Colin Mitchell
(defun c:ddchs (/ old_error old_cmdecho textentities dcl_id textstyle_list ts_list table_checker do_it_up entity_index
 new_style
       )
 (defun ererror () (command ^c^c) (setq *error* old_error) (princ))
 (setq old_error *error*)
 (setq *error* ererror)
 (setq old_cmdecho (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (if (not (tblobjname "STYLE" "cuadros"))
  (entmake (list '(0 . "STYLE") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbTextStyleTableRecord") '(2 . "cuadros")
 '(70 . 0) '(40 . 0.0) '(41 . 1.0) '(50 . 0.0) '(71 . 0) '(3 . "verdana") '(4 . "")
 )
  )
 )
 (princ "\nSelecciona texto: ")
 (setq textentities (ssget (list (cons 0 "TEXT"))))
 (while (null textentities)
  (princ "\nPor favor seleccione algún texto. ")
  (setq textentities (ssget (list (cons 0 "TEXT"))))
 )
 (progn
  (if textentities
   (progn (if (not ai_utils)
   (load "ai_utils")
  )
  (setq dcl_id (load_dialog "ddchs.dcl"))
  (if (not (new_dialog "ChangeStyle" dcl_id))
   (alert "\nEl archivo de diálogo DD_CHS.DCL no fue encontrado. ")
  )
  (defun textstyle_table ()
   (setq textstyle_list (ai_table "STYLE" 4))
   (setq ts_list (itoa (length (ai_table "STYLE" 4))))
  )
  (textstyle_table)
  (cond ((/= ts_list "0")
 (setq textstyle_list (acad_strlsort textstyle_list))
 (start_list "textstyle_list")
 (mapcar 'add_list textstyle_list)
 (end_list)
 )
  )
  (setq table_checker 0)
  (defun check_it ()
   (if (= table_checker 0)
    (progn (setq do_it_up 1) (set_tile "message" "Por favor seleccione un estilo de texto."))
   )
   (if (= do_it_up 0)
    (done_dialog 1)
   )
  )
  (action_tile "accept" "(setq do_it_up 0)(check_it)")
  (action_tile "cancel" "(setq do_it_up 1)(done_dialog)")
  (action_tile "info" "(info)")
  (action_tile "how" "(how_to)")
  (action_tile "about" "(about)")
  (action_tile "textstyle_list" "(setq entity_index $value)(setq table_checker 1)")
  (setq execute_it (start_dialog))
  (unload_dialog dcl_id)
  (if (= execute_it 1)
   (progn (setq entity_index (read (strcat "(" entity_index ")")))
  (foreach i entity_index (setq new_style (nth i textstyle_list)))
  (progn (setq teloop 0)
 (setq telength (sslength textentities))
 (repeat telength
  (setq teentity (ssname textentities teloop))
  (setq teeval (entget teentity))
  (setq teeval (subst (cons 7 new_style) (assoc 7 teeval) teeval))
  (entmod teeval)
  (setq teloop (+ 1 teloop))
 )
 (princ)
 (prompt (strcat "\nJuego de estilos de texto: " new_style))
  )
   )
   (princ "\nNingun cambio ha sido hecho.")
  )
   )
  )
 )
 (setq *error* old_error)
 (setvar "cmdecho" old_cmdecho)
 (princ)
)

Fichero ddchs.dcl
Código:
dcl_settings:default_dcl_settings{audit_level=0;}
ChangeStyle:dialog{label="Cambio Estilo de Texto";
   spacer;
   :row{
      :column{
         :boxed_column{label="Estilos Disponibles:";
            :list_box{
               key="textstyle_list";
               width=35;
               fixed_width=true;
               height=10;
               fixed_height=true;
               allow_accept=true;
               multiple_select=false;
            }
            spacer;
         }
         :text{key="message";edit_width=10;alignment=centered;}
      }
      :column{
         :spacer{height=0.125;}
         :button{label="OK";
            key="accept";
            is_default=true;
            fixed_width=true;
            width=11;
         }
         :button{label="Cancel";
            key="cancel";
            is_cancel=true;
            fixed_width=true;
            width=11;
         }
         :spacer{height=10;}
      }
   }
}
Dominguez
Dominguez

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por eliasp el Jue Feb 27, 2020 2:56 pm

Buenos días. Muchas gracias maestro Domínguez, seguro éstos códigos funcionarán como se espera.
Aprovechando la vuelta:

El estilo que uso debe tener el tipo de letra: (3 . "frutiger lt std 47 ligth")). Sin embargo, "no se carga" debo hacer algo para que se aplique?. Es decir, se crea el estilo, pero en el nombre de la fuente aparece un triangulito amarillo, debo moverla a mano para que se cargue, alguna sugerencia?

Gracias

eliasp

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por Dominguez el Jue Feb 27, 2020 6:04 pm

eliasp escribió:El estilo que uso debe tener el tipo de letra: (3 . "frutiger lt std 47 ligth"). Sin embargo, "no se carga" debo hacer algo para que se aplique?. Es decir, se crea el estilo, pero en el nombre de la fuente aparece un triangulito amarillo, debo moverla a mano para que se cargue, alguna sugerencia?Gracias
Pues tengo que decirte que ese tipo de letra no lo conozco, asi que no te puedo ayudar.
Un saludo
Dominguez
Dominguez

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

Volver arriba Ir abajo

Aplicar estilo a texto existente Empty Re: Aplicar estilo a texto existente

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


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