ToolTip и GIF

Автор Тема: ToolTip и GIF  (Прочитано 9026 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
ToolTip и GIF
« : 24-05-2020, 00:12:03 »
Всех приветствую.
Кто-то пробовал вставлять gif-анимацию в ToolTip на ленте? У меня пока получилось только покадрово читать gif файл.

У меня ещё появился доп. вопрос - что за свойство "ExpandedVideo" есть у класса RibbonToolTip в VisualStudio, но нигде я не могу найти информацию по нему?
« Последнее редактирование: 24-05-2020, 00:49:20 от Lemieux »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #1 : 24-05-2020, 00:58:36 »
Вряд ли этим кто-то занимался. Насколько я помню ToolTip'ы используют XAML. В чистом виде XAML не поддерживает gif-анимацию.
Нашел такую библиотеку для отображения gif-анимации в XAML: https://github.com/XamlAnimatedGif
Попробуй. Может что-нибудь и получится.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Lemieux 24-05-2020, 01:09:56

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #2 : 24-05-2020, 01:05:57 »
У меня ещё появился доп. вопрос - что за свойство "ExpandedVideo" есть у класса RibbonToolTip в VisualStudio, но нигде я не могу найти информацию по нему?
А вот это оказывается делал Виктор Чекалин. Правда для Revit, но для AutoCAD должно быть аналогично:
https://thebuildingcoder.typepad.com/blog/2012/09/video-animated-ribbon-item-tooltip.html
Но это у него не gif, а swf. Впрочем наверное возможна и другая анимация.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #3 : 24-05-2020, 01:09:54 »
У меня ещё появился доп. вопрос - что за свойство "ExpandedVideo" есть у класса RibbonToolTip в VisualStudio, но нигде я не могу найти информацию по нему?
А вот это оказывается делал Виктор Чекалин. Правда для Revit, но для AutoCAD должно быть аналогично:
https://thebuildingcoder.typepad.com/blog/2012/09/video-animated-ribbon-item-tooltip.html
Но это у него не gif, а swf. Впрочем наверное возможна и другая анимация.
Тоже наткнулся на этот пост и уже конвертирую swf  :)

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #4 : 24-05-2020, 02:33:27 »
К сожалению не работает.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #5 : 24-05-2020, 03:15:21 »
Если подготовить тестовый проект - постараюсь помочь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #6 : 24-05-2020, 03:22:15 »
Если подготовить тестовый проект - постараюсь помочь.
Что от меня нужно? Тестовая лента с элементом где должен быть анимированный ToolTip?

Вообще странно, что не воспроизводит swf. Ладно я сам конвертировал, но я брал фал из ссылки, которую Вы приложили и он так же не работал.
А Gif я пробовал воспроизвести через создание Bitmap и Imageanimator.animate.

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #7 : 24-05-2020, 03:26:28 »
И как авторы программы запихали bullets в ToolTips? У меня что-то не получается через unicod или xml.


Кстати, ещё интересное наблюдение. Разработчики зачем-то сделали возможность разворачиваться "ExpandedImage" во весь экран, но при этом быть узкой относительно высоты. И если туда вставлять большое изображение, то оно отображается в масштабе, но обрезается по этим узки границам.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #8 : 24-05-2020, 14:32:32 »
Что от меня нужно? Тестовая лента с элементом где должен быть анимированный ToolTip?
Полный проект, в котором ты создаешь элемент с попыткой назначить ему анимированный ToolTip.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: ToolTip и GIF
« Ответ #9 : 24-05-2020, 14:52:29 »
Вряд ли этим кто-то занимался. Насколько я помню ToolTip'ы используют XAML. В чистом виде XAML не поддерживает gif-анимацию.
Нашел такую библиотеку для отображения gif-анимации в XAML: https://github.com/XamlAnimatedGif
Попробуй. Может что-нибудь и получится.
Именно так и только с помощью именно этой библиотеки у меня получилось сделать анимашку в подсказке на ленте. Можно подцепить её через Nuget. Там есть ещё тонкости с расположением этих GIF и настройкой проектов, чтобы их корректно находил XAML. По понятным причинам я не могу выложить свои наработки с рабочей GIF в тултипе. Поэтому, да - делайте тестовый проект, будем на его примере показывать как надо сделать.

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #10 : 24-05-2020, 16:19:46 »
Код - C# [Выбрать]
  1. using System;
  2. using Autodesk.Windows;
  3. using Autodesk.AutoCAD.Ribbon;
  4. using Autodesk.AutoCAD.Runtime;
  5. using System.Windows.Media.Imaging;
  6.  
  7. namespace Test_ToolTip_GIF
  8. {
  9.     public class Commands
  10.     {
  11.         [CommandMethod("TEST")]
  12.         public void CreateTab()
  13.         {
  14.             RibbonControl ribbonControl = RibbonServices.RibbonPaletteSet.RibbonControl;
  15.  
  16.             RibbonTab ribbonTab = new RibbonTab
  17.             {
  18.                 Title = "Test",
  19.                 Name = "Test_Tab",
  20.                 Id = "TEST_ID"
  21.             };
  22.             ribbonControl.Tabs.Add(ribbonTab);
  23.  
  24.             RibbonPanelSource panelSourceDocument = new RibbonPanelSource
  25.             {
  26.                 Title = "Test"
  27.             };
  28.             RibbonPanel panelDocument = new RibbonPanel
  29.             {
  30.                 Source = panelSourceDocument
  31.             };
  32.             ribbonTab.Panels.Add(panelDocument);
  33.  
  34.             RibbonToolTip toolTip_1 = new RibbonToolTip
  35.             {
  36.                 ExpandedContent = "Test",
  37.                 ExpandedImage = new BitmapImage(new Uri("X:/X.gif")),
  38.                 ExpandedVideo = new Uri("X:/X.swf")
  39.             };
  40.  
  41.             RibbonButton button = new RibbonButton
  42.             {
  43.                 Text = "Test",
  44.                 Height = 16,
  45.                 ToolTip = toolTip_1
  46.             };
  47.  
  48.             RibbonRowPanel ribbonRow = new RibbonRowPanel();
  49.             ribbonRow.Items.Add(button);
  50.             panelSourceDocument.Items.Add(ribbonRow);
  51.  
  52.             ribbonTab.IsActive = true;
  53.         }
  54.     }
  55. }

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #11 : 24-05-2020, 16:24:46 »
Вряд ли этим кто-то занимался. Насколько я помню ToolTip'ы используют XAML. В чистом виде XAML не поддерживает gif-анимацию.
Нашел такую библиотеку для отображения gif-анимации в XAML: https://github.com/XamlAnimatedGif
Попробуй. Может что-нибудь и получится.
Именно так и только с помощью именно этой библиотеки у меня получилось сделать анимашку в подсказке на ленте. Можно подцепить её через Nuget. Там есть ещё тонкости с расположением этих GIF и настройкой проектов, чтобы их корректно находил XAML. По понятным причинам я не могу выложить свои наработки с рабочей GIF в тултипе. Поэтому, да - делайте тестовый проект, будем на его примере показывать как надо сделать.
Это надо будет со своим плагином таскать эту библиотеку? - Я так не хочу. Из-за мелкой фичи прикручивать целую библиотеку. Я лучше сам смогу понять как написать то, что нужно, либо вообще не буду использовать. Как было в моей проблеме с xaml и сторонней библиотекой, когда AutoCAD не мог найти модуль. Я просто написал свой перетаскиватель, чтобы делать сортировку контактов в реальном времени.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: ToolTip и GIF
« Ответ #12 : 25-05-2020, 09:24:37 »
Понимаю. Но именно эту функциональность своими силами реализовать будет довольно сложно. Библиотека открыта для просмотра - гляньте, сколько всего интересного пришлось написать, чтобы "запустить" гифки в WPF. Я посмотрел уже. Я пробовал делать свой "велосипед". И понял, что сам я лучше не сделаю. Потрачу кучу времени и, в итоге, в лучшем случае, приду к тому же самому коду, который уже есть в этой библиотеке. Она толково написана, избыточного функционала не содержит. Я для себя не нашёл никакой причины, чтобы её не использовать.
Глянул мельком код - лента, похоже, программно настраивается? Это осознанный выбор?

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #13 : 25-05-2020, 10:34:41 »
Глянул мельком код - лента, похоже, программно настраивается? Это осознанный выбор?
Да, всё делается программно, так как в примере простой вариант ленты, а так у меня лента со всякой автоматизацией, которая например отслеживает состояние чертежа. Такая реализация чем-то плоха?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #14 : 25-05-2020, 14:03:21 »
К сожалению не работает.
Не работает с SWF-файлами (во всяком случае у меня), но работает с WMV-файлами (https://ru.wikipedia.org/wiki/Windows_Media_Video) :

Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.Ribbon;
  2. using Autodesk.AutoCAD.Runtime;
  3. using Autodesk.Windows;
  4. using System;
  5.  
  6. // This line is not mandatory, but improves loading performances
  7. [assembly: CommandClass(typeof(TestToolTip.MyCommands))]
  8.  
  9. namespace TestToolTip
  10. {
  11.   public class MyCommands
  12.   {
  13.  
  14.     [CommandMethod("TEST")]
  15.     public void CreateTab()
  16.     {
  17.       RibbonControl ribbonControl = RibbonServices.RibbonPaletteSet.RibbonControl;
  18.  
  19.       RibbonTab ribbonTab = new RibbonTab
  20.       {
  21.         Title = "Test",
  22.         Name = "Test_Tab",
  23.         Id = "TEST_ID"
  24.       };
  25.       ribbonControl.Tabs.Add(ribbonTab);
  26.  
  27.       RibbonPanelSource panelSourceDocument = new RibbonPanelSource
  28.       {
  29.         Title = "Test",
  30.         Id = "ID_SrcPanel"
  31.       };
  32.       RibbonPanel panelDocument = new RibbonPanel
  33.       {
  34.         Source = panelSourceDocument
  35.       };
  36.       ribbonTab.Panels.Add(panelDocument);
  37.  
  38.       RibbonToolTip toolTip_1 = new RibbonToolTip
  39.       {
  40.         Title = "Этто кнопка 1",
  41.         Content = "Это моя подсказка",
  42.         ExpandedContent = "WMV-видео из внешнего файла",
  43.         ExpandedVideo = new Uri("X:/x.wmv")
  44.       };
  45.  
  46.       RibbonButton button = new RibbonButton
  47.       {
  48.         Text = "Кнопка 1",
  49.         Height = 16,
  50.         ToolTip = toolTip_1,
  51.         CommandHandler = new ButtonCmdHandler()
  52.       };
  53.  
  54.       RibbonRowPanel ribbonRow = new RibbonRowPanel();
  55.       ribbonRow.Items.Add(button);
  56.       panelSourceDocument.Items.Add(ribbonRow);
  57.  
  58.       ribbonTab.IsActive = true;
  59.       button.IsActive = true;
  60.     }
  61.   }
  62.   public class ButtonCmdHandler : System.Windows.Input.ICommand
  63.   {
  64.     public bool CanExecute(object parameter)
  65.     {
  66.       return true;
  67.     }
  68.     public event EventHandler CanExecuteChanged;
  69.     public void Execute(object parameter)
  70.     {
  71.     }
  72.   }
  73. }



Так что конвертируй своё видео в WMV.

P.S.: Кстати даже звук воспроизводится из WMV.
« Последнее редактирование: 25-05-2020, 14:52:01 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: ToolTip и GIF
« Ответ #15 : 25-05-2020, 14:42:41 »
Это надо будет со своим плагином таскать эту библиотеку? - Я так не хочу

Можешь попробовать реализовать через Bitmap
http://losev-al.blogspot.com/2013/02/gif-wpf.html

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #16 : 25-05-2020, 17:51:46 »
Решение с wmv видео отличное, так как соотношение качество/размер лучше чем у gif  :) Жаль, что нигде нет информации, либо я не нашёл, что надо скармливать wmv.

Это надо будет со своим плагином таскать эту библиотеку? - Я так не хочу

Можешь попробовать реализовать через Bitmap
http://losev-al.blogspot.com/2013/02/gif-wpf.html
Спасибо, я пробовал, у меня не получилось.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #17 : 25-05-2020, 19:03:02 »
Жаль, что нигде нет информации, либо я не нашёл, что надо скармливать wmv.
Я тоже не нашел. Просто сработала интуиция. Вообще же AdWindows.dll - по большей части недокументированная сборка.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: ToolTip и GIF
« Ответ #18 : 26-05-2020, 12:33:19 »
Спасибо, я пробовал, у меня не получилось.
А что конкретно не получилось?

...собственно решение Александра проще и лучше,
но в AutoCAD 2010 нет свойства ExpandedVideo у RibbonToolTip, только ExpandedImage

Удалось реализовать в AutoCAD2010, немного подправив код Александра и используя ссылки:
http://losev-al.blogspot.com/2013/02/gif-wpf.html
https://adndevblog.typepad.com/autocad/2012/06/use-thread-for-background-processing.html

Кто-нибудь знает, есть ли лучше решение, чем использовать System.Windows.Forms.Control для выполнения в основном потоке?

...ну и собственно код
//add:
//PresentationCore.dll
//WindowsBase.dll
//AdWindows.dll
//System.Drawing.dll
//System.Windows.Forms.dll

Код - C# [Выбрать]
  1. using System.Windows;
  2. using System.Windows.Forms;
  3. using System.Windows.Interop;
  4. using System.Windows.Media.Imaging;
  5.  
  6. public class ButtonCmdHandler : System.Windows.Input.ICommand
  7.         {
  8.                 public bool CanExecute( object parameter )
  9.                 {
  10.                         return true;
  11.                 }
  12.                 public event EventHandler CanExecuteChanged;
  13.                 public void Execute( object parameter )
  14.                 {
  15.                 }
  16.         }
  17.  
  18.  
  19.        
  20.         class Commands
  21.         {
  22.                 string gifFile = @"C:\Temp\GIF\cat.gif";
  23.                 System.Drawing.Bitmap _bitmap;
  24.                 BitmapSource _source;
  25.                 static System.Windows.Forms.Control syncCtrl;
  26.                 delegate void FinishedProcessingDelegate();
  27.  
  28.                 RibbonToolTip _toolTip_1;
  29.  
  30.  
  31.                 private BitmapSource BitmapToBitmapSource( System.Drawing.Bitmap bitmap )
  32.                 {
  33.                         return Imaging.CreateBitmapSourceFromHBitmap( bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions() );
  34.                 }
  35.  
  36.  
  37.                 private void OnFrameChanged( object sender, EventArgs e )
  38.                 {
  39.                         if (syncCtrl.InvokeRequired)
  40.                                 syncCtrl.Invoke( new FinishedProcessingDelegate( FinishedProcessing ) );
  41.                         else FinishedProcessing();
  42.                 }
  43.  
  44.  
  45.                 void FinishedProcessing()
  46.                 {
  47.                         System.Drawing.ImageAnimator.UpdateFrames();
  48.                         _source = BitmapToBitmapSource( _bitmap );
  49.                         _toolTip_1.ExpandedImage = _source;
  50.                 }
  51.  
  52.  
  53.                
  54.  
  55.                 [CommandMethod( "TEST" )]
  56.                 public void CreateTab()
  57.                 {
  58.                         syncCtrl = new Control();
  59.                         syncCtrl.CreateControl();
  60.  
  61.                         _bitmap = new System.Drawing.Bitmap( gifFile ); //tenor.gif
  62.                         System.Drawing.ImageAnimator.Animate( _bitmap, OnFrameChanged );
  63.  
  64.                         RibbonControl ribbonControl = ComponentManager.Ribbon; // RibbonServices.RibbonPaletteSet.RibbonControl;
  65.  
  66.                         RibbonTab ribbonTab = new RibbonTab
  67.                         {
  68.                                 Title = "Test",
  69.                                 Name = "Test_Tab",
  70.                                 Id = "TEST_ID"
  71.                         };
  72.                         ribbonControl.Tabs.Add( ribbonTab );
  73.  
  74.                         RibbonPanelSource panelSourceDocument = new RibbonPanelSource
  75.                         {
  76.                                 Title = "Test",
  77.                                 Id = "ID_SrcPanel"
  78.                         };
  79.                         RibbonPanel panelDocument = new RibbonPanel
  80.                         {
  81.                                 Source = panelSourceDocument
  82.                         };
  83.                         ribbonTab.Panels.Add( panelDocument );
  84.  
  85.                         _toolTip_1 = new RibbonToolTip
  86.                         {
  87.                                 Title = "Этто кнопка 1",
  88.                                 Content = "Это моя подсказка",
  89.                                 ExpandedContent = "GIF-видео из внешнего файла",
  90.                                 ExpandedImage = _source //ExpandedVideo = new Uri( "X:/x.wmv" )
  91.                         };
  92.  
  93.                         RibbonButton button = new RibbonButton
  94.                         {
  95.                                 Text = "Кнопка 1",
  96.                                 Height = 16,
  97.                                 ToolTip = _toolTip_1,
  98.                                 CommandHandler = new ButtonCmdHandler()
  99.                         };
  100.  
  101.                         RibbonRowPanel ribbonRow = new RibbonRowPanel();
  102.                         ribbonRow.Items.Add( button );
  103.                         panelSourceDocument.Items.Add( ribbonRow );
  104.  
  105.                         ribbonTab.IsActive = true;
  106.                         button.IsActive = true;
  107.                 }
  108. }

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: ToolTip и GIF
« Ответ #19 : 26-05-2020, 19:43:02 »
Да, всё делается программно, так как в примере простой вариант ленты, а так у меня лента со всякой автоматизацией, которая например отслеживает состояние чертежа. Такая реализация чем-то плоха?
Я в этом вижу такие минусы:
- Больше работы по написанию кода.
- Если что-то нужно изменить - надо лезть в код, вносить изменения и пересобирать всю dll.
- Пользователь не сможет изменить настройки элементов на ленте так, как ему удобно, через инструменты адаптации интерфейса.
Я своё решение по анимированным подсказкам делал для использования со вкладкой ленты, описанной в CUIX файле. При этом, гифки размещаются в dll в виде ресурсов и не требуют указания пути к файлу в настройках ленты.

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #20 : 27-05-2020, 10:42:18 »
А что конкретно не получилось?
У меня в лоб не получилось повторить пример из ссылки, не компилировался проект, поэтому я не стал особо углубляться в тему, а искал другие варианты. Но я смотрю Вы существенно поменяли код в примере, особенно то место, в котором мне VS не давал компилировать.

Пользователь не сможет изменить настройки элементов на ленте так, как ему удобно, через инструменты адаптации интерфейса.

В CUIX файле можно описать логику взаимодействия, например ComboBox, ToggleButton и записи в NOD чертежа?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: ToolTip и GIF
« Ответ #21 : 27-05-2020, 12:25:02 »
В CUIX файле можно описать логику взаимодействия, например ComboBox, ToggleButton и записи в NOD чертежа?
В CUIX в принципе не может быть никакой логики. Только описание элементов интерфейса. Вся логика - в коде приложения. Приложение может найти элемент управления на ленте по его уникальному Id, управлять им, отслеживать его изменения. И приложение же выполняет действия с чертежом, включая записи в NOD.
P.S. Хотя нет, вру. В CUIX может быть логика в виде LISP и DIESEL кода.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: ToolTip и GIF
« Ответ #22 : 27-05-2020, 13:28:46 »
P.S. Хотя нет, вру. В CUIX может быть логика в виде LISP и DIESEL кода.
Если быть еще точнее, то в CUIX файле может быть что угодно, это контейнер, zip архив. И в теории, можно туда поместить cвои dll и автоматом их подгружать используя *.mnl файл.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: ToolTip и GIF
« Ответ #23 : 27-05-2020, 13:31:23 »
И в теории, можно туда поместить cвои dll и автоматом их подгружать используя *.mnl файл.
Хм. А как ты их оттуда собираешься вытаскивать?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Re: ToolTip и GIF
« Ответ #24 : 27-05-2020, 13:37:51 »
В CUIX файле можно описать логику взаимодействия, например ComboBox, ToggleButton и записи в NOD чертежа?
В CUIX в принципе не может быть никакой логики. Только описание элементов интерфейса. Вся логика - в коде приложения. Приложение может найти элемент управления на ленте по его уникальному Id, управлять им, отслеживать его изменения. И приложение же выполняет действия с чертежом, включая записи в NOD.
P.S. Хотя нет, вру. В CUIX может быть логика в виде LISP и DIESEL кода.

Если быть еще точнее, то в CUIX файле может быть что угодно, это контейнер, zip архив. И в теории, можно туда поместить cвои dll и автоматом их подгружать используя *.mnl файл.
Как я понимаю ничего критичного нет. Перечисленные Дмитрием минусы для меня не существенны, писать интерфейсы кодом я приучился ещё со времён Mel, а если надо будет переделать закладку, то смогу переделать за несколько минут. Ну, а пользователь обойдётся без настроек, пока что  8)
Кстати, у кого-то есть статистика, хотя бы по своим организациям, сколько % из пользователей кастомизируют интерфейс?

PS И вообще хотел бы выразить благодарность всем отписавшимся за интересную информацию для размышлений.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: ToolTip и GIF
« Ответ #25 : 27-05-2020, 14:03:00 »
Хм. А как ты их оттуда собираешься вытаскивать?
Ну я написал что в теории. Пробовать пока не собирался.

Если решать в лоб, через лисп в mnl можно вызывать системную команду для разархивирования cuix, например так:
(startapp "путь к программу с ЕХЕ" "аргументы") //https://forum.dwg.ru/showthread.php?t=6459
или так
(vlax-invoke (vlax-get-or-create-object "wscript.shell") "run" "notepad.exe" 1 T) //https://forum.dwg.ru/showthread.php?t=71267

и выполнить, что-то типа WshShell.Exec("cmd.exe /c rar.exe x C:\Temp\arhiv.rar") //https://www.cyberforum.ru/vbscript-wsh/thread593358.html
а затем из папки (command "netload" ....)
..с виду не  сложно найти и реализовать.

Если не прокатит, то можно написать dll с командой для автокада, либо внешний exe, vbs, т.е. через "костыли"

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: ToolTip и GIF
« Ответ #26 : 27-05-2020, 14:43:36 »
Кстати, у кого-то есть статистика, хотя бы по своим организациям, сколько % из пользователей кастомизируют интерфейс?
Статистики не веду, примерно так:
Более 100 человек
3/4 используют интерфейс предоставленный ОИТ.  1/4 любят кастомизировать.
Из тех и тех пользователей примерно 50% используют ленту, другие 50% панели.