Aller au contenu

Connaitre le dossier ou se trouve le Lisp en cours


Messages recommandés

Coucou,
Pourquoi ne pas les charger via le fichier en question ?
En clair il n'y a pas besoin de connaître le dossier à partir du moment où le dossier est connu dans les Emplacements de Fichiers de support...

Autrement dit, imaginons que tu ais un fichier LISP "MasterFile.lsp" dans lequel tu écris

(load "fichier2.lsp")
(load "fichier3.lsp")
(load "fichier4.lsp")
;;(load "fichier5.lsp")
(load "fichier6.lsp")
...

Ainsi les fichiers sont chargés dans le dessin individuellement (tu peux également désactiver temporairement le chargement d'un fichier en mettant la ligne en commentaire) par ton fichier maître. A partir du moment que le(s) dossier(s) sont renseigné(s) dans les "Chemin de recherche de fichiers de support de travail" (et également "Emplacements approuvés" si besoin), il n'y aura aucun soucis. En tout cas, si j'ai compris ce que tu désires faire.

Si maintenant le but et de ne pas écrire le nom des fichiers à chaque ajout de fichiers, tu peux te pencher sur ce genre de fonction (https://www.lee-mac.com/getallfiles.html) permettant de lister tous les fichiers d'un dossier spécifique en précisant le type de fichier.
Ensuite, pour récupérer le dossier du fichier LISP maître, à partir du moment où le nom du fichier LISP en question est toujours le même, qu'il n'y a pas de doublons et que le dossier est renseignés dans les "chemin de recherche [...]" alors un simple

(setq path (findfile "MasterFile.lsp"))
(setq folder (substr path 1 (vl-string-position 92 path 1 T)))

permet de connaître l'emplacement d'un fichier LISP spécifique (car il faut à minima connaître son nom). Si c'était en effet cela dont tu avais besoin, je pense que la question était mal dirigée ou trop flou pour comprendre le but final.

En espérant avoir aidé un peu...

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

C'est également ce que j'utilisais le plus (en plus on peut gérer les historiques, versionning, etc... beaucoup plus précisément en séparant les fonctions/commandes par fichier). Malheureusement on a changer de serveurs et du coup cela a généré des latences trop importantes (5min de chargement des fichiers à chaque ouverture de dessin) pour charger les 100 et quelques fichiers individuellement xD

Bref, toutes les méthodes sont bonnes en soit, il faut juste adapter en fonction des outils à disposition ^^

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Si tu as beaucoup de routine a charger, tu peux mettre dans ton fichier de chargement (.mnl),

(defun load-lsp ()
	(foreach file (vl-directory-files "C:/XXX" "*.lsp" 1)
		(load file (strcat file " did not load"))
	))
(load-lsp)

Ca te chargera toute les routines de ton dossier.
 

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

Le 09/07/2024 à 08:25, SF.Designer a dit :

Si tu as beaucoup de routine a charger, tu peux mettre dans ton fichier de chargement (.mnl),

(defun load-lsp ()
	(foreach file (vl-directory-files "C:/XXX" "*.lsp" 1)
		(load file (strcat file " did not load"))
	))
(load-lsp)

Ca te chargera toute les routines de ton dossier.
 

Merci cela me convient

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é