-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

Pb scripts "auto tool setting" pour Mach3

2 participants

Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Pb scripts "auto tool setting" pour Mach3

Message  leotti Jeu 20 Juil 2023 - 11:54

Bonjour, j'ai installé ces scripts "automated tool setting"sous Mach3 (voir pièce jointe). Je trouve que c'est très pratique mais j'ai un problème sur l'un d'eux (CENTER_INTERNAL_SCRIPT_REV13.txt): tout fonctionne jusqu'au moment de l'affichage du diamètre . j'ai une erreur sur la ligne 145 type mismatch.
VarSpanDia = Format((CDbl(VarSpanX) + CDbl(VarSpanY))/2,"##0.000")   'CALCULATE MM DIAMETER
Si je mets un rem devant cette ligne c'est la suivante qui m'envoie le même message. si je mets un rem devant cette ligne aussi le programme fonctionne jusqu'au bout mais pas d'affichage du diamètre. J'ai beau chercher quelles sont les données qui ne sont pas du bon type mais je ne vois pas... Si quelqu'un caler en vbscript peut m'aider...
Dans les 4 scripts pour le palpage en X et Y même en initialisant la variable VarProbeDia à une valeur entière par exemple :6 le programme au démarrage demande le diamètre de l'outil et affiche la variable sous la forme 6,000. Le programme ne fonctionne pas si il y a une virgule dans ce nombre! Donc obligé d'effacer la virgule et ce qui suit. Je pense qu'il s'agit d'un problème avec les paramètres régionaux mais je ne sais pas le résoudre...Encore une fois j'ai besoin d'aide...
Merci d'avoir pris la peine de me lire et j'espère avoir de vos nouvelles.
Bonne journée
Fichiers joints
Pb scripts "auto tool setting" pour Mach3 Attachment
CENTER_INTERNAL_SCRIPT_REV13.txt Vous n'avez pas la permission de télécharger les fichiers joints.(17 Ko) Téléchargé 3 fois
Pb scripts "auto tool setting" pour Mach3 Attachment
X_NEGATIVE_SCRIPT_REV10.txt Vous n'avez pas la permission de télécharger les fichiers joints.(9 Ko) Téléchargé 2 fois
leotti
leotti
je prends du galon
je prends du galon

Messages : 78
Points : 198
Date d'inscription : 14/02/2012
Age : 62
Localisation : essonne

Revenir en haut Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Pb presque résolu

Message  leotti Jeu 20 Juil 2023 - 15:15

re bonjour, désolé de vous avoir dérangé mais en fait la réponse était dans la question.
Aide toi le Ciel t'aidera .Enfin, un certain nombre de tutos sur le Vbscript et Mach3 t'aideront.
Effectivement il s'agissait bien des paramètres régionaux et en modifiant le séparateur décimal de windows en point au lieu de la virgule ça fonctionne. Scripts écrits par un américain! Par contre si quelqu'un sait comment le modifier pour qu'il marche avec les paramètres Français, je suis preneur ou bien un petit bout de code pour changer les paramètres juste pour exécuter le script, ça serait aussi bien.

Merci d'avance et encore mes excuses si vous avez déjà commencé à chercher.
Bonne journée
leotti
leotti
je prends du galon
je prends du galon

Messages : 78
Points : 198
Date d'inscription : 14/02/2012
Age : 62
Localisation : essonne

Revenir en haut Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Jeu 20 Juil 2023 - 17:08

Salut,

Oui, la fonction Format() qui sert à formater un nombre tient compte du réglage régional de Windows ... j'ai eu le même problème avec un code qui écrit des fichiers STL ; je me retrouvais avec des virgules dans le fichier, ce qui n'est pas accepté par le format STL ... L'américain n'y est pour rien !!  Very Happy

Pour ma part, j'avais crée ma propre fonction de formatage de nombres pour contourner ce problème ... mais c'était en Visual Basic, j'avais utilisé la fonctione "replace" qui permet de scanner une chaine de caractère et de remplacer certains caractères par d'autres (donc la , par le .) ... mais cette fonctione n'existe pas dans le Basic Cypress de Mach3 .. donc il faut te faire ta propre fonction replace ...

Je regarde si je peut te sortir un code qui marche sous Cypress ...

++
David

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Jeu 20 Juil 2023 - 17:33

Re

Voila une fonction qui permet de scanner le texte et de remplacer la , par un .

Code:
montext = "123,17" 'le texte à traiter

montext = RemComma(montext) 'appel de la fonction utilisateur RemComma()

MsgBox(montext) 'affichage du résultat

'....
'....

Function RemComma(tx) As String

   ret = "" 'la variable texte modifiée qui sera retournée par la fonction

   For n = 1 To Len(tx)-1 'scan du texte passé à la fonction caractère par caractère

       ct = Mid(tx,n,1) 'retourne le caractère à la position n
 
       If ct ="," Then ct ="." 'si le ctr est une virgule, le remplacer par un point
 
       ret = ret & ct 'ajouter le caractère à la suite de la nouvelle variable texte
 
   Next n ' caractère suivant

   RemComma = ret 'retourner la variable modifiée
   
End Function

Donc, ajoute la fonction à la fin de ton code (c'est comme une sub, sauf qu'une fonction retourne une valeur)

Et dans le corps du programme, après la ligne

VarSpanDia = Format((CDbl(VarSpanX) + CDbl(VarSpanY))/2,"##0.000")   'CALCULATE MM DIAMETER

tu ajoute une ligne qui traitera VarSpanDia pour remplacer la virgule, donc, appel de la fonction en lui passant VarSpanDia ... et retour du résultat qui sera de nouveau stocké dans VarSpanDia.

VarSpanDia = RemComma(VarSpanDia)

++
David

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  leotti Jeu 20 Juil 2023 - 20:01

Merci d'avoir pris le temps de me répondre. Mais le problème n'est pas le format d'écriture de la variable Varspandia mais les variables varspanX et varspanY qui sont retournées signées avec une virgule. Je pense que lorsque la commande Format s'exécute elle cherche des types numériques doubles CDbl et dans la cellule il y a un nombre avec une virgule qui pour elle doit être reconnu comme un type String d'ou le type mismatch.
Ce n'est pas la seule ligne ou cela se produit, donc l'idéal serait de modifier le paramètre régional de windows de "," en "." en dynamique le temps de l'exécution du script. J'ai trouvé un code mais ça ne marche pas avec le vbscript de Mach3.
Je te le mets ci dessous:

Option Explicit
Private Declare Function GetLocaleInfoA Lib "kernel32" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Private Declare Function SetLocaleInfoA Lib "kernel32" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long

Public Sub ForceSystemDecimalToPeriod()
' We MUST use the ANSI API version so it's an ANSI character that's used for the actual decimal character.
Const LOCALE_SDECIMAL As Long = &HE&
Const LOCALE_SGROUPING As Long = &H10&
Const Eng_LCID As Long = 1033&
Dim s As String
'
s = String$(GetLocaleInfoA(Eng_LCID, LOCALE_SDECIMAL, vbNullString, 0&), 0)
GetLocaleInfoA Eng_LCID, LOCALE_SDECIMAL, s, Len(s)
If RTrimNull(s) <> "." Then
SetLocaleInfoA Eng_LCID, LOCALE_SDECIMAL, "."
SetLocaleInfoA Eng_LCID, LOCALE_SGROUPING, ","
End If
End Sub

Public Function RTrimNull(s As String) As String
RTrimNull = s
Do
If Right$(RTrimNull, 1&) <> vbNullChar Then Exit Do
RTrimNull = Left$(RTrimNull, Len(RTrimNull) - 1&)
Loop
End Function

Si ça te donne une idée...
Bonne soirée

leotti
leotti
je prends du galon
je prends du galon

Messages : 78
Points : 198
Date d'inscription : 14/02/2012
Age : 62
Localisation : essonne

Revenir en haut Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Jeu 20 Juil 2023 - 20:40

Merci d'avoir pris le temps de me répondre. Mais le problème n'est pas le format d'écriture de la variable Varspandia mais les variables varspanX et varspanY qui sont retournées signées avec une virgule. Je pense que lorsque la commande Format s'exécute elle cherche des types numériques doubles CDbl et dans la cellule il y a un nombre avec une virgule qui pour elle doit être reconnu comme un type String d'ou le type mismatch.

Par "cellule", tu veux parler de la DRO du screenset ?

J'ai toujours utilisé Windows avec le point décimal, donc je ne sais pas trop comment réagit Mach3 avec les virgules.

++
David

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Jeu 20 Juil 2023 - 21:01

Mais le problème n'est pas le format d'écriture de la variable Varspandia mais les variables varspanX et varspanY qui sont retournées signées avec une virgule.

Ok, il doit falloir faire la modif plus loin, dans Sub RunXCenter, c'est la que la variable est définie.

...
...
Select Case GetParam("Units") 'SET INFORMATION FOR STATUS LINE DISPLAY
Case 0 'MM
VarSpanX = Format(VarProbeDia+(VarGageThick*2)+(VarXPosPosition-VarXNegPosition),"##0.000") 'CALC SPAN

VarSpanX = RemComma(VarSpanX )

Case 1 'INCH
VarSpanX = Format(VarProbeDia+(VarGageThick*2)+(VarXPosPosition-VarXNegPosition),"##0.0000") 'CALC SPAN
End Select

même chose pour le Y dans Sub RunYCenter

en gros il faut que tu traites toutes les variables qui utilisent la commande Format()

++
David

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Jeu 20 Juil 2023 - 21:08

une version modifiée qui intègre ma fonction et traite tous les Format()

dis moi si ça marche ...

++
David
Fichiers joints
Pb scripts "auto tool setting" pour Mach3 Attachment
CENTER_INTERNAL_SCRIPT_REV13.zip Vous n'avez pas la permission de télécharger les fichiers joints.(5 Ko) Téléchargé 2 fois

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  leotti Ven 21 Juil 2023 - 10:54

Merci David, ça marche mais le problème c'est qu'il faut rajouter une ligne pour chaque variable au risque d'en oublier et je ne te cache pas que je trouve ça assez fastidieux, surtout que j'ai plusieurs scripts écrits par le même concepteur. L'idéal serait donc d'avoir une fonction qui change la virgule en point directement dans windows. En attaquant la base de registres, peut-être?
Je te mets l'adresse du site ou j'ai trouvé ces scripts qui me conviennent parfaitement.
https://www.youtube.com/watch?v=MQ9XT30s-PU, tu pourras si tu le veux juger par toi-même.
En plus, je crois que ça pourrait en intéresser certains sur le forum, non?

Je te remercie encore pour ton aide et la rapidité à laquelle tu réponds aux questions.
Bonne journée
A te lire
Léo

leotti
leotti
je prends du galon
je prends du galon

Messages : 78
Points : 198
Date d'inscription : 14/02/2012
Age : 62
Localisation : essonne

Revenir en haut Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  dh42 Ven 21 Juil 2023 - 16:17

C'est un peu étrange la manière dont il s'y prend, si la valeur doit être affichée dans une DRO, il n'y a pas besoin de formater la valeur, il suffit de formater la DRO elle même, on peut définir le nb de décimales directement et donc se contenter de travailler avec des nombres, sans en passer par un formatage (et donc une conversion en texte). Les DRO peuvent être éditées avec MachScreen.

Pb scripts "auto tool setting" pour Mach3 Sans_399

++
David

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

Messages : 25103
Points : 37819
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

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour Mach3

Message  leotti Ven 21 Juil 2023 - 19:16

Bonsoir, les valeurs ne sont pas affichées dans les DRO mais dans la barre de status comme messages.
leotti
leotti
je prends du galon
je prends du galon

Messages : 78
Points : 198
Date d'inscription : 14/02/2012
Age : 62
Localisation : essonne

Revenir en haut Aller en bas

Pb scripts "auto tool setting" pour Mach3 Empty Re: Pb scripts "auto tool setting" pour 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