Le Deal du moment : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

condition pour macro mach3

3 participants

Aller en bas

condition pour macro mach3 Empty condition pour macro mach3

Message  gilles974 Mar 3 Oct 2023 - 10:20

bonjour

Code:

Option Explicit
Const EditScriptButtonLed = 1210

If GetUserLED(EditScriptButtonLed ) = 0 Then
 DoMenu(5,6)
 SetButtonText("Job bouton")
 SetUserLED(EditScriptButtonLed,1)
Else
  SetUserLED(EditScriptButtonLed,0)
 SetButtonText("edit bouton")
End If

une fois la fenetre fermée, mon bouton change pas d'état, il faut que je réappuie dessus pour que la condition s'effectue

comment gerer le "else" une fois la fenetre fermée ??

++
gilles
gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  dh42 Mar 3 Oct 2023 - 18:02

Salut,

De quel fenêtre tu parles ?

Je ne comprends pas l'utilité du DoMenu(5,6) ... si je ne me trompe pas, c'est "Operator/edit button script" ... et il attend que tu clique sur le bouton dont tu veux éditer le script ; c'est peut être pour ça que ça ne fonctionne pas.

Sur la doc l'exemple est presque identique, excepté l'appel DoMenu()

‘ Example Spindle On/Off Toggle Button

SpindleCWLED = 11
If GetOEMLED(SpindleCWLED) Then ‘ Spindle is on, so turn it off

DoSpinStop()
SetButtonText(“Spindle On”)

Else ‘ Spindle is off, so turn it on

DoSpinCW()
SetButtonText(“Spindle Off”)

End If

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25653
Points : 38362
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  gilles974 Mar 3 Oct 2023 - 18:46

salut DH

De quel fenêtre tu parles ?
c'est la fenêtre hiddenscript.ms1 qui s'ouvre pour modifier le script du bouton


Je ne comprends pas l'utilité du DoMenu(5,6) ... si je ne me trompe pas, c'est "Operator/edit button script" ... et il attend que tu clique sur le bouton dont tu veux éditer le script ; c'est peut être pour ça que ça ne fonctionne pas.

pas tout à fait DoMenu(5,6) correspond bien à "Operator/edit button script" mais il met tout les boutons qui ont un script en mode clignotant
après on choisis le bouton que l'on veux modifier

une fois la fenêtre " hiddenscript.ms1" fermée, mon bouton reste avec le label "job bouton" led rouge pour que le bouton passe avec le label "edit bouton" led verte
il faut que je reclique dessus

++
gilles


gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  dh42 Mar 3 Oct 2023 - 20:13

une fois la fenêtre " hiddenscript.ms1" fermée, mon bouton reste avec le label "job bouton" led rouge pour que le bouton passe avec le label "edit bouton" led verte il faut que je reclique dessus

Ça me parait normal

If GetUserLED(EditScriptButtonLed ) = 0 Then
DoMenu(5,6)
SetButtonText("Job bouton")
SetUserLED(EditScriptButtonLed,1)

Une fois la fenêtre fermé (donc après le DoMenu) le texte du bouton est mis à "Job Bouton" et l'état de la LED à 1 et on sort de la condition if (le else n'est pas exécuté).

Il est logique qu'il faille lancer la macro une 2ieme fois pour que la condition if détecte que la LED est à 1 et donc exécute le Else et change le texte pour "Edit bouton"

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25653
Points : 38362
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  jempi13 Mer 4 Oct 2023 - 17:42

Bonjour Gilles,

nous avions eu une discussion par mail sur ta question "comment sortir d'une boucle", pour aboutir au constat que tu cherchais à ré-activer ou détecter un bouton alors que la macro lancée par le bouton n'avait pas "rendu la main".
Tant que ton menu sera "actif", il n'y a rien à attendre du bouton qui est de ce fait "occupé" puisque la macro est toujours en cours.
Je crois qu'il faudrait que tu nous livre ton intention et la totalité de ta macro pour qu'on puisse mieux te répondre et te suggérer une autre manière de faire.

Est-ce que c'est dans la continuité de la discussion que j'évoque, et à laquelle nous n'avions pas apporté de conclusion ?

Pour fixer les idées, je t'avais proposé de séparer ta boucle de temporisation sans fin d'une part, et la macro associée au bouton qui avait pour seul rôle d'afficher un menu de choix de temporisation ou son arrêt.
La macro se terminait une fois qu'un élément du menu avait été sélectionné, rendant le bouton disponible pour un nouvel appel.
Cette sélection dans le menu positionnait une ou deux variables globales (par le biais de setUserDRO)
La macro macropump qui tourne toute les 100 millisecondes faisait un comptage sur la base de ces variables (getUserDRO), par appel à GetTickCount (de la lib kernel32), et fonctionnait en permanence indépendamment de la macro du bouton.

Jean-Pierre.
jempi13
jempi13
posteur Régulier
posteur Régulier

Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  gilles974 Jeu 5 Oct 2023 - 6:05

salut Jean Pierre

le but de la macro (ci-dessous) est de modifier le texte du bouton "edit bouton" en "Job bouton" et à la fermeture la fenêtre hiddenscript.ms1 de remettre le texte du bouton à "edit bouton"

Code:

Option Explicit
Const EditScriptButtonLed = 1210

If GetUserLED(EditScriptButtonLed ) = 0 Then
   DoMenu(5,6)  'active le menu " operator/edit button script " qui ouvre la fenetre hiddenscript.ms1
   SetButtonText("Job bouton")
   SetUserLED(EditScriptButtonLed,1)
  Else
      SetUserLED(EditScriptButtonLed,0)
   SetButtonText("edit bouton")   
End If


++
gilles



gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  jempi13 Jeu 5 Oct 2023 - 9:46

Gilles,

Je ne connais de Mach3 que l'installation que j'en ai faite pour répondre à ta question passée, et ce fut un peu laborieux car il a fallu que je devine tout seul d'aller faire des choses dans Ports and Pins et General Config pour avoir un comportement analogue au tiens.  scratch  study  Idea  cheers

Je précise que je ne possède pas de CN.

Tu as donc créé un bouton auquel tu as assigné le code en question.
Je découvre ce que fait DoMenu (je croyais que c'est aune fonction que tu avais définie) et j'ai regardé comment cela se passe.
Ma réponse précédente était inappropriée.  What a Face

Comme le dit David, l'exécution de DoMenu(5,6) commence par faire clignoter les boutons qui recèlent un script, t'invitant à en sélectionner un pour modifier le script associé.

Là où le bât blesse, c'est que DoMenu rend la main immédiatement, avant même que tu n'aies sélectionné le bouton dont tu veux modifier le script. Donc ta macro va jusqu'au bout instantanément, alors que le résultat du DoMenu vit sa vie à part, te laissant sélectionner le bouton à modifier, modifier le script, et refermer la fenêtre, sans interaction avec la macro ayant fait déclencheur. Tu ne peux donc pas espérer une détection de la fermeture de la fenêtre d'édition et provoquer une action.

Pour t'en convaincre, ajoute un Sleep(2000) avant et après le DoMenu et avant les SetButtonText et tu auras le temps de voir les changements s'opérer au fil de l'exécution de la macro.

J'en reviens à la finalité, condition nécessaire pour bien te répondre.
1 - Tu veux t'épargner d'aller dérouler les menus lorsque tu cherches à modifier un script ?
2 - Qu'est ce que cela t'apporterait de changer temporairement le libellé du bouton qui invoque la modification de script ?

Jean-Pierre.
jempi13
jempi13
posteur Régulier
posteur Régulier

Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  gilles974 Jeu 5 Oct 2023 - 12:17

slt JP


1 - Tu veux t'épargner d'aller dérouler les menus lorsque tu cherches à modifier un script ?

oui, je suis feignant What a Face


Qu'est ce que cela t'apporterait de changer temporairement le libellé du bouton qui invoque la modification de script ?

absolument rien Very Happy c'est pour le fun

il est vrai, que recliquer sur le bouton aprés avoir modifier le script n'est pas genant

tout compte fait, c'est se compliquer la tache, je vais laisser comme ça
ca ira trés bien

merci pour la reflexion
gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  jempi13 Jeu 5 Oct 2023 - 13:05

absolument rien  Very Happy  c'est pour le fun
Oui, c'est comme ça qu'on apprend Very Happy
jempi13
jempi13
posteur Régulier
posteur Régulier

Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne

Revenir en haut Aller en bas

condition pour macro mach3 Empty Re: condition pour macro mach3

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum