csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
coucou les cocus
ah non, pardon bonjour
sur une base de données de 3 lignes et 4 colonnes
je n'obtiens que la ligne 3 à l'écran (pas les deux premières)
où ai-je faux ?

import bpy, csv

def event_text(event):
    bpy.ops.object.text_add()
    ob = bpy.context.object      
    curve = ob.data
    curve.body = "%s"%event
    bpy.context.active_object.location=(float(lat),float(lon),float(date))

file = '\\Users\essai.csv'

with open( file ) as csvfile:
    rdr = csv.reader( csvfile )
    for row in rdr:
        lat, lon, date, event = row[0], row[1], row[2], row[3]

print(lat, lon, date, event)

event_text(event)

Contribution le : 05/03/2021 15:15
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
OverdOzed
Inscrit:
16/01/2011 17:05
De Le plus grand terrier du monde ! Et le plus high-tech.
Post(s): 4080
Bonjour,

Le print est hors de la boucle, donc tu n'as que le résultat final, donc la dernière ligne.

Au fait, petite astuce pour gagner du temps à l'écriture:

lat, lon, date, event = row[0], row[1], row[2], row[3]

Si tu as exactement 4 colonnes dans ta ligne, tu peux remplacer ça ↑ par ça:
lat, lon, date, event = row

C'est équivalent, mais moins pénible à écrire :)

Contribution le : 06/03/2021 13:44
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
merci @lapineige !
évidemment, les alinéas...
merci !
ps : je ne suis pas certain de ne pas devoir rajouter des colonnes à l'avenir

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


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
bon, je progresse, mais j'ai toujours des difficultés pour intégrer dans la boucle : quand je fais la
def camera():
je ne dois pas intégrer la création de caméra dans la boucle, sinon, j'aurai autant de camera que de lignes...

import bpy, csv
from math import pi #useful for text and camera rotation_euler

def event_text(event):
    bpy.ops.object.text_add()
    ob = bpy.context.object      
    curve = ob.data
    curve.body = "%s"%event
    bpy.context.active_object.location=(float(x),float(y),float(z))
    bpy.context.active_object.rotation_euler=(pi*90/180,0,0)
    
def camera_frames():
    camera1 = bpy.data.cameras.new("Camera 1")
    camera1.type = 'ORTHO'
    camera1.lens = 18
    camera_obj1 = bpy.data.objects.new("Camera 1", camera1)
    camera_obj1.location = (x, y, z)
    camera_obj1.rotation_euler = (pi*90/180, 0, 0)
    scn.collection.objects.link(camera_obj1)

#define scene
scn = bpy.context.scene

#extraire les donnees du fichier csv :

file = '\\Users\essai.csv'

with open( file ) as csvfile:
    rdr = csv.reader( csvfile )
    for row in rdr:
        x, y, z, event = row[0], row[1], row[2], row[3]
        print(x, y, z, event)
        #creer les blocs textes 
        event_text(event)
        camera_frames
        
#pour la camera :
#dans un fichier csv organisé comme ceci :
#ligne 0 : x,y,z (cette ligne n'existe pas)
#ligne 1 : 1,2,3 (ou x1, y1, z1)
#ligne 2 : 2,4,6 (ou x2, y2, z2)
#ligne 3 : 3,9,12 (ou x3, y3, z3)
#creer la camera
#extraire les coordonnees x,y,z du fichier csv

#pour chaque ligne du fichier csv :
    #1-une frame de début
    #2-rester 5 secondes (soit 5*24 = 120 frames) au même endroit
    #3-une frame de fin
    #4-et environ 3 secondes pour déplacer la caméra jusqu'au point suivant (soit 3*24 = 72 frames)
#je suppose que Blender fera automatiquement le déplacement en courbe de Bézier, mais c'est un moindre problème.
    # et on recommence en 1
    
    #placer la camera aux coordonnées de la ligne 1 : (x1)-3, (y1)-3, (z1)
    #ajouter une keyframe à la frame 0 pour la ligne 1
    #laisser la camera au même endroit 5 secondes (1*5*24 = 120)
    #déplacer la camera aux coordonnees de la ligne 2 (x2)-3, (y2)-3, (z2)
    
    #placer la camera devant les coordonnées de la ligne 2 : (x2)-3, (y2)-3, (z2)
    #etc.
#enregistrer les images en .avi

#je vois bien qu'il y a une itération : 2 keyframes, une de début et une de fin à chaque ligne du fichier csv,
#mais je ne sais pas comment l'intégrer dans la boucle...

Merci à vous !

Contribution le : 08/03/2021 14:44
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
Bon, voici où j'en suis...
mais dans les frames rendues, je n'observe pas le déplacement
et blender fige
je suppose que je dois définir une frame de début et une frame de fin
import bpy, csv
from math import pi #useful for text and camera rotation_euler

mat= Material.New('newMat')
mat.rgbCol = [t1,t2,t3]


def event_text(event):
bpy.ops.object.text_add()
ob = bpy.context.object
curve = ob.data
curve.body = "%s"%event
bpy.ops.material.new()
bpy.context.active_object.location=(float(x),float(y),float(z))
bpy.context.active_object.rotation_euler=(pi*90/180,0,0)
ob.setMaterials([mat])
ob.activeMaterial
bpy.context.scene.render.filepath = '\\Users\essai.avi'
bpy.ops.render.render(animation=True)


#define scene
scn = bpy.context.scene

#extraire les donnees du fichier csv :

file = '\\Users\essai.csv'

# create the first camera
cam1 = bpy.data.cameras.new("Camera 1")
cam1.lens = 18

# create the first camera object
cam_obj1 = bpy.data.objects.new("Camera 1", cam1)
cam_obj1.rotation_euler = (pi*90/180, 0, 0)
scn.collection.objects.link(cam_obj1)

with open( file, 'r' ) as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
x, y, z, event = row[0], row[1], row[2], row[3]
cam_obj1.location = (float(x),float(y)-3,float(z))
print (row)
print (reader.line_num)
#creer les blocs textes
event_text(event)

Contribution le : 09/03/2021 10:37
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
Bonjour
J'aurais encore besoin d'aide
Après avoir essayé beaucoup de combines et eu quelques résultats mais peu probants
Quelle est la meilleure méthode, dans mon cas, pour enregistrer ma séquence en .avi ?
En vous remerciant d'avance

import bpy
import csv
from math import pi #useful for text and camera rotation_euler
        

def event_text(event):
    bpy.ops.object.text_add()
    ob = bpy.context.object      
    curve = ob.data
    curve.body = "%s"%event
    bpy.ops.material.new()
    bpy.context.active_object.location=(float(x),float(y),float(z))
    bpy.context.active_object.rotation_euler=(pi*90/180,0,0)
#define scene
scn = bpy.context.scene
# create the first camera
cam1 = bpy.data.cameras.new("Camera 1")
cam1.lens = 18
# create the first camera object
cam_obj1 = bpy.data.objects.new("Camera 1", cam1)
cam_obj1.rotation_euler = (pi*90/180, 0, 0)
scn.collection.objects.link(cam_obj1) 
#extract datas from csv file :
file = '\essai.csv'
#make the loop 
with open( file, 'r' ) as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        x, y, z, event = row[0], row[1], row[2], row[3]
        cam_obj1.location = (float(x),float(y)-3,float(z))
        cam_obj1.keyframe_insert(data_path=("location"), frame=((reader.line_num)-1)*120)
        cam_obj1.keyframe_insert(data_path=("location"), frame=((reader.line_num)-1)*120+120)
        print (reader.line_num)
        #creer les blocs textes 
        event_text(event)
        #render

Contribution le : 10/03/2021 09:56
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
Pliz ?

Contribution le : 11/03/2021 14:55
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
j'y suis finalement parvenu
apparemment, le type de fichier devait être "AVI_RAW"
ce qui donne :

import bpy
import csv
from math import pi #useful for text and camera rotation_euler
#create material
material_basic = bpy.data.materials.new(name= "Basic")
material_basic.use_nodes = True
principled_node = material_basic.node_tree.nodes.get('Principled BSDF')
principled_node.inputs[17].default_value = (1,1,1,1)


def event_text(event):
    bpy.ops.object.text_add()
    ob = bpy.context.object      
    curve = ob.data
    curve.body = "%s"%event
    bpy.context.active_object.location=(float(x),float(y),float(z))
    bpy.context.active_object.rotation_euler=(pi*90/180,0,0)
    bpy.context.active_object.data.materials.append(material_basic)
#define scene
scn = bpy.context.scene
# create the first camera
cam1 = bpy.data.cameras.new("Camera 1")
cam1.lens = 18
# create the first camera object
cam_obj1 = bpy.data.objects.new("Camera 1", cam1)
cam_obj1.rotation_euler = (pi*90/180, 0, 0)
scn.collection.objects.link(cam_obj1)
scn.camera = cam_obj1


#extract datas from csv file :
file = '\\Users\essai.csv'
#make the loop 
with open( file, 'r' ) as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        x, y, z, event = row[0], row[1], row[2], row[3]
        cam_obj1.location = (float(x),float(y)-3,float(z))
        cam_obj1.keyframe_insert(data_path=("location"), frame=((reader.line_num)-1)*120)
        cam_obj1.keyframe_insert(data_path=("location"), frame=((reader.line_num)-1)*120+120)
        print (reader.line_num)
        #creer les blocs textes 
        event_text(event)
        #render
bpy.context.scene.render.filepath = '\\Users\essai'
bpy.context.scene.render.image_settings.file_format = "AVI_RAW"
bpy.ops.render.render(animation = True)

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


Re: csv>python>blender
Fou Furieux du Clan
Inscrit:
17/07/2018 08:26
Post(s): 103
Bonjour à tous
Toujours à propos du script ci-dessus,
sauriez-vous comment ramener un texte trop long à la ligne ?
et que python reconnaissent les textes (en UTF-8, il me semble), de façon à ne pas avoir î à la place d'un é, par exemple.
Merci !

Contribution le : 18/11/2021 18:46
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
The Blender Clan 'tchat W10 pour le prix d'une cacahuète    [1][2] 19 287 Aujourd'hui 21:18:02
Lylo 
[WIP] et travaux terminés [WIP] La pince à linge    [1][2] 11 165 Aujourd'hui 18:53:10
meltingman 
Hors Sujet !! Tuto Astraonaute low-poly + rigify en 25mm 3 168 Aujourd'hui 14:47:47
meltingman 
Questions & Réponses Texture et courbe de Bézier 9 130 Aujourd'hui 14:19:10
Horemheb 
Questions & Réponses freestyle lineset : ignorer un objet spécifique pour une arrête cachée 0 22218 Aujourd'hui 08:56:34
yekcim 
[WIP] et travaux terminés Pagani Zonda Barchetta 6 184 Hier 09:03:37
moonboots 
[WIP] et travaux terminés [WIP] La gabarre '' Le Gros Ventre''    [1][2][3]...[12] 112 22125 19/01 17:57:26
Guiu 
Questions & Réponses chemins suivant une déformation de surface 6 138 19/01 12:26:50
meltingman 
Questions & Réponses Vitesse d'une vidéo 4 107 18/01 19:59:42
meltingman 
Questions & Réponses Armature sans parenté? 1 65 18/01 19:38:25
meltingman 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[41] 405 48944 17/01 20:40:59
Rimpotche 
Questions & Réponses texture eyes avec empty 1 67 17/01 13:17:33
Rimpotche 
The Blender Clan 'tchat Progression dans Blender et la 3D    [1][2] 11 523 16/01 17:37:45
Rimpotche 
Questions & Réponses [terminé] Modificateur Mirror sur un Vertex Group 2 113 16/01 15:55:36
Horemheb 
Questions & Réponses Ma caméra me saoule... 5 239 15/01 20:33:23
Lylo 
Hors Sujet !! Appareil Photo Compact, qualité, zoom...    [1][2] 19 482 14/01 14:45:17
lucky 
Questions & Réponses [résolu] Comportement du parentage et du Weight Paint bizarres    [1][2] 14 147956 10/01 15:17:23
Horemheb 
Hors Sujet !! BONNE ANNEE LE BLENDER CLAN    [1][2] 10 413 10/01 13:34:18
Riggelm 
Questions & Réponses Limit location constraint-Affect transforms 4 200 09/01 14:33:38
Melodicpinpon 
Questions & Réponses Mon objet suit la courbe à 12 km...    [1][2] 10 585 08/01 01:37:51
Lylo 

Qui est en ligne
215 utilisateur(s) en ligne (dont 71 sur Forums)

Membre(s): 1
Invité(s): 214


LinnieLon1, plus...
Nouveaux membres
BlondellGa 2/1/2022
EileenTomk 2/1/2022
RamonaDahl 2/1/2022
SashaBeals 2/1/2022
TroyLightn 2/1/2022
PhillippBu 2/1/2022
LesterHida 2/1/2022
PansyHolm 2/1/2022
YukikoMitt 2/1/2022
Randall318 2/1/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Fev 15
Anniversaire de Dany
Fev 19
Anniversaire de APPGirault123
Fev 23
anniversaire de windspirit
plus 244 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