Aller au contenu

Enregistrer le fichier avec la date en préfixe


Invité eklundh80

Messages recommandés

Invité eklundh80

Bonjour,

Ci-joint un de mes 1ers lisp pour faire un enregistrement du plan ouvert avec rajout de la date en préfixe.

Ceci afin de rester sur le plan renommé pour nettoyer les présentations et xref avant de l'envoyer aux CES & à l'architecte.

Pour contourner la demande d'écraser le fichier s'il existe déjà et perdre la remise à 0 de la variable filedia je suis passé par vl-file-dete.

Peut être qu'une gestion de la variable avec une erreur pourrait fonctionner. Mais je ne sais pas encore traiter les erreurs justement (ma prochaine étape).

Si vous voyez des bugs ou des améliorations, je suis preneur pour progresser.

@+

Voici le lisp

 

(defun c:enr (/ oldFiledia Dat1 a)
 (vl-load-com);charge la bibliothèque vlisp
 (setq doc (vla-get-activedocument (vlax-get-acad-object))); active l'espace de travail
 (setq oldFiledia (getvar "Filedia")); enregistre l'état initial de la boîte de dialogue
 (setvar "Filedia" 0) ; annnule l'affichage de la boîte de dialogue
 (setq Dat1 (rtos (getvar "cdate") 2 0)); récupère la date sous forme de chaîne
  (strcat (substr Dat1 1 4); Récupère l'année
  "-"
  (substr Dat1 5 2); Récupère le mois
  "-"
  (substr Dat1 7 2); Récupère le jour
  )
 (setq a (strcat (getvar "dwgprefix")(strcat Dat1 "_"(getvar "dwgname")))); Concatène Chemin-Date-Nom actuel
 (if (findfile a); si le fichier existe déjà
   (vl-file-delete a); le supprimer (envoi précédent non purgé du dossier)
   )
 (command "_saveas" "" a) ; Enregistre sous
 (setvar "Filedia" oldFiledia); Restaure la boîte de dialogue à l'initial
 (princ)
)

Modifié par (gile)
ajout des balises bbcode
Lien vers le commentaire
Partager sur d’autres sites

Invité eklundh80

Je viens de tomber sur vla-saveas qui marche sans modifier la variable filedia

 

(defun c:enr (/ doc Dat1 a)
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object))); active l'espace de travail
 (setq Dat1 (rtos (getvar "cdate") 2 0)); récupère la date sous forme de chaîne
  (strcat (substr Dat1 1 4); Récupère l'année
  "-"
  (substr Dat1 5 2); Récupère le mois
  "-"
  (substr Dat1 7 2); Récupère le jour
  )
 (setq a (strcat (getvar "dwgprefix") (strcat Dat1 "_"(getvar "dwgname")))); Concatène Chemin-Date-Nom
 (if (findfile a); si le fichier existe déjà
   (vl-file-delete a); le supprimer (envoi précédent non purgé du dossier)
   )
 (vla-saveas doc a) ; Enregistre sous
 (princ)
)

Modifié par (gile)
ajout des balises bbcode
Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

J'ai modifié tes messages en ajoutant les balises bbcode pour conserver le formatage du code (voir ce sujet)

 

Sinon, juste deux petites remarques :

- la fonction vla-get-ActiveDocument n'active pas l'espace de travail, elle renvoie le document actif (le dessin courant) sous forme d'object vla (CAOM/ActiveX)

- pour formater la date, tu peux utiliser la fonction menucmd avec une expression diesel :

(menucmd "M=$(edtime,$(getvar,date),YYYY-MM-DD)")

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Invité eklundh80

Merci, je cherchais comment faire pour les balises justement.

Je commence à peine sur autolisp que je découvre la facilité du Vlisp (pour les blocs dynamiques, et bien d'autres applications que je dois examiner). Et là on peut intégrer du diesel :blink:

On va y aller par étape. Quand je disais qu'il y a plusieurs solutions à la rédaction d'une routine.

Je note pour le diesel mais pas tout de suite, je sais pas encore définir la fonction error pour sortir proprement. :(rires forts):

PS: Merci pour l'exemple avec le coup de pouce sur getfiled de (gile) et le strcat de didier.

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é