fauxsuisse Posté(e) le 30 octobre 2020 Posté(e) le 30 octobre 2020 Bonjour tout le monde.J'ai dans mon dessin plusieurs bloc se terminant par UP et AP et j'aurai voulu les renommer en bloc en UP1 et UP2, la commande renommer d'Autocad permet de renommer les bloc mais un par un, en gros j'ai des blocs qui se termine par UP et les autres par AP mais j'aimerai inverser ces deux terminaisons les UP deviennent des AP et les AP des UP.Il me semble que j'avais trouvé une fois une solution mais je n'arrive pas à mettre la main dessus.Si quelqu'un aurait une piste ça serait chouette. Citer
LElemurien Posté(e) le 30 octobre 2020 Posté(e) le 30 octobre 2020 Bonjour, Il y avait cette discussion il a pas longtemps cela peut peut-être aider? voici le lien Citer
fauxsuisse Posté(e) le 30 octobre 2020 Auteur Posté(e) le 30 octobre 2020 Bonjour, Il y avait cette discussion il a pas longtemps cela peut peut-être aider? voici le lien Je l'ai vu mais ça ne marche que pour mettre un préfix Citer
Steven Posté(e) le 30 octobre 2020 Posté(e) le 30 octobre 2020 Salut fauxsuisse, Peux-tu donner un exemple du nom de tes blocs qui finissent par UP et ceux qui finissent par AP? Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Olivier Eckmann Posté(e) le 30 octobre 2020 Posté(e) le 30 octobre 2020 Bonsoir, tu peux essayer avec ça : (defun oe:RenBlock (old new) (if (and (tblsearch "BLOCK" old) (not (tblsearch "BLOCK" new)) (snvalid new) ) (progn (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-name (list (vla-item (vla-get-blocks (cond (*AcadDoc*) ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))) ) ) old ) new ) ) ) (princ (strcat "\nBlock: " old " could not be renamed to: " new)) (princ (strcat "\nBlock: " old " renamed to: " new)) ) ) ) ) (defun C:RenBlkSuffix ( / sSuffixe1 sSuffixe2 oBlkDef sBlkName) (if (and (setq sSuffixe1 (getstring "\nSuffixe à remplacer : ")) (setq sSuffixe2 (getstring "\nSuffixe de remplacement : ")) ) (progn (setq oBlkDef (tblnext "BLOCK" T)) (while oBlkDef (setq sBlkName (cdr (assoc 2 oBlkDef))) (if (and (> (strlen sBlkName) (strlen sSuffixe1)) (= (substr sBlkName (1+ (- (strlen sBlkName) (strlen sSuffixe1)))) sSuffixe1)) (progn (setq sNewBlkName (strcat (substr sBlkName 1 (- (strlen sBlkName) (strlen sSuffixe1))) sSuffixe2)) (oe:RenBlock sBlkName sNewBlkName) ) ) (setq oBlkDef (tblnext "BLOCK")) ) ) ) ) Olivier Citer
fauxsuisse Posté(e) le 31 octobre 2020 Auteur Posté(e) le 31 octobre 2020 Bonsoir, tu peux essayer avec ça : (defun oe:RenBlock (old new) (if (and (tblsearch "BLOCK" old) (not (tblsearch "BLOCK" new)) (snvalid new) ) (progn (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-name (list (vla-item (vla-get-blocks (cond (*AcadDoc*) ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))) ) ) old ) new ) ) ) (princ (strcat "\nBlock: " old " could not be renamed to: " new)) (princ (strcat "\nBlock: " old " renamed to: " new)) ) ) ) ) (defun C:RenBlkSuffix ( / sSuffixe1 sSuffixe2 oBlkDef sBlkName) (if (and (setq sSuffixe1 (getstring "\nSuffixe à remplacer : ")) (setq sSuffixe2 (getstring "\nSuffixe de remplacement : ")) ) (progn (setq oBlkDef (tblnext "BLOCK" T)) (while oBlkDef (setq sBlkName (cdr (assoc 2 oBlkDef))) (if (and (> (strlen sBlkName) (strlen sSuffixe1)) (= (substr sBlkName (1+ (- (strlen sBlkName) (strlen sSuffixe1)))) sSuffixe1)) (progn (setq sNewBlkName (strcat (substr sBlkName 1 (- (strlen sBlkName) (strlen sSuffixe1))) sSuffixe2)) (oe:RenBlock sBlkName sNewBlkName) ) ) (setq oBlkDef (tblnext "BLOCK")) ) ) ) ) Olivier Merci beaucoup ça marche parfaitement, un gros gain de temps de gagner Bon Weekend et merci encore. Citer
fauxsuisse Posté(e) le 31 octobre 2020 Auteur Posté(e) le 31 octobre 2020 Salut fauxsuisse, Peux-tu donner un exemple du nom de tes blocs qui finissent par UP et ceux qui finissent par AP? Par exemple j'ai des blocs qui s'appelle T12_AP Sch0_AP Sch3_AP et la même chose mais se terminant par UP.AP signifie apparent et UP encastré et faut que j'inverse car le graphisme ne correspond plus.Mais Olivier Eckmann m'a trouvé la solution Citer
Steven Posté(e) le 31 octobre 2020 Posté(e) le 31 octobre 2020 Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Messages recommandés