Hi @ebunn3 .
I tried it too.
It changed the properties but did not change the behavior.
# Fusion360API Python script
import traceback
import adsk.fusion
import adsk.core
_app: adsk.core.Application = None
_ui: adsk.core.UserInterface = None
_handlers = []
_sliderIpt: adsk.core.FloatSliderCommandInput = None
_dropDownIpt: adsk.core.DropDownCommandInput = None
class MyCommandCreatedHandler(adsk.core.CommandCreatedEventHandler):
def __init__(self):
super().__init__()
def notify(self, args: adsk.core.CommandCreatedEventArgs):
# adsk.core.Application.get().log(args.firingEvent.name)
try:
global _handlers
cmd: adsk.core.Command = adsk.core.Command.cast(args.command)
# inputs
inputs: adsk.core.CommandInputs = cmd.commandInputs
global _sliderIpt
_sliderIpt = inputs.addFloatSliderCommandInput(
'sliderIptId',
'Slider',
'mm',
0.0,
100.0,
False
)
unitMgr: adsk.core.UnitsManager = _app.activeProduct.unitsManager
_sliderIpt.spinStep = unitMgr.convert(1, unitMgr.defaultLengthUnits, unitMgr.internalUnits)
global _dropDownIpt
_dropDownIpt = inputs.addDropDownCommandInput(
'dropDownIptId',
'Slider Step',
adsk.core.DropDownStyles.TextListDropDownStyle
)
ddItems = _dropDownIpt.listItems
ddItems.add('1', True, '')
ddItems.add('5', False, '')
ddItems.add('10', False, '')
ddItems.add('20', False, '')
# event
onDestroy = MyCommandDestroyHandler()
cmd.destroy.add(onDestroy)
_handlers.append(onDestroy)
onStepChanged = StepChangedHandler(_dropDownIpt)
cmd.inputChanged.add(onStepChanged)
_handlers.append(onStepChanged)
except:
_ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
class StepChangedHandler(adsk.core.InputChangedEventHandler):
def __init__(self, ddIpt: adsk.core.DropDownCommandInput):
super().__init__()
self.input = ddIpt
def notify(self, args: adsk.core.InputChangedEventArgs):
# adsk.core.Application.get().log(args.firingEvent.name)
if self.input != args.input:
return
global _dropDownIpt, _sliderIpt
step = float(_dropDownIpt.selectedItem.name)
_sliderIpt.spinStep = step
global _app
_app.log(f'Slider SpinStep:{_sliderIpt.spinStep}')
class MyCommandDestroyHandler(adsk.core.CommandEventHandler):
def __init__(self):
super().__init__()
def notify(self, args: adsk.core.CommandEventArgs):
# adsk.core.Application.get().log(args.firingEvent.name)
adsk.terminate()
def run(context):
try:
global _app, _ui
_app = adsk.core.Application.get()
_ui = _app.userInterface
cmdDef: adsk.core.CommandDefinition = _ui.commandDefinitions.itemById(
'test_cmd'
)
if not cmdDef:
cmdDef = _ui.commandDefinitions.addButtonDefinition(
'test_cmd',
'Test',
'Test'
)
global _handlers
onCommandCreated = MyCommandCreatedHandler()
cmdDef.commandCreated.add(onCommandCreated)
_handlers.append(onCommandCreated)
cmdDef.execute()
adsk.autoTerminate(False)
except:
if _ui:
_ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))