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

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

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

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

DesignЯR

Цитироватькруто было бы чтобы была возможность добавления горячих клавиш

ЦитироватьЕще бы быстрые клавиши были и тогда цены бы ей небыло.


А чем не устраивают горячие клавиши в самом компасе? Или надо всё через костыли делать?

Может просто из проги прописывать в файл "C:\Users\ИМЯПОЛЬЗОВАТЕЛЯ\AppData\Roaming\ASCON\KOMPAS-3D\18\UI_Shortcuts.config" сочетания клавиш? это обычный xml документ.

Цитироватьможет вы дадите ответ по поводу команды СКРЫТЬ , при втором клике на детали , реально очень нужна это команда. очень часто использую

А чем не устраивает нажатие на "глазик" рядом с деталью - одного нажатия достаточно.

plscomeback

может потому что его нужно найти в дереве и кликнуть, а когда у тебя больше 100 деталей это не гуд и дерево уезжает к тому объекту и потом мне нужно искать который мне нужен первоначально? или мне просто не нравится нажимать лишний раз второй клавишей и вести на слово скрыть... и еще не с первого раза бывает меню открывается правильное, не знаю с чем это связано. А потом вообще не понятно что делать, когда ты скрыл деталь, как ее найти в дереве... если их больше 100, так как великий аскон сделал гениальный поиск, в котором ты выбираешь объект и поиск отменяется...

Вират Лакх

27.12.18, 03:45:55 #102 Последнее редактирование: 27.12.18, 04:43:30 от Вират Лакх
Цитата: Andreych от 26.12.18, 22:16:12
1. Сделал проверку запуска Компаса при каждом вызове команды, так что теперь не нужно перезапускать программу при перезапуске Компаса.
2. Вы имеете в виду уменьшенную строку заголовка? Я думаю она нужна, т.к. если нельзя будет перемещать окно в режиме без заголовка, то это вообще не дело.
3. Добавил команды, которые Вы писали в другой ветке. За это спасибо!
С этим связано изменение номеров команд библиотек. Я предполагал, что команды Компаса имеют коды до 50000, но оказалось, что есть и 57670. Поэтому команды библиотек теперь должны начинаться с числа 60000, а не 50000, как было раньше. Если команды библиотек уже назначены на кнопки, то можно их и не менять, тогда просто не вызовутся обычные команды Компаса с кодами выше 50000.

1. А каждый раз проверять компас не скажется на быстродействии? Давайте лучше так: если при запуске команды она не включилась или вообще ошибка обращения, то проверять, запущен ли компас, и переподключаться, если он запущен другой. Типа того: try: ExecuteKompasCommand; except: подключение к компасу.
В общем, я не согласен на постоянную проверку компаса, а только в случае ошибок или если успех запуска команды вернул False, или команда недоступна по функции из СДК IsKompasCommandEnable.
2. Мне она тоже очень не нравится. Очередной раз предлагаю её уменьшить до одного пикселя. Так тоже можно будет таскать окно. Браться за любое место, а потом мышь съедет на этот пиксель.
3. А давайте номера для библиотек не в сторону увеличения сделаем, а наоборот. На порядок или два меньше. Тогда новые команды новых компасов никогда не наедут на наши эти библиотечные номера.

Andreych

Цитата: plscomeback от 26.12.18, 22:52:49
может вы дадите ответ по поводу команды СКРЫТЬ , при втором клике на детали , реально очень нужна это команда. очень часто использую


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

Andreych

Может быть в самом деле сделать назначение клавиш для Компаса из этой программы. Подумаю.
Кстати, номер нужной команды можно узнать, назначив для нее из Компаса горячую клавишу, а потом посмотрев ее в файле UI_Shortcuts.config. Ну и добавить вручную в файл KompasCommands.txt.

Вират Лакх

Цитата: plscomeback от 26.12.18, 22:52:49
может вы дадите ответ по поводу команды СКРЫТЬ , при втором клике на детали , реально очень нужна это команда. очень часто использую

Я номер команды Скрыть в СДК сходу не нашел.
Если так сильно надо, то можно заказать макрос, который затем поставить на утилиту на панели. Или в панель задач windows. Или еще куда-нибудь. Типа выделяем в дереве тело или компонент или прямо в пространстве на грань, ребро, вершину тела или компонента и запускаем макрос.

Andreych

Цитата: Вират Лакх от 27.12.18, 03:45:55
1. А каждый раз проверять компас не скажется на быстродействии? Давайте лучше так: если при запуске команды она не включилась или вообще ошибка обращения, то проверять, запущен ли компас, и переподключаться, если он запущен другой. Типа того: try: ExecuteKompasCommand; except: подключение к компасу.
В общем, я не согласен на постоянную проверку компаса, а только в случае ошибок или если успех запуска команды вернул False, или команда недоступна по функции из СДК IsKompasCommandEnable.
2. Мне она тоже очень не нравится. Очередной раз предлагаю её уменьшить до одного пикселя. Так тоже можно будет таскать окно. Браться за любое место, а потом мышь съедет на этот пиксель.
3. А давайте номера для библиотек не в сторону увеличения сделаем, а наоборот. На порядок или два меньше. Тогда новые команды новых компасов никогда не наедут на наши эти библиотечные номера.


1. Я никаких приторможений не заметил. Кнопка же нажимается не так часто, чтобы перегрузить систему. Да и к тому же, не создается же новый объект Компаса, а просто проверяется, есть ли он уже, это не долго.
2. На мой взгляд, наоборот, строка заголовка добавляет красоты. Да и таксать окно значительно легче, чем найти пустое место на панели, за него мышкой потянуть до верха, чтобы задейстовать перетаскивание. У меня все время цепляется вся панель и открепляется или перемещается. Можно подумать об отдельной настройке высоты этого заголовка в файле KompasToolbar.ini в виде кол-ва пикселей (вручную разумеется).
3. Да, сейчас запаса по номерам команд почти нет. Может лучше номера команд библиотек сразу начинать с 100000 (6значное число чтобы было). Делать номера команд библиотек на порядок меньше, чем обычных, не хорошо, т.к. если будет добавлено много библиотек, то номеров команд может не хватить. Обычные команды Компаса начинаются не с 10000, например есть номер команды 2415 (показать все), наверняка и меньше есть. Можно добавить номер команды типа 2415 в KompasCommands.txt и посмотреть как работает, можно поисследовать какие еще существуют.

Sabahs

Сразу нашёл.

Вират Лакх

1. Тем не менее заставляем делать лишние вещи. А я предлагаю делать проверку только в случае None, False, except и т.д. В идеале, мне кажется, так грамотнее.
2. А не нужно искать пустое место. Я прям на любую кнопку зажимаю лкм, веду до верха - и включается перемещение. С первого раза все нормально. Можно и настройку, конечно. И не только сверху.
3. Тогда другой вариант. Сделать число библиотечной команды дробным. Типа того: 1,123, где до запятой (или точки, смотря что является разделителем) - номер библиотеки; после запятой - номер её команды. Или просто составным нечисловым через тире и всё, что угодно.
4. Я всё-таки не вдупляю, где сообщения, что команда неактивна, не может быть запущена и т.д.? Если я в 3Д запускаю отрезок из 2Д, то предлагаю выдавать MessageBoxEx
Цитата: Sabahs от 27.12.18, 07:08:53
Сразу нашёл.

Этот раздел я тоже видел. И где среди них скрыть компонент или тело?

Sabahs

Можно просто инвертировать свойство IModelObject.Hidden у всех выделенных объектов активного документа, необязательно тыкать номером команды.

Вират Лакх

Это уже библиотека или макрос. Кстати, если ничего не выделено, то можно всем объектам текущей сборки включить отображение.

Sabahs

Если ничего не выделено, менеджер селектированных объектов вернёт пустой массив.

Andreych

Нее, ребята, пусть это останется вне области данной программы. Мы тут запускаем команду по ее номеру, вглубь компасовских объектов не лезем :)

Вират Лакх

Разумеется. Это мы тут оффтопим про будущую программу, а не эту.

ТрындецЪ

Цитата: Andreych от 27.12.18, 07:01:14
2. На мой взгляд, наоборот, строка заголовка добавляет красоты. Да и таскать окно значительно легче, чем найти пустое место на панели, за него мышкой потянуть до верха, чтобы задействовать перетаскивание.... Можно подумать об отдельной настройке высоты этого заголовка в файле KompasToolbar.ini в виде кол-ва пикселей (вручную разумеется).

Надеюсь, если настройка будет реализована, то высота в 0 пикселей тоже будет.

Lotos82

Цитата: DesignЯR от 26.12.18, 23:05:28
А чем не устраивают горячие клавиши в самом компасе? Или надо всё через костыли делать?

Тем что не  на все команды компаса есть возможность назначить горячие клавиши. Например, есть только на вызов окна "Ориентация" и нет на отдельные виды "Слева", "Справа", и.т.д.
Может автор сделает когда-то возможность назначения горячих клавиш для команд панели.

Lotos82

Цитата: plscomeback от 26.12.18, 13:40:03
попробуй
11913 Сверху
11914 Снизу
11915 Слева
11916 Справа

Не работает (

Andreych

Цитата: ТрындецЪ от 27.12.18, 08:51:28
Надеюсь, если настройка будет реализована, то высота в 0 пикселей тоже будет.


Да, это я сделал, и 0 и 1 можно поставить. Еще несколько изменений есть. Ну и пробую пока назначение горячих клавиш.
Как сделаю в каком-то виде назначение клавиш, так выложу.

Andreych

Версия 2.1
1. В списке иконок те из них, которые уже связаны с командами, отмечены символами ©©.
2. Добавлена кнопка Синхронизация. При ее включении при выборе строки в списке иконок или команд происходит переход к связанной команде или иконке в другом списке.
3. Для режима без заголовка окна появилась ручная настройка ширины полосы над кнопками (в пикселях).
В файле KompasToolbar.ini за это отвечает строка PanelTitle_Height=5. По умолчанию значение 5 пикселей, можно указать 10, 1, 0 или другое число.
4. В списке команд в режиме редактирования можно нажать Ctrl+Enter, чтобы отредактировать выделенную строку. Например, если надо протестировать команду номер 5678, можно не изменять и не импортировать потом файл KompasCommands.txt, а просто отредактировать какую-то строку из имеющихся.
Если список изменился, то цвет фона станет серым.
5. В тестовых целях добавил появляющийся справа список горячих клавиш, заданных в Компасе.
В текстовом поле надо ввести букву или название клавиш типа F1-F12, Del, Space и т.д., указать галки Shift, Ctrl...
Не знаю точно как надо для Компаса писать - Ins или Insert, Del или Delete, как сочетается с NumPad - надо просто пробовать. Если такое сочетание уже назначено, то появится сообщение.
Любую строку также можно подредактировать через Ctrl+Enter или удалить через Ctrl+Del.
При включенной кнопке Синхронизация для текущей строки в списке команд выделяется соотв. команда, если она есть.

Однако, добавление горячих клавиш в Компас толком не работает. Вот такие моменты возникают:.
1. Надо сохранять список клавиш, когда Компас уже закрыт, иначе при закрытии Компаса он перезаписывает свой файл горячих клавиш и наши изменения пропадают. Как добавлять горячие клавиши непосредственно в Компас, а не в файл UI_Shortcuts.config, я не знаю.
2. Например, назначаем команде "10005 Отрезок" горячую клавишу Ctrl+M, сохраняем. Запускаем Компас, но это не работает, т.к. похоже для горячих клавиш не действуют коды типа 10005. Если назначить Ctrl+M для отрезка из Компаса, то в файле UI_Shortcuts.config видим код команды 5819. Причем если этот номер 5819 добавить в список команд и оттуда вызывать, то он работает точно так же, как и 10005, оба кода вызывают команду Отрезок. Где брать эти рабочие альтернативные коды команд - я не знаю.

Вират Лакх

4. А может для испытания номера сделать отдельное поле ввода где-нибудь в строке статуса? Туда номер вводим и жмём enter. Так будет быстрее и много места не займёт.
5. А если пойти другим путём? Предлагаю рассмотреть возможность сделать эту программу из exe в rtw или dll ActiveX.
Тогда, может быть, уйдет проблема с фокусом. Кроме этого, не нужно будет запускать эту программу отдельно и проверять перед запуском каждой команды прицепленность её к компасу.