Aller au contenu

Fermeture de plusieurs fichiers


Fruity

Messages recommandés

Bonjour

 

Toujours dans les choses qui ne sont jamais corrigées, avec le tps, ca a peut-être changé:

Comment fermer rapidement une vingtaine de plans ouverts? Ouverts uniquement pour lancer des impressions ou des pdf, donc sans aucune modifications. Devoir attendre la question si il y a eu des modifications et cliquer sur "Non" a chaque fichier est une perte de tps considérable.

A part killer le processus, j'aimerais une solution propre (répondre "non, à tous les fichiers" tout simplement).

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Peut-être avec "CLOSEALL" ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Peut-être une demi réponse en faisant un clic droit sur une présentation et "Enregistrer tout", puis un autre clic droit pour "Fermer tout"

En effet, ca peut fonctionner en faisant ainsi, mais c'est pas top de re-sauvegarder des fichiers qui ne m'appartiennent pas forcement, et donc changer la date d'enregistrement (ce qui peut être utile parfois).

 

Quant a Closeall, bah c'est "fermer tout", ca n’empêche pas la demande de sauvegarde.

Lien vers le commentaire
Partager sur d’autres sites

 

Woo ca marche niquel, merci beaucoup!

je recopie le lisp ici pour de futurs recherches.

 

;Quit all drawings without saving (CAD Studio - www.cadforum.cz)
(vl-load-com)
(defun C:QuitAll ( / dwg)
(vlax-for dwg (vla-get-Documents (vlax-get-acad-object))
 (if (= (vla-get-active dwg) :vlax-false)(vla-close dwg :vlax-false))
)
(command "._close" "_y")
)

Lien vers le commentaire
Partager sur d’autres sites

  • 7 mois après...

Woo ca marche niquel, merci beaucoup!

je recopie le lisp ici pour de futurs recherches.

 

 

Je remonte ce sujet car j'ai quelques soucis.

J'ai modifié le lisp:

 

  ;-----------------------------------------------------------------
 ; TOUT QUITTER SANS ENREGISTRER
 ;-----------------------------------------------------------------


(vl-load-com)
(defun C:QuitAlln ( / dwg)
(vlax-for dwg (vla-get-Documents (vlax-get-acad-object))
 (if (= (vla-get-active dwg) :vlax-false)(vla-close dwg :vlax-false))
)
(command "._close" "_y")
)


 ;-----------------------------------------------------------------
 ; TOUT QUITTER ET ENREGISTRER
 ;-----------------------------------------------------------------


(vl-load-com)
(defun C:QuitAlly ( / dwg)
(vlax-for dwg (vla-get-Documents (vlax-get-acad-object))
 (if (= (vla-get-active dwg) :vlax-false)(vla-close dwg :vlax-false))
)
(command "._close" "_n")
)

 

 

Or, je viens de remarquer que seul le fichier affiché est sauvegardé. Les autres se ferment sans enregistrer! (je m'en rends compte 6 mois après, j'ai dû perdre un paquet de modif!).

D'ailleurs quand j'essaie de déchiffrer le lisp, j'ai du mal.

Je ne pige pas par exemple pkoi pour enregistrer, on entre la commande "n", et inversement "y" pour ne pas enregistrer.

Ca devrait être l'inverse puisque la question est "voulez-vous enregistrer?" (et pourtant ca marche).

Et il doit y avoir un truc que j'ai raté au niveau des "get"..

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Alors comment comprendre cette syntaxe?

 (vlax-for dwg (vla-get-Documents (vlax-get-acad-object))
 (if (= (vla-get-active dwg) :vlax-false)(vla-close dwg :vlax-false))
)

Je dirais : Pour chaque dessin ouvert dans la session d'autocad, si le dessin n'est pas actif alors fermer le dessin sans sauvegarder.

Si tu veux sauvegarder, alors

(vla-close dwg :vlax-true)

 

Voir l'aide

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Vite fait. La sauvegarde est faite même si un dessin ouvert n'est pas modifié (DBMOD = 0).

Si le dessin est en lecture seul, la sauvegarde ne fonctionnera pas.

(defun C:QuitAll ( / cur dwg)
 (vl-load-com)
 (vlax-for dwg (vla-get-documents (vlax-get-acad-object))
   (if (equal (vla-get-activedocument (vlax-get-acad-object)) dwg)
     (setq cur dwg)
     (progn
(vl-catch-all-apply 'vla-saveas (list dwg (vla-get-fullname dwg)))
(vla-close dwg :vlax-false)
     )
   )
 )
 (vl-catch-all-apply 'vla-saveas (list cur (vla-get-fullname cur)))
 (vl-cmdf "_.quit")
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Je dirais : Pour chaque dessin ouvert dans la session d'autocad, si le dessin n'est pas actif alors fermer le dessin sans sauvegarder.

Si tu veux sauvegarder, alors

(vla-close dwg :vlax-true)

Salut Bonus

 

C'est bien ce qu'indique la doc, mais pour avoir travaillé avec ObjectDbx, j'ai eu la mauvaise surprise de constater que cela ne fonctionnait pas. Pas de sauvegarde. Peut-être que les modifs via le lisp n'étaient pas prises en compte pour que le (vla-close ... :vlax-true) fonctionne.

 

La parade, vla-saveas.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Salut

 

Vite fait. La sauvegarde est faite même si un dessin ouvert n'est pas modifié (DBMOD = 0).

Si le dessin est en lecture seul, la sauvegarde ne fonctionnera pas.

(defun C:QuitAll ( / cur dwg)
 (vl-load-com)
 (vlax-for dwg (vla-get-documents (vlax-get-acad-object))
   (if (equal (vla-get-activedocument (vlax-get-acad-object)) dwg)
     (setq cur dwg)
     (progn
(vl-catch-all-apply 'vla-saveas (list dwg (vla-get-fullname dwg)))
(vla-close dwg :vlax-false)
     )
   )
 )
 (vl-catch-all-apply 'vla-saveas (list cur (vla-get-fullname cur)))
 (vl-cmdf "_.quit")
 (princ)
)

 

@+

 

ha cool, ca semble fonctionner merci.

Par contre ca ferme autocad à la fin.

Si je remplace _.quit par _.close ca a l'air de fonctionner. J'ai bon?

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é