AutoCAD - Francais

AutoCAD - Francais

Répondre
Active Member
mandrakor
Envois : 10
Inscrit : ‎08-10-2012
Message 1 sur 14 (539 visites)

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

539 Visites, 13 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.

Valued Mentor
frhervet
Envois : 410
Inscrit : ‎04-01-2010
Message 2 sur 14 (529 visites)

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.
-----------------------------------------------------------------------------------------
Active Member
mandrakor
Envois : 10
Inscrit : ‎08-10-2012
Message 3 sur 14 (504 visites)

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")
*Expert Elite*
_gile
Envois : 2 133
Inscrit : ‎04-29-2006
Message 4 sur 14 (490 visites)

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
Valued Mentor
AubelecBE
Envois : 407
Inscrit : ‎01-27-2010
Message 5 sur 14 (487 visites)

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.

 

 

 

*Expert Elite*
_gile
Envois : 2 133
Inscrit : ‎04-29-2006
Message 6 sur 14 (480 visites)

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
Distinguished Contributor
patrick_35
Envois : 663
Inscrit : ‎06-01-2005
Message 7 sur 14 (466 visites)

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.

 

@+

Valued Mentor
AubelecBE
Envois : 407
Inscrit : ‎01-27-2010
Message 8 sur 14 (457 visites)

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)

 

 

Active Member
mandrakor
Envois : 10
Inscrit : ‎08-10-2012
Message 9 sur 14 (445 visites)

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 !

Active Member
mandrakor
Envois : 10
Inscrit : ‎08-10-2012
Message 10 sur 14 (444 visites)

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 ?

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Annonces
Do you have 60 seconds to spare? The Autodesk Community Team is revamping our site ranking system and we want your feedback! Please click here to launch the 5 question survey. As always your input is greatly appreciated.