Aller au contenu

Messages recommandés

Posté(e)

salut les amis

y a t il une possibilité de lancer une routine lisp sans utilisé la ligne de commande

pour etre un peut plus claire : est ce qu'on peut programer une routine a s'exécuté chaque fois que l'utilisateur fais un truc defini par exemple selectionné un element?

merci pour vos reponce les amis.

Posté(e)

Salut,

 

On peut faire ce genre de choses à l'aide des réacteurs.

Un réacteur acitf permet, à un certain type d'évènement, de lancer une routine (callback routine)

 

Par exemple, "test_reacteur" réagit aux modification de sélections (grips) d'objets et lance la routine "test_routine".

 

;; création du réacteur
(setq test_reacteur
      (vlr-miscellaneous-reactor
 nil
 '((:vlr-pickfirstModified . test_routine))
      )
)

;; "callback routine"
(defun test_routine (rea cde)
 (if (cadr (ssgetfirst))
   (alert "Une sélection est activée")
   (alert "La sélection est désactivée")
 )
)

;; suppression du réacteur
(vlr-remove test_reacteur)
(setq test_reacteur nil) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Oui (gile) merci encore pour ta générosité ainsi que ton sens de partage

Ces réacteur sont vraiment intéressent, je me demandé si on peut changer l'événement de déclenchement de routine, si c'est oui , est ce qu'il y a des règles, veut tu me donner plus d'explication ?

Merci encore.

 

Posté(e)

Salut

 

je me demandé si on peut changer l'événement de déclenchement de routine

Oui

 

est ce qu'il y a des règles, veut tu me donner plus d'explication ?

Oui, dans l'aide, mais c'est en anglais et ce type de lisp est sur une programmation assez avancée, donc pas à la porté d'un débutant. Je ne connais pas ton niveau en lisp, mais donne tes besoins afin que l'on puisse te guider

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

salut,

Je ne connais pas ton niveau en lisp

je suis très débutant,mais c'est avec vous que j'essai d'amélioré mon niveau.

mais donne tes besoins afin que l'on puisse te guider

ce que je veut c'est exécuté une routine lorsque le dessin courant porte un indicateur dans sans nom ainsi qu'il se situ dans un répertoire bien définie

Pour être plus claire :

la routine sera charger pour tous les dessin mais s'exécute seulement pour des fichier bien défini (des fichier dans le non est "*****RS.dwg" et se situe dans le répertoire "c:\****\****\cadRS")

 

merci les amis

 

Posté(e)

Ah, c'est plus simple comme demande :)

 

(load [b][surligneur]"Mon_lisp.lsp"[/surligneur][/b])
(and (vl-string-search "RS.DWG"  (strcase (getvar "dwgname")))
    (vl-string-search "\\CADRS" (strcase (getvar "dwgprefix")))
 ([b][surligneur]c:Mon_lisp[/surligneur][/b])
)

 

Et pour lancer le lisp automatiquement, suivre le guide

 

ps : Remplacer ce qui est surligné par le véritable lisp à charger avec sa commande

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Merci patrick_35 ça marche très bien

 

Je ne savais pas que ça peut être aussi simple que ça, mais bon.

 

Juste une dernier faveurs, y a t'il une possibilité de trouver une liste qui regroupe toutes les fonction VL-... qui explique le syntaxe et le rôle de chaque une d'elle mais en français, parce j'ai fais des recherche sur le web mais je ne trouve rien.

 

Merci encore

 

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é