Скачать презентацию Fusion 360 API Первое прикосновение Владимир Ананьев Скачать презентацию Fusion 360 API Первое прикосновение Владимир Ананьев

Fusion 360 API - Первое прикосновение.pptx

  • Количество слайдов: 32

Fusion 360 API Первое прикосновение Владимир Ананьев Fusion 360 API Первое прикосновение Владимир Ананьев

Интерфейс пользователя Программный интерфейс Запрос на Extrude Как работает Fusion Данные Fusion (. f Интерфейс пользователя Программный интерфейс Запрос на Extrude Как работает Fusion Данные Fusion (. f 3 d) Fusion Engine

Fusion 360 API: Динамика развития Проект нового API стартовал более года назад Единый API, Fusion 360 API: Динамика развития Проект нового API стартовал более года назад Единый API, разработка на различных языках § Сентябрь 2014: первый релиз, поддержка Java. Script § Ноябрь 2014: введена поддержка Python § Июль 2015: добавлена поддержка C++ § Ноябрь 2015: Add-Ins

Объектная модель API § Классы API представляют объекты Fusion § Иерархия отражает подчиненность объектов Объектная модель API § Классы API представляют объекты Fusion § Иерархия отражает подчиненность объектов § Обход дерева иерархии для доступа к объектам

Первоначальная целевая аудитория § Пользователи – разработчики скриптов § Автоматизация рутинных операций § Импорт Первоначальная целевая аудитория § Пользователи – разработчики скриптов § Автоматизация рутинных операций § Импорт и экспорт данных § Фокус на соответствие функционалу UI

Текущее состояние API: MODEL Полное соответствие Ограниченное Отсутствует Текущее состояние API: MODEL Полное соответствие Ограниченное Отсутствует

Текущее состояние API: PATCH Полное соответствие Ограниченное Текущее состояние API: PATCH Полное соответствие Ограниченное

Прочий функционал Поддерживаются: § § § Настройки (Preferences) Data Panel – основные операции Локальные Прочий функционал Поддерживаются: § § § Настройки (Preferences) Data Panel – основные операции Локальные трансляторы Timeline CAM – еще частично Пока не поддерживаются: § Другие рабочие пространства RENDER, ANIMATION, SIM, DRAWING

Функционал “API Only” § B-Rep и доступ к геометрии (включая mesh) § Структура сборки Функционал “API Only” § B-Rep и доступ к геометрии (включая mesh) § Структура сборки § Пользовательские команды § Кастомизация интерфейса § Управление камерой § Add-Ins

Целевая аудитория сегодня § Профессиональные разработчики § Продвинутые пользователи § Всякий, кто разрабатывает программы Целевая аудитория сегодня § Профессиональные разработчики § Продвинутые пользователи § Всякий, кто разрабатывает программы для распространения § Autodesk App Store § Direct Sales § Your website § Add-Ins § C++

Future Functionality § Пользовательская графика § T-сплайны § События моделирования и ассоциативность § Создание Future Functionality § Пользовательская графика § T-сплайны § События моделирования и ассоциативность § Создание BRep и временных (transient ) моделей § Пользовательский UI § Много чего ещё … А что нужно вам? Публикуйте на Idea. Station

Выбираем язык разработки Java. Script § Используется как язык общего назначения § Работает out-of-process Выбираем язык разработки Java. Script § Используется как язык общего назначения § Работает out-of-process в невидимом экземпляре браузера § Не может использовать HTML для создания GUI § Нет доступа к файловой системе (решается через Fusion API) § Применим любой редактор кода (Fusion идет с Brackets) § Можно использовать библиотеки Java. Script § Отладка в Chrome § Контроль ошибок: try-catch / throw / asserts § Проблема с событиями – не все поддерживаются

Выбираем язык разработки Python § Исполняется in-process с Fusion, свой интерпретатор § Быстрее, чем Выбираем язык разработки Python § Исполняется in-process с Fusion, свой интерпретатор § Быстрее, чем Java. Script (275 x, 23 x) § Полноценный доступ к файловой системе § Любой редактор кода (Fusion идет со Spyder) § Отладка в Spyder § Можно использовать библиотеки Python § Обработка ошибок: try / except / raise

Выбираем язык разработки C++ § dll (Windows) или dylib (Mac) загружаются и исполняются in Выбираем язык разработки C++ § dll (Windows) или dylib (Mac) загружаются и исполняются in -process c Fusion § Требуется компиляция для каждой из платформ § По умолчанию: Visual Studio на Windows и XCode на Mac § Наиболее быстрый код § Полноценный доступ к файловой системе § Все плюсы строгой типизации

Основные концепции API § Objects – объекты § Поддерживаются методы, свойства и события § Основные концепции API § Objects – объекты § Поддерживаются методы, свойства и события § Collections – коллекции объектов § Доступ к существующим объектам § Создание новых объектов § Input objects § Входные аргументы для создания сложных объектов § Эквивалентны диалогам команд Fusion

Пример скрипта на Python app = adsk. core. Application. get() design = app. active. Пример скрипта на Python app = adsk. core. Application. get() design = app. active. Product # Корневой компонент в активном дизайне root. Comp = design. root. Component; # Новый эскиз на плоскости XY sketches = root. Comp. sketches xy. Plane = root. Comp. x. YConstruction. Plane sketch = sketches. add(xy. Plane) # Создаем окружность circles = sketch. Curves. sketch. Circles circle 1 = circles. add. By. Center. Radius(adsk. core. Point 3 D. create(0, 0, 0), 2) # Фиксируем размером диаметр окружности sketch. Dimensions. add. Diameter. Dimension(circle 1, adsk. core. Point 3 D. create(3, 3, 0))

Пример скрипта на Javascript var app = adsk. core. Application. get(); var design = Пример скрипта на Javascript var app = adsk. core. Application. get(); var design = app. active. Product; // Корневой компонент в активном дизайне var root. Comp = design. root. Component; // Новый эскиз var sketches = var xy. Plane = var sketch = на плоскости XY root. Comp. sketches; root. Comp. x. YConstruction. Plane; sketches. add(xy. Plane); // Draw a circle - Создаем окружность var circles = sketch. Curves. sketch. Circles; var circle 1 = circles. add. By. Center. Radius(adsk. core. Point 3 D. create(0, 0, 0), 2); // Фиксируем размером диаметр окружности sketch. Dimensions. add. Diameter. Dimension(circle 1, adsk. core. Point 3 D. create(3, 3, 0));

Пример скрипта на C++ app = Application: : get(); Ptr<Design> design = app->active. Product(); Пример скрипта на C++ app = Application: : get(); Ptr design = app->active. Product(); // Корневой компонент в активном дизайне Ptr root. Comp = design->root. Component(); // Новый эскиз на плоскости XY Ptr sketches = root. Comp->sketches(); Ptr xy. Plane = root. Comp->x. YConstruction. Plane(); Ptr sketch = sketches->add(xy. Plane); // Создаем окружность Ptr circles = sketch->sketch. Curves()->sketch. Circles(); Ptr circle 1 = circles->add. By. Center. Radius(adsk: : core: : Point 3 D: : create(0, 0, 0), 2); // Фиксируем размером диаметр окружности sketch->sketch. Dimensions()->add. Diameter. Dimension(circle 1, adsk: : core: : Point 3 D: : create(3, 3, 0));

Пример создания тела # Корневой компонент root. Comp = design. root. Component # новый Пример создания тела # Корневой компонент root. Comp = design. root. Component # новый эскиз на плоскости xy sketch = root. Comp. sketches. add(root. Comp. x. YConstruction. Plane) # Строим окружность circles = sketch. Curves. sketch. Circles circle 1 = circles. add. By. Center. Radius(adsk. core. Point 3 D. create(0, 0, 0), 2) # Создаем профиль, состоящий из одной окружности prof = sketch. profiles. item(0) # Новый Input, чтобы задать операцию выдавливания # Используется профиль и тип операции (хотим новый компонент) extrudes = root. Comp. features. extrude. Features ext. Input = extrudes. create. Input(prof, adsk. fusion. Feature. Operations. New. Component. Feature. Operation) # в задание добавляем длину выдавливания 5 см (в базовых единицах длины Fusion) ext. Input. set. Distance. Extent(False, adsk. core. Value. Input. create. By. Real(5)) # создание нового конструктивного элемента - выдавливание ext = extrudes. add(ext. Input)

UI vs. API Работа в UI Работа через API UI vs. API Работа в UI Работа через API

Примеры программ в поставке Fusion 360 Примеры программ в поставке Fusion 360

Документация по API Текущий формат Документация по API Текущий формат

Документация по API: Старый формат Документация по API: Старый формат

Документация по API: Офлайн формат (CHM) Fusion. API. chm Документация по API: Офлайн формат (CHM) Fusion. API. chm

Форум по Fusion 360 API и скриптам Форум Форум по Fusion 360 API и скриптам Форум

Блог Mod the Machine – Brian Ekins Mod the Machine Блог Mod the Machine – Brian Ekins Mod the Machine

Fusion 360 API на русскоязычном сайте Сообщества разработчиков ADN Open CIS § Переводы обзорных Fusion 360 API на русскоязычном сайте Сообщества разработчиков ADN Open CIS § Переводы обзорных статей по Fusion API § Форумы технической поддержки разработчиков на русском языке http: //adn-cis. org/fusion-360 -api/

Раздел Fusion 360 в Autodesk App Store Fusion App Store Раздел Fusion 360 в Autodesk App Store Fusion App Store

Fusion API на Git. Hub https: //autodeskfusion 360. github. io/ • Тьюториалы • Примеры Fusion API на Git. Hub https: //autodeskfusion 360. github. io/ • Тьюториалы • Примеры программ • Ссылки на форум и хелп

По мотивам диаграмм Вороного По мотивам диаграмм Вороного

Autodesk is a registered trademark of Autodesk, Inc. , and/or its subsidiaries and/or affiliates Autodesk is a registered trademark of Autodesk, Inc. , and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2015 Autodesk, Inc. All rights reserved.