Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
3834101359_36e55bc553_o.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): 119
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
Questions & Réponses L'UV map complète s'applique sur deux faces 1 21 Aujourd'hui 13:06:02
Rimpotche 
Questions & Réponses Zbrush ET Blender ? 5 73 Aujourd'hui 09:58:54
ebrain 
Questions & Réponses [résolu] Origine le long d'un chemin 5 71 Aujourd'hui 08:30:45
moonboots 
Questions & Réponses [résolu] Simple Deforme axe 4 55 Aujourd'hui 08:00:33
sapajou 
[WIP] et travaux terminés Entraînement personnage cartoon    [1][2][3][4] 35 5098 Aujourd'hui 01:24:44
busanga 
[WIP] et travaux terminés [WIP] Projet d'animation Les ducats du ciel 8 211 Hier 16:56:26
moonboots 
Questions & Réponses [résolu] créer une condition d'animation 3 72 Hier 16:44:59
pharang 
The Blender Clan 'tchat Le topic des trucs à voir    [1][2][3]...[303] 3023 712897 20/06 12:31:10
stev 
[WIP] et travaux terminés [WIP] Jeu vidéo de plateforme sur la Corse 5 179 Hier 09:17:23
Thewada 
[WIP] et travaux terminés [WIP] Modélisation d'un personnage manga 4 135 24/06 18:59:20
Arielboid 
Questions & Réponses Modélisation d'un casque 7 126 24/06 07:47:39
moonboots 
Questions & Réponses galère avec maillage subsurf    [1][2] 18 210 23/06 15:09:27
sapajou 
[WIP] et travaux terminés [terminé] Encore de la simulation avec Blender et Python un mariage parfait. 0 92 23/06 00:27:09
docouatzat 
Mes premières images sous Blender (débutants) mes trucs de noob    [1][2][3]...[20] 192 15689 22/06 21:43:59
blend74 
Concours concours: nature, jardin, plantes, fleurs 0 87 22/06 17:45:33
blend74 
Concours Defi 9 680 22/06 17:38:27
blend74 
Questions & Réponses question 1 95 22/06 17:20:23
Redstar 
Concours [CONCOURS] TI-Planet : design la calculatrice de demain    [1][2][3]...[8] 70 16219 18/06/2012 23:22
LadeHeria 
[WIP] et travaux terminés [WIP] Cabochon avec diastérisme 7 620 21/06 15:44:40
lucky 
Moteur de jeu GameBlender et alternatives [non résolu] Un remake de Zillion? (master system SEGA) 9 257 21/06 13:00:39
Hook 

Qui est en ligne
108 utilisateur(s) en ligne (dont 43 sur Forums)

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


plus...
Nouveaux membres
MastaKaepp 27/6/2019
Liquid_Platypus 26/6/2019
tosdori 26/6/2019
eemas 23/6/2019
creepclem 20/6/2019
etiles 17/6/2019
samID67 16/6/2019
Auguaste 16/6/2019
Demos 14/6/2019
Macronaute 13/6/2019
Dernier Ajout
origalde-integration.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 13
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 285 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