Запуск команд Fusion
В онлайн справке уже есть пример, который перечисляет все элементы управления в пользовательского интерфейса. Также он предоставляет CommandDefinition id, на который ссылаются различные элементы управления. Вы можете найти этот пример из многих разделов справки, в том числе "UserInterface.toolbars".
Этот пример очень удобен при позиционировании элементов управления в рамках существующих панелей и панелей инструментов Fusion, а также расположении вашей команды, прилегающей к существующей команде.
Тем не менее, если вы заинтересованы только в именах и id команд, то вы можете получить их намного проще.
Когда вы создаете свою команду, то вы создаете объект CommandDefinition и добавляете его к коллекции UserInterface.commandDefinitions.
Эта коллекция содержит также внутренние определения команд. Таким образом, чтобы получить необходимую вам информацию, вы можете осуществить над ним перебор. В Python это будет выглядеть следующим образом:
- app = adsk.core.Application.get()
- ui = app.userInterface
- fileDialog = ui.createFileDialog()
- fileDialog.isMultiSelectEnabled = False
- fileDialog.title = "Specify result filename"
- fileDialog.filter = 'Text files (*.txt)'
- fileDialog.filterIndex = 0
- dialogResult = fileDialog.showSave()
- if dialogResult == adsk.core.DialogResults.DialogOK:
- filename = fileDialog.filename
- else:
- return
- commandDefinitions = ui.commandDefinitions
- result = ""
- for commandDefinition in commandDefinitions:
- result += "id = " + commandDefinition.id + "; name = " + commandDefinition.name + "\n"
- output = open(filename, 'w')
- output.writelines(result)
- output.close()
Вы можете произвести поиск по содержимому созданного файла, чтобы найти CommandDefinition id, который вам нужен. Если у вас есть возможность, вы можете Выполнять это, например, на Python, запустив команду Export:
- cmdDef = ui.commandDefinitions.itemById("ExportCommand")
- cmdDef.execute()
Источник: http://modthemachine.typepad.com/my_weblog/2016/01/run-fusion-commands.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=3344
Опубликовано 19.01.2016