Aller au contenu

Renommer plusieurs blocs


fauxsuisse

Messages recommandés

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.

 

Lien vers le commentaire
Partager sur d’autres sites

Salut fauxsuisse,

 

Peux-tu donner un exemple du nom de tes blocs qui finissent par UP et ceux qui finissent par AP?

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Bon Weekend et merci encore.

Lien vers le commentaire
Partager sur d’autres sites

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

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é