Пользовательская панель инструментов

Автор Andreych, 07.12.18, 22:26:51

« предыдущая - следующая »

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

ТрындецЪ

Вот немного поприсваивал иконки командам.
Надеюсь в будущих версиях номера иконок не изменятся.
Нужна ещё софтина, которая будет из нескольких файлов KompasCommands недостающие номера иконок собирать... Не в ручную же править всё.

kastus

Многоуважаемый ТРЫНДЕЦЪ!
А нельзя из строительной конф. вытянуть команды? Сам не нашёл файла.

ТрындецЪ

Цитата: kastus от 12.12.18, 16:17:55
Многоуважаемый ТРЫНДЕЦЪ!
А нельзя из строительной конф. вытянуть команды? Сам не нашёл файла.

Не менее увыжаемый kastus, у меня она даже не установлена.
Как я понимаю, строительная конфигурация-это набор дополнительных библиотек. Нужно искать файлы установленной библиотеки и ковырять их. Как команды выковыривать я не знаю. Andreych нам только про иконки поведал.

Вират Лакх

Цитата: ТрындецЪ от 12.12.18, 16:22:38
Andreych нам только про иконки поведал.

Не только про иконки. См. Ответ 11 данной темы.

ТрындецЪ

Цитата: Вират Лакх от 12.12.18, 17:31:36
Не только про иконки. См. Ответ 11 данной темы.

Благодарю! Что-то я пропустил этот момент.

kastus

Ладно, может доведёте панель до ума, тогда у гуру поспрашиваю по поводу Строительства...
Где там команды.
Спасибо за оказанное внимание!

ТрындецЪ

Цитата: kastus от 12.12.18, 18:52:12
Ладно, может доведёте панель до ума, тогда у гуру поспрашиваю по поводу Строительства...
Где там команды.

В вапке Libs поищите запросом ".xml" Там много файлов выдаёт от разных библиотек. Вам какие вообще команды/библиотеки нужны? Хотя бы несколько примеров.

Andreych


Вират Лакх

13.12.18, 03:36:48 #48 Последнее редактирование: 13.12.18, 05:23:35 от Вират Лакх
Цитата: ТрындецЪ от 12.12.18, 15:40:27
Нужна ещё софтина, которая будет из нескольких файлов KompasCommands недостающие номера иконок собирать... Не в ручную же править всё.

Софтина очень простая в виде макроса может быть написана Вами, ТрындецЪ, на основе процедуры обработки файла graphic.dns из программы Обозначение компонентов. Открываем два текстовых файла с командами для записи. И считываем построчно каждый, сравнивая содержимое строк. Там, где в первой есть вертикальная палка, а во второй - нет, пишем строку во второй файл из первого. И наоборот. Получается синхронизация - два одинаковых файла.

По версии 1.4. Помимо предыдущих пунктов:
11) Рядом с кнопкой закрыть программу можно сделать кнопку свернуть в панель задач? А то при переключении на другую программу панель остается висеть на экране и мешает. А еще круче было бы определять, есть ли на компасе фокус. Если есть, то отображаться, если нет - скрываться. Если в апи нет такого (что наиболее вероятно), то может пробовать обходные пути - доступность команд и т.д.?
12) Предлагаю добавить: IsKompasCommandEnable - Проверить доступность выполнения команды. Если команда недоступна, то при нажатии на кнопку или списке: MessageBoxEx - Выдать всплывающее сообщение об этом. Или другой вариант, если он не затормозит программу или компас: проверить команды, которые находятся в панельках. Те, которые нельзя запустить, сделать неактивными кнопки. Тут тогда придется подписываться на события переключения документа... В общем, лучше первый вариант. А то жмешь на неё, а она как рыба об лёд.
13) Ширины списка иконок не хватает при больших значках.
14) При скрытии заголовка окна снизу и сверху оставляйте не больше одного пикселя. А лучше ТОЛЬКО СВЕРХУ. Можно ткнуть в любое место на панели, а потом, когда мышь дойдет до этого края, тогда панель потащится. А сейчас топорово выглядит с такими широкими полями.
15) Может автоподгонку окна под панели, скажем, при даблклике по пустому полю? Блин, ЛКМх2 уже занят.
16) Не надо при запуске программы с нуля отображать списки. Тем более при отключенной кнопке настроек. Пользователь поди уж сам запустит настройку.
17) Очень криво работает скрытие рамки окна при отключенных списках. При включении настроек списки после скрытия пустые. Проверьте на горизонтальном и вертикальном расположении панелек.
Пока хватит на этом.

Andreych

Да, софтину ту сделать будет не сложно.

11. Кнопки свернуть и развернуть я убрал, т.к. с ними  при  вертикальном расположении панели окно не может уменьшиться до ширины панели и остается часть списка. Свернуть то можно элементарно - нажатием на панели задач Windows. Отслеживать постоянно фокус Компаса - это сложно.
12. IsKompasCommandEnable задействована при каждом нажатии на кнопку. Если false, то о недоступности команды пишется в заголовке окна. Кнопкам следить за состоянием Компаса тоже сложновато.
13. У меня дома хватает ширины. Щас пришел на работу - тут не хватает. Ок, увеличу.
14,17. Скрытие заголовка окна - это большая проблема. Там я не могу точно определять размер окна, постоянно то лишняя ширина/высота, то ее не хватает. Уже 2 дня бьюсь над этим - не получается. Поэтому я уже решил оставить эту идею, пусть пользователь вручную подгоняет окно под размеры панели, если хочет скрыть заголовок. К тому же при загрузке программы нельзя подогнать размеры окна так, как было до закрытии окна. От этого при открытии программы в режиме без заголовка ширины/высоты окна не хватает. Изменение размеров окна просто недоступно до полного отображения окна. Я уже с этим смирился.
16. При первом запуске (когда еще нет файла ini) будет видно все, и это нормально. Как настроите окно под Ваши предпочтения, настройки сохранятся и окно будет открываться без списка.

Вират Лакх

12. Чо та не заметил. Кроме этого, мы же заголовок скрывать можем. Лучше мессагебоксом.
14. Ок, пусть вручную. Но автоматом при скрытии не больше одного пикселя сверху.
16. Тогда это должен быть полноценный режим настройки с нажатой кнопкой настроек и т.д. при запуске с нуля.

DesignЯR

ЦитироватьЛадно, может доведёте панель до ума, тогда у гуру поспрашиваю по поводу Строительства...
Где там команды.

ЦитироватьВ вапке Libs поищите запросом ".xml" Там много файлов выдаёт от разных библиотек. Вам какие вообще команды/библиотеки нужны? Хотя бы несколько примеров.

Команды библиотек вызываются не так как стандартные команды при помощи пяти цифр. Там будет поинтереснее. Вот код для получения списка всех команд всех библиотек в отдельный текстовый файл. Во вложении результат работы кода
public static void GetLibraries()
        {
            string writePath = @"D:\LibrariesInfo.txt";
            string text = "Библиотеки и их процедуры";
            IApplication Application = (IApplication)Kompas.Instance.KompasObject.ksGetApplication7();
            ILibraryManager LibraryManager = Application.LibraryManager;
            IProceduresLibraries ProceduresLibraries = LibraryManager.ProceduresLibraries;
            int ProceduresLibrariesCount = ProceduresLibraries.Count;
            ILibrary Library;
            IProceduresLibrary ProceduresLibrary;
            IProcedures Procedures;
            IProcedure Procedure;
           
            using (StreamWriter sw = new StreamWriter(writePath, true, System.Text.Encoding.Default))
            {
                sw.WriteLine(text);
                sw.WriteLine("Подключено библиотек "+ ProceduresLibrariesCount.ToString());
                for (int l=0;l< ProceduresLibrariesCount; l++)
                {
                    Library = ProceduresLibraries[l];
                   
                    sw.WriteLine("");
                    sw.WriteLine("//---------------------------//");
                    sw.WriteLine("Library.Name="+Library.Name);
                    sw.WriteLine("Library.PathName=" + Library.PathName);
                    ProceduresLibrary = ProceduresLibraries[l];
                    Procedures = ProceduresLibrary.Procedures;
                    sw.WriteLine("ProceduresLibrary.Name=" + ProceduresLibrary.Name);
                    sw.WriteLine("ProceduresLibrary.Name=" + ProceduresLibrary.LibraryName);
                    sw.WriteLine("Procedures.Count=" + Procedures.Count);
                    for (int p=0;p< Procedures.Count; p++)
                    {
                        Procedure = Procedures[p];
                        sw.WriteLine("Procedure.Name=" + Procedure.Name);
                        sw.WriteLine("Procedure.Id=" + Procedure.Id);
                       
                    }
                }
            }
        }

kastus

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

Andreych

Цитата: DesignЯR от 13.12.18, 08:46:46
Команды библиотек вызываются не так как стандартные команды при помощи пяти цифр. Там будет поинтереснее.


А соответствующие командам иконки там случайно нельзя заодно выудить в виде отдельных файлов?

Andreych

Цитата: ТрындецЪ от 12.12.18, 15:40:27
Вот немного поприсваивал иконки командам.
Надеюсь в будущих версиях номера иконок не изменятся.
Нужна ещё софтина, которая будет из нескольких файлов KompasCommands недостающие номера иконок собирать... Не в ручную же править всё.


Функцию импорта индексов иконок из внешнего файла я сделал. Покажу в след. версии программы.

СВ

 А вот эти ГЛАВНЫЕ кнопки можно вынести на панель? В смысле - вынести те кнопки, которые находятся в раскрывающемся списке.

DesignЯR

ЦитироватьА соответствующие командам иконки там случайно нельзя заодно выудить в виде отдельных файлов?

Вот тут поищите - их там много
KOMPAS-3D v17\Libs\Floorplan\Sys\AsAr\SubCommand

Andreych

Цитата: СВ от 13.12.18, 12:36:30
А вот эти ГЛАВНЫЕ кнопки можно вынести на панель? В смысле - вынести те кнопки, которые находятся в раскрывающемся списке.


Это я не знаю как вынести.

Andreych

Исправленная и дополненная версия. С режимом без заголовка действительно были проблемы. Сейчас я убрал свои попытки подогнать размер окна под размеры панели.
Добавил возможность добавить номера иконок из внешнего файла. Но строки с командами должны идти точно в том порядке, как в программе. Т.к. сравнивается просто n-я строка в программе и  та же n-я строка в внешнем файле.
И теперь можно добавить в общий список свои иконки. Пути к ним сохраняются в файле ini. Если захочется какие-то из них удалить, то это надо будет делать вручную в файле ini.
Добавил еще 1 пустую панель с кнопками, а то 20 кнопок может не всем хватить, а добавление кнопок так и не работает толком, точнее, не сохраняются новые кнопки.

KompasToolbar v1.5
https://www74.zippyshare.com/v/lQArK9pK/file.html

VladAV

Здравствуйте.

Есть же нормальные файлообменники, типа
https://my-files.ru/
http://файлообменник.рф
http://rgho.st/

С этого скачать невозможно.