Кнопка F1, файл PackageContents.xml и приложение на AutoLISP.

Автор Тема: Кнопка F1, файл PackageContents.xml и приложение на AutoLISP.  (Прочитано 15195 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
Тема, насколько я понимаю, не новая. Но решения найти не удалось, поэтому пишу сюда.
Есть приложение, написанное на AutoLISP. Есть PackageContents.xml для работы по технологии "bandle", в котором соответствующим образом указан help-файл и команды, которые должны "хелпится" по нажатию F1. Но вся эта, извините, хрень не работает - при нажатии на F1 в появляющемся окне аутодесковского браузера сообщается, что файл не найден. При этом само приложение работает и help-файл вызывается, но не по F1, а кнопкой в окошке приложения.

Буду благодарен, если кто-нибудь выложит пример файла PackageContents.xml  для приложения на AutoLISP с работающей кнопкой F1. Ну, или просто объяснит "где я дурак".

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Приветствую на форуме.
Буду благодарен, если кто-нибудь выложит пример файла PackageContents.xml  для приложения на AutoLISP с работающей кнопкой F1. Ну, или просто объяснит "где я дурак".
Гадать на кофейной гуще не будем - выкладывай свой bundle вместе с help-файлом.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Так. У меня появляется обычная справка AutoCAD (проверял в 2013-ой версии). Посмотрю что можно сделать. Если не получится - пошлю в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
А когда ты жмешь на F1: после запуска приложения или просто наведя курсор на иконку?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
А когда ты жмешь на F1: после запуска приложения или просто наведя курсор на иконку?
Наведя курсор на иконку. Насколько я помню из диалогового окна, написанного на lisp, F1 не работает никогда - только во время запроса в командной строке.
Фактически то, что ты хочешь делается при помощи функции (setfunhelp): http://exchange.autodesk.com/autocadmep/enu/online-help/BLDSYS/2012/ENU/pages/WS1a9193826455f5ff1a32d8d10ebc6b7ccc-6954.htm
Посмотрел, работает ли F1 для приложений Autodesk. Например, MGDDBG (http://adndevblog.typepad.com/autocad/2012/04/dwg-debugger-mgddbg-app-for-autocad-20122013.html). Не работает. Во всяком случае в AutoCAD 2013. Похоже на баг.
« Последнее редактирование: 11-12-2014, 18:42:12 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
Да пробовал я вставлять (setfunhelp). Эффект тот же... Самое интересное, что функция сама по себе работает, т.е. откликается правильно, а эффект - нуль.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 948
  • Карма: 155
Что-то я не очень понял: где вставляется (setfunhelp)? В архиве только vlx, исходников нет.
P.S. Сильно подозреваю, что элементарно не находится chm-файл.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
В присланном бандле этой функции нет. Я говорил только о том, что пробовал ее использовать, но безрезультатно.

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

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 948
  • Карма: 155
Попробуй загрузить свой bundle и выполни findfile для своего chm. Я почти уверен, что вернется nil.
Поэтому для setfunhelp / help надо будет или указывать полный путь к файлу справки, или добавлять каталог в пути поддержки, или помещать файл в пути поддержки. Может быть, есть еще варианты.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
Так каталог в пути поддержки есть (см.PackageContents.xml).

Да и (findfile) все находит...

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 948
  • Карма: 155
Можно попробовать нечто типа (setfunhelp (findfile "help.chm") <...>)
Но я не уверен, что сработает
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
Но я не уверен, что сработает
Угадал :(

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Теперь несколько абстрактных размышлений:
1) Каким образом AutoCAD знает, что при наведении на иконку с командой и нажатии кнопки F1 он должен открыть именно этот файл справки и именно этот (кстати какой?) раздел в файле справки? Меню CUIX и BUNDLE никак не пересекаются.
2) В диалоговом окне назначение через (setfunhelp) не работает.
3) Я поверил твой bundle - в AutoCAD 2013 и 2014 x64 он не работает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 141
  • Карма: 1
1) Каким образом AutoCAD знает, что при наведении на иконку с командой и нажатии кнопки F1 он должен открыть именно этот файл справки и именно этот (кстати какой?) раздел в файле справки? Меню CUIX и BUNDLE никак не пересекаются.
Имя CUIX-файла прописано в PackageContents.xml. Там же прописано имя файла справки. Т.е. наведя курсор на иконку получаем имя CUIX-файла, а дальше через PackageContents.xml получаем имя файла справки.

Цитировать
3) Я поверил твой bundle - в AutoCAD 2013 и 2014 x64 он не работает.
Само приложение не работает? А что говорит? Имей в виду, там часть приложения выполняется на удаленном сервере.