Aller au contenu

supprimer style de texte


philsogood

Messages recommandés

hello

tout est dans le titre

comment supprimer un style de texte, je dois avoir des textes/mtextyes/attributs avec ce style mais je souhaiterai le supprimer

ou plus fin comment savoir quels objets contiennent ce style de texte afin que je modifie les styles (via un lisp)

ou un truc genre fusionner les styles de textes comme ça se fait sur les calques

merci

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

Hello

 

1) Pas sur de bien te suivre !

 

2) Tu as des TEXTs avec un Style particulier "DANGER" !

Facile de les trouver avec la selection rapide et donc de leur affecter un autre Style "TVB" par exemple

Et idem pour les MTEXTs ... Mais bon on peux changer de TTF/SHX dans un MTEXT "partout" !

 

3) Et pour tes MTEXTs ???

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

1) SVP tu vas essayer ces 2 routines Lisp jointes (tirees de mon stock de qq milliers de routines)

que je n ai pas testees !?

 

2) SVP tu nous diras ce qu il en ait pour toi ?

 

3) Et aussi sur quelle version de AutoCAD tu les as fait tourner ?

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

 


;;; 
;;; Routine : OneStyle par GC
;;; 
;;; Attribue le style de texte sélectionne a tous les objets "texte"
;;; -------- Purge les autres styles
;;; 
;;; Please BE Careful !
;;; 

(defun c:OneStyle (/ TextStyles styles style ObjName)
(vl-load-com)
(or *acdoc*
(setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(setq TextStyles (vla-get-TextStyles *acdoc*))
(vlax-for s TextStyles
(setq styles (cons (vla-get-Name s) styles))
)
(setq styles (acad_strlsort (vl-remove "" styles)))
(if
(setq
style (listbox
"Choisir le style de texte"
nil
(mapcar '(lambda (x) (cons x x)) styles)
1
)
)
(progn
(vlax-for b (vla-get-Blocks *acdoc*)
(vlax-for e b
(setq ObjName (vla-get-ObjectName e))
(cond
((member ObjName
'("AcDbAttributeDefinition"
"AcDbText"
"AcDbMText"
)
)
(vla-put-StyleName e style)
(vla-update e)
)
((= (vla-get-ObjectName e) "AcDbBlockReference")
(foreach a (vlax-invoke e 'GetAttributes)
(vla-put-StyleName a style)
)
)
)
)
)
(SetTextStyleToDimStyles style)
(SetTextStyleToTableStyles style)
(vla-put-ActiveTextStyle *acdoc* (vla-item TextStyles style))
(vla-put-ActiveDimStyle *acdoc* (vla-get-ActiveDimStyle *acdoc*))
(vlax-for ts TextStyles
(or (= (vla-get-Name ts) style)
(vl-catch-all-apply 'vla-delete (list ts))
)
)
(vla-regen *acdoc* acAllViewports)
)
)
(princ)
)

;; ListBox par GC
;; Boite de dialogue permettant un ou plusieurs choix dans une liste
;;
;; Arguments
;; title : le titre de la boite de dialogue (chaîne)
;; msg ; message (chaîne), "" ou nil pour aucun
;; keylab : une liste d'association du type ((key1 . label1) (key2 . label2) ...)
;; flag : 0 = liste déroulante
;; 1 = liste choix unique
;; 2 = liste choix multipes
;;
;; Retour : la clé de l'option (flag = 0 ou 1) ou la liste des clés des options (flag = 2)
;;
;; Exemple d'utilisation
;; (listbox "Présentation" "Choisir une présentation" (layoutlist) 1)

(defun ListBox (title msg keylab flag / tmp file dcl_id choice)
(setq tmp (vl-filename-mktemp "tmp.dcl")
file (open tmp "w")
)
(write-line
(strcat "ListBox:dialog{label=\"" title "\";")
file
)
(if (and msg (/= msg ""))
(write-line (strcat ":text{label=\"" msg "\";}") file)
)
(write-line
(cond
((= 0 flag) "spacer;:popup_list{key=\"lst\";")
((= 1 flag) "spacer;:list_box{key=\"lst\";")
(T "spacer;:list_box{key=\"lst\";multiple_select=true;")
)
file
)
(write-line "}spacer;ok_cancel;}" file)
(close file)
(setq dcl_id (load_dialog tmp))
(if (not (new_dialog "ListBox" dcl_id))
(exit)
)
(start_list "lst")
(mapcar 'add_list (mapcar 'cdr keylab))
(end_list)
(action_tile
"accept"
"(or (= (get_tile \"lst\") \"\")
(if (= 2 flag) (progn
(foreach n (str2lst (get_tile \"lst\") \" \")
(setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice)))
(setq choice (reverse choice)))
(setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab)))))
(done_dialog)"
)
(start_dialog)
(unload_dialog dcl_id)
(vl-file-delete tmp)
choice
)

;;; SetTextStyleToDimStyles (gile)
;;; Attribue le style de texte a tous les styles de cote

(defun SetTextStyleToDimStyles (ts / ds)
(setq ts (tblobjname "style" ts))
(while (setq ds (tblnext "DIMSTYLE" (not ds)))
(setq ds (entget (tblobjname "DIMSTYLE" (cdr (assoc 2 ds)))))
(entmod (subst (cons 340 ts)
(assoc 340 ds)
ds
)
)
)
)

;;; SetTextStyleToTableStyles (gile)
;;; Attribue le style de texte à tous les styles de tableaux

(defun SetTextStyleToTableStyles (ts)
(vlax-for styl
(vla-item (vla-get-Dictionaries *acdoc*) "ACAD_TABLESTYLE")
(vla-setTextStyle styl 7 ts)
)
)  

 

 


;;; 
;;; https://jtbworld.com/autolisp-visual-lisp
;;;
;;; Change all text styles on all objects to specified text style
;;;
;;; ---- Lancement : (JTB_ChangeTextStyleName "ISOCPEUR")
;;;
;;; Please BE Careful !
;;; 

(defun JTB_ChangeTextStyleName (style / sset ename i)
 (vl-load-com)
 (setq i 0) 

 (setq sset (ssget "X" '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))  ;; ALL the DWG 
; (setq sset (ssget     '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))  ;; Classic Selection

 (if sset
   (repeat (sslength sset)
     (setq ename (ssname sset i))
     (setq i (1+ i))
     (vla-put-stylename (vlax-ename->vla-object ename) style)
   )
 )
 (setq sset nil)
) 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

1) SVP tu vas essayer ces 2 routines Lisp jointes (tirees de mon stock de qq milliers de routines)

que je n ai pas testees !?

 

2) SVP tu nous diras ce qu il en ait pour toi ?

 

3) Et aussi sur quelle version de AutoCAD tu les as fait tourner ?

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

 


;;; 
;;; Routine : OneStyle par GC
;;; 
;;; Attribue le style de texte sélectionne a tous les objets "texte"
;;; -------- Purge les autres styles
;;; 
;;; Please BE Careful !
;;; 

(defun c:OneStyle (/ TextStyles styles style ObjName)
(vl-load-com)
(or *acdoc*
(setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(setq TextStyles (vla-get-TextStyles *acdoc*))
(vlax-for s TextStyles
(setq styles (cons (vla-get-Name s) styles))
)
(setq styles (acad_strlsort (vl-remove "" styles)))
(if
(setq
style (listbox
"Choisir le style de texte"
nil
(mapcar '(lambda (x) (cons x x)) styles)
1
)
)
(progn
(vlax-for b (vla-get-Blocks *acdoc*)
(vlax-for e b
(setq ObjName (vla-get-ObjectName e))
(cond
((member ObjName
'("AcDbAttributeDefinition"
"AcDbText"
"AcDbMText"
)
)
(vla-put-StyleName e style)
(vla-update e)
)
((= (vla-get-ObjectName e) "AcDbBlockReference")
(foreach a (vlax-invoke e 'GetAttributes)
(vla-put-StyleName a style)
)
)
)
)
)
(SetTextStyleToDimStyles style)
(SetTextStyleToTableStyles style)
(vla-put-ActiveTextStyle *acdoc* (vla-item TextStyles style))
(vla-put-ActiveDimStyle *acdoc* (vla-get-ActiveDimStyle *acdoc*))
(vlax-for ts TextStyles
(or (= (vla-get-Name ts) style)
(vl-catch-all-apply 'vla-delete (list ts))
)
)
(vla-regen *acdoc* acAllViewports)
)
)
(princ)
)

;; ListBox par GC
;; Boite de dialogue permettant un ou plusieurs choix dans une liste
;;
;; Arguments
;; title : le titre de la boite de dialogue (chaîne)
;; msg ; message (chaîne), "" ou nil pour aucun
;; keylab : une liste d'association du type ((key1 . label1) (key2 . label2) ...)
;; flag : 0 = liste déroulante
;; 1 = liste choix unique
;; 2 = liste choix multipes
;;
;; Retour : la clé de l'option (flag = 0 ou 1) ou la liste des clés des options (flag = 2)
;;
;; Exemple d'utilisation
;; (listbox "Présentation" "Choisir une présentation" (layoutlist) 1)

(defun ListBox (title msg keylab flag / tmp file dcl_id choice)
(setq tmp (vl-filename-mktemp "tmp.dcl")
file (open tmp "w")
)
(write-line
(strcat "ListBox:dialog{label=\"" title "\";")
file
)
(if (and msg (/= msg ""))
(write-line (strcat ":text{label=\"" msg "\";}") file)
)
(write-line
(cond
((= 0 flag) "spacer;:popup_list{key=\"lst\";")
((= 1 flag) "spacer;:list_box{key=\"lst\";")
(T "spacer;:list_box{key=\"lst\";multiple_select=true;")
)
file
)
(write-line "}spacer;ok_cancel;}" file)
(close file)
(setq dcl_id (load_dialog tmp))
(if (not (new_dialog "ListBox" dcl_id))
(exit)
)
(start_list "lst")
(mapcar 'add_list (mapcar 'cdr keylab))
(end_list)
(action_tile
"accept"
"(or (= (get_tile \"lst\") \"\")
(if (= 2 flag) (progn
(foreach n (str2lst (get_tile \"lst\") \" \")
(setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice)))
(setq choice (reverse choice)))
(setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab)))))
(done_dialog)"
)
(start_dialog)
(unload_dialog dcl_id)
(vl-file-delete tmp)
choice
)

;;; SetTextStyleToDimStyles (gile)
;;; Attribue le style de texte a tous les styles de cote

(defun SetTextStyleToDimStyles (ts / ds)
(setq ts (tblobjname "style" ts))
(while (setq ds (tblnext "DIMSTYLE" (not ds)))
(setq ds (entget (tblobjname "DIMSTYLE" (cdr (assoc 2 ds)))))
(entmod (subst (cons 340 ts)
(assoc 340 ds)
ds
)
)
)
)

;;; SetTextStyleToTableStyles (gile)
;;; Attribue le style de texte à tous les styles de tableaux

(defun SetTextStyleToTableStyles (ts)
(vlax-for styl
(vla-item (vla-get-Dictionaries *acdoc*) "ACAD_TABLESTYLE")
(vla-setTextStyle styl 7 ts)
)
)  

 

 


;;; 
;;; https://jtbworld.com/autolisp-visual-lisp
;;;
;;; Change all text styles on all objects to specified text style
;;;
;;; ---- Lancement : (JTB_ChangeTextStyleName "ISOCPEUR")
;;;
;;; Please BE Careful !
;;; 

(defun JTB_ChangeTextStyleName (style / sset ename i)
 (vl-load-com)
 (setq i 0) 

 (setq sset (ssget "X" '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))  ;; ALL the DWG 
; (setq sset (ssget     '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))  ;; Classic Selection

 (if sset
   (repeat (sslength sset)
     (setq ename (ssname sset i))
     (setq i (1+ i))
     (vla-put-stylename (vlax-ename->vla-object ename) style)
   )
 )
 (setq sset nil)
) 

 

MAGIC !

 

Merci, le premier au top, le second, n'a pas marché, vas savoir pourquoi...

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

1) Je sentais bien que la routine "ONESTYLE" de Gilles etait OK !?

Mais je n avais pas AutoCAD "sous la main" pour tester !

 

2) La fonction (JTB_ChangeTextStyleName "ISOCPEUR")

de JTB ne traite que les TEXTs et MTEXTs du DWG DONC elle ne traite pas les Blocs !

 

3) SVP sur quelle version de AutoCAD tu as fait tourner "ONESTYLE" ?

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité