csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 15:15:00
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): 4081
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 13:44:26
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 08:49:32
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 14:44:39
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 10:37:54
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 09:56:45
Créer un fichier PDF de la contribution Imprimer


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
Pliz ?

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


Re: csv>python>blender
Clan Afficionado
Inscrit:
17/07/2018 08:26
Post(s): 97
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 11:15:03
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 [WIP] Dragster-Tracteur pour Bécassine    [1][2][3] 22 5556 Aujourd'hui 08:16:23
Laorz 
Questions & Réponses Bug texture sur plane avec bevel 1 143 Aujourd'hui 08:09:13
Laorz 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[56] 557 170212 Aujourd'hui 08:04:25
Redstar 
Questions & Réponses MeasureIt et dpi 1 798 Aujourd'hui 08:01:41
Laorz 
[WIP] et travaux terminés [terminé] Appli Blender de Poche en FR    [1][2] 18 776 Aujourd'hui 07:53:37
Redstar 
Questions & Réponses [terminé] Supprimer le lien d'un objet entre 2 scènes 4 64 Hier 12:52:21
Horemheb 
Questions & Réponses Blender kit : barre d'assets 0 34 Hier 09:26:52
Sphere3d 
Questions & Réponses MeasureIt et dpi 3 67 Hier 08:39:25
Cdric 
Questions & Réponses Comment faire la symétrie d’une multitude d’éléments.    [1][2] 13 13540 14/10 23:35:18
meltingman 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[22] 213 20813 14/10 12:21:54
moonboots 
Questions & Réponses Conversion courbe 1 66 13/10 16:59:40
moonboots 
Moteur de jeu GameBlender et alternatives [non résolu] Godot Engine - Projet Arsenal    [1][2] 15 981 13/10 16:14:33
Redstar 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[13] 122 8686 12/10 18:53:16
blend74 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[9] 86 26494 12/10 17:38:03
Bibi09 
Questions & Réponses magie vaudou :)    [1][2] 17 559 12/10 13:24:04
blend74 
Questions & Réponses Couleur étrange en sculpt mode 2 114 12/10 13:07:46
Arielboid 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 16 1183 11/10 14:50:16
blend74 
Questions & Réponses Opacité texture PNG 9 241 11/10 13:50:10
Bibi09 
Questions & Réponses [résolu] (animation) Avoir des layers de keyframe ? 7 264 10/10 20:03:35
PounchPounch 
Le coin des geeks Changer la carte graphique    [1][2] 13 614 09/10 23:28:09
sapajou 

Qui est en ligne
224 utilisateur(s) en ligne (dont 66 sur Forums)

Membre(s): 7
Invité(s): 217


NathanielH, ChristenCr, TysonVansi, ChangPartl, MarciaGyf, EmilieJorg, DominikFre, plus...
Nouveaux membres
CecilFindl 16/10/2021
AustinMcne 16/10/2021
LashayAlca 16/10/2021
MarjorieSc 16/10/2021
JacquelynE 16/10/2021
KandiBitne 16/10/2021
Bennett44B 16/10/2021
Madeline96 16/10/2021
AvaKinser 16/10/2021
ArdisSynno 16/10/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 8
BUG de Lyon
plus 247 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