Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-02-15 00:08:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2007-02-15 00:08:58 +0300
commit5a3f1675a362317ee805b18c2ab43782fa9bdd3d (patch)
treeebc8d23ed8f2cb23df505c0efe51b59ce8f4c705 /release/scripts/kmz_ImportWithMesh.py
parent28f18ac9e630e32e41d1d24ccb367e6f92511dde (diff)
Commiting JMS's Latest KMZ minor changes.
* Redraw the 3d view only when importing. (Not all windows) * Select all verts at once rather then 1 by 1. * dont print polygons when importing. (Would be better to use the progress bar for this)
Diffstat (limited to 'release/scripts/kmz_ImportWithMesh.py')
-rw-r--r--release/scripts/kmz_ImportWithMesh.py201
1 files changed, 106 insertions, 95 deletions
diff --git a/release/scripts/kmz_ImportWithMesh.py b/release/scripts/kmz_ImportWithMesh.py
index d8c9ff4f2cd..ddb2d521e68 100644
--- a/release/scripts/kmz_ImportWithMesh.py
+++ b/release/scripts/kmz_ImportWithMesh.py
@@ -2,13 +2,13 @@
""" Registration info for Blender menus
Name: 'Google Earth 3 (.kml / .kmz)...'
-Blender: 242
+Blender: 243
Group: 'Import'
-Tip: 'Import geometry of .kml or .kmz 3D models'
+Tip: 'Import geometry of a .kml or .kmz 3D model'
"""
__author__ = "Jean-Michel Soler (jms)"
-__version__ = "0.1.9g, february, 03th, 2007"
+__version__ = "0.1.9h, february, 13th, 2007"
__bpydoc__ = """\
To read 3d geometry .kmz and .kml file
@@ -622,10 +622,14 @@ def filtreFICHIER(nom):
if nom.upper().find('.KMZ')!=-1:
#from zipfile import ZipFile, ZIP_DEFLATED
tz=ZipFile(nom,'r',ZIP_DEFLATED)
- t = tz.read(tz.namelist()[0])
- tz.close()
- t=t.replace('<br>','')
- return t
+ if 'models/' in tz.namelist():
+ return ''
+ else:
+ t = tz.read(tz.namelist()[0])
+ tz.close()
+ t=t.replace('<br>','')
+ return t
+
elif nom.upper().find('.KML')!=-1:
tz=open(nom,'r')
t = tz.read()
@@ -670,11 +674,11 @@ def create_LINE(BROKEN_LINE,tv):
nedge+=1
v.extend(bl)
e.extend(v[-2],v[-1])
- v[-2].sel=1
- v[-1].sel=1
- if TAG4 and nedge %TAG4 == 1 :
- print 'Pedg: ', nedge
-
+ #v[-2].sel=1
+ #v[-1].sel=1
+ #if TAG4 and nedge %TAG4 == 1 :
+ # print 'Pedg: ', nedge
+ me.sel = True
if tv :
me.remDoubles(0.0001)
@@ -682,13 +686,13 @@ def cree_POLYGON(ME,TESSEL):
global OB, npoly, UPDATE_V, UPDATE_F, POS,TAG3,TAG4, TAG5
npoly+=1
for T in TESSEL: del T[-1]
- if TAG3 and npoly %TAG3 == 1 :
- print 'Pgon: ', npoly, 'verts:',[len(T) for T in TESSEL]
+ #if TAG3 and npoly %TAG3 == 1 :
+ # print 'Pgon: ', npoly, 'verts:',[len(T) for T in TESSEL]
if TAG5 and npoly %TAG5 == 1 :
- Blender.Window.RedrawAll()
- g2= Blender.sys.time()-gt1
- print int(g2/60),':',int(g2%60)
+ Blender.Window.Redraw(Blender.Window.Types.VIEW3D) # Blender.Window.RedrawAll()
+ # g2= Blender.sys.time()-gt1
+ # print int(g2/60),':',int(g2%60)
if len(TESSEL)==1 and len(TESSEL[0]) in [3,4] :
if not UPDATE_F:
@@ -954,7 +958,19 @@ def contruit_HIERARCHIE(t,tv0=0,tv=0):
t0=t1
if tv0 and BROKEN_LINE :
create_LINE(BROKEN_LINE,tv)
-
+def WARNING_nodata():
+ name = "WARNING %t| Sorry, these data are perhaps in Google Earth 4.0 format and are not managed for the moement." # if no %xN int is set, indices start from 1
+ result = Blender.Draw.PupMenu(name)
+ print '#----------------------------------------------'
+ print '# Sorry the script can\'t find any geometry in this'
+ print '# file .'
+ print '# '
+ print '# If you have exported this data from Sketchup '
+ print '# select the simple Google Earth format instead of'
+ print '# the Google Earth 4 .'
+ print '#----------------------------------------------'
+ return
+
def scan_FILE(nom):
global NUMBER, PLACEMARK, SC, OB, ME, POLYGON_NUMBER, TAG3, TAG4, TAG5, gt1
@@ -962,81 +978,76 @@ def scan_FILE(nom):
name=name.split('.')
result=0
t=filtreFICHIER(nom)
- PLACEMARK_NUMBER=t.count('<Placemark>')
- print 'Number of Placemark : ', PLACEMARK_NUMBER
- POLYGON_NUMBER=t.count('<Polygon')
- print 'Number of Polygons : ', POLYGON_NUMBER
- EDGES_NUMBER=t.count('<LineString')
- print 'Number of Edges : ', EDGES_NUMBER
-
- tag1 = Blender.Draw.Create(1)
- tag2 = Blender.Draw.Create(1)
- tag3 = Blender.Draw.Create(0)
- tag4 = Blender.Draw.Create(0)
- tag5 = Blender.Draw.Create(0)
-
- block = []
- block.append("Import Edges only")
- block.append("-> Placemarker : %s"%PLACEMARK_NUMBER)
- block.append("-> Polygons : %s"%POLYGON_NUMBER)
- block.append("-> Edges : %s"%EDGES_NUMBER)
- block.append(("Polys count: ", tag3, 0, 1000,"a progression indicator can be displayed, 0 for none"))
- block.append(("Force Edges import", tag1, "if no polygon found in the file"))
- block.append(("Edges count: ", tag4, 0, 1000,"a progression indicator can be displayed, 0 for none"))
- block.append(("Remove double ", tag2, " "))
- block.append(("display time ", tag5, "see progression time in the dos consle "))
-
- if POLYGON_NUMBER==0 :
- retval = Blender.Draw.PupBlock("KML/KMZ import", block)
- if tag1.val==0: tag4.val==0
-
- if not tag1.val or EDGES_NUMBER==0 and PLACEMARK_NUMBER==0:
- name = "WARNING %t| Sorry, the script can\'t find any geometry in this file ." # if no %xN int is set, indices start from 1
- result = Blender.Draw.PupMenu(name)
- print '#----------------------------------------------'
- print '# Sorry the script can\'t find any geometry in this'
- print '# file .'
- print '#----------------------------------------------'
- Blender.Window.RedrawAll()
- return
- elif not tag1.val or EDGES_NUMBER==0 and PLACEMARK_NUMBER==1:
- name = "WARNING %t| Sorry, these data are perhaps in Google Earth 4.0 format and are not managed for the moement." # if no %xN int is set, indices start from 1
- result = Blender.Draw.PupMenu(name)
- print '#----------------------------------------------'
- print '# Sorry the script can\'t find any geometry in this'
- print '# file .'
- print '# '
- print '# If you have exported this data from Sketchup '
- print '# select the simple Google Earth format instead of'
- print '# the Google Earth 4 .'
- print '#----------------------------------------------'
- elif EDGES_NUMBER:
- SC = Blender.Scene.GetCurrent()
- print 'Number of Placemark : ', PLACEMARK_NUMBER
- if PLACEMARK_NUMBER!=POLYGON_NUMBER :
- NUMBER=1
- PLACEMARK=0
- TAG3=tag3.val
- TAG4=tag4.val
- TAG5=tag5.val
- if t!='false':
- gt1=Blender.sys.time()
- contruit_HIERARCHIE(t,tag1.val,tag2.val)
+ # print len(t)
+ if t:
+ PLACEMARK_NUMBER=t.count('<Placemark>')
+ print 'Number of Placemark : ', PLACEMARK_NUMBER
+ POLYGON_NUMBER=t.count('<Polygon')
+ print 'Number of Polygons : ', POLYGON_NUMBER
+ EDGES_NUMBER=t.count('<LineString')
+ print 'Number of Edges : ', EDGES_NUMBER
+
+ tag1 = Blender.Draw.Create(1)
+ tag2 = Blender.Draw.Create(1)
+ tag3 = Blender.Draw.Create(0)
+ tag4 = Blender.Draw.Create(0)
+ tag5 = Blender.Draw.Create(0)
+
+ block = []
+ block.append("Import Edges only")
+ block.append("-> Placemarker : %s"%PLACEMARK_NUMBER)
+ block.append("-> Polygons : %s"%POLYGON_NUMBER)
+ block.append("-> Edges : %s"%EDGES_NUMBER)
+ block.append(("Polys count: ", tag3, 0, 1000,"a progression indicator can be displayed, 0 for none"))
+ block.append(("Force Edges import", tag1, "if no polygon found in the file"))
+ block.append(("Edges count: ", tag4, 0, 1000,"a progression indicator can be displayed, 0 for none"))
+ block.append(("Remove double ", tag2, " "))
+ block.append(("display time ", tag5, "see progression time in the dos consle "))
+
+ if POLYGON_NUMBER==0 :
+ retval = Blender.Draw.PupBlock("KML/KMZ import", block)
+ if tag1.val==0: tag4.val==0
+
+ if not tag1.val or EDGES_NUMBER==0 and PLACEMARK_NUMBER==0:
+ name = "WARNING %t| Sorry, the script can\'t find any geometry in this file ." # if no %xN int is set, indices start from 1
+ result = Blender.Draw.PupMenu(name)
+ print '#----------------------------------------------'
+ print '# Sorry the script can\'t find any geometry in this'
+ print '# file .'
+ print '#----------------------------------------------'
+ Blender.Window.RedrawAll()
+ return
+ elif not tag1.val or EDGES_NUMBER==0 and PLACEMARK_NUMBER==1:
+ WARNING_nodata()
+ elif EDGES_NUMBER:
+ SC = Blender.Scene.GetCurrent()
+ print 'Number of Placemark : ', PLACEMARK_NUMBER
+ if PLACEMARK_NUMBER!=POLYGON_NUMBER :
+ NUMBER=1
+ PLACEMARK=0
+ TAG3=tag3.val
+ TAG4=tag4.val
+ TAG5=tag5.val
+ if t!='false':
+ gt1=Blender.sys.time()
+ contruit_HIERARCHIE(t,tag1.val,tag2.val)
+ else:
+ retval = Blender.Draw.PupBlock("KML/KMZ import", block)
+ if retval :
+ SC = Blender.Scene.GetCurrent()
+ if PLACEMARK_NUMBER!=POLYGON_NUMBER :
+ NUMBER=1
+ PLACEMARK=0
+ if t!='false':
+ TAG3=tag3.val
+ TAG4=tag4.val
+ TAG5=tag5.val
+ gt1=Blender.sys.time()
+ contruit_HIERARCHIE(t,tag1.val,tag2.val)
+ active_FORME()
+ gt2=Blender.sys.time()-gt1
+ print "KML Imported, duration", int(gt2/60),':',int(gt2%60)
else:
- retval = Blender.Draw.PupBlock("KML/KMZ import", block)
- if retval :
- SC = Blender.Scene.GetCurrent()
- if PLACEMARK_NUMBER!=POLYGON_NUMBER :
- NUMBER=1
- PLACEMARK=0
- if t!='false':
- TAG3=tag3.val
- TAG4=tag4.val
- TAG5=tag5.val
- gt1=Blender.sys.time()
- contruit_HIERARCHIE(t,tag1.val,tag2.val)
- active_FORME()
- gt2=Blender.sys.time()-gt1
- print int(gt2/60),':',int(gt2%60)
-
-Blender.Window.FileSelector (fonctionSELECT, 'SELECT a .KMZ FILE') \ No newline at end of file
+ WARNING_nodata()
+
+Blender.Window.FileSelector (fonctionSELECT, 'SELECT a .KMZ FILE')