ADN Open CIS
Сообщество программистов Autodesk в СНГ

19/01/2016

Запуск команд Fusion

В онлайн справке уже есть пример, который перечисляет все элементы управления в пользовательского интерфейса. Также он предоставляет CommandDefinition id, на который ссылаются различные элементы управления. Вы можете найти этот пример из многих разделов справки, в том числе "UserInterface.toolbars".

Этот пример очень удобен при позиционировании элементов управления в рамках существующих панелей и панелей инструментов Fusion, а также расположении вашей команды, прилегающей к существующей команде.

Тем не менее, если вы заинтересованы только в именах и id команд, то вы можете получить их намного проще.

Когда вы создаете свою команду, то вы создаете объект CommandDefinition и добавляете его к коллекции UserInterface.commandDefinitions.

Эта коллекция содержит также внутренние определения команд. Таким образом, чтобы получить необходимую вам информацию, вы можете осуществить над ним перебор. В Python это будет выглядеть следующим образом:

Код - Python: [Выделить]
  1. app = adsk.core.Application.get()
  2. ui = app.userInterface
  3.  
  4. fileDialog = ui.createFileDialog()
  5. fileDialog.isMultiSelectEnabled = False
  6. fileDialog.title = "Specify result filename"
  7. fileDialog.filter = 'Text files (*.txt)'
  8. fileDialog.filterIndex = 0
  9. dialogResult = fileDialog.showSave()
  10. if dialogResult == adsk.core.DialogResults.DialogOK:
  11.     filename = fileDialog.filename
  12. else:
  13.     return
  14.    
  15. commandDefinitions = ui.commandDefinitions
  16. result = ""
  17.  
  18. for commandDefinition in commandDefinitions:
  19.     result += "id = " + commandDefinition.id + "; name = " + commandDefinition.name + "\n"
  20.    
  21. output = open(filename, 'w')
  22. output.writelines(result)
  23. output.close()

Вы можете произвести поиск по содержимому созданного файла, чтобы найти CommandDefinition id, который вам нужен. Если у вас есть возможность, вы можете Выполнять это, например, на Python, запустив команду Export:

Код - Python: [Выделить]
  1. cmdDef = ui.commandDefinitions.itemById("ExportCommand")
  2. 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