Создание и интеграция Help файла с меню (лентой) Autocad

Автор Тема: Создание и интеграция Help файла с меню (лентой) Autocad  (Прочитано 25030 раз)

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Как конвертировать doc в html (какой программой). Как связать help файл плагина с меню Автокада, чтобы на клавишу F1 при наведении на команду в ленте (меню) вызывался текст справки плагина.
« Последнее редактирование: 11-03-2015, 15:04:48 от Виталий »

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Нужно руководство как это делать для Автокада

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Как конвертировать doc в html (какой программой).
Какое это имеет отношение к теме форума? Вообще-то сам Microsoft Word позволят сохранить doc/docx-файл в html-файл.

Как связать help файл плагина с меню Автокада, чтобы на клавишу F1 при наведении на команду в ленте (меню) вызывался текст справки плагина.
Почитай: http://adn-cis.org/forum/index.php?topic=1693.0
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
« Последнее редактирование: 12-03-2015, 09:30:22 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Спасибо, почитал - полная каша. Если в живую нельзя пообщаться задам ряд вопросов.
1 Какое расширение должно быть у help файла стороннего плагина к Автокаду?
2 Как связать help файл с cuix файлом плагина? Если это вопрос переменных регистра, то как они называются, куда прописать путь? Только не хотелось бы получить ответ где предлагается изучить новый язык программирования, для решения этого вопроса.
3 Какой ссылкой связывается команда cuix плагина со своей справкой (страницей) внутри help файла?  Поясняю - Это TITLE в html? Какое название поля данной ссылки для команды в cuix?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Спасибо, почитал - полная каша.
Где?
1 Какое расширение должно быть у help файла стороннего плагина к Автокаду?
html или chm

2 Как связать help файл с cuix файлом плагина? Если это вопрос переменных регистра, то как они называются, куда прописать путь? Только не хотелось бы получить ответ где предлагается изучить новый язык программирования, для решения этого вопроса.
Начни с того, что укажи на каком языке программирования ты пишешь и под какую (или какие) версию AutoCAD.

Какой ссылкой связывается команда cuix плагина со своей справкой (страницей) внутри help файла?
Что такое "команда cuix плагина"? cuix - это файл меню, а не файл плагина.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Александр, плагин создан давно. 4 месяца уже идет аттестация для публикации в магазине. Осталось одно требование на F1 вывести справку к команде. У меня установка выполнена в старом стиле, плагин устанавливается и появляется для 2013-2015 Автокад, все сделано идеально. Нашел вчера даже первоисточник http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html
там есть такая фраза, цитирую:
If the Autoloader doesn’t do what you need, feel free to use the old style of deployment.   
Я не знаю новые технологии установки Autoloader, что делать и как редактировать во время установки файл PackageContents.xml. Думаю ты сам никогда это не делал, хоть и программист с большим стажем. Обмениваться ссылками на форуме, типа где-то пролетало, на посмотри - это просто – пользы не приносит.
Вопрос в том можно ли выполнить данное требование F1 без PackageContents.xml и Autoloader и как.
Старый стиль это когда setup.exe меняет и добавляет регистры, копирует файлы плагина на диск, а при запуске Автокада в лиспе происходят загрузки arx, cuix, dcl и другие установки для запуска плагина.
Как, когда и какой, при этом, менять или редактировать PackageContents.xml для меня не мыслимо. Ни одна ваша ссылка об этом не говорит, т.е. если я это не умею, сам не делал, то объяснять не возьмусь. Вышлите пример – листинг в лиспе+cuix+html (тоже листинг), который сами сделали (всех касается), тогда поговорим.
Команда в cuix это запускаешь _cui в окне cui выбираешь свой cuiх и видишь команды в панелях ленты, как еще объяснить?

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Мои исследования привели к следующим результатам. Я вижу два варианта:
1) Динамическое добавление команд на Ленту и соотвественно возможность указания файла и раздела помощи:
http://adndevblog.typepad.com/autocad/2012/09/associating-f1-help-with-ribbon-button.html
2) Создание Расширенной справки (Extended Help) при помощи xaml-файла и ручное подключение его в cuix при помощи команды _CUI. Пара примеров:
http://autodesk.blogs.com/between_the_lines/2008/03/autocad-team-ti.html
http://streamlined-design.blogspot.com/2014/08/create-and-add-extended-help-to-custom.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Вариант 3. Если arx-приложение уже загружено, то можно воспользоваться функцией acedSetFunHelp (описание смотри в справке ObjectARX), которая позволит назначить команде соотвествующую справку. Естественно, что acedSetFunHelp должна вызваться в момент инициализации arx-файла.
Пример использования: http://adn-cis.org/forum/index.php?topic=1099.msg5358#msg5358
Возможно это будет самым простым вариантом.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
3 варианта - тьма. в документации 280 справок/топиков/команд, пока неизвестно как сделать даже на одну. Есть команды лиспа help, setfunhelp, которые хоть что то делают, но даже с ними до конца не понятно.
Приведен пример (help "achelp.chm" "mycommand") что такое "mycommand" внутри "achelp.chm" не объясняется. Можно ли объяснить хоть это? Показать где в chm стоит текст "mycommand" это же касается и функции setfunhelp, ее последний аргумент. Как можно начинать что-то делать когда нет полного примера, хотя бы на одну команду в chm файле. Как сделать правильно сам CHM, что такое Topic, откуда его брать, который должен ставиться в конце данных функций? Подскажите гуру.

Также отвечаю, что если для редактирования PackageContents.xml нужно сесть и писать новый setup на си и т.п. - Нет и накладно и непонятно, из-за одной F1 из Ленты, нужно быть сумашедшим впутываться в такую аферу.  Просто исключено, пока нет полных объяснений и примеров.
При этом уверен, что существует другой более простой способ, зная Автокад 15 лет, может и даже с PackageContents.xml.

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Autoloader не подходит в принципе со своей примитивной установкой. У нас достаточно большой плагин со своей специфической установкой.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Также отвечаю, что если для редактирования PackageContents.xml нужно сесть и писать новый setup на си и т.п.
А зачем его редактировать? Вот этого я понять не могу. Вручную его создал один раз и устанавливаешь (распаковываешь) из setup'а

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ладно. Показываю простейший вариант.
1) В MS Word я создал 4 файла и сохранил их в формате htm:
test.htm
test1.htm
test2.htm
test3.htm
2) Установил (он у меня уже был) HTML Help Workshop: http://www.microsoft.com/en-us/download/confirmation.aspx?id=21138
3) Создал в HTML Help Workshop новый проект и добавил в него все 4 файла.
4) Создал Contents
5) Создал Index
(п 4) и 5) необязательны
6) Выполнил компиляцию в chm
Итак файл справки готов.
В AutoCAD создаю команду средствами lisp:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun C:test1 (/)
  2.   (getreal "\nКоманда Test1: ")
  3.   (princ)
  4. )
Выполняю в командной строке AutoCAD:
Код - Auto/Visual Lisp [Выбрать]
  1. (setfunhelp "C:test1" "c:/test_chm/mytest.chm" "test1")
Запускаю команду TEST1 и нажимаю F1 - вижу мою справку по команде TEST1

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Виталий 15-03-2015, 19:40:17

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Теперь разберёмся с командами в Ленте.
1) Я создал отдельное cuix-меню с именем test_chm.cuix, в котором только одна вкладка в Ленте, и на ней три наши команды Test1, Test2, Test3.
2) Создадим одноимённый mnl-файл, в котором определим эти команды и назначим им файл помощи:
Код - Auto/Visual Lisp [Выбрать]
  1. (progn
  2.   (setfunhelp "C:TEST1" "C:/TEST_CHM/TEST_CHM.CHM" "TEST1")
  3.   (setfunhelp "C:TEST2" "C:/TEST_CHM/TEST_CHM.CHM" "TEST2")
  4.   (setfunhelp "C:TEST3" "C:/TEST_CHM/TEST_CHM.CHM" "TEST3")
  5.   (princ)
  6. )
  7. (defun C:Test1 (/)
  8.   (getreal "\nTEST1: Укажите число или нажмите F1: ")
  9. )
  10. (defun C:Test2 (/)
  11.   (alert "TEST2: Нажмите F1: ")
  12. )
  13. (defun C:Test3 (/)
  14.   (entsel "\nTEST3: Выберите примитив или нажмите F1: ")
  15. )
  16.  

3) Загружаем наше меню
Что получилось смотрим на видео: http://autode.sk/1Effe7L
Всё тоже самое можно реализовать и при помощи ObjectARX и средствами AutoCAD .NET API

Все необходимые файлы я добавил. Изучай.

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение