Merci beaucoup pour ta réponse, je passe un peux par pas mal d'idée pour arriver a mes fins 😅
En faite se que je souhaite c'est que depuis un fichier de dessin fini, je lance ma commande et un nouveau fichier se crée avec seulement quelques calques déjà prédéfinis
Aujourd'hui je suis parti sur cette idée
(defun c:sarchive ()
; Sauvegarder le dessin actuel
(command "SAUVERAP")
; Activer l'affichage de la boîte de dialogue d'enregistrement
(setq filedia 1)
; Enregistrer le fichier sous un nouveau nom avec "_Livraison" ajouté
(setq filename (strcat (getvar "dwgprefix") (getvar "dwgname")))
(setq new-filename (strcat (substr filename 1 (- (strlen filename) 4)) "_Livraison.dwg"))
(command "_saveas" "LT2018" new-filename)
(princ (strcat "\nSaved the changes to the file '" new-filename "' in AutoCAD 2018 format."))
; Supprimer les objets sur les calques spécifiés
(setq layer-names '("DIVISION" "FONCIER_SOMMET"))
(foreach layer layer-names
(setq entlist (vl-remove-if-not '(lambda (x) (eq (vla-get-Layer x) layer)) (vlax-ename->vla-object (entget (entlast)))))
(if entlist
(progn
(setq len (length entlist))
(repeat len
(vla-Delete (nth (setq len (1- len)) entlist))
)
(princ (strcat "\nDeleted " (itoa len) " objects on layer " layer "."))
)
(princ (strcat "\nNo objects found on layer " layer "."))
)
)
; Activer l'affichage de la boîte de dialogue d'enregistrement
(setq filedia 1)
; Sauvegarder le dessin actuel
(command "SAUVERAP")
)
Donc ce lisp fonctionne mais j'aimerai plutôt essayer d'utiliser la commande "-supcalque" pour supprimer tout les calques du dessin sauf les calques en bleu (car c'était pour tester) et remplacer ca à la place de ma partie en rouge.
Ou alors garder ma partie en rouge et a la place de désigner les objets des calques a supprimer, même principe que SUPCALQUE sélectionner tour les calques sauf la partie en bleue et ensuite purger.
Je sais pas si c'est très claire 😅
Et désolé si l'écriture est pas très belle !!