Сообщество программистов Autodesk в СНГ

ADN Club => Autodesk App Store (ранее Autodesk Exchange Apps) => Тема начата: stuff от 08-04-2021, 18:03:31

Название: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 08-04-2021, 18:03:31
Всем привет  :)

При наведении курсора мышки на ленту кнопок в AutoCad и нажатии F1 AutoCad не может открыть файл Help.html плагина.

(https://i.ibb.co/myn1p1V/F1-1.png)

Цитировать
PackageContents.xml:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" AutodeskProduct="AutoCAD" ProductType="Application" Name="MakeGrid" AppVersion="1.1.3" Description="The program creates a grid for fixtures." Author="Taras Zelenskyi" Icon="./Contents/Resources/icon.ico" AppNameSpace="appstore.exchange.autodesk.com" OnlineDocumentation="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" HelpFile="./Contents/Help.html" UpgradeCode="{774D94E5-220F-4CAC-9901-169C712EDD3E}" FriendlyVersion="1.1.3" SupportedLocales="Enu" ProductCode="{8B7EE854-382A-43E1-89C9-43D7D9E33406}">
  <CompanyDetails Name="PC West" Phone=" " Url="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" Email="taras.zelensky@gmail.com" />
  <RuntimeRequirements />
  <Components Description="2018-2021">
    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R21.0" SeriesMax="R24.0" />
    <ComponentEntry AppName="MakeGrid" Version="1.1.3" ModuleName="./Contents/acad.lsp" AppDescription="MakeGrid" PerDocument="True" LoadOnAppearance="True" LoadOnAutoCADStartup="False" LoadOnCommandInvocation="True" LoadOnRequest="False">
      <RuntimeRequirements SupportPath="./Contents" OS="Win64" Platform="AutoCAD*" SeriesMin="R23.1" SeriesMax="R24.0" />
      <Commands>
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid" />
      </Commands>
    </ComponentEntry>
    <ComponentEntry AppName="MakeGrid" Version="1.1.3" ModuleName="./Contents/MakeGrid.cuix" AppDescription="MakeGrid" LoadOnAutoCADStartup="True" />
  </Components>
</ApplicationPackage>

Структура каталогов плагина:

(https://i.ibb.co/4WDJYBj/image.png)

Что может быть не так?

Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 08-04-2021, 18:16:54
Посмотри здесь: https://forums.autodesk.com/t5/net/helpfile-in-packagecontents-xml/m-p/3814013#M34226
Похоже у тебя в <Command> не хватает HelpTopic="..."
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 08-04-2021, 21:19:20
Цитировать
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" AutodeskProduct="AutoCAD" ProductType="Application" Name="MakeGrid" AppVersion="1.1.3" Description="The program creates a grid for fixtures." Author="Taras Zelenskyi" Icon="./Contents/Resources/icon.ico" AppNameSpace="appstore.exchange.autodesk.com" OnlineDocumentation="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" HelpFile="./Contents/Help.html" HelpTopic="./Contents/Help.html" UpgradeCode="{774D94E5-220F-4CAC-9901-169C712EDD3E}" FriendlyVersion="1.1.3" SupportedLocales="Enu" ProductCode="{8B7EE854-382A-43E1-89C9-43D7D9E33406}">
  <CompanyDetails Name="PC West" Phone=" " Url="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" Email="taras.zelensky@gmail.com" />
  <RuntimeRequirements />
  <Components Description="2018-2021">
    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R21.0" SeriesMax="R24.0" />
    <ComponentEntry AppName="MakeGrid" Version="1.1.3" ModuleName="./Contents/acad.lsp" AppDescription="MakeGrid" PerDocument="True" LoadOnAppearance="True" LoadOnAutoCADStartup="False" LoadOnCommandInvocation="True" LoadOnRequest="False">
      <RuntimeRequirements SupportPath="./Contents" OS="Win64" Platform="AutoCAD*" SeriesMin="R23.1" SeriesMax="R24.0" />
      <Commands>
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid" />
        <Command HelpTopic="-vbarun Help" Global="-vbarun Help" />
        <Command Local="HELP" Global="HELP" />

      </Commands>
    </ComponentEntry>
    <ComponentEntry AppName="MakeGrid" Version="1.1.3" ModuleName="./Contents/MakeGrid.cuix" AppDescription="MakeGrid" LoadOnAutoCADStartup="True" />
  </Components>
</ApplicationPackage>

HelpTopic не помог. Не может открыть AutoCad Help.html файл...

Что интересно, если мой Help файл подсунуть в другие плагины, то через F1, наводя мышкой на кнопки других плагинов, мой файл открывается

Такой вид файла мне дала служба приемки плагинов Autodesk:

Цитировать
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" AutodeskProduct="AutoCAD" ProductType="Application" Name="MakeGrid" AppVersion="1.1.5" Description="The program creates a grid for fixtures." Author="Taras Zelenskyi" Icon="./Contents/Resources/icon.ico" AppNameSpace="appstore.exchange.autodesk.com" OnlineDocumentation="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" HelpFile="./Contents/help.html" UpgradeCode="{8A2E3BF7-3411-4CAD-BA33-128AF127E8D7}" FriendlyVersion="1.1.5" SupportedLocales="Enu" ProductCode="{0B3D574E-81D2-412A-9141-0429A858DE44}">
  <CompanyDetails Name="PC West" Phone=" " Url="https://apps.autodesk.com/en/Publisher/PublisherHomepage?ID=SASBMTNVSSXG" Email="taras.zelensky@gmail.com" />
  <RuntimeRequirements />
  <Components Description="2018-2021">
    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R21.0" SeriesMax="R24.0" />
    <ComponentEntry AppName="MakeGrid" Version="1.1.5" ModuleName="./Contents/acad.lsp" AppDescription="MakeGrid" PerDocument="True" LoadOnAppearance="True" LoadOnAutoCADStartup="False" LoadOnCommandInvocation="True" LoadOnRequest="False">
      <RuntimeRequirements SupportPath="./Contents" OS="Win64" Platform="AutoCAD*" SeriesMin="R23.1" SeriesMax="R24.0" />
      <Commands>
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid" />
      </Commands>
    </ComponentEntry>
    <ComponentEntry AppName="MakeGrid" Version="1.1.5" ModuleName="./Contents/MakeGrid.cuix" AppDescription="MakeGrid" LoadOnAutoCADStartup="True" />
  </Components>
</ApplicationPackage>

И сама же предьявила претензию по поводу не работы F1:

Цитировать
Also I noticed that F1 help for the app is not working.
 
When I press F1 in the ribbon panel hovering over the app button for help, then the app is not displaying the help file.
We strongly encourage publishers to implement the F1 help in the ribbon panel for the unified app experience across the store.
I would suggest you to kindly take a look at this forum link for more information http://forums.autodesk.com/t5/net/autodesk-autocad-ribbon/td-p/4653889.

You can also include  a help ribbon button which when launched opens the help information regarding the app.

Here is video recording that explains the steps involved in creating a partial CUIX and supporting adding panel to the “Plugin” tab in AutoCAD. http://download.autodesk.com/media/adn/DevTV_Creating_a_Partial_CUI/DevTV_Creating_a_Partial_CUI.html
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 08-04-2021, 22:45:49
stuff,
У меня есть еще подозрение на команду, которая запускается.
        <Command HelpTopic="-vbarun Help" Global="-vbarun Help" />
        <Command Local="HELP" Global="HELP" />
Это откуда??? И ты еще команду HELP решил переопределить???
Должно быть что-то типа:
Код - XML [Выбрать]
  1. <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid" HelpTopic="#Help"/>
Только вот с таким запуском VBA это скорее всего не прокатит. Там должно быть полноценное имя команды.
Смотри здесь:
https://adn-cis.org/avtozagruzchik-(autoloader)-integracziya-klavishi-pomoshhi-f1.html
здесь:
https://adn-cis.org/forum/index.php?topic=1921
и здесь:
https://adn-cis.org/forum/index.php?topic=1693

P.S.: Очень рекомендую забыть про VBA в AutoCAD.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 09-04-2021, 13:50:35
Попробывал так:

Цитировать
<Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid" HelpTopic="#Help"/>

потом так:

Цитировать
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid HelpTopic="./Contents/Help.html" />
        <Command HelpTopic="-vbarun Help" Global="-vbarun Help" HelpTopic="./Contents/Help.html" />
        <Command Local="HELP" Global="HELP" HelpTopic="./Contents/Help.html" />

потом так:

Цитировать
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid HelpTopic="CommandTopic1" />
        <Command HelpTopic="-vbarun Help" Global="-vbarun Help" HelpTopic="CommandTopic1" />
        <Command Local="HELP" Global="HELP" HelpTopic="CommandTopic1" />

потом так:

Цитировать
        <Command Local="-vbarun ShowfrmMakeGrid" Global="-vbarun ShowfrmMakeGrid HelpTopic="#CommandTopic1" />
        <Command HelpTopic="-vbarun Help" Global="-vbarun Help" HelpTopic="#CommandTopic1" />
        <Command Local="HELP" Global="HELP" HelpTopic="#CommandTopic1" />

Не работает F1

Потом еще так попробывал:

(https://i.ibb.co/52Nw8vK/Screenshot-1.png)

То же не работает.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 09-04-2021, 13:56:31
stuff,
Я же предупредил, что если вместо нормального имени команды будет макрос, как у тебя, то ничего не получится.
Должно быть как-то так:
Код - XML [Выбрать]
  1. <Command Local="ShowfrmMakeGrid" Global="ShowfrmMakeGrid" HelpTopic="#ShowfrmMakeGrid" />
Ты соответственно в своём acad.lsp должен будешь определить команду ShowfrmMakeGrid, которая запускает твой vba-код, т.е. "-vbarun ShowfrmMakeGrid" или так, как это делается через lisp.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 09-04-2021, 14:00:24
Ты соответственно в своём acad.lsp должен будешь определить команду ShowfrmMakeGrid, которая запускает твой vba-код, т.е. "-vbarun ShowfrmMakeGrid" или так, как это делается через lisp.

У меня при старте AutoCad панелька с кнопками подгружается:

Код - Auto/Visual Lisp [Выбрать]
  1. (defun S::STARTUP()
  2.    (command "_VBALOAD" "MakeGrid.dvb")
  3.    (command "_VBARUN" "MakeGrid.dvb!ThisDrawing.CreateToolbar")
  4. )


И потом пользователь нажимает на кнопки на панели и открывает, то, что ему надо.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 09-04-2021, 14:01:43
   ---
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 09-04-2021, 14:03:00
stuff,
Прочитай у меня в подписи как следует форматировать код у нас на форуме и соблюдай это правило.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 09-04-2021, 14:05:19
Код - Auto/Visual Lisp [Выбрать]
  1. (defun S::STARTUP()
  2.        (vl-vbaload  "MakeGrid.dvb")
  3.        (vl-vbarun "MakeGrid.dvb!CreateToolbar")
  4.        (princ)
  5. )
  6. (defun C:ShowfrmMakeGrid ( / )
  7.   (vl-vbarun  "ShowfrmMakeGrid")
  8.   (princ)
  9. )
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: stuff от 09-04-2021, 14:19:22
Если команда AuotoDesk по приемке плагинов для AutoCad сама формирует инсталлятор и в частности файл PackageContents.xml
Почему они изначально не могут создать корректный файл PackageContents.xml и не придераться к разработчику в плане корректности работы F1?

Непонятно, как происходит сама процедура приемки плагина в AutoDesk и где это расписано?
Что должен предоставить разработчики что со своей стороны и что делает AutoDesk?
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 09-04-2021, 14:36:43
stuff,
Это все вопросы не по адресу. Если бы ты сформировал свой файл PackageContents.xml, то вопросов скорее всего бы не было. Кроме того подозреваю, что это единственный плагин, который возможно будет опубликован на Autodesk App Store, который написан на VBA. Сотрудники Autodesk, которые публикуют плагины на Autodesk App Store, не являются профессиональными программистами и могут предоставить только заготовку PackageContents.xml, которую ты должен "допилить", чтобы она работала с твоим плагином.
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: User_45 от 25-08-2021, 14:19:05
Почему они изначально не могут создать корректный файл PackageContents.xml и не придераться к разработчику в плане корректности работы F1?
Off-Topic: показать
Да вообще, ещё бы по коду прошлись и ошибки все пофиксили. Да чего мелочиться - написали бы сами приложение с нуля! Ты им идею только закидываешь, а они пишут и выкладывают. Авторство, разумеется, принадлежать будет автору идеи. Да, так было бы супер, согласен  8)
Название: Re: Не работает F1 при наведении курсора мышки на ленту кнопок плагина в AutoCad
Отправлено: Александр Ривилис от 25-08-2021, 14:21:33
Почему они изначально не могут создать корректный файл PackageContents.xml и не придераться к разработчику в плане корректности работы F1?
Off-Topic: показать
Да вообще, ещё бы по коду прошлись и ошибки все пофиксили. Да чего мелочиться - написали бы сами приложение с нуля! Ты им идею только закидываешь, а они пишут и выкладывают. Авторство, разумеется, принадлежать будет автору идеи. Да, так было бы супер, согласен  8)

:D :D :D