Seite 1 von 1

Listenproblem...

Verfasst: Sonntag 23. September 2007, 15:06
von TS1234
Ich mache da was in Blender...

aktuelle Doku ist hier:
http://www.blender.org/documentation/24 ... tml#curves

genauer gesagt ich möchte aus einer curve-liste auf direkte Weise eine bestimmte curve holen... ich kriege das nicht hin, deswegen hab ich mir eine Hilfsfunktion gemacht...

Code: Alles auswählen

def getcurve(ipo, curvename):
	for curve in ipo.curves:
		if curve.name==curvename:
			return curve
curvename ist ein String - etwa "LocX"

wenn ich es so mache:

curve=ipo.curves["LocX"]

kommt dann

"Type error: list indices must be integer"

Verfasst: Sonntag 23. September 2007, 15:23
von Michael Schneider
Hi TS1234,

der Fehler tritt auf, weil Du ein Listenelement über dessen Index innerhalb der Liste slicen musst.

Code: Alles auswählen

liste[3]
... gibt Dir beispielsweise das 4. Element der Liste.

In Deinem Beispielcode hast Du über alle Elemente der Liste iteriert, da brauchst Du nichts slicen. Was passiert denn, wenn Du Deinen Code ausführst?

Michael

Verfasst: Sonntag 23. September 2007, 15:27
von TS1234
hm dann kommt list index out of range...

da die liste beliebig lang sein kann

ich glaube dann bleibt nix übrig als die hilfsfunktion zu nehmen?

Verfasst: Sonntag 23. September 2007, 15:32
von BlackJack
@TS1234: Die Doku ist für `Ipo`-Objekte und nicht für `Ipo.curves` also müsste es mit ``ipo['LocX']`` anstelle von ``ipo.curves['LocX']`` gehen.

Verfasst: Sonntag 23. September 2007, 15:39
von TS1234
nein dann steht:

type error: expected int or string key

Verfasst: Sonntag 23. September 2007, 17:25
von BlackJack
Glaube ich nicht. 'LocX' ist eine Zeichenkette.

Verfasst: Sonntag 23. September 2007, 18:36
von TS1234
tja das sehe ich
ich bin aber nicht schuld, wenn es da so steht... :)

Verfasst: Montag 24. September 2007, 07:12
von Michael Schneider
Hi TS1234,

was sind denn ipo und ipo.curves für Objekte?

Code: Alles auswählen

print type(ipo), type(ipo.curves)
Michael

Verfasst: Montag 24. September 2007, 08:33
von Rebecca
Wenn du nicht weiter kommst, stell mal die Blender-Datei online.