Comprendre les unités SI : Un guide pour les développeurs
Mise à jour : 02 décembre 2024
Lorsque l'on travaille avec une API, il est essentiel de comprendre comment les valeurs des propriétés sont exprimées, en particulier lorsque le logiciel adhère au Système international d'unités (SI).
Ce système garantit la cohérence et l'interopérabilité entre diverses applications et industries. Cependant, lorsque l'on effectue des calculs, en particulier avec des angles ou d'autres quantités physiques, il est important de convertir correctement les valeurs afin d'éviter les erreurs.
Explorons ce concept à l'aide d'un exemple pratique.
Pourquoi utiliser les unités SI ?
Le système d'unités SI offre un moyen normalisé de mesurer et d'exprimer des propriétés telles que la longueur, la masse, le temps et les angles. Pour les API, l'expression des valeurs des propriétés en unités SI garantit que les données restent uniformes et prévisibles, quels que soient l'endroit et le mode d'utilisation.
Toutefois, cette uniformité oblige les développeurs à gérer les conversions d'unités lorsqu'ils effectuent des opérations telles que l'addition ou la soustraction. Le logiciel s'attend à ce que les valeurs soient exprimées en unités SI, de sorte que tout calcul utilisant des valeurs non SI doit d'abord être converti de manière appropriée.
Exemple : Faire une addition à une propriété d'angle
Supposons que vous travailliez avec une propriété représentant un angle. Votre opération implique des degrés, une unité plus familière pour de nombreux développeurs.
Note
TopSolid stocke les unités sous forme d'index dans une table dédiée. Il y a autant d'index que d'unités possibles :
L'unité SI pour les angles est en fait radians.
Voici comment procéder :
- Tout d'abord, obtenez l'unité de la propriété de l'angle.
inOptions.Add(new KeyValue("CREATION_MODE", "SolidShape")) TopSolidHost.Parameters.GetRealUnit(inElementId, out UnitType outUnitType, out string outUnitSymbol);
- Obtenez l'indice d'unité actuel de l'unité trouvée
int currentUnitIndex = TopSolidHost.Units.SearchUnit(outUnitType, outUnitSymbol);
- Obtenir la valeur actuelle et la convertir dans l'unité souhaitée
double currentValue = TopSolidHost.Parameters.GetRealValue(inElementId); double resultConversion = TopSolidHost.Units.ConvertFromSI(outUnitType, currentUnitIndex, currentValue);
4 Effectuer le calcul et reconvertir
resultConversion += 30.0; double resultConversionInSIUnits = TopSolidHost.Units.ConvertToSI(outUnitType, currentUnitIndex, resultConversion);
5 Enfin, attribuez la valeur modifiée à la propriété
TopSolidHost.Parameters.SetRealValue(inElementId, resultConversionInSIUnits);