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

06/01/2016

Хакатон по Fusion 360 - Вопросы и ответы №№1 и 2

На данный момент у нас было две онлайн-презентации и две сессии вопросов и ответов по одному часу, где разработчики могли задать любые вопросы, связанные с Fusion 360 API.

Ниже приведена краткая версия первых двух сессий вопросов и ответов. 

Имейте в виду, что каждый месяц (или около того) выпускается новая версия Fusion, и поэтому, если вы читаете эту статью намного позже её написания, некоторые из недоступных функций уже могут быть доступны. 

Вопрос: Если я разработал приложение на C++ под Windows, можете ли вы опубликовать приложение под Mac?

ОТВЕТ: Мы не можем это сделать по двум причинам:
1) мы должны были бы скомпиллировать исходный код на нашей стороне, а это может вызвать правовые вопросы
2) мы, вероятно, можем нарушить лицензионнное соглашение конечного пользователя Apple/Xcode EULA при компилляции проектов для кого-либо еще, из-под нашей учетной записи разработчика

Вопрос: Могу ли я производить запросы геометрии к эскизам, равно как к элементам BREP. Например, запрашивая значение площади и внутренние точки? 

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

Вопрос: Могу ли я проверить, является ли точка внутренней точкой геометрии (что является обратным к получению внутренней точки)? 

ОТВЕТ: Для BRepFace можно узнать, лежит ли точка на грани.  Это осуществляется при помощи метода isParameterOnFace в SurfaceEvalutator, обратиться к которому вы можете от грани.   

Вопрос: Есть ли какой-либо объект, эквивалентный объекту RegionProperties в Inventor API? 

ОТВЕТ: Нет.  

Вопрос: Есть ли какой-либо руководящий интерфейс пользователя для создания приложений? 

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

Вопрос: Есть ли простой способ сортировки дерева обозревателя? 

ОТВЕТ: Нет. К дереву обозревателя вообще нет прямого доступа.

Вопрос: Какой инструмент может быть рекомендован для отображения вычисленных скалярных и векторных полей в Fusion 360 API (подобный клиентской графике в Inventor API)? 

ОТВЕТ: В настоящее время для этого ничего нет, как ещё нет и API клиентской графики в Fusion.   

Вопрос: Могу ли я добавить кнопки в другие места, кроме панели инструментов - например, в обозреватель?  

ОТВЕТ: Нет. 

Вопрос: Привязывается ли пользовательская команда к функции "редактировать элемент" в панели истории (Timeline) автоматически, так чтобы онавозобновлялась с последними настройками, когда пользователь хочет сделать изменения (как, например, с командой вытягивания).

ОТВЕТ: Панель истории показывает только элементы. То есть, вам потребуется пользовательская функция, но на данный момент это не доступно.  

Вопрос: Есть ли способ отобразить набор треугольников, например, для сетки? 

ОТВЕТ: Единственный путь на данный момент - это использование линий эскиза, но в зависимости от их количества, это может оказаться ресурсоёмким. 

Вопрос: Могу ли я осуществлять логические операции над твердыми телами? 

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

Вопрос: Можно ли получить доступ к файлам формата, отличного от Fusion 360 (например, XML или JSON) из панели данных проекта. Или они должны быть сохранены локально (например, при установке).

ОТВЕТ: Вы можете открывать только файлы проекта и только в пользовательском интерфейсе - то есть вы не можете открыть их в фоновом режиме только для чтения информацию из них. Локально хранящиеся файлы могут быть прочитаны в фоновом режиме, смотрите "Parameter I/O" из https://apps.autodesk.com/FUSION/en/Detail/Index?id=appstore.exchange.autodesk.com%3aparameterio_macos%3aen   

Вопрос: Могу ли я включить дополнительные файлы в установочный пакет приложения? 

ОТВЕТ: Да, вы можете. У нас есть примеры приложений в магазине Autodesk Exchange, которые так делают, например, "Parameter I/O".  

Вопрос: Можно ли получить данные из проекта, отличного от того, который пользователь в настоящее время использует. (Что-то вроде создания библиотеки с компонентами и метаданных, которыми я хочу поделиться с другими). 

ОТВЕТ: В настоящее время API обеспечивает доступ только к своим собственным проектам, но это должно быть доступно в будущем. Сейчас вы имеете доступ ко всем данным, которые вы видите в панели данных.

Вопрос: Не могли бы вы объяснить цель панели текстовых команд команды в рабочей области? Можем ли мы использовать их для добавления точек, эскизов?  

ОТВЕТ: Они предназначены для внутреннего тестирования.  В настоящее время нет возможности получения доступа к созданным API командам, посредством текстовых команд. 

Вопрос: Есть ли какие-либо планы более расширенной поддержки внешних рендеров? То есть, система событий, возможность рисовать чертежи в рабочем пространстве визуализации, более организованный API материалов, и т.д. 

ОТВЕТ: Мы хотим, продолжить реализовывать посредством функционала API функции, которые вы видите в пользовательском интерфейсе.  Есть некоторые области, связанные с визуализацией, где API является неполным.  Кроме того, на данный момент раскрытие дополнительного функционала, основанного только на API, не обсуждалось.

Вопрос: Как включить свойство "не захватить историю проекта"? 

ОТВЕТ: Код на Python ниже устанавливает свойство для создания проекта прямого моделирования, создает новый проект, а затем устанавливает его в исходное значение. 

Код - Python: [Выделить]
  1. def createDirectModelDocument():
  2.  ui = None
  3.  try:
  4.  app = adsk.core.Application.get()
  5.  ui = app.userInterface
  6.  
  7.  # Получить свойства проекта специфичные для Fusion.
  8.  desPrefs = app.preferences.productPreferences.itemByName('Design')
  9.  
  10.  # Сохранить текущее значение параметра.
  11.  initialValue = desPrefs.defaultDesignType
  12.  
  13.  # Установить значение для создания проекта прямого редактирования.
  14.  desPrefs.defaultDesignType = \
  15.  adsk.fusion.DefaultDesignTypeOptions.DirectDesignTypeOption
  16.  
  17.  # Создать новый документ
  18.  app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
  19.  
  20.  # Установить свойство обратно в исходное значение.
  21.  desPrefs.defaultDesignType = initialValue
  22.  
  23.  ui.messageBox('Success')
  24.  except:
  25.  if ui:
  26.  ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

Вопрос: Что произойдет, если включить 3D эскизы (FusionProductPreferences is3DSketchingAllowed)? 

ОТВЕТ: Свойство, которое разрешает 3D эскизы, управляется пользовательским интерфейсом и не имеет никакого взаимодействия с API.  Эскизы в Fusion всегда трехмерные, и эти настройки задают запрет на 3D, что обеспечивает пользователю работу исключительно в XY-плоскости активного эскиза. 

Источник: http://modthemachine.typepad.com/my_weblog/2015/09/fusion-360-hackathon-qa-1-2.html

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=3321

Опубликовано 06.01.2016