0
スライダ機能で倍率を制御するには、チェックボックスを使用します。pymelのチェックボックスを使用してコマンド機能を変更するには
まず変数を直接変更しようとしましたが、失敗しました。
次に、私はdragCommandを変更しようとしましたが、失敗しました。
どうすれば制御できますか?
import pymel.core as pm
import math
myRatio = math.sqrt(2) * 0.5
def myPolyBevel(*args):
# called by convert
def convertOn(*args):
#myRatio = math.sqrt(2) * 0.5
myOffsetSlider.dragCommand = myOffsetOn
def convertOff(*args):
#myRatio = 1.0
myOffsetSlider.dragCommand = myOffsetOff
# called by offset
def myOffsetOn(*args):
temp = pm.floatSliderGrp(myOffsetSlider, query = True, value = True) * myRatio
pm.setAttr(myBevel.name()+".offset", temp)
def myOffsetOff(*args):
temp = pm.floatSliderGrp(myOffsetSlider, query = True, value = True)
pm.setAttr(myBevel.name()+".offset", temp)
# main
if pm.selected():
# add Bevel
newBevel = pm.polyBevel3(pm.selected(), offset = 0.1 * myRatio, segments = 2, smoothingAngle = 30, chamfer = 1)
myBevel = newBevel[0]
# UI
bevelWindow = pm.window(title = 'Bevel')
bevelLayout = pm.columnLayout()
myConvert = pm.checkBoxGrp(numberOfCheckBoxes = 1, label = '', label1 = 'Convert', value1 = 1, onCommand = convertOn, offCommand = convertOff)
myOffsetSlider = pm.floatSliderGrp(label='Offset', field = True,
minValue = 0.0, maxValue = 5.0,
fieldMinValue = 0.0, fieldMaxValue = 100.0,
value = 0.1, step = 0.001,
dragCommand = myOffsetOn, changeCommand = myOffsetOn)
pm.showWindow()
# Main
mainWindow = pm.window(title = 'Star')
mainLayout = pm.gridLayout(cellWidthHeight = (40,40), numberOfColumns = 5)
bevelButton = pm.button(label = 'Bevel', command = myPolyBevel)
pm.showWindow()
ありがとう!私はそれをクラスとして作り、この問題を解決しました。 –