marionsname Posté(e) le 29 décembre 2008 Posté(e) le 29 décembre 2008 Bonjour à tous,Comment faire pour exécuter automatiquement les fonction defun c:?Je m'explique:j'ai un lisp comme suit : (defun c:fonction ... );defun (command "fonction"... ) que je mets via la commande appload Au démarrage (valise). mais à chaque ouverture de fichier il met commande fonction inconnue. Alors ce que j'ai fait, j'ai enlevé la dernière ligne et j'ai rajouté (command "-script" "c:/script.scr") en mettant filedia à 0 et en créant un script "script.scr" pour la fonction "fonction" Est-ce une bonne manière? j'ai l'impression que non! que faut-il faire alors? Merci pour votre aide
rebcao Posté(e) le 29 décembre 2008 Posté(e) le 29 décembre 2008 Bonjour, Il faut passer par la SS:STARTUP() qui permet de charger les fonctions au démarrage. à mettre dans AutoCAD.LSP Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
bseb67 Posté(e) le 29 décembre 2008 Posté(e) le 29 décembre 2008 Salut! Lorsque tu déclares une fonction, tu peux l'appeler à la fin du fichier lispen faisant simplement ceci: (defun ma_fonction( arg1) (princ arg1) (princ)) ; ma_fonction (ma_fonction) pour une commande:(defun c:ma_commande( arg1) (princ arg1) (princ)) ; c:ma_commande (c:ma_commande) Ainsi, lorsque tu charges un lisp, il lancera la fonction au commande. Mais si en plus u veux qu'elle se lance à l'ouverture d'un plan, suit le conseil de rebcao. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
marionsname Posté(e) le 29 décembre 2008 Auteur Posté(e) le 29 décembre 2008 Merci Rebcao et bseb67, ma fonction n'a pas d'arguments en faisant ceci (defun c:ma_commande () ... );defun (c:ma_commande) la commande ne se lance pas au chargement sinon en passant par SS:STARTUP() ça marche. [Edité le 29/12/2008 par marionsname]
usegomme Posté(e) le 30 décembre 2008 Posté(e) le 30 décembre 2008 Salut , pourquoi ne pas utiliser la fonction autoload qui est active dans autocaden écrivant dans un *.mnl ou AutoCAD.lsp comme ceci par exemple: ;;;;CHARGEMENT AUTO (autoload "3dpolyfillet" '("3dpolyfillet")) (autoload "tuy" '("tuy" "tu" "cdt" "tsa" "calos")) (autoload "xe" '("xe")) Tu l'as compris ,le premier terme est le nom du lisp et ensuite on indique le(s) nom(s) de(s) commande(s). Les lisps ne se chargent qu'à la demande , c'est top.
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