Легкое создание кнопок на ленте для вызова внешних команд

Автор Тема: Легкое создание кнопок на ленте для вызова внешних команд  (Прочитано 25274 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Alexeysh

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Добрый день,

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

Спасибо.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Alexeysh, проект для Visual Studio с примером использования утилиты - во вложении.

Оффлайн Alexeysh

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Спасибо.

Понял, почему не получается.
В Revit 2014 все работает. А я в Revit 2015 пытаюсь... Буду разбираться...

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Alexeysh, библиотека скомпилирована под .NET 4.0, а 2015 Revit использует .NET 4.5.
Это значит, что моя библиотека просто не видна. Вам нужно ее самостоятельно скомпилировать под .NET 4.5 из исходников.

Оффлайн Alexeysh

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Да, все сделал, все работает отлично!!!

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Alexeysh, библиотека скомпилирована под .NET 4.0, а 2015 Revit использует .NET 4.5.
Это значит, что моя библиотека просто не видна. Вам нужно ее самостоятельно скомпилировать под .NET 4.5 из исходников.
Здравствуйте скажите как это делается. Где взять исходники.
В программе не могу определить b.SetLargeImage(Resources.adn_cis_logo);
Что такое Resources? Какая сборка для него нужна?
Что такое adn_cis_logo Почему не путь к файлу?
Поясните как пользоваться пожалуйста.

Кнопку то я добавил закоментив этот b.SetLargeImage(Resources.adn_cis_logo);
Как же добраться до картинки? В ресурсы я ее добавил, но правильно ли? Есть ли там секретики?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
multys, Добрый день.

Исходники есть в статье. Ссылка на статью, в первом сообщении темы. На всякий случай, дублирую ссылку еще раз.

Ресурсы приложения - это двоичные или текстовые данные, которые не являются кодом, но включаются в проект. Подробней можно почитать на MSDN. Например, тут или тут.

После того, как вы поместите ресурсы в вашу сборку, то они обычно находятся в namespace <namespace вашей сборки>.Properties.Resources.

adn_cis_logo - имя ресурса, содержащего изображение для кнопки.

Естественно, ресурс с вашей картинкой может называться иначе.

Можно использовать и файл. В метод SetImage нужно передать объект либо Bitmap, либо ImageSource. Создайте Bitmap из файла, если это необходимо. Мне удобней пользоваться ресурсами.

« Последнее редактирование: 08-03-2015, 21:31:14 от Виктор Чекалин »

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Виктор спасибо большое буду разбираться.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Виктор не получается. Что не так я сделал опять?


Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
multys, так ведь все ж напиано:). Нужно добавить сборку PresentationCore. Скорее всего там еще нужно будет добавить сборки System.Xaml, WindowsBase и другие сборки, необходимые для WPF.
Интерфейс ленты написан на WPF, поэтому и нужны соответствующие сборки.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Я дело в том что тока неделю сел за С#
Раньше писал на VB но с библиотеками никогда не сталкивался, поэтому не понимаю что требует компилятор.
Точнее понимаю, но не знал что надо поискать такую сборку. Что такая есть :)))
Сборку добавил - все заработало спасибо.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Раньше писал на VB
В Visual Basic тоже есть добавление ссылок на внешние библиотеки. Возможно просто никогда не приходилось использовать.
Рад что все в итоге получилось.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Вот в том то и дело что не приходилось. Я только научные программы писал для диссертации, а там никаких библиотек то и не надо было.
Еще закавыка с этим MSDN и SDK вот никак не пойму как пользоваться. К примеру понимаю как и что нужно получить, но как в этих справках найти нужный класс и свойство - черт ногу сломит.
Вы, Виктор когда писали свою dll -ку там получается есть какой то ваш класс где процедуры написаны, а вы потом подкрепляете dll -ку, библиотеку объявляете и получаете доступ к процедурам и свойствам? так ли я понимаю?

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Виктор скажите, а как с помощью вашей утилиты создать панель с кнопкой, НЕ создавая новую вкладку, а создать панель и кнопку в месте по умолчанию - во вкладке "Надстройки" ?