philsogood Posté(e) le 25 mars 2020 Posté(e) le 25 mars 2020 hellotout est dans le titrecomment supprimer un style de texte, je dois avoir des textes/mtextyes/attributs avec ce style mais je souhaiterai le supprimerou 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 calquesmerciPhil Citer Projeteur Revit Indépendant - traitement des eaux/CVC
LElemurien Posté(e) le 25 mars 2020 Posté(e) le 25 mars 2020 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 Citer
philsogood Posté(e) le 25 mars 2020 Auteur Posté(e) le 25 mars 2020 yes le lémurienassez génial ton trucje 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... ++ Citer Projeteur Revit Indépendant - traitement des eaux/CVC
Olivier Eckmann Posté(e) le 25 mars 2020 Posté(e) le 25 mars 2020 Hello Phil, Comme tu aimes bien le DXF , avec la commande RENOMMER tu renommes ton style avec un nom bizarre par ex SCHTROUMPFTu enregistres ton dessin en DXF, tu fais un rechercher/Remplacer de SCHTROUMPF par STANDARD et tu réouvres. Olivier Citer
drault Posté(e) le 27 août 2020 Posté(e) le 27 août 2020 Bonjour, aucune des deux solutions ne marchent pour ma part :( Citer
lecrabe Posté(e) le 27 août 2020 Posté(e) le 27 août 2020 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 exempleEt 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 Citer Autodesk Expert Elite Team
lecrabe Posté(e) le 27 août 2020 Posté(e) le 27 août 2020 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) ) Citer Autodesk Expert Elite Team
drault Posté(e) le 28 août 2020 Posté(e) le 28 août 2020 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... Citer
lecrabe Posté(e) le 28 août 2020 Posté(e) le 28 août 2020 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 Citer Autodesk Expert Elite Team
Messages recommandés