Aller au contenu

Redéfinir une commande


bonuscad

Messages recommandés

Bonjour,

 

J'aurais besoin de redéfinir la command "_PLOT" et "_PAGESETUP".

Je sais me servir de la commande "_REDEFINE", là n'est pas le problème.

 

Mon problème est que si la commande imprimer du menu fichier ou l'icône impression appellent bien la commande _PLOT, ce n'est pas le cas du bouton imprimer de la commande "_PAGESETUP" ou par le click droit sur un onglet de présentation, qui eux appellent la commande "_.PLOT" :casstet:

 

Est ce que quelqu'un saurait comment je pourrais "shunter" cet appel de commande non redéfinissable (c'est à dire précédé d'un point)

 

Mon but final étant d'insérer une procédure avant l'appel de l'impression.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Malheureusement, cela ne se fait pas car cela enlèverait le sens du point.

Par contre, quel est le besoin qui ne pourrait être comblé par un autre moyen. Est-ce pour ouvrir une boite de dialogue et permettre le choix d'une imprimante?

 

Serge

Lien vers le commentaire
Partager sur d’autres sites

Salut Serge,

 

J'ai bien compris que cela ne pouvait se faire. ;)

 

D'aiileur à mon désespoir je comprend pas pourquoi l'appel à la commande est différente (sans le point, et avec) suivant où on la pioche dans les menu déroulant, contextuel ou icone.

Cela enlève complétement l'intérêt de la commande "_.REDEFINE" :(

 

Je ne veux en aucun cas modifier la commande "_PLOT" mais simplement éxecuter une procédure de mise à jour avant l'impression. Seul moyen pour moi d'être sur de la validité des objets imprimés. Bien sur cette mise à jour peut être faite manuellement avant, mais tellement facilement "zappé" par l'utilisateur que je cherchais un moyen plus sûr.

 

Alors une idée géniale pour contourner ce problème ? :P Moi je sèche :(

 

Bruno

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Peut être une solution, mais je ne suis pas encore très famillier avec les réacteurs.

 

D'après ce que j'ai pus en saisir, il s'agit d'attacher des évenements à des objet graphique lors qu'ils sont manipulés.

Hors dans mon cas, je pense que c'est plutôt l'inverse. Ce serait un évenement qui devrait agir sur un objet.

 

Si c'est faisable avec les réacteurs, pourrait-tu me donner un exemple de code simple afin de mieux comprendre le fonctionnement?

 

Merci en tout cas de ta réponse :D

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

exemple de code

 

;;;initialisation

;;;

(vl-load-com)

(vlr-remove-all)

;;; fonction cleanreac

;;; nettoyage de tous les reacteurs

 

(defun CLEANREAC ()

(mapcar 'vlr-remove-all

'(:vlr-acdb-reactor

:vlr-editor-reactor

:vlr-linker-reactor

:vlr-object-reactor

)

) ;_ Fin de mapcar

) ;_ Fin de defun

;;;

;;;fin initialisation

 

;;;definition des actions pour les reacteurs

;;;

(defun CHOIX_REAC (A B)

(setq test b)

(if (= "PLOT" (car b))

(alert "tu veut vraiment imprimer ? "))

 

) ;_ Fin de defun

(defun CHOIX_REAC2 (A B)

(setq test b)

(if (= "PLOT" (car b))

(alert "tu ne sait vraiment pas ce que tu veut toi !!"))

 

)

 

;;nettoyage d'eventuels reacteurs residuels

(CLEANREAC)

;;;initialisation des reacteurs

(vlr-command-reactor NIL '((:vlr-commandwillstart . CHOIX_REAC)))

(vlr-command-reactor nil '((:vlr-commandcancelled . CHOIX_REAC2)))

;|«Visual LISP© Format Options»

(72 2 40 2 T "Fin de " 80 9 1 2 1 T T nil T)

;*** NE PAS AJOUTER de texte au-dessous du commentaire! ***|;

 

 

si on invoque la commande plot

une case de dialogue apparait avant le dialogue d'impression

ensuite si on annule le dialogue d'impression une autre case apparait

 

 

Lien vers le commentaire
Partager sur d’autres sites

bruno_l,

 

Juste une petite remarque. Dans un environnement où d'autres applications définissent des réacteurs, tu risque de les effacer.

 

Au lieu de vlr-remove-all, tu peux stocker le réacteur dans une variable, ce qui te permettra de faire un nettoyage spécifique.

 

Exemple:

(if eacu_layoutSysVar::commandReactor (vlr-remove eacu_layoutSysVar::commandReactor))

(setq eacu_layoutSysVar::commandReactor (vlr-editor-reactor nil

'( (:vlr-CommandWillStart . eacu_layoutSysVar:CommandWillStartEvent)

(:vlr-CommandEnded . eacu_layoutSysVar:CommandEndedEvent)

(:vlr-CommandCancelled . eacu_layoutSysVar:CommandCancelledEvent)

(:vlr-CommandFailed . eacu_layoutSysVar:CommandCancelledEvent)

)

))

 

Serge

Lien vers le commentaire
Partager sur d’autres sites

Merci de la contribution de Bruno et Serge,

 

J'ai réussi à faire un test en incorporant la fonction qui m'interressait, et cela fonctionne.

 

Il ne me reste plus qu'a décortiquer pour bien comprendre, surtout la notion de nettoyage ciblée de Serge.

 

Bonne solution, que je vais exploitée :P

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

J'ai essayé de me pencher sur les réacteurs

Donc j'ai bien réussi à faire fonctionner l'exemple simple, mais j'avoue que des zones d'ombre persistent, malgré l'exécution pas à pas de l'exemple. (Je trouve que le résultat des fonctions n'est pas transparent et n'aide pas à la compréhension)

 

Est ce que quelqu'un connaitrait un lien traitant du B.A.BA (ou pour les nuls :D ) des réacteurs.

De préférence en Français...

 

Merci

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bruno,

 

Si je puis me permettre une pub:

http://www.cadnovation.com/devcui/fr/EU/uamj.asp (aujourd'hui)

http://www.cadnovation.com/fr/EU/uamj.asp (à partir du 31 aout ou du 1er septembre)

 

D'autre part, j'avais déjà fait un petit sondage pour savoir si un manuel de Lisp serait désiré. Je n'avais reçu qu'une réponse. Je crois que la plupart des gens en veulent, mais en autant que ça soit gratis. Est-ce que je me trompe?

 

Serge

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité