View Single Post
  #1  
Old 09-09-2009, 03:45 AM
krimble krimble is offline
Member
 
Join Date: Nov 2006
Location: Nijmegen
Posts: 63
screenshots using a loop

Hi all,

can somebody help me? I have troubles with my program.
I'm busy writing a small script which is basically a loop where an object rotates in after the rotation it has to make a screenshot of it and store it on the disk with the objects name and rotation degree.

The loop works perfectly it prints out what it has to save on the disk but it doesn't save (well it saves only the last screenshot).

Do I have to approach this differently?

Thanks for your help!

Code:
import viz

viz.go()

viz.clearcolor(.4,.4,.4)

view = viz.get(viz.MAIN_VIEWPOINT)
view.translate(12.416062355041504, 4.3263897895812988, 0)
view.rotate(-90,0,0)

s = viz.add(r"scissors.wrl")
co = viz.add(r"canopener.ive")
c1 = viz.add(r"cubes_01.wrl")
c2 = viz.add(r"cubes_02.wrl")
c3 = viz.add(r"cubes_03.wrl")

objects = [s,co,c1,c2,c3]
objectStrings = ["scissors","canOpener","cubes01","cubes02","cubes03"]

for i in objects :
	i.visible(0)

degreesY = [0,60,120,180,240,300]
degreesZ = [0,60,300]
degreesX = [0,180]


for obj in objects :
	if obj == s :
		object = objectStrings[0]
	elif obj == co :
		object = objectStrings[1]
	elif obj == c1 :
		object = objectStrings[2]
	elif obj == c2 :
		object = objectStrings[3]
	elif obj == c3 :
		object = objectStrings[4]
	obj.visible(1)
	for degree in range(0, len(degreesX)) :
		for i in range(0, len(degreesZ)) :
			for j in range(0, len(degreesY)) :
				obj.rotate(degreesX[degree], degreesY[j], degreesZ[i])
				viz.window.screenCapture('pictures\\' + object + '_' + str(degreesX[degree]) + '_' + str(degreesY[j]) + '_' + str(degreesZ[i]) + '.bmp')
				print "Created: " + object + "_" + str(degreesX[degree]) + "_" + str(degreesY[j]) + "_" + str(degreesZ[i]) + ".bmp"
Reply With Quote