Exemple : création des points à partir d'un fichier

Objectif

L'objectif est montrer sur un simple exemple comment écrire et utiliser une macro. La macro présentée facilite les tâches répétitives de saisie des coordonnées pendant la création des points.

Description de l'exemple

La macro Polypoint3D est prévue pour créer automatiquement plusieurs points en 3D à partir d'une série de coordonnées enregistrées préalablement dans un fichier texte. Le nom du fichier et le repère de définition des points sont choisi par l'utilisateur pendant l'exécution de la macro.

Processus

Le processus comprend les phases suivantes :

Phase Description Contexte
1* Ecriture de la définition de la macro en langage PyFlux dans le fichier *.py Editeur de texte
2 Ecriture des coordonnées des points dans le fichier texte Editeur de texte
3 Chargement de la macro dans le projet Flux Flux
4 Exécution de la macro Flux

* La définition d'une macro nécessite une bonne connaissance de la structure de la base de données Flux et des notions de la programmation.

Phase 1

Pour définir de la macro dans le langage PyFlux :

Etape Action
1 Ecrire l'en-tête du programme Flux exécutable
2 Ajouter la description des paramètres d'entrée de la macro
3 Définir la fonction paramétrée Polypoint3D dans le langage PyFlux
4 Enregistrer le fichier de la macro sous le nom Polypoint3D.py dans le répertoire Polypoint3D.PFM.

Phase 1 : interprétation du fichier

Le fichier de la macro Polypoint3D.py se présente de la façon suivante :

Elément Fonction
#! Preflu3D 9.33
indication sur le programme exécutable
@param
déclaration du paramètre par le mot clé @param
filename
coordSys
les noms des paramètres : filename , coordSys
File
CoordSys
les types PyFlux : File , CoordSys
1 1
cardinalités minimale et maximale
points.txt
None

la valeur par défaut points.txt

le mot clé None

Fichier des coordonnées des points
Repère de définition des points
les labels des paramètres
def Polypoint3D(filename,coordSys) :

définition de la fonction Polypoint3D avec 2 paramètres

(paramètres pour définir le nom du fichier et le repère)

f = file(filename)
création d'une variable f qui prend pour valeurs les données du fichier filename
for line in f :
réalisation d'une boucle for pour itérer sur les lignes du fichier
coords = line.split()
création d'une variable coords qui prend pour valeurs la liste des chaînes de caractères pour chaque ligne du fichier
PointCoordinates
(color=Color['White'],
 visibility=Visibility['VISIBLE'],
 coordSys=coordSys,
 uvw=coords,
 nature=Nature['STANDARD'])

création des points avec les caractéristiques suivantes :

  • color = blanc
  • visibility = visible
  • coordonnées = (0, 0, 0); (3, 0, 0); (3, 2, 0);

    (2, 2, 0); (2, 1, 0); (1, 1, 0); (1, 2, 0); (0, 2, 0)

  • nature = standard

Phase 2

Pour enregistrer les coordonnées des points dans le fichier texte :

  • taper les données en forme du tableau
  • enregistrer le fichier sous le nom point.txt

Phase 2 : fichier

Le fichier point.txt se présente de la façon suivante :

Phase 3

Pour charger la macro :

  • cliquez sur la commande Charger dans le menu Extensions > Macro

    ou dans le menu contextuel de la macro

Phase 4

Pour exécuter la macro :

  • cliquer sur la commande Exécuter dans le menu contextuel de la macro
  • remplir les champs dans la boîte de dialogue Polypoint3D.

Phase 4 : résultat final

Après exécution de la macro Polypoint3D, l'utilisateur dispose dans son projet Flux de 8 points :

(0, 0, 0), (3, 0, 0), (3, 2, 0), (2, 2, 0), (2, 1, 0), (1, 1, 0), (1, 2, 0), (0, 2, 0).