10 fonctions relatives aux textes de DriveWorks Pro

top 10 des fonctions relatives aux textes de driveworks pro

1. Création/modification/utilisation de textes

DriveWorks excelle depuis sa création pour piloter des modèles SOLIDWORKS. Mais il est possible de « calculer » bien plus que des valeurs de dimensions ou l’état de fonctions. En effet, DriveWorks permet de manipuler des chaines de textes à la perfection.

Cela peut permettre d’automatiser la création de descriptions à intégrer dans une mise en plan, ou dans un devis par exemple, pour les adapter aux choix formulés par l’utilisateur du configurateur.

Le saviez-vous ? 

  • Les premières versions de DriveWorks utilisaient Excel non seulement comme moteur mais aussi pour stocker les données des projets. Ce n’est que plus tard et progressivement que le moteur actuel de DriveWorks a été développé pour permettre plus de performances et étendre ses capacités.
  • Depuis la version 12 de DriveWorks, les projets « Excel » ne peuvent plus être utilisés directement. Un outil de conversion est proposé pour permettre aux retardataires d’évoluer vers les versions modernes de DriveWorks.
  • C’est pour cette raison que la syntaxe des règles de DriveWorks est la même que dans Excel. Depuis, de très nombreuses commandes sont venues compléter les fonctions historiques reprises d’Excel pour permettre à DriveWorks d’aller encore plus loin, plus facilement.

2. Comparer deux chaines de caractère

Il est parfois indispensable de pouvoir comparer deux chaines de caractères. Par exemple :

Supposons que nous souhaitons le comportement suivant pour activer, ou non, une option dans un assemblage SOLIDWORKS piloté par DriveWorks.

Choix d’options possibles dans l’interface Activation de l’assemblage Option 1 Activation de l’assemblage Option 2
Option 1 Oui Non
Option 2 Non Oui
Aucune Non Non

 

Pour cela, pour chaque Assemblage « option X », il faudrait tester si le choix de l’utilisateur est d’activer cet assemblage ou non.

Ainsi pour l’assemblage 1, la règle serait schématiquement par exemple :

Si le Choix est identique à « Option 1 » alors retourner « Oui », sinon : retourner « Non »

La comparaison de texte peut se faire simplement avec l’opérateur « = » (comme pour la comparaison de valeurs numériques).

La condition de notre règle deviendrait donc :

ChoixReturn= “Option 1”

Dans ce cas, l’opérateur = permet de ne pas se soucier de la casse (= majuscule ou minuscule). Il est donc particulièrement adapté à notre exemple.

Dans les cas où la casse à une importance (nom d’utilisateur par exemple), une autre fonction existe :

La fonction Exact().

Cette fonction réalise exactement la même chose que l’opérateur = sur les textes mais en étant sensible à la casse.

Son fonctionnement est détaillé à la page suivante de l’aide en ligne :

http://docs.driveworkspro.com/Topic/Exact

3. Concaténer

Il est fréquent de devoir bâtir un texte en mettant bout à bout plusieurs chaines de caractères (concaténer).

La concaténation est possible de plusieurs façons dans DriveWorks.

Les deux méthodes issues d’Excel fonctionnent de manière identique dans DriveWorks.

  • La fonction Concatenate()

Cette fonction, comme son nom l’indique, est la fonction dédiée permettant de concaténer plusieurs valeurs (textes, nombres, etc.) en une chaine de texte.

Son fonctionnement est détaillé à la page suivante de l’aide en ligne :

http://docs.driveworkspro.com/Topic/Concatenate

  • L’utilisation de l’opérateur “&

Cette méthode est similaire à la fonction concatenate(). Par sa simplicité et sa compacité, elle est généralement la plus souvent utilisée.

Son fonctionnement est détaillé dans la section Combining de la page suivante de l’aide en ligne :

http://docs.driveworkspro.com/Topic/WritingRules

 

Une dernière méthode, beaucoup moins connue existe également (sans présenter d’avantages particuliers) :

  • L’utilisation de textes formatés

Les chaînes de texte peuvent être formatées pour inclure des éléments supplémentaires calculés en utilisant le symbole @ au début de la chaîne de caractères à formater.

Au point où le résultat d’une règle doit être inséré dans le texte, utiliser à nouveau le symbole @ et placer la règle entre parenthèses ().

Exemple :

fonctions relatives aux textes de driveworks pro


Remarque
 : dans ce cas, la règle insérée ne peut pas contenir un autre texte formaté (i.e. utilisant aussi la syntaxe @””)

Son fonctionnement est détaillé dans la section Formatted strings de la page suivante de l’aide en ligne :

http://docs.driveworkspro.com/Topic/WritingRules

4. Insérer plusieurs valeurs (formatées) dans un texte

L’utilisation des fonctions de concaténation peut parfois se révéler difficile à lire (et donc à maintenir).

Prenons l’exemple suivant :

Après avoir saisi les 3 dimensions d’un convoyeur (hauteur, largeur, longueur), une règle est chargée de bâtir une description du choix de l’utilisateur pour apparaitre dans un devis.

Exemple : « Convoyeur Largeur :400mm ; Hauteur :500mm ; Longueur :1500mm. »

Avec l’une des fonctions de concaténation vue précédemment cela donnerait la règle suivante :

 

fonctions relatives aux textes de driveworks pro

Imaginez maintenant un texte plus long, ou des calculs intermédiaires, ou des conditions sont nécessaire entre chaque portion de texte…

Le fonctionnement de la fonction TextFormat() permet (entre autres) de présenter la règle précédente d’une façon plus lisible.

Cette fonction cherchera des repères dans le texte sous la forme {0},{1},…,{50},…

Elle remplacera chaque repère, par l’argument correspondant (dans l’ordre).

Dans notre cas la règle deviendrait :

 

fonctions relatives aux textes de driveworks pro

De plus, cette fonction permet de formater indépendamment (comme son nom l’indique) chacune des valeurs insérées. Les règles de formatage suivent les normes définies par Microsoft pour Excel.

Si nous souhaitions que les valeurs soient sous la forme « 0000mm ». Cela donnerait par exemple :

 

fonctions relatives aux textes de driveworks pro

Suivant le même principe, il est possible de formater d’autre types de valeurs comme des dates par exemple.

La règle suivante formatera par exemple la date donnée par la fonction now() suivant le format: 10-12-2018

fonctions relatives aux textes de driveworks pro

Le fonctionnement de la fonction TextFormat() est détaillé à la page suivante de l’aide en ligne :

http://docs.driveworkspro.com/Topic/TextFormat

5. Vérifier si un texte correspond au format décrit part une expression régulière

Une expression régulière est une chaîne de caractères, qui décrit, selon une syntaxe précise, un ensemble de chaînes de caractères possibles.

Les expressions régulières sont également appelées regex. Leur syntaxe permet de décrire avec concision des ensembles réguliers.

Les expressions régulières sont aujourd’hui utilisées pour programmer des logiciels avec des fonctionnalités de lecture, de contrôle, de modification, et d’analyse de textes ainsi que dans la manipulation des langues formelles que sont les langages informatiques.

Dans DriveWorks, ces Regex peuvent être utilisées pour tester un texte.

Voici quelques exemples d’utilisation :

  • Vérifier qu’un mot de passe correspond aux critères exigés

Exemple 1 : Le mot de passe doit satisfaire les conditions suivantes :

  • Minimum 8 caractères
  • Doit contenir au moins une lettre minuscule
  • Doit contenir au moins une lettre majuscule
  • Doit contenir au moins un chiffre
  • Doit contenir au moins l’un des caractères spéciaux suivants : $@$!%*?&’

 

fonctions relatives aux textes de driveworks pro

L’équivalent sans utiliser l’expression régulière nécessiterait un nombre extrêmement plus important de tests.

Exemple 2 : Vérifier la conformité d’une saisie de couleur RVB au format Hexadecimal (sans la transparence) :

fonctions relatives aux textes de driveworks pro

6. Créer une liste

Dans DriveWorks, les listes ne sont rien de moins qu’une chaine de texte particulière dont les éléments sont séparés par un délimiteur (le caractère « | » ).

Afin de créer une liste par une fonction à partir de plusieurs chaines de texte, il est possible d’utiliser la commande ListJoin().

Dans certains cas, une autre méthode permet de gagner beaucoup de temps.

Il suffit en effet d’ajouter le caractère « | » à une chaîne de caractères pour qu’elle devienne une liste.

Prenons l’exemple suivant :

Un ERP génère un code article automatiquement suivant une codification très précise.

Supposons que l’on ait besoin de générer ce composant à partir de ce seul code article.

Ce code suit la logique suivante :

L Longueur

De 0 à 1000

H Hauteur

De 0 à 1000

P Profondeur

De 0 à 1000

D ou G

Pour Droite ou Gauche

Ex : L550H321P200D

Nous souhaiterions donc « transformer » cette codification en paramètres pour piloter ce composant.

Il est possible de localiser chacune des lettres dans le texte avant d’extraire chacune des valeurs situées entre elles. Le calcul serait assez fastidieux et cela ne nous permet pas d’illustrer la création de liste !

Il suffit de transformer notre texte pour que chacune des lettres présentes dans cette chaine de texte soit suivie d’un délimiteur de liste. Ainsi, nous n’aurions plus qu’à interroger les valeurs à une position donnée dans la liste ainsi formée.

La règle suivante nous permettrait, par exemple, d’ajouter un séparateur après le L :

fonctions relatives aux textes de driveworks pro

Il suffit d’utiliser le résultat de cette règle comme « entrée » à une autre commande Substitute chargée d’insérer un autre séparateur. Et ainsi de suite.

Voici la règle qui permettrait de transformer notre code en liste exploitable :

 

fonctions relatives aux textes de driveworks pro

Dans notre exemple la liste résultante serait la suivante :

L|550|H|321|P|200|D

Il ne reste plus qu’à extraire le deuxième élément de cette liste pour obtenir la longueur, le quatrième pour la hauteur, etc.

Ainsi la variable portant la longueur pourrait être :

fonctions relatives aux textes de driveworks pro

En conclusion

DriveWorks Pro propose de très nombreuses fonctions pour manipuler/analyser les chaines de caractères.

Nous en avons couvert dans cet article une infime partie.

Vous en retrouvez la liste intégrale dans la documentation en ligne à la section portant sur les fonctions de la catégorie Text : http://docs.driveworkspro.com/Topic/CommonFunctions

Disposer de ces outils est une nécessité quand il s’agit de :

  • Bâtir des noms de fichiers ou de dossier
  • Renseigner les cartes de données de SOLIDWORKS PDM
  • Automatiser la génération de documents comme des devis ou des nomenclatures
  • Automatiser l’échange d’informations avec des systèmes d’informations tiers (ERP, CRM, systèmes de payement en ligne…)

EN SAVOIR PLUS SUR DRIVEWORKS LES FORMATIONS DRIVEWORKS

AUTEUR DE L’ARTICLE

Christophe Demuynck, Pôle Expertise Technique pour le groupe Visiativ

S'abonner à la Newsletter