Problème commande "Renommer"

Bonjour la communauté,
Je souhaite renommer plusieurs calques en masse, je pense à la commande Renommer.
Mon but est de rajouter « _Reco » à la suite des calques « *_Ancien »
Voici un screen exemple :

Voici le message sur ma ligne de commande apres avoir appliquer:
image

Y’a t’il eu des changements sur cette commande? J’ai déjà fais cette manœuvre mais quelque chose m’échappe la.
(Je précise que je suis conscient qu’il est possible de les faire un par un pour ce cas…)

Merci d’avance

Matthieu

1 « J'aime »

Bonjour, vous pouvez faire ça avec une petite routine Lisp, facile à créer avec l’assistant AutoCAD expert IA.

RECO_ANCIEN.lsp (948 Octets)

(defun c:RECO_ANCIEN (/ layerData layerName newName)
  (setvar "CMDECHO" 0) ; Désactive l'affichage des étapes en ligne de commande
  
  ; On parcourt la table des calques
  (setq layerData (tblnext "LAYER" T))
  
  (while layerData
    (setq layerName (cdr (assoc 2 layerData))) ; Récupère le nom du calque
    
    ; Vérifie si le nom se termine par _Ancien (insensible à la casse)
    (if (wcmatch (strcase layerName) "*_ANCIEN")
      (progn
        (setq newName (strcat layerName "_Reco"))
        
        ; Utilisation du nom de commande international _.RENAME
        ; _LA correspond à l'option "LAyer" (Calque)
        (command "_.RENAME" "_LA" layerName newName)
        
        (princ (strcat "\nSuccès : " layerName " renommé en " newName))
      )
    )
    (setq layerData (tblnext "LAYER")) ; Passe au calque suivant
  )
  
  (setvar "CMDECHO" 1)
  (princ "\nOpération terminée.")
  (princ)
)

Merci pour votre réponse.
Il y a donc bien eu un changement sur cette commande… (je suppose du coup)
C’est quand même plus contraignant de passer par un Lisp pour ce type d’opération qui me semble « courant ».
Tout le monde n’a pas de base solide dans la programmation ni l’envi de faire tourner l’IA plein pot!
Bonne journée

Il ne me semble pas possible de le faire avec la commande RENOMMER. Je n’ai pas souvenir de l’avoir fait par le passé, mais je peux me tromper.
@autocad_experts qu’en pensez-vous ?

Notez que depuis votre question, la version 2027 d’AutoCAD est sortie avec son assistant IA intégré. Si vous posez votre question à l’assistant, il vous dira tout d’abord que vous pouvez utiliser la commande renommer, ce qui ne produira pas de résultat. Puis il vous proposera une petite routine LISP (ci-dessous) qui fonctionne à peu près, à part la traditionnelle erreur de la traduction de l’option des commandes.

(defun c:RenameAncien ()
  (setq layers (tblnext "LAYER" T))
  (while layers
    (setq layername (cdr (assoc 2 layers)))
    (if (wcmatch layername "*_Ancien")
      (command "._RENAME" "LA" layername (strcat layername "_Reco"))
    )
    (setq layers (tblnext "LAYER"))
  )
  (princ)
)

Bonjour,

J’ai ça dans mes applications, 100 % compatible avec les Versions LT ! 0 LISP…

En utilisant EXCEL…

Christian

Pour poursuivre la discussion sur cette question qui nous a été soumise, l’assistant Intelligence Artificielle AutoCAD permet non seulement de générer des routines AutoLISP mais également des scripts que vous pouvez lancer avec la commande SCRIPT, ce qui ravira ceux qui sont inconfortables avec la programmation AutoLISP, ceux qui utilisent une LT pré 2024 et ceux qui sont des inconditionnels des scripts… (@REBCAO :wink:)

Je préférerais que tu m’écrives un fichier d’extension SCR parce que j’ai l’intention de lancer ce script dans des versions AutoCAD LT qui ne supportent pas la programmation AutoLISP

Assistant:
Vous avez absolument raison ! AutoCAD LT ne supporte pas AutoLISP. Je vais vous créer un fichier script (.SCR) qui utilise uniquement les commandes natives d’AutoCAD.

Basé sur l’analyse de vos calques actuels, voici le fichier script pour renommer les 3 calques qui finissent par « _Ancien » :

; Script pour renommer les calques finissant par _Ancien en ajoutant _Reco
; Compatible avec AutoCAD LT
;
; Renommage des calques identifiés :
; Calque2_Ancien → Calque2_Ancien_Reco
; Calque4_Ancien → Calque4_Ancien_Reco
; Calque5_Ancien → Calque5_Ancien_Reco

; Ouvrir le gestionnaire des propriétés des calques
-LAYER

; Renommer Calque2_Ancien
RENAME
Calque2_Ancien
Calque2_Ancien_Reco

; Renommer Calque4_Ancien
RENAME
Calque4_Ancien
Calque4_Ancien_Reco

; Renommer Calque5_Ancien
RENAME
Calque5_Ancien
Calque5_Ancien_Reco

; Fermer le gestionnaire des calques
EXIT

; Afficher un message de confirmation
ECHO Renommage terminé : 3 calques ont été renommés avec le suffixe _Reco

; Régénérer l’affichage pour mettre à jour
REGEN
Comment utiliser ce fichier script (.SCR) :
Copiez le contenu ci-dessus dans un fichier texte
Sauvegardez-le avec l’extension .scr (par exemple : renommer_calques.scr)
Dans AutoCAD LT, utilisez la commande SCRIPT
Sélectionnez votre fichier .scr dans la boîte de dialogue
Alternative avec commande directe :
Si vous préférez une approche plus simple, vous pouvez aussi exécuter directement ces commandes dans la ligne de commande d’AutoCAD LT :

-LAYER RENAME Calque2_Ancien Calque2_Ancien_Reco RENAME Calque4_Ancien Calque4_Ancien_Reco RENAME Calque5_Ancien Calque5_Ancien_Reco EXIT
Avantages du fichier .SCR :
:white_check_mark: Compatible avec AutoCAD LT (pas de programmation)
:white_check_mark: Automatisé - exécution en une seule fois
:white_check_mark: Réutilisable sur d’autres dessins
:white_check_mark: Traçable - vous pouvez voir exactement quelles commandes sont exécutées

[!Note]
Intéressante alternative, à la fois le fichier script et aussi tout simplement la ligne de commande. Notez que les deux comportent des erreurs de jeunesse de l’assistant sur la traduction français-anglais des commandes et des options. Espérons que cela va être corrigé rapidement.

Salut Patrick,

Tu as de la chance, parce je lui avais demandé une manière de créer des LIGNES par 2 Points et en boucle…

pour éviter des ENTREES clavier à tout va… si je faisais la même chose mais manuellement en tapant TOUT au clavier !!!

J’attendais la MACRO « Magique » !!!

Au bout de notre discussion, il lui a fallut 19 ALLER-RETOUR de QUESTIONS, jusqu’à ce que vers la fin, je l’oriente un peu !!! pour arriver à :

 *^C^C_line;\\;

Avec GEMINI j’ai posé la QUESTION et la 1ère Réponse c’était la MACRO ci-dessus !

Il, ELLE ! est encore en phase apprentissage !!! Pour pas dire DEBUGGAGE !!!

Maintenant, c’est même ELLE qui me pose des questions !!!

Du coup, je fais MIX. GEMIN - Ch’ToCADette2027 (son nom de baptême de GEMINI (=Ch’ToCAD) et Moi).

Amicalement,
Christian

Bonjour, pour ce qui est de l’assistant intégré à AutoCAD il est en « technologie preview », c’est-à-dire en fait l’équivalent de la phase bêta.

J’ai fait une comparaison avec l’assistant AutoCAD expert de Dessein-Tech en mode Gemini 3 Pro et j’obtiens la réponse correcte en deux questions. (les deux IA se mélangent pour le moment les pinceaux avec les points virgules):

Je précise : Réponse Hors sujet

Vivement que mon boss nous mettes à jour avec une version d’Autocad + IA
je commence à en avoir marres de passer par une IA sur un autre onglet pour faire toutes mes manip… =)