Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
OldDeskweb.jpg
Publicité
Formation Blender ElephormBlender 3d Elephorm


     






Script en Python - Optimiser la taille d'un fichier en wrl
Touriste
Inscrit:
11/01 15:23:08
Post(s): 1
Bonjour à tous,

Voici mon problème.

J'essaie de faire fonctionner un script qui me semble "assez correct", du moins, correspondant à ce que je souhaite faire, mais il ne fonctionne pas.

En effet, je souhaite diminuer la taille de fichiers ".wrl" (pièces 3D) en automatisant cela sur plus de 3000 fichiers.
Les étapes je sais les faire de façon manuelle, j'obtiens bien un fichier moins lourd, mais je souhaite automatiser cette tâche en l'automatisant grâce à un script pour 3000 pièces.

En effet, chacune de ces pièces se composent de plusieurs élements.

Les étapes manuelles sont les suivantes :

- Conversion en un seul object ("Object Mode" sous Blinder).
- JOIN
- Je rechange de mode, "Edit Mode"
- Je sélectionne "Remove Doubles"
- Et je sauvegarde ma pièce. Je gagne environ 25-30% de la taille.

Mon Script est le suivant :

import bpy
from mathutils import Vector, Matrix, Quaternion, Euler, Color
from os import *


input_dir = "C:\\Users\\fdu\\Documents\\MesDocumentsPersos\\Programmation\\Python\\vrml-De-Base\\"
output_dir = "C:\\Users\\fdu\\Documents\\MesDocumentsPersos\\Programmation\\Python\\vrml-Allege\\"

for wrl_file in listdir(input_dir):
if wrl_file.endswith(".wrl"):

object_all = bpy.context.scene.objects
for ob in object_all:
ob.select = True
bpy.ops.object.delete(use_global=False) # Permet de supprimer les caméras (servent à rien)

filepath = path.join(input_dir, wrl_file)
bpy.ops.import_scene.x3d(filepath=filepath, filter_glob="*.wrl")

object_all = bpy.context.scene.objects
for ob in object_all:
ob.select = ob.name.startswith("Viewpoint") # Viewpoint : CAMERAS
bpy.ops.object.delete(use_global=False)

object_all = bpy.context.scene.objects
for ob in object_all:
ob.select = ob.name.startswith("Shape_IndexedFaceSet") # Shape_IndexedFaceSet -> Chaque pièce composant le wrl
if bpy.context.object.mode == "EDIT": # PB sur cette ligne à l'exécution
bpy.ops.object.editmode_toggle()
bpy.ops.object.join()

if bpy.context.object.mode == "OBJECT":
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.remove_doubles(use_unselected=False, threshold=9.999999747378752e-05)

filepath = os.path.join(output_dir, wrl_file)
bpy.ops.export_scene.vrml2(filepath=filepath)



Est-ce que quelqu'un peut m'aider ? car il faut dire que je débute totalement sur ce logiciel ainsi qu'en Python
Merci d'avance

Contribution le : 11/01 15:31:50
Créer un fichier PDF de la contribution Imprimer


Re: Script en Python - Optimiser la taille d'un fichier en wrl
Fou Furieux du Clan
Inscrit:
29/05/2009 19:22
Post(s): 113
Salut bubu31

D'abord bravo pour te mettre au python car la doc est velue, je le sais pour avoir essayé de m'y mettre et j'ai vite abandonné, dommage car j'ai toujours été persuadé que le script pouvait ajouter beaucoup à Blender. Faut dire qu'on trouve très peu de tutos sur le net à ce sujet (blender+python)
Si j'ai bien compris, ce script fonctionne dans Blender ? Tu l'execute par le biais de l'éditeur de texte ? Ok, si j'essaie de comprendre :
tu as un fichier source
tu as un fichier output
J'ai recréé ces deux fichiers chez moi, j'ai lancé le script, et...même erreur que toi ligne 28.
Un petit coup d’œil à la toogle system console :
File "\Text", line 28, in <module>
AttributeError: 'NoneType' object has no attribute 'mode'
ca voudrait dire que tu appelles une classe qui n'est pas reconnue, enfin je te donne ce que j'ai trouvé sur un forum :

NoneType means that instead of an instance of whatever Class or Object you think you're working with, you've actually got None. That usually means that an assignment or function call up above failed or returned an unexpected result.

Personnellement je pense que le type d'objet que tu appelles n'a pas l'attribut "mode", enfin c'est ce que j'ai compris, mais c'est à creuser.

Si un codeur passe par la...

Contribution le : 27/01 15:26:00
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
[WIP] et travaux terminés [WIP] Portrait réaliste - Zbrush/Blender    [1][2] 10 373 Hier 19:05:59
blend74 
Questions & Réponses [non résolu] Sélectionner plusieurs image clé 2 29 Hier 17:50:46
Luvo 
Questions & Réponses [résolu] Problème de rigging avec Rigify 3 36 Hier 17:31:58
Luvo 
Questions & Réponses [non résolu] conseils pour une topo    [1][2] 10 157 Hier 15:04:32
blendinfos 
Questions & Réponses Blender : le bon logiciel ? 8 310 Hier 13:19:36
Guppy88 
Questions & Réponses [résolu] blender ne s'ouvre plus 6 185 Hier 13:12:07
Guppy88 
Questions & Réponses [résolu] Ciel et Soleil 3 146 Hier 10:23:12
Zarathoustra 
Questions & Réponses [résolu] UV color grid (2.8) 3 47 22/03 16:59:25
lollito 
Concours Défi du Clan 2019 N°3 Thème: Monument 3 178 22/03 15:27:44
tykrane 
Concours Concours de jeux libres avec Blender et Godot 0 63 21/03 14:41:31
yemanjalisa 
Questions & Réponses [non résolu] Animer un personnage avec Motion capture sans déformation    [1][2][3]...[6] 52 6547 21/03 14:15:20
alexx76 
Questions & Réponses Nettoyage de fichier .blend 5 100 21/03 14:04:08
lollito 
Questions & Réponses [non résolu] Conserver les mesures de "Ruler/Protractor" 3 186 21/03 12:28:57
Redstar 
Questions & Réponses Enregistrement d'animation 7 101 20/03 16:53:04
Zarathoustra 
Questions & Réponses Principes et organisation de Blender?    [1][2] 10 195 20/03 14:28:45
busanga 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Niveau d’intérieur WIP (Manoir) - VIDEO P36    [1][2][3]...[37] 367 60838 19/03 21:45:33
Hook 
[WIP] et travaux terminés [WIP] The Wall - Bestiole 1 107 19/03 12:34:50
moonboots 
Moteur de jeu GameBlender et alternatives Animation d'un Mannequin Articulé (GAME ENGINE)    [1][2] 15 637 18/03 15:32:46
Redstar 
Questions & Réponses [résolu] Rotation autour de l'axe local (Débutante)    [1][2] 11 256 18/03 13:57:38
Linae 
Le coin des geeks Problème graphique 5 149 18/03 11:09:34
Sziuny 

Qui est en ligne
27 utilisateur(s) en ligne (dont 18 sur Forums)

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


HoracioMil, plus...
Nouveaux membres
PeggyF0333 24/3/2019
MikkiValde 24/3/2019
CassandraG 24/3/2019
JarrodDupp 24/3/2019
HelenaChri 24/3/2019
HoracioMil 24/3/2019
LarryAkx70 24/3/2019
GabrielaLi 24/3/2019
DoyleR644 24/3/2019
DorcasForn 24/3/2019
Dernier Ajout
super8_2.jpg

Evènements à venir
Mar 30
GeeWee's B-Day
Mai 7
Anniv OlivS
Mai 18
Anniversaire Luneo
plus 288 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2019 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445