Aller au contenu

Affecter un raccourci clavier à un LISP ?


Messages recommandés

Posté(e)

Bonjour Forum !

 

Voilà, tout est dans le titre : j’aimerais attribuer un raccourci-clavier à un LISP. Je ne vois pas bien comment faire.

Plus précisément, j’aimerais affecter des LISP qui effectuent un PAN à chacune des flèches directionnelles du clavier (gauche, droite, haut, bas, PgUp et PgDown).

Mais je suis preneur de conseils pour d’autres combinaisons de touches si le principe est différent.

 

Merci !

 

 

[Edité le 11/2/2011 par gloub]

Posté(e)

Ben ça je l'ai déjà fait : mes routines ont des noms de 2 ou 3 caractères, pas +.

 

Mais j'aurais trouvé bien pratique et très parlant de pouvoir commander l'exécution d'une routine par les flèches directionnelles par exemple.

 

 

Posté(e)

Bonjour,

 

Peut être une façon de faire avec (grread), un exemple !

 

;48 = 0
;...= ...
;57 = 9
;43 = +
;45 = -
;42 = *
;47 = /
;46 = .
((lambda ( / pc dd)
 (setvar "cmdecho" 0)
 (while (and (setq key (grread T 4 0)) (not (member key '((2 13) (2 32)))))
   (setq pc (getvar "VIEWCTR") dd (* (getvar "VIEWSIZE") 0.125))
   (cond
     ((eq (cadr key) 42)
       (command "'_.zoom" "_all")
     )
     ((eq (cadr key) 43)
       (command "'_.zoom" "1.25X")
     )
     ((eq (cadr key) 45)
       (command "'_.zoom" "0.75X")
     )
     ((eq (cadr key) 46)
       (command "'_.zoom" "1")
     )
     ((eq (cadr key) 47)
       (command "'_.zoom" "_extent")
     )
     ((eq (cadr key) 48)
       (command "'_.zoom" "_c" (mapcar '(lambda (x y / ) (* (+ x y) 0.5)) (getvar "VSMIN") (getvar "VSMAX")) "")
     )
     ((eq (cadr key) 49)
       (command "'_.-pan" pc (polar pc (* pi 0.25) dd))
     )
     ((eq (cadr key) 50)
       (command "'_.-pan" pc (polar pc (* pi 0.5) dd))
     )
     ((eq (cadr key) 51)
       (command "'_.-pan" pc (polar pc (* pi 0.75) dd))
     )
     ((eq (cadr key) 52)
       (command "'_.-pan" pc (polar pc 0.0 dd))
     )
     ((eq (cadr key) 53)
       (command "'_.zoom" "_c" (mapcar '(lambda (x y / ) (* (+ x y) 0.5)) (getvar "VSMIN") (getvar "VSMAX")) "1x")
     )
     ((eq (cadr key) 54)
       (command "'_.-pan" pc (polar pc pi dd))
     )
     ((eq (cadr key) 55)
       (command "'_.-pan" pc (polar pc (* pi 1.75) dd))
     )
     ((eq (cadr key) 56)
       (command "'_.-pan" pc (polar pc (* pi 1.5) dd))
     )
     ((eq (cadr key) 57)
       (command "'_.-pan" pc (polar pc (* pi 1.25) dd))
     )
     ((eq (car key) 2) (princ " *** Touche non valable! *** "))
   )
 )
 (setvar "cmdecho" 1)
))

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

Posté(e)

Merci pour ton LISP...mais je ne sais pas comment l'utiliser !

 

Copie-colle le code en ligne de commande et teste ton pavé numérique.

 

Que dire de plus ...?

 

C'est un exemple, après exécution le code n'est plus présent en mémoire (fonction lambda).

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

Posté(e)

Merci bonuscad.

 

Ça me renvoie plein de messages d'erreur, et l'action de touches de mon pavé numérique reste inchangée...

 

Mais bon, si c'est compliqué ou pas pratique à mettre en oeuvre, je vais me contenter de mon fonctionnement actuel avec des routines dont je tape le nom.

Posté(e)

Ça me renvoie plein de messages d'erreur

 

Ha ! Un peu surpris quand même.

 

Fais bien le copier de la 1ère parenthèse à la dernière, car les commentaire ";" plus les lignes vides si elles sont collées directement en ligne de commande vont générer des validations non voulues.

Ou enregistre dans un fichier que tu chargeras de façon classique...

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

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é