Bonjour, la routine AutoLISP ci-dessous vous servira à renommer un bloc anonyme AutoCAD® en bloc non anonyme. Destinée plutôt aux débutants puisqu’elle est abondamment commentée, et ceci explique la longueur du programme qui, sans commentaire, et destinée à des utilisateurs expérimentés, serait beaucoup plus courte.
RENOMMER_ANONYME_PEDAGO.lsp (2,6 Ko)
;;; ==========================================================================
;;; COMMANDE : RENOMMER_ANONYME_PEDAGO
;;; DESCRIPTION : Renomme un bloc anonyme (MInsert ou Classique).
;;; AUTEUR : Assistant IA Dessein-Tech https://dessein-tech.com/t/lassistant-expert-autocad-ia-pro-est-disponible-publiquement/9335
;;; VERSION : AutoCAD 2026 Compatible
;;; ==========================================================================
(defun c:RENOMMER_ANONYME_PEDAGO ( / choix entite objetVLA typeObjet nomActuel defBloc nouveauNom erreur)
(vl-load-com)
;; 1. SELECTION
(setq choix (entsel "\n>>> Cliquez sur le bloc (MInsert ou Classique) : "))
(cond
((null choix)
(princ "\nAnnulation : Aucun objet sélectionné.")
)
(t
(setq entite (car choix))
(setq objetVLA (vlax-ename->vla-object entite))
;; 2. VERIFICATION DU TYPE D'OBJET
;; On récupère le nom interne de l'objet
(setq typeObjet (vla-get-ObjectName objetVLA))
;; On vérifie si c'est un Bloc OU un MInsert
;; La fonction 'and' vérifie si les deux conditions sont fausses.
(if (and (/= typeObjet "AcDbBlockReference")
(/= typeObjet "AcDbMInsertBlock")) ; <--- Ajout du support MInsert
;; Si ce n'est ni l'un ni l'autre :
(princ (strcat "\nErreur : L'objet est un " typeObjet ", pas un bloc."))
;; SI C'EST UN BLOC (Normal ou MInsert), ON CONTINUE :
(progn
(setq nomActuel (vla-get-name objetVLA))
;; 3. VERIFICATION SI ANONYME
(if (/= (substr nomActuel 1 1) "*")
(princ (strcat "\nInfo : Ce bloc n'est pas anonyme (" nomActuel ")."))
(progn
(princ (strcat "\nBloc anonyme détecté (" typeObjet ") : " nomActuel))
;; 4. DEMANDE DU NOM
(setq nouveauNom (getstring T "\n>>> Entrez le NOUVEAU NOM : "))
(if (/= nouveauNom "")
(progn
;; 5. ACCES A LA DEFINITION
(setq defBloc (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) nomActuel))
;; 6. RENOMMAGE
(setq erreur (vl-catch-all-apply 'vla-put-name (list defBloc nouveauNom)))
(if (vl-catch-all-error-p erreur)
(princ "\nERREUR : Nom invalide ou existant.")
(princ (strcat "\nSUCCES ! Renommé en : " nouveauNom))
)
)
(princ "\nAnnulation.")
)
)
)
)
)
)
)
(princ)
)
Qu’est-ce qu’un bloc anonyme et à quoi sert-il?
Pour faire simple : un bloc anonyme est un bloc « fantôme » géré par le système, conçu pour ne pas être manipulé directement par l’utilisateur.
Voici les 3 points clés à retenir :
1. Comment le reconnaître ?
Contrairement à un bloc classique (ex: « PORTE_90 »), un bloc anonyme a un nom généré par AutoCAD® qui commence toujours par un astérisque (*).
-
Il n’apparaît pas dans la liste de la commande INSERER.
-
Il n’apparaît pas dans la commande RENOMMER.
-
On ne peut pas l’éditer avec MODIFBLOC.
2. Les différents types (Le secret des préfixes)
La lettre qui suit l’astérisque indique souvent son origine :
-
*D...(Dimensions) : Vos cotes sont en réalité des blocs anonymes ! C’est un assemblage de lignes, flèches et textes regroupés. -
*X...(Hachures) : Les hachures complexes sont souvent gérées ainsi. -
*T...(Tableaux) : Les tableaux AutoCAD®. -
*U...(User / Unnamed) : Il est utilisé pour deux choses : -
Les Blocs Dynamiques : Quand vous étirez un bloc dynamique, AutoCAD® crée une copie anonyme (*U123) pour afficher cette forme spécifique sans modifier la définition originale du bloc.
-
La Protection : Des développeurs (ou des petits malins) convertissent des blocs normaux en *U pour empêcher les utilisateurs de les modifier ou de les copier facilement, car ils deviennent invisibles dans les listes.
3. À quoi ça sert concrètement ?
-
Pour AutoCAD® (Usage légitime) : Cela permet de créer des milliers de variantes d’objets (comme des cotes de longueurs différentes) sans polluer la liste des blocs de votre dessin avec des noms comme « COTE_1 », « COTE_2 », etc.
-
Dans certains cas (Usage détourné) : La personne qui a créé un fichier peut combiner un Bloc Anonyme (*U) avec la propriété MInsert (Répétition).
-
Anonyme = Impossible à renommer/éditer via l’interface.
-
MInsert = Impossible à décomposer (Explode).
-
Résultat = Un objet « verrouillé » très difficile à modifier sans programmation.