Fusion 360 API - Первое прикосновение.pptx
- Количество слайдов: 32
Fusion 360 API Первое прикосновение Владимир Ананьев
Интерфейс пользователя Программный интерфейс Запрос на Extrude Как работает Fusion Данные Fusion (. f 3 d) Fusion Engine
Fusion 360 API: Динамика развития Проект нового API стартовал более года назад Единый API, разработка на различных языках § Сентябрь 2014: первый релиз, поддержка Java. Script § Ноябрь 2014: введена поддержка Python § Июль 2015: добавлена поддержка C++ § Ноябрь 2015: Add-Ins
Объектная модель API § Классы API представляют объекты Fusion § Иерархия отражает подчиненность объектов § Обход дерева иерархии для доступа к объектам
Первоначальная целевая аудитория § Пользователи – разработчики скриптов § Автоматизация рутинных операций § Импорт и экспорт данных § Фокус на соответствие функционалу UI
Текущее состояние API: MODEL Полное соответствие Ограниченное Отсутствует
Текущее состояние API: PATCH Полное соответствие Ограниченное
Прочий функционал Поддерживаются: § § § Настройки (Preferences) Data Panel – основные операции Локальные трансляторы Timeline CAM – еще частично Пока не поддерживаются: § Другие рабочие пространства RENDER, ANIMATION, SIM, DRAWING
Функционал “API Only” § B-Rep и доступ к геометрии (включая mesh) § Структура сборки § Пользовательские команды § Кастомизация интерфейса § Управление камерой § Add-Ins
Целевая аудитория сегодня § Профессиональные разработчики § Продвинутые пользователи § Всякий, кто разрабатывает программы для распространения § Autodesk App Store § Direct Sales § Your website § Add-Ins § C++
Future Functionality § Пользовательская графика § T-сплайны § События моделирования и ассоциативность § Создание BRep и временных (transient ) моделей § Пользовательский UI § Много чего ещё … А что нужно вам? Публикуйте на Idea. Station
Выбираем язык разработки Java. Script § Используется как язык общего назначения § Работает out-of-process в невидимом экземпляре браузера § Не может использовать HTML для создания GUI § Нет доступа к файловой системе (решается через Fusion API) § Применим любой редактор кода (Fusion идет с Brackets) § Можно использовать библиотеки Java. Script § Отладка в Chrome § Контроль ошибок: try-catch / throw / asserts § Проблема с событиями – не все поддерживаются
Выбираем язык разработки Python § Исполняется in-process с Fusion, свой интерпретатор § Быстрее, чем Java. Script (275 x, 23 x) § Полноценный доступ к файловой системе § Любой редактор кода (Fusion идет со Spyder) § Отладка в Spyder § Можно использовать библиотеки Python § Обработка ошибок: try / except / raise
Выбираем язык разработки C++ § dll (Windows) или dylib (Mac) загружаются и исполняются in -process c Fusion § Требуется компиляция для каждой из платформ § По умолчанию: Visual Studio на Windows и XCode на Mac § Наиболее быстрый код § Полноценный доступ к файловой системе § Все плюсы строгой типизации
Основные концепции API § Objects – объекты § Поддерживаются методы, свойства и события § Collections – коллекции объектов § Доступ к существующим объектам § Создание новых объектов § Input objects § Входные аргументы для создания сложных объектов § Эквивалентны диалогам команд Fusion
Пример скрипта на 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 = 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
Пример создания тела # Корневой компонент 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
Примеры программ в поставке Fusion 360
Документация по API Текущий формат
Документация по API: Старый формат
Документация по API: Офлайн формат (CHM) Fusion. API. chm
Форум по Fusion 360 API и скриптам Форум
Блог Mod the Machine – Brian Ekins Mod the Machine
Fusion 360 API на русскоязычном сайте Сообщества разработчиков ADN Open CIS § Переводы обзорных статей по Fusion API § Форумы технической поддержки разработчиков на русском языке http: //adn-cis. org/fusion-360 -api/
Раздел Fusion 360 в Autodesk App Store Fusion App Store
Fusion API на Git. Hub https: //autodeskfusion 360. github. io/ • Тьюториалы • Примеры программ • Ссылки на форум и хелп
По мотивам диаграмм Вороного
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.


