Aller au contenu

Tester le chargement


Messages recommandés

Posté(e)

Bonjour,

 

Je fais un lisp qui charge les applications (dvb, fas, lsp, arx) présent dans un répertoire et ses sous répertoires.

Or quand le chargement d'une application échoue, mon lisp s'arrête sans charger le reste des applications. Cet échec est due à une mauvaise syntaxe de l'application, mais mon but n'est pas de la modifier.

 

Comment tester la bonne exécution d'un "load" ?

 

J'ai essayé avec vl-catch-all-apply mais soit je n'ai pas mis la bonne syntaxe, soit il n'arrive pas à capter l'erreur.

 

 (setq err (vl-catch-all-apply  (load n)))
ou
(setq err (vl-catch-all-apply '(lambda ()(load n))))

 

ne changent rien, j'ai toujours l'erreur

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Bonjour,

Je charge mes fichiers par la syntaxe suivante :

(if (setq inite (findfile (strcat path-lisp "initialise.lsp"))) (load inite));; fichier d'initialisation des variables

 

Dans le fichier .mnl d'acad qui est chargé automatiquement au démarrage j'ai déclaré un fichier lisp qui contient tout les lisp a charger comme celui ci-dessus.avec cette syntaxe la recherche se fait dans tous les chemins connus par autocad.Il est possible de rajouter un chemin dans ce fichier mnl du style : (setq path-lisp "c:/tuc/machin/lisp/") .C'est le cas pour ce que j'ai écrit.

Il ya plusieurs façon de chargement automatique a l'ouverture d'autocad .

Le fichier AutoCAD.lsp est aussi lancé automatiquement au démarrage et d'autres.Il y a aussi

la fonction s::startup ou s::init qui doit se trouvé dans ce fichier mnl ou un autre ,fonction qui est recherchée par AutoCAD au démarrage.

Posté(e)

Salut,

 

J'utilise parfois l'expression :

 

(if (not (vl-catch-all-error-p (vl-catch-all-apply ...

 

Qui, en cas d'erreur, retourne nil au lieu de l'erreur et permet de poursuivre le dérouleme,nt de la routine.

 

Mais si ce message fait suite à celui-ci, je ne suis pas sûr que cela fonctionne quand on essaye de charger un .dvb déjà chargé (est-ce bien une erreur ?)

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

Posté(e)

Ben voilà, encore une fois c'était un problème de syntaxe !

(vl-catch-all-apply 'load '("Mon_Lisp") fonctionne !

 

Merci beaucoup

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Sauf que je n'arrive pas à passer une variable pour le chemin du lisp :

 

 (vl-catch-all-apply 'load '("c:\\toto.lso"))

fonctionne

 

mais

 (setq n "c:\\toto.lsp")
(vl-catch-all-apply 'load '(n))

ne fonctionne pas !!!

 

EDIT : j'en ai fait un nouveau sujet

 

[Edité le 13/4/2006 par LUDWIG]

Autocad 2021 - Revit 2022 - Windows 10

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é