2016-04-03 5 views
-2

Я дважды проверил это. Кажется, что каждая строка имеет смысл. Я почесываю голову, я все время был на этом. Можете ли вы помочь выяснить, что происходит?Non Keyword Arg After Keyword Arg Python

Заранее спасибо :)

# Program to create 64 cubes for an animation suite, named blender. 

import bpy 
#make 64 of the following thing. 

for i in range (0,64): 

    # Step 1 - make a plane, move along a bit ready for the next one. 

    # Make a plane. 
    bpy.ops.mesh.primitive_plane_add(location = (i+(i*0.5)),(0,0)) 
    # Move the cursor to the active object. 
    bpy.context.scene.cursor_location = bpy.context.active_object.location 
    # Move the cursor along y, minus 1 space. 
    bpy.context.scene.cursor_location.y -= 1 
    # Set the object origin to the cursor. (What?) 
    bpy.ops.object.origin_set(type='ORIGIN_CURSOR') 

    # Step 2 - Size the plane how you want. 

    # Scale the new plane you made. 
    bpy.context.active_object.scale.x = 0.5 
    bpy.context.active_object.scale.y = 20 
    # Do a transformation, only use scale. 
    bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) 

    # Step 3 - Add 2 keyframes for an F curve. (Function Curve) 

    # 
    bpy.ops.anim.keyframe_insert_menu(type='Scaling') 
    #initialise 2 types of scaling. 0 is x, 2 is z(?) 1 is y. y is used at the end. 
    bpy.context.active_object.animation_data.action.fcurves[0].lock = True 
    bpy.context.active_object.animation_data.action.fcurves[2].lock = True 

    #Opens Graph Editor 
    bpy.context.area.type = 'GRAPH_EDITOR' 



    #sets how the block reacts by giving numbers to those keyframes. 

    #l or LOW is the highest frequency the block reacts to. 
    l = i**2 + 20 

    #h or HIGH is the highest frequency a block reacts to. 
    #add one to 1, incrementing it 
    h = (i+1)**2 + 20 

    #puts strings into the console. 
    print (str(i) + str(l) + str(h)) 

    #Render. or "Bake" as we are calling it here. Feed the song into the oven, too! nom. 
    #Also, set the low and high settings of the sound bake program to l and h. 

    bpy.ops.graph.sound_bake(filepath=r'~/PlayMax/Blender/sawwipe.mp3', low = (l), high = (h)) 

    # Initialise the y axis [1] 
    bpy.context.active_object.animation_data.action.fcurves[1].lock = True 

    # That's it! All ready to repeat 63 more times. 
+1

Было бы полезно знать, что линия ошибка происходит на –

ответ

1

замазывания кода это выглядит как ошибочная строка выглядит следующим образом:

bpy.ops.mesh.primitive_plane_add(location = (i+(i*0.5)),(0,0)) 

При передаче аргументов ключевого слова аргумента, как ожидается, прийти после аргументов которые не указаны ключевым словом. Итак, вы установили location=... после (0,0).

Кроме того, глядя на *args and **kwargs? может быть полезным:

+0

Спасибо! Я не знаю, сможешь ли ты снова помочь? :) Я попробовал что-то еще, и он все равно не сработает. (location = (0, 0, (i + (i * 0,5)))) - Я больше не получаю ключевое слово non после arg, но он все равно не будет работать. На этот раз не указаны какие-либо конкретные ошибки. – aerotortoise

+0

Вы пытались копировать вставку строки в ответ? Похоже, вы объединили 'location = (i + (i * 0,5))' с '(0,0)', который, вероятно, выдает ошибку, потому что теперь вы сделали этот параметр кортежем значений, которые он, вероятно, не ожидает – Pythonista

+0

Исправлено линия! Огромное спасибо! : D – aerotortoise

Смежные вопросы