Aller au contenu

Messages recommandés

Posté(e)

Bonjour !

 

Je souhaiterai être aidé sur les réacteurs,

j'ai besoin de déclenché une série de test après l'éxecution de la commande _saveas, genre :

 

-si le répertoire de sauvegarde respecte une certaine arborescence, activer certains éléments du menu etc.

 

 

1 - est-ce la bonne méthode

2 - avoir un exemple

3 - peut-on tout tester ou les limites des réacteurs

 

 

Un grand merci !!!!

Posté(e)

Salut,

 

Je ne suis pas super fortiche avec les réacteurs, mais voilà en gros comment le fais :

 

Définir un réacteur dans une variable globale:

 

(setq *CheckBeforeSaveReactor*
      (vlr-command-reactor
 nil
 '((:vlr-commandWillStart . CheckBeforeSave))
      )
) 

 

Définir la (ou les) fonctions associées :

 

(defun CheckBeforeSave (rea cde)
 (if (= (car cde) "SAVEAS")
   (alert "Faire les vérifications")
 )
) 

 

Pour "faire le ménage" :

 

(vlr-remove *CheckBeforeSaveReactor*)
(setq *CheckBeforeSaveReactor* nil) 

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

Posté(e)

es asterix sont obligatoires ????? *check...* ???

 

Rien d'obligatoire, c'est une convention pour reconnaître les variables globales (non déclarées en local dans une routine).

Pour ce type de variables, je n'hésite pas non plus à mettre des noms longs pour éviter la probabilité de conflit avec d'autre qui pourraient exister dans le dessin courant.

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

Posté(e)

Salut

Je ne sais pas où tu souhaites faire tes tests (au début, en fin de sauvegarde ?)

Mais voici un exemple que tu pourras adapter

 

ps : j'utilise vlr-dwg-reactor plutot que vlr-command-reactor, afin de n'intervenir que sur la sauvegarde/ouverture/fermeture d'un dessin (en dwg, pas en dxf) et pas à chaque commande

 

@+

 

(defun debut_de_la_sauvegarde(rea data)
 (princ "\nLa Sauvegarde débute.")
 (princ)
)

(defun fin_de_la_sauvegarde(rea data)
 (princ "\nLa Sauvegarde est terminé.")
 (princ)
)

(defun c:start_save()
 (if reacteurs_sauvegarde
   (princ "\nLes réacteurs de sauvegarde sont déjà actifs.")
   (progn
     (setq reacteurs_sauvegarde (vlr-dwg-reactor nil (list  (cons :vlr-beginSave    (function debut_de_la_sauvegarde))
			    			     (cons :vlr-saveComplete (function fin_de_la_sauvegarde))
			 		      )
			 )
     )
     (princ "\nLes réacteurs de sauvegarde sont activés.")
   )
 )
 (princ)
)

(defun c:end_save()
 (if reacteurs_sauvegarde
   (progn
     (vlr-remove reacteurs_sauvegarde)
     (setq reacteurs_sauvegarde nil)
     (princ "\nLes réacteurs de sauvegarde sont désactivés.")
   )
   (princ "\nLes réacteurs de sauvegarde sont déjà désactivés.")
 )
 (princ)
)

 

*check...*

Tiens, cela me rappelle un certain marais ;)

 

[Edité le 27/4/2007 par Patrick_35]

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)

Ah !

 

Serait-ce normal de ne pas pouvoir jouer avec menu pendant un évenement réacteur ???

_menuload plante !! ??? :casstet:

 

 

 
(defun CheckEndSave (rea cde)
(if (= (car cde) "SAVEAS")
     (progn
; Regarde si la structure correspond à la norme SETBT
(load(strcat $drive "STARTUP_chargement_parametres_debut.LSP"))
(if (/= $affaire $controle)
  (progn
    ....
    )
  (progn
    (if (= nil (menugroup "MENU_FAV"))(command "_menuload" (strcat $drive "menu\\MENU_FAV.MNU")))
    (setcfg (strcat "AppData/BHZ/Config/Startup/" (getvar "DWGPREFIX")) "1")
    (load(strcat $drive "STARTUP_chargement_parametres_debut.LSP"))
    (load(strcat $drive "STARTUP_ACTIVATION.LSP"))
    )
  )
)
     )
   )

 

 

Merci !

Posté(e)

Il me semble qu'on ne peut pas utiliser la fonction (command ...) avec les réacteurs.

 

Essaye :

 

(vla-load (vla-get-MenuGroups (vlax-get-acad-object)) (strcat $drive "menu\\MENU_FAV"))

 

mais je crois qu'il faut que ce soit un .CUI

 

[Edité le 27/4/2007 par (gile)]

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

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é