Importer des données csv
Fou Furieux du Clan
Inscrit:
03/12/2010 20:21
Post(s): 203
Bonjour à tous et à toutes,
comme le titre l'indique pour réaliser mon projet, j'aurais besoin d'importer des données de fichiers csv.
Les données sont toutes classées selon la même logique :
Trois lignes de titres un colonne X et une Y séparées par des virgules puis un retour à la ligne.
En ligne 2980 et 2981 à nouveau un titre.
Je souhaite par la suite animer des keyframes (edit : je voulais dire des shape keys) selon ces données.

Sauriez-vous m’aiguiller vers une solution ?

Par avance merci.

Contribution le : 18/08/2021 16:13
_________________
Ce qui ne tue pas le temps le rend pluvieux.


IllusionMage

Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
OverdOzed
Inscrit:
30/04/2011 21:27
De Hérault
Post(s): 602
Bonjour Makhaon,

Voici qui devrait t'aider (inspiré de cette réponse https://blender.stackexchange.com/questions/71458/how-to-read-a-csv-file-and-use-the-values-as-x-and-y-points-in-blender) :

import bpy
import csv
from mathutils import Vector

#remplace test.csv ci-dessous par le chemin complet vers ton fichier
with open('test.csv', newline='') as inputfile:
results = list(csv.reader(inputfile))

#on saute les 3 premières lignes qui sont des titres si j'ai bien compris
title1 = results[0]
title2 = results[1]
title3 = results[2]

#on lit les données jusqu'au titre suivant, tu peux adapter la valeur 2980 si ça ne correspond pas
for i in range(3,2980):
columnX = results[i][0]
columnY = results[i][1]
#ici les données sont affichées dans la console mais tu peux faire ton traitement avec les variables columnX et columnY
print("X = " + columnX + " / Y = " + columnY)

#on lit la deuxième partie des données jusqu'à la fin du fichier (le nombre de lignes est obtenu par la fonction len(results)
for i in range(2982,len(results)):
columnX = results[i][0]
columnY = results[i][1]
print("X = " + columnX + " / Y = " + columnY)

Contribution le : 18/08/2021 18:00
Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
OverdOzed
Inscrit:
30/04/2011 21:27
De Hérault
Post(s): 602
Bon apparemment les tabulations ont été perdues dans le message (très importantes en python), voici un lien vers le code : https://pastecode.io/s/0am44euw

Contribution le : 18/08/2021 18:01
Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
Fou Furieux du Clan
Inscrit:
26/10/2020 21:22
De Ouaga
Post(s): 123
@Milwolf : il y a une balise [code /] prévue pour ça
for i in range(2982,len(results)):
    columnX = results[i][0]
    columnY = results[i][1]
    print("X = " + columnX + " / Y = " + columnY)

Contribution le : 18/08/2021 18:11
Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
OverdOzed
Inscrit:
30/04/2011 21:27
De Hérault
Post(s): 602
Mais c'est trop cool ça, j'avais oublié

Contribution le : 18/08/2021 18:13
Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
Fou Furieux du Clan
Inscrit:
03/12/2010 20:21
Post(s): 203
Merci beaucoup Milwolf,
c'est exactement ce dont j'avais besoin.
Me reste maintenant cette histoire de shape keys, mais j’espère m'en sortir, si je n'y arrive pas je reviendrais à vous.
Merci encore.

Contribution le : 19/08/2021 09:51
_________________
Ce qui ne tue pas le temps le rend pluvieux.


IllusionMage

Créer un fichier PDF de la contribution Imprimer


Re: Importer des données csv
Fou Furieux du Clan
Inscrit:
03/12/2010 20:21
Post(s): 203
Bonjour à tous et à toutes,
bien cela n'a pas tardé je suis à nouveau bloqué, cette fois ci sur l'ajout de keyframes sur des shape keys.
j’aimerai que celles-ci soient inclusent dans la seconde boucle for...

import bpy
import csv from mathutils
import Vector obj = bpy.context.object
bpy.ops.object.shape_key_add(from_mix=False)
a = 0.1 cod = bpy.context.object.data
for i in range(0,6) :
    K = "Key " + str(i + 1)
    cod.vertices[i].co[0] = a
    bpy.ops.object.shape_key_add(from_mix=False)
    bpy.data.shape_keys["Key"].key_blocks[K].value = 0
    cod.vertices[i].co[0] = 0
with open('Fichier-00001.csv', newline='') as inputfile:
    results = list(csv.reader(inputfile))
for i in range(3,9):
    X = results[i][1]
    x = abs(1 * float(X) / 1)
    K = "Key " + str(i -2)
    bpy.data.shape_keys["Key"].key_blocks[K].value = x


Il suffisait d'ajouter :
    bpy.data.meshes['Mesh'].shape_keys.key_blocks[K].keyframe_insert("value",frame = f)


Merci encore

Contribution le : 20/08/2021 10:53
_________________
Ce qui ne tue pas le temps le rend pluvieux.


IllusionMage

Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses bonjour 2 179 28/11 20:12:18
Melodicpinpon 
Questions & Réponses vertex weights 1 716 28/11 20:08:02
Melodicpinpon 
Questions & Réponses [non résolu] Rendu vide pour une simple animation 1 535 28/11 20:03:29
Melodicpinpon 
Questions & Réponses Export png de mauvaise qualité 1 668 28/11 20:01:49
Melodicpinpon 
Questions & Réponses Objets non visibles 1 83 28/11 20:00:01
Melodicpinpon 
Questions & Réponses Déplacer une vertex ou une edge parallèlement à une autre edge 1 82 28/11 19:56:56
Melodicpinpon 
Hors Sujet !! bande-annonce des petits poissons dans l'aquarium 0 65 19/11 17:40:16
xorturion 
Questions & Réponses Comment percer une forme courbe 1 672 17/11 17:16:05
sam90 
Questions & Réponses Remplissage objet 3 923 17/11 17:04:38
sam90 
Questions & Réponses Mirroring light 0 339 02/11 07:51:49
Melodicpinpon 
Questions & Réponses Animation cycle de marche Fall Guys - Rigify 2 1208 03/10 08:42:06
Ediuire 
Hors Sujet !! Tuto Tips - Faire des coutures dans Blender - fabriquer un pouf 1 1468 27/09 14:34:24
perrin34 
Hors Sujet !! Alors elle est PUNK cette bande-annonce de palette CMJN 0 1056 24/09 15:33:07
xorturion 
Questions & Réponses Effets sabre laser image par image 2 726 23/09 07:27:45
muthesaint 
Questions & Réponses [non résolu] comment engendrer un mouvement selon un autre dans un simple système 1 663 18/09 17:10:37
doraynico 
Questions & Réponses [non résolu] Comment fusionner deux fichiers .blend ? 2 733 18/09 16:53:07
doraynico 
Questions & Réponses Comment mettre un délai sur une animation contenue dans une instance de collection? 0 8228 18/09 16:31:16
doraynico 
[WIP] et travaux terminés [WIP] Super Blenderello.    [1][2][3]...[7] 60 38068 05/09 14:50:01
albron 
Questions & Réponses bagapie 0 724 31/08 16:12:59
zilou 
[WIP] et travaux terminés [terminé] Tracking pour Ovni 0 645 29/08 09:48:46
vinceproduc 

Qui est en ligne
129 utilisateur(s) en ligne (dont 64 sur Forums)

Membre(s): 0
Invité(s): 129


plus...
Nouveaux membres
VernClemon 1/12/2023
CarlosS459 1/12/2023
MonteMacmi 1/12/2023
CerysSigmo 1/12/2023
JavierGand 1/12/2023
SheilaSter 1/12/2023
PedroF7082 1/12/2023
BrandonSyj 1/12/2023
MarilouOru 1/12/2023
LouieYokoy 1/12/2023
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Dec 29
Anniversaire d'ebrain
Jan 6
BUG de Lyon
Fev 15
Anniversaire de Dany
plus 215 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445