ADN Club > Inventor API

Создание горячих клавиш для команд отсутствующих в Адаптации

<< < (2/2)

Sektor:
Здравствуйте, вынужден просить помощи снова. У меня не получается перевести код из консольного приложения в форму Адд-ин. Установил SDK от Inventor 2021 и использую готовый шаблон VB Addin. Еще доустановил .Net Framework 4.8.
Как я понял функция Function getInventorApplication в Аддине не требуется, так как надстройка уже имеет доступ к объекту Application. Поэтому эту функцию я из кода убрал. Упаковка в модуль тоже не требуется, как и упаковка в процедуру Sub Main(). Эту часть кода я добавить в процедуру Public Sub Activate:

Извините, вам запрещён просмотр содержимого спойлеров.
Поместил подпроцедуру Sub MyCommand_OnExecute в модуль Module Globals:

Извините, вам запрещён просмотр содержимого спойлеров.
В итоге приложение компилируется, и запускается на отладку, но результата в самом Инвенторе никакого нет, даже дополнительные команды в Адаптации не создаются. Аддин автоматически определяется Инвентором, но если при первом запуске снять галочку Блокировать и поставить остальные две, то при следующем запуске Инвентора галочка Загрузка будет отжата. Сориентируйте, пожалуйста, какие правки по коду надо сделать или может настройки по  проекту VB. Прочитал ваше руководство по созданию Аддина, но в силу своей компетенции решения там не нашел. Галочка Сделать видимой сборку по COM стоит.

mikazakov:
Надо посмотреть какой фреймворк поддерживает 2021 инвентор, это прописано в фале
C:\Program Files\Autodesk\Inventor 2023\Bin\Inventor.exe.config
Откройте этот файл блокнотом, там есть строчка ближе к концу, у меня на Инвенторе 2023 такая:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
Я думаю Инвентор 2021 не поддержививает фреймворк 4.8, нужно переопределить фреймворк в Вижуал Студио.
Это конечно одна из проблем, которая может не давать запускаться.
Так же нужно убедится, что dll компилируется под 64 бита, показан правильный путь к dll. И там еще посмотреть в свойствах на библиотеку типов, что бы не включались используемые типы в саму dll (я об этом везде писал). VB NET вроде по умолчанию однопоточный, поэтому проблем быть не должно.

Да действительно процедура Sub Main для эддина не нужна, там свой интерфейс реализуется как точка входа, и ссылка на инвентор передается в первую функцию интерфейса автоматом самим инвентором.

А вот пользоваться глобальными переменными - это дурной тон считается в программировании, потому как там можно наворотить такого, что потом без бутылки не разберешся. Культурный код написать, нужно так: что бы ты добавил класс или убрал и по возможности сосоедние классы ты не исправляешь, откомпилировал и оно работает. В том числе для это и придумали события.

Sektor:
У меня получилось создать работающий Аддин. Выкладываю код (может кому-то пригодится) и файлы Аддина.

Извините, вам запрещён просмотр содержимого спойлеров.


Полезная ссылочка:
http://hjalte.nl/tutorials/68-addin-wont-load
Вообще полезный сайт, там и другие статьи есть.
Также очень мне помог ChatGPT.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии