LUDWIG Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 J'essayes de passer une variable pour les arguments d'une fonction que je veux tester par vl-catch-all-apply (vl-catch-all-apply 'load '("c:\\toto.lsp")) fonctionne mais (setq n "c:\\toto.lsp") (vl-catch-all-apply 'load '(n)) ne fonctionne pas ! Comment faire ? Autocad 2021 - Revit 2022 - Windows 10
bonuscad Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 Je pense plutôt sous cette forme: (setq n '("c:\\toto.lsp"))(vl-catch-all-apply 'load n) ou alors peut être plus interessant, sous celle-ci: (foreach n '(("c:\\titi.lsp") ("c:\\toto.lsp") ("c:\tatat.lsp") ("c:\\tutu.lsp"))(vl-catch-all-apply 'load n)) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 pour ceux qui apprennent, pourriez-vous être un peu plus explicite :A quoi sert vl-catch-all-apply ???merci Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
LUDWIG Posté(e) le 13 avril 2006 Auteur Posté(e) le 13 avril 2006 Dans un programme lisp, si une fonction renvoit une erreur, ton programme risque de s'arrêter. Donc, une méthode consiste a d'abord tester si la fonction renvoit une erreur PUIS l'exécuter si c'est OK. Dans mon cas, je fais un lisp pour charger tous les lisps d'un répertoire. Or si le nième lisp de ce répertoire est mal structuré, Autocad envoit une erreur, ma fonction de chargement s'arête et les lisps n+1 et suivant ne seront pas chargés. Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 (setq n "c:\\toto.lsp") (vl-catch-all-apply 'load (list n)) Si tu fait '(n) n n'est pas évalué : c'est la liste contenant la variable n, (list n) tu fais une liste avec la valeur de n. Si (setq n "c:\\toto.lsp") '(n) retourne (n) (list n) retourne ("c:\\toto.lsp") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LUDWIG Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 BonusCad et (Gile), vous êtes des Dieux du Lisp ! :yltype: Evidemment, a marche mieux comme ça, et le mieux, c'est que je crois que j'ai compris (!) Qu'il est pointilleux ce langage ! Je rêve d'un lisp qui serait mon ami et qui comprendrait de suite se que je veux faire :heartpump: Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 Rien de divin la dedans, c'est parceque le hasard des choses m'a fait rencontrer ce problème avec (apply ... que je peux te donner une réponse. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LUDWIG Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 Voici donc enfin ma routine... Autocad 2021 - Revit 2022 - Windows 10
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant