Aller au contenu

Lisps de gile


(gile)

Messages recommandés

Bonjour (gile),

Tout d'abord je te remercie pour tous tes Lisps que j'ai mainte fois utilisés. En ce moment, j'utilise ta fonction getfolderdialog dans un de mes Lisps (ou tu es mentionné bien sûr), en revanche j'ai remarqué que les dossiers raccourcis n'apparaissaient pas. Or nos serveurs ne sont pas atteignables par un autre chemin.

Je sais que tu as fait une version .net mais mon service info me bloque l'installation.

Il y t'il un moyen de faire apparaître ces raccourcis ou dois-je me rabattre sur une solution de substitution ?

Merci, Olivier

Lien vers le commentaire
Partager sur d’autres sites

Salut Fraid,

Je te remercie, il faut que je regarde car mon but est de demander à l'utilisateur d'indiquer un dossier pour ensuite nommer et d'enregistrer le fichier en cours par programmation en fonction l'emplacement choisi. Mon Lisp fonctionne mais suivant à quel niveau sont enregistrés les emplacements serveurs chez l'utilisateur, la fonction getfolderdialog peut-être bloquée. Tu m'ouvres une autre voie mais il faut que je réfléchisse comment intégrer ce nouveau fonctionnement.

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Coucou @OlivierR,

Si je comprends bien ton programme, il permet de faire un "Enregistrer sous" de ton dessin courant, c'est bien cela ? Si c'est le cas, première question : pourquoi ne pas utiliser "Enregistrer sous" directement plutôt que de passer par un programme ?
Si toutefois il faut passer par le programme, techniquement parlant tu crées un nouveau fichier à l'emplacement choisi, donc la fonction (getfiled) avec les bits 4 (nom/extension arbitraire) et 1 (créer un nouveau fichier) devrait te permettre de faire ce que tu désires. En effet il te suffit ensuite de supprimer le nom de fichier du retour de (getfiled), ce qui te donnera le nom du dossier, puis d'y greffer le nom de ton fichier en cours (ou tout autre nom si tu le souhaites) afin de créer le nouveau fichier à l'emplacement spécifié.

Par exemple

(setq str (getfiled "" "" "" 5))
(setq pos (vl-string-position 92 str 0 T))
(setq dos (substr str 1 pos)) ;; Retourne le nom du dossier (sans les \\ séparateur pour le nom du fichier), remplacer 'pos' par '(1+ pos)' pour ajouter le \\
(setq dwg (getvar "DWGNAME"))
(setq fil (strcat dos "\\" dwg))

Pour info le 92 correspond au code ascii pour le caractère \ (permettant de séparer les dossiers). La variable 'dos' aura pour valeur quelque chose comme cela : "C:\\Users\\username\\AutoLISP"
La variable 'dwg' : "Dessin1.dwg"
Et donc 'fil' : "C:\\Users\\username\\AutoLISP\\Dessin1.dwg"

Bisous,
Luna

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Salut Luna,

Je programme un enregistrer sous spécifique car nos noms de dossiers comportent le numéros du dossier et le nom du client. J'utilise donc le retour du chemin d'accès pour récupérer ces informations et enregistrer le fichier sous la forme (N°dossier+un nombre croissant). Ta solution avec le flag à 5 me conviens davantage, je vais pouvoir modifier mon code. Je te remercie.

Bisous,

Olivier

PS : merci pour les commentaires sur tes lignes de codes

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é