Хакатон по 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 ниже устанавливает свойство для создания проекта прямого моделирования, создает новый проект, а затем устанавливает его в исходное значение.
- def createDirectModelDocument():
- ui = None
- try:
- app = adsk.core.Application.get()
- ui = app.userInterface
- # Получить свойства проекта специфичные для Fusion.
- desPrefs = app.preferences.productPreferences.itemByName('Design')
- # Сохранить текущее значение параметра.
- initialValue = desPrefs.defaultDesignType
- # Установить значение для создания проекта прямого редактирования.
- desPrefs.defaultDesignType = \
- adsk.fusion.DefaultDesignTypeOptions.DirectDesignTypeOption
- # Создать новый документ
- app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
- # Установить свойство обратно в исходное значение.
- desPrefs.defaultDesignType = initialValue
- ui.messageBox('Success')
- except:
- if ui:
- 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