French manipuler des nombres entre les modules.

Yves Rossignol

Member
Licensed User
Bonjour, on m'a recommandé d'utiliser la fonction Map ou la fonction Type pour définir une manière de passer les valeurs entre les différents modules de ce que je travaille. Étant un vieux programmeur, je suis plutôt habitué de passer mes valeurs à travers des matrices. Ici je dois aussi faire les conversions du système métrique au système anglais et vice-versa. De plus les unités sont curieuses... du style mm2/mm, mm4/mm etc... po2/po, etc... quand j'utilise une matrice tous mes résultats sont nuls, zéro, nada.. quand j'utilise une autre fonction il me faut le nom du module ou est la variable mais j'ai 14 modules (14 géométries de soudure) et je voudrais avoir une seule écran de résultat...

Des idées ????

Yves
 

klaus

Expert
Licensed User
Il y a plusieurs méthodes de définir des variables.
1. Des variables simples, mais avec des noms significatifs tel Depth, Width, Lw correspondant à des noms de ton projet.
2. Des matrices, selon ton habitude. Inconvénient, nom non significatif. Avantage, il serait possible d'afficher les résultats dans une boucle.
3. Des Maps ou des variables Type comme proposé par Erel, c'est plus 'moderne'. Les variables ont un bom sont significatif.
Quelle est la meilleures solution, c'est plus une question d'habitude.
Pour ton cas, personnellement j'utiliserais les variables simples.
Il faut les déclarer une seule fois comme Public dans un module dans Process_Globals.
Ces variables sont alors accessibles et modifiables depuis tous les modules.
Si elles sont déclarées dans Main
Public Depth, Width, Lw As Double
Dans le module Main les variables sont utilisées tel quel Depth, Width, Lw et depuis les autres modules Main.Depth, Main.Width, Main.Lw etc.
Pour les unités, tu connais le facteur de conversion, donc tu peux multiplier les variables par les facteurs de conversion.
Les unités 'exotiques' dont tu parles, il faut les simplifier:
mm2/mm > mm,
mm4/mm > mm3

Je t'avais déjà une fois proposé de n'utiliser qu'un seul écran d'acquisition de données et de n'afficher que les views utiles en fonction du type de soudure.
Mes sans réactions de ta part, j'ai pensé que mes propositions ne t'intéressent pas et j'avais arrêté de répondre.
 
Last edited:

Yves Rossignol

Member
Licensed User
Bonjour, je m'eexcuse car j'avais refait plusieurs écran mais j'avais oublié une variable textfield... tes propositions sont très importantes pour moi et j'essai de bien les comprendre.

L'avantage de prendre des matrices est important pour moi car je peux me faire une routine de détection des exposants (qui seront des exposants d'ingénierie, 3,6,9,12,etc) et de me permettre de faire des conversions entre les deux systèmes d'unités plus facilement. Donc allons pour les matrices..... Je vais te tenir au courant....

Merci infiniment !!!!
 

klaus

Expert
Licensed User
Je ne comprends pas le problème des exposants.
Si tu entres dans un TextField 4e3 et avec
d = txfDepth.Text
tu obtiens 4000.
Donc, où est le problème?
Si tu dois passer aux pouces, tu divises d / 25.4
 

Yves Rossignol

Member
Licensed User
J'ai changé ma stratégie pour avoir des matrices mais mes variables Ix, etc ne sont plus reconnues ailleurs.... et pour les textfields c'est uniquement lorsque viens le temps de mettre à l'écran quelque chose de calculer auparavant ????

Je vais faire une routine de table d'équivalence pour les variables de calcul pour la partie display et surtout la partie conversion des unités.

deux dernières questions: les matrices commences à 0,0 ou 1,1 et comment faire pour que le clavier numérique ne cache pas mes champs d'entrée de donnée... dans les applications, la partie caché monte plus haut.... ou est cette option...

je peux faire des threads pour chaque question...

vous trouverez mes fichiers moins le repertoire object qui est trop gros...
 

Attachments

  • welds 2016_12_28.zip
    149.2 KB · Views: 210

Yves Rossignol

Member
Licensed User
les unités... tout un problème pour les ingénieurs... premièrement il y en a une multitude... uniquement pour les longueurs, m, cm, mm, po, pied, yard, ,etc... pour les forces (kgf, lbf, newton, kN, Kips (kilo pound ouais c'est curieux non!!!, et toutes les déclinaisons...) ainsi que les pressions... plus facile pour moi de les mettre dans un matrice de conversion... plus tard mes utilisateurs choisiront quel unité ils ont entrées...) et je fais des programmes modulaires dans lequel je promène mes routines de conversions, d'impression, etc... donc c'est plus portable. J'utilise plusieurs dizaines d'unités sur une base courante... sans compter que les Européens utilisent des unités différentes du système métrique standard... tel que deca_atmosphere (pas sure du nom...) etc.... J'ai mis une capture d'écran de mon programme en purebasic... Mathcad (une feuille de calcul très intelligente utilise plus de 5000 facteurs de conversion) et je suis un power user de mathcad...(plus de 6000 calculs sous mathcad...

Merci !

petite blague: enlevé
 

Attachments

  • Capture.JPG
    Capture.JPG
    60.3 KB · Views: 228

Yves Rossignol

Member
Licensed User
matrice... déclaration ne marche pas... mes variables ne sont pas reconnues ailleurs....voir mes codes envoyés auparavant
 

Yves Rossignol

Member
Licensed User
je ne trouve pas... mais j'aimerais prendre le chemin des matrices.... pourquoi je n'arrive pas à faire reconaitre mes variables dans les autres modules... pourtant je les déclarent public et une seule fois dans globall process....
 

Yves Rossignol

Member
Licensed User
J'ai un code 45... l'erreur est 45 cm derrière l'écran. Je ne sais pas pourquoi tous mes changements non pas suivi!!!! j'ai perdu tout!!! on recommence...
 

Yves Rossignol

Member
Licensed User
Klaus, je viens de comprendre l'idée de réduire la quantité d'écran de saisie et de sortie, Je n'avais pas compris comment faire et le miracle viens de se faire dans ma petite tête. Merci!!! Il me reste le problème du clavier mais je vais investiger ce que Erel m'a indiqué dans un autre thread.
 
Top