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

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
(setfunhelp "C:test1" "c:/test_chm/mytest.chm" "test1")Запускаю команду TEST1 и нажимаю F1 - вижу мою справку по команде TEST1[/quote]
Спасибо, я хоть понял, что то же самое делаю, что и ты мне здесь написал. Но у меня проводник Справка пишет - "Не удается загрузить эту страницу". Делаю абсолютно тоже самое, т.е. даже в этой чепухе сдвинутся с места неизвестно как. Пробую это на русском Автокаде 2015. Даже если это и пробить, то при наведении на ленту F1 работать не будет. Но вот почему не работает никаких идей. Сам файл справки открывает, но страницу для отдельной команды не может.

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
(setfunhelp "C:test1" "c:/test_chm/mytest.chm" "test1")
А зачем его редактировать? Вот этого я понять не могу. Вручную его создал один раз и устанавливаешь (распаковываешь) из setup'а
Пожалуйста попунктно.  1 На основе чего его создать? Пример. 2. Куда его копировать? Его же Автокад должен читать? где к нему путь прописывать для автокада, если это нужно? 3 Как вообще Автокад с такими файлами работает? 4 Их этих файлов много или он один, в плане если несколько плагинов одновременно установлены, каждый со своим хелпом и xml что ли. 5. может еще куча нюансов, которые я просто не знаю. Общеизвестно что xml это файл с произвольными тегами, Автодеск может его использовать как угодно.
Раньше как то все понятно объяснялось, например, если в путях Автокад увидит наличие файла ACAD.LSP, то он выполняет его в первую очередь, ну и так далее.   

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

  • Administrator
  • *****
  • Сообщений: 946
  • Карма: 154
Так, по пунктам...
Для создания справки лично я использую Help&Manual как наиболее удобный инструмент. Каждая страница в справке имеет свое название. При вызове из лиспа setfunhelp сначала указывается команда, для которой определяется справка, потом файл справки (файл справки должен находиться в путях доступа либо придется указывать его полное имя. Файл в обязательном порядке должен находиться на локальной машине), и в последнюю очередь - имя той страницы (ну или тэг), которую надо активировать.
Запускается команда, пользователь нажимает F1 - справка открывается и автоматически активируется соответствующая страница.
>> если в путях Автокад увидит наличие файла ACAD.LSP, то он выполняет его в первую очередь, ну и так далее
Вообще-то не совсем так: см.статьи на сайте http://adn-cis.org/posledovatelnost-zagruzki-prilozhenij-v-autocad.html + http://adn-cis.org/autocad-autoload-security.html

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

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Для создания справки лично я использую Help&Manual как наиболее удобный инструмент. Каждая страница в справке имеет свое название.
Алексадр, добавь еще в свое объяснение: что для "Html help Workshop" файл проекта и htm файлы обязательно должны находится в одной папке, из-за этого у меня не появлялась справка к команде.  Поэтому я и говорю, что нужно своими руками что-то сделать и высылать примеры. Спасибо. эта чепуха пробита, но это не решение, так разминка. Представляю сколько с xml будет еще проблем.

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Теперь разберёмся с командами в Ленте. 1) Я создал отдельное cuix-меню с именем test_chm.cuix, в котором только одна вкладка в Ленте, и на ней три наши команды Test1, Test2, Test3.2) Создадим одноимённый mnl-файл, в котором определим эти команды и назначим им файл помощи:
Да работает, но не без нюансов. В cui окне в поле "Макросы" команды должно стоять только имя команды. Если между "^C^C^P;" и командой что-то записано (а может быть записано любое лисп выражение и т.п.) то F1 будет высвечивать help Автокада. Вывод - это решение, но требующее изменений кода запуска плагина. Если учесть, что у нас в cuix на вскидку в поле "Макросы" на половине команд что-то записано. Подожду, что скажешь на запрос по xml. 
Вообще вспомнить про mnl это круто, спасибо за совет! 

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

  • Administrator
  • *****
  • Сообщений: 12996
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Подожду, что скажешь на запрос по xml. 
Ничего не скажу в контексте того, что если имеется лисп-выражение в меню, то в Ленте по F1 вызывается не та справка. Значит так сделано.
xml работает точно по тому же принципу, что и (setfunhelp ...). Точнее он именно эту функцию и использует для назначения справки команде. А еще точнее - её arx-аквивалент.
По поводу Bundle есть только два известных мне документа. Основной в документации:
http://help.autodesk.com/cloudhelp/2015/ENU/AutoCAD-Customization/files/GUID-5E50A846-C80B-4FFD-8DD3-C20B22098008.htm
(ну и пройтись по всем сопутствующим ссылкам), в первую очередь о структуре каталога Bundle и формате файла PackageContents.xml, а также примеры использования.
Ну и http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html, который ты уже видел.
Скачиваешь из Магазина Приложений Autodesk любое приложение и смотришь как оно устроено. Ничего лучше я не предложу.


« Последнее редактирование: 13-03-2015, 21:13:37 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 12996
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Алексадр, добавь еще в свое объяснение: что для "Html help Workshop" файл проекта и htm файлы обязательно должны находится в одной папке, из-за этого у меня не появлялась справка к команде.
Необязательно. Завел отдельную папку, туда переместил те же htm-файлы, пересоздал hрp-файл, настроил TOC, пересобрал chm-файл. Всё работает. Справка показывается из него.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Я думаю остановлюсь на mnl на том, что я сейчас понимаю, с остальным судя по твоим ответам меньше работы не будет даже если и разобраться. Единственно хотелось бы вернуться к первому своему вопросу. Может он и не по теме но стоит задача, где основной критерий теперь время. Есть готовая документация 130 топиков в одном doc файле. Как быстро конвертировать это не в один, а в 130 htm файлов. В поисковике решений куча, но реально работающих решений найти пока не удается. Александр, вижу у тебя огромный опыт. Можешь подсказать каким проверенным средством это можно сделать. Ты писал об Help&Manual может он это делает? 
   

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

  • Administrator
  • *****
  • Сообщений: 12996
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Александр, вижу у тебя огромный опыт.
Это правда.
Можешь подсказать каким проверенным средством это можно сделать. Ты писал об Help&Manual может он это делает? 
Во-первых, про Help&Manual писал не я , а Алексей Кулик
Во-вторых, насколько я понимаю, задача чисто ручная и никакой автоматизации тут нет и быть и не может.
Если я правильно понял, то в doc-файле документация по всему комплексу, а нужно получить описание 130 команд. Ничего лучше чем в Word выделять кусок текста, копировать его в новый документ и сохранять его как htm-файл, я не предложу.
Можно бесполезно потратить еще пару недель на поиск программы, которая это сделает, а потом всё-равно сделать это вручную.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Ничего лучше чем в Word выделять кусок текста, копировать его в новый документ и сохранять его как htm-файл, я не предложу.
Верю, попытался начать и сразу затык. Word 2007 создает htm файл и каталог с картинками отдельно друг от друга. Если создавать в одном файле, то расширение другое не htm, оба случая не дают решения в HTML HELP WORKSHOP в итоге chm получается без картинок. Как конвертировать в один файл с картинками и с расширением htm или как настроить WORKSHOP.   

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

  • Administrator
  • *****
  • Сообщений: 946
  • Карма: 154
Может, в таком случае вообще использовать нечто типа Composer (ну или html-файл создавать напрямую в VisualStudio)?
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 12996
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Word 2007 создает htm файл и каталог с картинками отдельно друг от друга.
Как настроишь - так и будут сохранять. Можно и в  один каталог.

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

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

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
2) Создадим одноимённый mnl-файл, в котором определим эти команды и назначим им файл помощи: Код - Auto/Visual Lisp: [Выделить](progn  (setfunhelp "C:TEST1" "C:/TEST_CHM/TEST_CHM.CHM" "TEST1")
Как сделать вызов справки на F1 на макрос в cuix: ^P(afxy); т.е. когда не команда, а функция должна отработать по нажатию иконки из ленты.

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

  • Administrator
  • *****
  • Сообщений: 946
  • Карма: 154
Из функции сделать команду и на нее уже "вешать" вызов справки. Можно и так:
^C^C^P(defun c:tmp() (afxy));(setfunhelp "tmp" <...> <...>);tmp;У меня по такому принципу много всякого построено - работает без вопросов
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 12996
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Как сделать вызов справки на F1 на макрос в cuix: ^P(afxy); т.е. когда не команда, а функция должна отработать по нажатию иконки из ленты.
Кроме предложенного Алексеем варианта других вариантов нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение