• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    AutoCAD - Francais

    Répondre
    Active Member
    Envois : 10
    Inscrit : ‎08-10-2012

    Exécution d'un script à chaque ouverture d'un dessin

    315 Visites, 10 Réponses
    08-24-2012 05:32 AM

    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.

    Veuillez utiliser du texte brut.
    Valued Mentor
    Envois : 410
    Inscrit : ‎04-01-2010

    Re : Exécution d'un script à chaque ouverture d'un dessin

    [ modifié ]
    08-24-2012 10:39 AM en réponse à: mandrakor

    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#

     

     

    Franck Hervet

    Please mark this response as "Accept as Solution" if it answers your question.
    S'il vous plaît Marquer cette réponse comme "Accepter comme solution" si elle répond à votre question.
    -----------------------------------------------------------------------------------------
    Veuillez utiliser du texte brut.
    Active Member
    Envois : 10
    Inscrit : ‎08-10-2012

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-27-2012 10:53 AM en réponse à: frhervet

    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")
    Veuillez utiliser du texte brut.
    *Expert Elite*
    Envois : 1 647
    Inscrit : ‎04-29-2006

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-28-2012 02:51 AM en réponse à: mandrakor

    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::smileyfrustrated:TARTUP, c'est parce qu'on peut ainsi avoir plusieurs définitions de S::smileyfrustrated:TARTUP 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::smileyfrustrated:TARTUP existe déjà et agir en conséquence.

    Si S::smileyfrustrated:TARTUP est déjà définie (avec defun-q) on peut ajouter à la liste existante la liste des nouvelles expressions

    si S::smileyfrustrated:TARTUP 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)
      )
    )

     

    Gilles Chanteau
    Veuillez utiliser du texte brut.
    Mentor
    Envois : 260
    Inscrit : ‎01-27-2010

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-28-2012 03:40 AM en réponse à: _gile

    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.

     

     

     

    Veuillez utiliser du texte brut.
    *Expert Elite*
    Envois : 1 647
    Inscrit : ‎04-29-2006

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-28-2012 07:18 AM en réponse à: AubelecBE

    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::smileyfrustrated:TRATUP : 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::smileyfrustrated:TARTUP 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::smileyfrustrated:TARTUP dans le fichier de démarrage LISP pour effectuer toute opération de configuration."

    Gilles Chanteau
    Veuillez utiliser du texte brut.
    Distinguished Contributor
    Envois : 654
    Inscrit : ‎06-01-2005

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-29-2012 02:38 AM en réponse à: mandrakor

    Salut

     

    Tu peux ajouter au lancement d'autocad le paramètre /b pour charger automatiquement un script

     

    Plus d'infos ici

    http://exchange.autodesk.com/autocadmep/fra/online-help/BLDSYS/2012/fra/pages/WS1a9193826455f5ffa23c...

     

    Tu as aussi la valise (_appload) pour faire des chargements automatique sur chaque dessin.

     

    @+

    Veuillez utiliser du texte brut.
    Mentor
    Envois : 260
    Inscrit : ‎01-27-2010

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-30-2012 12:37 AM en réponse à: _gile

    Ah merci je ne savais pas cela.

     

    Moi je trouve plus simple mon principe (je n'utilise pas la commande command. :smileyhappy:

     

    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)

     

     

    Veuillez utiliser du texte brut.
    Active Member
    Envois : 10
    Inscrit : ‎08-10-2012

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-30-2012 12:11 PM en réponse à: AubelecBE

    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 !

    Veuillez utiliser du texte brut.
    Active Member
    Envois : 10
    Inscrit : ‎08-10-2012

    Re : Exécution d'un script à chaque ouverture d'un dessin

    08-30-2012 12:14 PM en réponse à: patrick_35

    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 ?

    Veuillez utiliser du texte brut.