Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

Bonjour,

Si vous avez la possibilité d'installer AutoCad 2020 avec l'outil purger vous pouvez voir tous les éléments d'un style de texte.

Sinon peut-être avec la sélection rapide? (Pas sûr)

Bon courage

Posté(e)

yes le lémurien

assez génial ton truc

je bosse avec une 19 car je ne voyais aps l'interet de la 20.... après c'est aps ce qui va me faire switcher mais c'est bon à savoir...

++

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Hello Phil,

 

Comme tu aimes bien le DXF tongue.gif, avec la commande RENOMMER tu renommes ton style avec un nom bizarre par ex SCHTROUMPF

Tu enregistres ton dessin en DXF, tu fais un rechercher/Remplacer de SCHTROUMPF par STANDARD et tu réouvres.

 

Olivier

  • 5 mois après...
Posté(e)

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

Posté(e)

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

Posté(e)

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...

Posté(e)

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

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é