brunomu Posté(e) le 16 juillet 2010 Posté(e) le 16 juillet 2010 Une question que je me pose en passant : le nombre de routines chargées automatiquement au démarrage d'AutoCad influe-t-il significativement sur ses performances ? (il faut dire que j'en charge plus de 1000 !). Si oui, y a-t-il un moyen pour que certaines routines ne se chargent que si on les "appelle" (du style : tant que je n'ai pas tapé "TOTO" sur la ligne de commande, le LISP "TOTO" ne se charge pas – cela dit, ça pourrait signifier un temps de chargement complémentaire équivalent à la perte de performance évoquée ci-dessus...on se mord la queue. Merci !
(gile) Posté(e) le 16 juillet 2010 Posté(e) le 16 juillet 2010 Salut, Le nombre de routines (ou plutôt le 'poids' de routines) chargées automatiquement influe certainement sur l'ouverture de chaque nouveau document, mais je pense qu'il faut qu'il en ait vraiment beaucoup pour que ce soit vraiment significatif. Il y a moyen de ne charger un fichier LISP qu'au premier appel d'une des commandes qui y sont définies en utilisant la fonction LISP autoload. Pour ça, il faut organiser le chargement des routines en utilisant les fichiers de chargement automatique (acad.lsp, acaddoc.lsp, et les fichier .mnl de même nom que les fichier .cui) Par défaut (ACADLSPASDOC = 0):acad.lsp est chargé une seule fois au démarrage de chaque démarrage d'une nouvelle sessionacaddoc.lsp est chargé à l'ouverture de chaque nouveau documentMNL : chaque fichier .mnl du même nom qu'un fichier CUI est chargé à l'ouverture de chaque document. Par exemple, les fichiers LISP sont placés dans un répertoire du chemin de recherche. Dans le fichier AutoCAD.lsp on écrit des expressions LISP pour ce qui ne nécessite qu'un chargement par session : (vl-load-com), établissement des variables système enregistrées dans la base de registre (setvar "pickfirst" 1), chargement des DLLs .NET (command "_netload" "CustomOsnap17.dll") Dans le fichier acadoc.lsp ou les fichier MNL de même nom que les fichiers CUI, on écrit des expressions LISP qui chargent les fichiers nécessaires avec les fonctions LISP load pour les fichiers contenant des sous routines devant être chargée à l'ouverture de chaque document, et la fonction autoload pour les commandes définies en LISP. (load "SousRoutines.lsp")où SousRoutines contient des sous routines devant être chargées à l'ouverture de chaque document. (setvar "ucsfollow" 0)la variable UCSFOLLOW est enregistrée dans le dessin. (autoload "toto" '("toto"))Le fichier "toto.lsp" ne sera chargé qu'au premier appel de la commande "toto" (autoload "Incrementer" '("incsuf" "inctxt" "incatt" "incsel" "incadd" "incr"))Le fichier "Incrementer.lsp" contient les définitions des commandes "incsuf", "inctxt", "incatt", "incsel", "incadd" et "incr", il ne sera chargé qu'au premier appel d'une de ces commandes. Regarde dans l'aide : Introduction aux interfaces de programmation > AutoLISP et Visual LISP > Chargement et exécution automatiques des routines AutoLISP Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
brunomu Posté(e) le 19 juillet 2010 Auteur Posté(e) le 19 juillet 2010 Merci pour cette réponse archi-pointue. Comme je suis archi-charrette et pas archi-doué en programmation, je crois que je vais m'en tenir là pour l'instant, et j'y reviendrai à un moment plus calme. J'espère que le soin que tu as mis à me répondre pourra servir à d'autres. Merci encore.
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