Aide MicroStation CONNECT Edition

Calculateur/Préprocesseur

L'utilitaire Calculateur/Préprocesseur ("calculat.ma") sert à évaluer les expressions des entrées au clavier MicroStation. La syntaxe est empruntée au langage "C".

  • Le calculateur affiche le résultat d'une expression dans la barre d'état. Par exemple, si vous chargez l'utilitaire Calculateur/Préprocesseur et que vous entrez au clavier CALCULATOR 3*sin(90) le résultat, 3, s'affiche dans la barre d'état.
  • Le préprocesseur remplace une expression par son résultat et transmet l'entrée au clavier à MicroStation. Par exemple, si vous chargez l'utilitaire Calculateur/Préprocesseur et que vous entrez au clavier AA={asin(1)}, le résultat est attribué à l'angle actif, 90°.

Gestion des expressions C

Le calculateur et le préprocesseur prennent en charge la syntaxe du langage C dans les expressions.

La différence essentielle entre le langage C et celui adopté par l'utilitaire Calculateur/Préprocesseur concerne la division des nombres entiers. La gestion des expressions C produit un résultat entier lors de la division de nombres entiers. L'utilitaire Calculateur/Préprocesseur produit un résultat en virgule flottante lors de la division de nombres entiers. Par exemple, dans C, le résultat correspondant à 1/4 est 0 alors qu'avec l'utilitaire Calculateur/Préprocesseur, ce résultat est 0,25.

Les fonctions cos, acos, sin, asin, atan, atan2, tan, cosh, tanh, sinh, exp, ldexp, log, log10, pow et sqrt sont prises en charge. Ces fonctions sont identiques aux fonctions C standard, à la différence près que les angles sont exprimés en degrés et non pas en radians.

Vous pouvez intégrer des variables et des fonctions dans l'utilitaire Calculateur/Préprocesseur. Pour plus d'informations, reportez-vous à Personnalisation du Calculateur/Préprocesseur.

Interaction entre le préprocesseur et le produit

L'interaction entre le préprocesseur et MicroStation, lorsque l'utilitaire Calculateur/Préprocesseur est chargé, est décrite ici.

Le préprocesseur examine toutes les entrées au clavier MicroStation et recherche le texte placé entre les caractères de délimitation indiqués. Les accolades {} sont utilisées par défaut comme caractères de délimitation.

Le préprocesseur évalue la chaîne de texte délimitée qu'il détecte. Si la chaîne est une expression C valide, le préprocesseur remplace les délimiteurs et l'expression par le résultat correspondant et réexamine le contenu de la chaîne. Le préprocesseur boucle de cette façon jusqu'à ce qu'il termine un passage sans remplacement de texte. L'entrée au clavier est alors transférée à MicroStation qui la traite comme une entrée au clavier normale.

Le préprocesseur traite également les chaînes d'entrée au clavier provenant des sélections de menus personnalisés ou simulées par d'autres applications (application MDL). Le préprocesseur escompte un nombre entier , une valeur en virgule flottante ou une chaîne de caractères, pour résultat d'une expression.

Les valeurs par défaut sont modifiables dans la boîte de dialogue Préprocesseur.

Format de sortie de calculateur et de préprocesseur

Le calculateur et le préprocesseur utilisent chacun une chaîne de format. La première définit l'affichage des résultats entiers, tandis que la seconde définit l'affichage des résultats à virgule flottante. Ces chaînes de format sont des chaînes C printf standard.

Le calculateur ne traite pas les résultats comportant des chaînes de caractères. Il affiche donc un message d'erreur s'il évalue une expression dont le résultat indique un pointeur de caractères. Le préprocesseur quant à lui remplace l'expression par la chaîne indiquée par le résultat.

Commandes de calculateur

Lorsque l'utilitaire Calculateur/Préprocesseur est actif, ces commandes de calcul peuvent être entrées de la même façon que les entrées au clavier MicroStation :

  • CALCULATOR [C_expression] calcule le résultat d'une expression C. Le résultat de l'expression s'affiche dans la barre d'état. CALCULATOR charge le calculateur d'interpréter toutes les entrées au clavier comme des expressions. Ce mode reste actif jusqu'à ce qu'une autre commande soit activée.
  • CALCULATOR DECLARE DOUBLE [variable_name] déclare une variable en virgule flottante pour le calculateur et le préprocesseur. La valeur initiale de la variable est 0. La valeur et sa définition sont enregistrées entre les sessions dans "uservrbl.dat."
  • CALCULATOR DECLARE INT [variable_name] déclare une variable entière pour le calculateur et le préprocesseur. La valeur initiale de la variable est 0. La valeur et sa définition sont enregistrées entre les sessions dans "uservrbl.dat."
  • CALCULATOR FORMAT DOUBLE [format_string] spécifie la chaîne de format utilisée pour afficher le résultat des expressions en virgule flottante. La valeur par défaut est %.16g.
  • CALCULATOR FORMAT INT [format_string] spécifie la chaîne de format utilisée pour afficher le résultat des expressions avec nombres entiers. La valeur par défaut est %d.

    Par exemple, pour calculer la valeur hexadécimale du décimal 100:, entrez au clavier CALCULATOR FORMAT INT %#X puis entrez CALCULATOR 100.

    Par exemple, pour calculer la valeur décimale de l'héxadécimal 100, entrez au clavier CALCULATOR FORMAT INT %d puis entrez CALCULATOR 0x100.

  • UCCALC [C_expression] calcule le résultat d'une expression C, mais n'affiche pas le résultat.

Personnalisation du Calculateur/Préprocesseur

Vous pouvez personnaliser le fonctionnement du Calculateur/ du Préprocesseur de la façon suivante :

  • Ajouter des variables par l'intermédiaire du fichier "uservrbl.dat".
  • Ajouter des fonctions et des variables supplémentaires à partir des programmes MDL.
  • Déclarer des variables avec les commandes CALCULATOR DECLARE.
  • Remplacer le préprocesseur par une autre application MDL.

Pendant son initialisation, l'utilitaire Calculateur/Préprocesseur lit "uservrbl.dat". Il recherche le fichier dans le répertoire affecté à la variable de configuration MS_DATA. Chaque définition de variable dans le fichier possède le format suivant : <type_name> <variable_name> <initial_value>

Les valeurs possibles pour type_name sont double et int. Les noms de variable définis dans "uservrbl.dat" sont limités à 16 caractères maximum. La valeur initiale de la chaîne est définie à partir du premier caractère (hormis le caractère d'espacement) placé à la suite du nom de la variable. Jusqu'à la fin de la ligne.

Exemple de fichier d'initialisation standard :

int baseValue 1
double baseUor 1.0

Lorsque l'utilitaire Calculateur/Préprocesseur est déchargé, il met à jour "uservrbl.dat." Pendant cette mise à jour, il enregistre les types, noms et valeurs des variables définies dans le fichier "uservrbl.dat" et celles définies à l'aide des commandes CALCULATOR DECLARE. Les variables introduites à partir des applications MDL ne sont pas enregistrées.

Les applications MDL peuvent ajouter des fonctions et des variables au calculateur en les publiant à l'aide de la fonction mdlCExpression_symbolPublish . L'utilisation d'un jeu de symboles possédant une visibilité VISIBILITY_CALCULATOR rend la fonction ou la variable disponible pour le calculateur. Il s'agit de la seule méthode disponible pour ajouter des fonctions au calculateur.