condition pour macro mach3
3 participants
Page 1 sur 1
condition pour macro mach3
bonjour
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
- 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- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: condition pour macro mach3
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
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.
Re: condition pour macro mach3
salut DH
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
c'est la fenêtre hiddenscript.ms1 qui s'ouvre pour modifier le script du boutonDe 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.
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- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: condition pour macro mach3
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.
Re: condition pour macro mach3
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.
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- posteur Régulier
- Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne
Re: condition pour macro mach3
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"
++
gilles
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- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: condition pour macro mach3
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.
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.
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.
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.
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.
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- posteur Régulier
- Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne
Re: condition pour macro mach3
slt JP
oui, je suis feignant
absolument rien 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
1 - Tu veux t'épargner d'aller dérouler les menus lorsque tu cherches à modifier un script ?
oui, je suis feignant
Qu'est ce que cela t'apporterait de changer temporairement le libellé du bouton qui invoque la modification de script ?
absolument rien 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- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: condition pour macro mach3
Oui, c'est comme ça qu'on apprendabsolument rien c'est pour le fun
jempi13- posteur Régulier
- Messages : 177
Points : 179
Date d'inscription : 10/11/2022
Age : 68
Localisation : Auvergne
Sujets similaires
» Macro pour télécommande
» Macro Mach3 axe Z ne fonctionne pas.
» [RESOLU] lancement macro mach3
» Macro de palpage et changement d'outils quand on pilote Mach3 par usb
» SOS config Mach3 pour un ami.
» Macro Mach3 axe Z ne fonctionne pas.
» [RESOLU] lancement macro mach3
» Macro de palpage et changement d'outils quand on pilote Mach3 par usb
» SOS config Mach3 pour un ami.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum