Blender (jusqu'à 2.49)
|
Import
KMZ/KML
Google
Earth 3 seulement |
(ancien format d'exportation de Sketchup) |
utilisant
les modules Mesh ou NMesh
(version anglaise)
|
|
Objectif
Ce script a pour seule fonction
d'importer les modèles en géométries 3D que l'on peut
trouver sur le net .
Avertissements
La
fonction Fill()
Cette fonction est utilisée pour
remplir les polygones importés par le script car Blender ne peut
gerer que des polygones de 3 ou 4 cotésalors que les géométries
des fichiers KML peuvent contenir des polygones contenant un nombre indéterminé
de coté .
def cree_POLYGON():
global ME
Blender.Redraw()
ME.fill()
for e in ME.edges :
e.sel= 0
return 0
|
Fill n'existe, hélas,
que dans le module
Mesh mais il est possible d'en faire une
imitation pour pouvoir utiliser le module NMesh :
def cree_POLYGON():
global ME, DOCUMENTORIGINE, TESSEL, OB
Blender.Window.EditMode(1)
winid = Blender.Window.GetScreenInfo(Blender.Window.Types.VIEW3D)[0]['id']
Blender.Window.SetKeyQualifiers(Blender.Window.Qual.SHIFT)
Blender.Window.QAdd(winid, Blender.Draw.FKEY,1)
Blender.Window.QHandle(winid)
Blender.Window.SetKeyQualifiers(0)
Blender.Window.QHandle(winid)
Blender.Window.EditMode(0)
ME=OB.getData()
for v in ME.verts :
v.sel=0
ME.update()
|
Très proche, elle est cependant beaucoup - mais vraiment beaucoup - plus
lente . On peut regretter l'absence de cet outil
dans un module qui offre pourtant à la fois des facilités
de développement et une plus grande clarté dans l'écriture.
Attention, 3 conditions
impératives pour la bonne exécution de la fonction fill()
que
ce soit avec Mesh ou NMesh :
1/ une fenêtre 3D doit être
ouverte sur le plan de travail;
2/ l'espace de travail doit être
obligatoirement
en mode "Global"; si la fenêtre 3d n'est pas positionnées
sur ce mode, rien ne sera affiché; le mode "Local", il
faut comprendre par là qu'on a sélectionné un objet
et qu'on l'a isolé de l'ensemble de la scène pour le travailler
en particulier; on obtient le résultat en appuyant sur la touche
/ du pavé numérique, ne peut s'appliquer qu'à
des objets déjà créés et, malheureusement la
fonction de remplissage des polygones ne peut s'effectuer que dans la fenêtre
qui contient réellement l'objet;
3/ On doit
être en mode Object pour effectuer l'import mais il
est indispensable que le mode vertex soit activé ! Les deux
illustrations ci-dessous donnent un idée de la différence
si on ne respecte pas cette dernière condition.

|
Pour éviter d'utiliser les
outils propres au python, donc de passer par une installation complète
de ce dernier ces scripts utilisent des fonctions développées
pour un autre de mes scripts qui importe des fichiers au format
SVG .
Pour créer des meshes avec le
module NMesh en imitant la fonction fill()
-
__version__
= "0.0.5, 13 Mai 2006" :
Recupération de la
face perdue .
-
__version__
= "0.0.9, 14 Mail 2006"
Modification de la méthode
de lecture des textes contenants les coordonnées .
Tri entre les polygones
nécessitant un traitement particulier par remplissage et ceux de
3 ou 4 sommets qui peuvent être créés à la volée
.
-
__version__
= "0.1.1, 16 Mai 2006"
Import des polygones creux
.
-
__version__
= "0.1.2,
17 Mai 2006"
TéléCharger
la version totalement autonome script 0.1.2
+ zipfile.py intégré
Amélioration des
performances de 257 % (environ) sur l'import de fichiers constitués
exclusivement de polygones à 3 ou 4 cotés ..
-
__version__
= "0.1.3,
20 May 2006"
Division en Placemark, ce
qui améliore les performances en fonction du nombre de fragments
créés .
-
__version__
= "0.1.4,
25
May 2006"
TéléCharger
le script
0.1.4
Correction d'un probleme
lié à certains fichiers qui semblent attribuer un placemark
par polygone . La lenteur de chargement et la quantité d'objets
à gérer deviennent insupportables .
Pour créer
le mesh complet avec le module Mesh et la fonction Fill() .
0.1.2
+ zipfile.py intégré
0.1.3
Gestion
des contours internes ouverts et des placemarks
0.1.4
Gestion
des couleurs et des polygones encombrants car ils seraient tous traités
comme des placemarks et amèneraient une surcharge dans la création
d'objets .
0.1.5
Gestion
des fichiers ne contenant aucune géométrie importable . Suppression
d'un léger défaut de conception qui créait un objet
mesh vide et donc inutile .
0.1.6
Gestion
des fichiers contenant des balises htmls
Z
0.1.6
+ fichier zipfile.py pour une complète
autonomie dans blender
__version__
= "0.1.7, june 14th, 2006" :
Import
"à la hussarde" des couleurs oubliées en chemin
Download
the script 0.1.7 with build in zipfile
__version__
= "0.1.8d, 10 Aout , 2006" :
Import
de toutes les linestrings
Download
the script 0.1.8d with build in zipfile
__version__
= "0.1.9, 11 Aout , 2006" :
Import
forcé de toutes les linestrings même quand il n'y a pas de
polygones
Download
the script 0.1.9 with build in zipfile
__version__
= "0.1.9b, 12 Aout , 2006" :
Ajout
de panneaux de dialogue pour gérer l'import des edges (pas toujours
nécessaire puisqu'ils ne sont quelquefois utilisés que pour
souligner les formes déjà dessinées avec les polygones
) .
 
Notez
que l'import se fait par défaut et qu'il faut décocher cette
option pour la rendre inactive .
Idem
pour l'option Remove Double .
Il
est maintenant obligatoire d'appuyer sur le bouton OK pour lancer l'import
.
Download
the script 0.1.9b with build in zipfile
__version__
= "0.1.9c, 16 Aout , 2006" : modification des constantes de conversions
des degrés de latitude et de longitude en mètres
Download
the script 0.1.9c with build in zipfile
__version__
= "0.1.9f, 31 janvier, 2007" : Modifications diverses à la
demande des animateur du bundle scripts, auxquelles s'ajoute la possibilité
de choisir l'affcihage de la progression du chargement dans la la console
dos .
Download
the script 0.1.9f with build in zipfile
__version__
= "0.1.9g, 03 février, 2007" : plus de modifications
encore mais absolument sans intérêt. Elles ont été
exigées par la Python Team pour que le script soit livré
avec Blender. Mais aucune amélioration de vitesse de chargement
n'a été constaté (plutôt des ralentisements
dans certains cas, la version 0.19f est préférable). Par
contre, il paraîtrait qu'on évite une multiplication des objets
python quand on appelle les listes de données au travers du module
Mesh. Il serait bon de mettre à jour le module NMesh à jour
pour éviter les mauvaise surprises de ce genre mais les développeurs
ne semblent pas pressés de réaliser la chose.
Download
the script 0.1.9g with build in zipfile
__version__
= "0.1.9h, 13 février, 2007" : meilleure méthode
d'identification des fichiers Google Earth 4
le
script n'est plus distribué avec Blender pour éviter d'être
diffuser en une version inutilisable comme le Shape Widget Wizard. Il reste
GPL pour l'instant. La partie supplémentaire qui sera associée
à la version 2.0, pourrait être distribuée avec
une licence plus restrictive.
Download
the script 0.1.9h with build in zipfile
__version__
= "0.1.9i, 5 mars, 2007" : meilleure méthode (encore
plus précise) d'identification des fichiers Google Earth 4.
Aménagement pour fonctionner avec le python 2.5 qui accompagnera
certainement la version 2.44 de Blender.
Download
the script 0.1.9i with build in zipfile
__version__
= "0.1.9j, 27 mars, 2007" : correction infime sur un test qui
ne reconnaissait plus les fichiers kml 2.0.
Download
the script 0.1.9j with build in zipfile
Liens externes
-
Google Earth : attention,
les fichiers kmz et kml contiennent souvent (toujours ?) des données
sous licence que l'on ne peut pas lire et encore moins utiliser dans un
travail personnel . Les utilisateurs doivent prendre le temps de vérifier
les droits des fichiers sur lesquel ils comptent utiliser ce script .
De même, les fichiers
exportés à partir de Google
Sketchup 3D ne doivent pas être utilisés dans
une réalisation à but commercial .
-
Sketchup
3D
-
Export
Script (needs
the python xml tools)
-
Fil
de discussion sur Blenderartiste
-
Nouvelle
sur BlenderNation
Les questions concernant cette page
peuvent être posées sur :
news://news.zoo-logique.org/3D.Blender
|