2015-05-04 55 views
2

我希望有人能幫助我。我想有一個攪拌機那裏IntProperty我只能設置偶數(0,2,4,6 ......)使用偶數設置IntProperty的代碼

我知道的語法float屬性如下:

bpy.types.Scene.MyFloat = FloatProperty(
     name='FLoat', 
     default=1, 
     min=0, 
     step=200, 
     ) 

但在GUI中的這段代碼中,我仍然可以選擇例如「4.2」作爲一個值,所以這不是我的問題的適當解決方案。

以這種方式的語法IntProperty會是這樣:

bpy.types.Scene.MyInt = IntProperty(
    name='Int', 
    default=1, 
    min=0, 
    step=2, 
    ) 

不起作用。

有誰知道是否有代碼只選擇偶數,它是如何?

回答

1

在此期間,我找到了解決方案,我的問題。

只需使用Floatproperty的步長爲200並定義一個更新函數,然後檢查調整值是否均勻 - 如果不是,則強制轉換爲下一個接近偶數。然後,代碼看起來像這樣:

bpy.types.Scene.even_number= FloatProperty(
    name='Even Numbers', 
    description='Just even numbers are possible', 
    default = 10, 
    min = 0, 
    max = 90, 
    step = 200, 
    update = update_even_numbers 
    ) 

def update_even_numbers(scene, context): 
    if bpy.context.scene.framestep % 2 == 0: 
      print('Even number') 
    else: 
      x = bpy.context.scene.even_number 
      bpy.context.scene.even_number= round(x/2)*2 

也許,如果別人在想辦法解決這個人會幫他