Bonjour,
Comme dit dans le titre, je souhaiterai charger un script à chaque ouverture de dessin (nouveau ou existant).
Pouvez vous m'aider ?
Merci d'avance.
Bonjour,
Je recommande la lecture de ce lien de l'aide d'AutoCAD :
http://docs.autodesk.com/ACD/2013/FRA/files/GUID-FDB4038D-1620-4A56-8824-D37729D42520.htm#
Bonjour,
J'ai bien lu la page indiquée par ton lien et c'est fort intéressant.
Néanmoins, je ne trouve pas la syntaxe me permettant d'appeller un script après iniatialisation.
(defun-q S::STARTUP ( ) (command "test.scr")
Salut,
La fonction LISP command requiert comme premier argument le nom de la commande (sous forme de chaine) éventuellement suivi des valeurs pour les options de la commande invoquée.
Dans ton cas :
(command "_script" "test.scr")
La fonction LISP defun-q définit une fonction sous forme de liste et n'est en général utilisée que quand ceci est nécessaire (on préfère en générale utiliser defun qui crée une fonction pré-compilée).
Si on utilise defun-q avec S::STARTUP, c'est parce qu'on peut ainsi avoir plusieurs définitions de S::STARTUP dans différents fichiers de chargement automatique de LISP sans qu'une définition n'écrase l'autre mais qu'au contraire chaque définition s'ajoute à celles qui exitent déjà.
Pour ce faire, il faut tester si S::STARTUP existe déjà et agir en conséquence.
Si S::STARTUP est déjà définie (avec defun-q) on peut ajouter à la liste existante la liste des nouvelles expressions
si S::STARTUP n'est pas déjà définie, on la définit avec defun-q.
(if S::STARTUP (setq S::STARTUP (append S::STARTUP '((command "_script" "test.scr") (princ)) ) ) (defun-q S::STARTUP () (command "_script" "test.scr") (princ) ) )
salut. Le plus simple : est-ce que tu utilises un fichier de préférence .cui que tu inseres dans autocad ?
Si oui alors a coté de ton fichier .cui crée un fichier .MNL
dedans tu mets les commandes autolisp que tu veux...
Celui-çi sera lancé à chaque fois qu'un dessin est ouvert
La plus besoin de toucher au fichier d'autocad comme la commande STARTUP.
Salut AubelecBE,
Extrait de l'aide Guide de programmation > Introduction aus interfaces de programmation > AutoLISP et Visual LISP > Chargement et exécution automatiques des routines AutoLISP > Fonction S::STRATUP : exécution postinitialisation :
"Les fichiers de démarrage LISP (acad.lsp, acaddoc.lsp et MNL) sont tous chargés en mémoire avant que le dessin ne soit complètement initialisé. Généralement, cela ne pose pas de problème, sauf si vous souhaitez utiliser la fonction command, qui n'est réellement opérationnelle qu'après l'initialisation d'un dessin.
Si la fonction S::STARTUP définie par l'utilisateur figure dans un fichier acad.lsp, acaddoc.lsp ou MNL, elle est appelée lorsque vous entrez un nouveau dessin ou ouvrez un dessin existant. Par conséquent, vous pouvez inclure une définition de S::STARTUP dans le fichier de démarrage LISP pour effectuer toute opération de configuration."
Salut
Tu peux ajouter au lancement d'autocad le paramètre /b pour charger automatiquement un script
Plus d'infos ici
Tu as aussi la valise (_appload) pour faire des chargements automatique sur chaque dessin.
@+
Ah merci je ne savais pas cela.
Moi je trouve plus simple mon principe (je n'utilise pas la commande command. 🙂
Car pour 'linstallation rien de plus simple.
Je ne fais qu'ajouter le CUI à autocad et après, dés qu'autocad se lance, il me le configure (répertoire de base des affaires, des blocs etc. (Onglet Fichier dans les options)
Tout d'abord merci pour votre aide à tous.
Demain je teste la version avec le fichier en .lsp composé de :
(if S::STARTUP (setq S::STARTUP (append S::STARTUP '((command "_script" "test.scr") (princ)) ) ) (defun-q S::STARTUP () (command "_script" "test.scr") (princ) ) )
Cependant, j'ai un doute sur le fonctionnement, car mon entreprise utilise une donciguration particulière avec des fichiers stockés sur un serveur qui charge des applications dans autocad.
Concernant la méthode de personnalisation CUI, impossible de trouver une option permettant de charger un script dedans !
Quand à ta solution patrick, il me semble qu'elle ne fonctionne uniquement sur le premier dessin chargé lors du lancement d'autocad, pas avec les suivants non ?
Pour les options au lancement d'autocad, oui
Mais pour le chargement automatique avec _appload, non
@+
Nota:
pour la version Autocad Lt 2014 édition française (en tous cas c'est celle que j'utilise), la commande "_appload" ne fonctionne pas "Commande inconnue "APPLOAD". Ce qui me fait bien suer car j'utilise quelques lisp bien efficaces telle que superflatten ou talus...
Cordialement.
Je vous remercie de votre réponse. Je viens de me rendre compte de ce handicap de LT. J'ai activé ma licence aujourd'hui et je pense que je vais vite regretter mon ancienne licence de la version pleine de 2008 !!!
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.