Перейти к публикации

Возможно ли в UG присваивать быстрые клавиши?


Sergei K

Рекомендованные сообщения

Никто не знает, как в ЮГ присваивать быстрые клавиши функциям, и возможно ли это вообще. Может их можно прописывать в каком-то файле настроек или же нужно програмку написать, мне бы помогла любая информация, может кто-нибудь видел информацию на буржуйских форумах? Мне всего-то пока требуется присвоить клавишам alt+н zoom -50% и alt+w zoom окном (за 5 лет работы в CADKEY рефлексы выработались).

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...


niki

Благодаря подсказке FFF c этого форума с клавишами вроде разобрался. Оказалось что они настраиваются в файлах *.men в каталоге UGII\menus

(фрагмент:

BUTTON UG_FILE_NEW

LABEL &New...

ACCELERATOR Ctrl+N

ACTIONS STANDARD)

Непонятным осталось как задействовать цифровые клавиши на numpade.

И хотелось бы еще присваивать одну клавишу а не в паре с alt,ctrl,shift, может это както можно сделать?

Есть еще вопросы по драфтингу:

Возможно ли

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

название файла части и вставлял в штамп,а также писал путь к файлу?

Ссылка на сообщение
Поделиться на других сайтах

И хотелось бы еще присваивать одну клавишу а не в паре с alt,ctrl,shift, может это както можно сделать?

Тогда опция, назначенная этой клавише, может активизироваться в самый нежелательный момент, при заполнении того же штампа, например.
Ссылка на сообщение
Поделиться на других сайтах

Aleksandr

Ну это не совсем так в Cadkey можно присваивать одну клавишу без проблем у меня пол клавиатуры так настроено при вводе текста эти команды игнорируются.

Ссылка на сообщение
Поделиться на других сайтах

Предлагается следующий кусочек кода для создания аттрибутов Времени и ИмениФайла

Если кто нить найдёт ошибки - пажалста поправьте!

Тестировалось под UGSNX1

// *** Не стреляйте в программиста --- он кодит как умеет :gun_guns:

собирать с _AFXDLL

// *** cut here

#include <strstream>

#include <iostream>

#include <algorithm>

#include <afx.h>

#include <uf.h>

#include <ug_session.hxx>

#include <ug_exception.hxx>

#include <ug_part.hxx>

#include <uf_ui.h>

#include <uf_exit.h>

#include <ug_info_window.hxx>

using namespace std;

extern DllExport void ufusr( char *parm, int *returnCode, int rlen )

{

try

{

// init ugopen

UgSession::initialize();

// ask work part

UgPart *prt = UgSession::getWorkPart();

// our attributes and stream to get formatted time

string date_attr = "DATE_OF_CHANGE";

string part_name = "PART_NAME";

strstream str;

// get current time

CTime time = CTime::GetCurrentTime();

int year, month, day, hour, min;

year = time.GetYear();

month = time.GetMonth();

day = time.GetDay();

hour = time.GetHour();

min = time.GetMinute();

// pump time into str stream

if (day < 10) str<<"0"<<day<<".";

else str<<day<<".";

if (month < 10 ) str<<"0"<<month<<".";

else str<<month<<".";

str<<year<<" ";

if ( hour < 10 ) str<<"0"<<hour<<":";

else str<<hour<<":";

if (min < 10 ) str<<"0"<<min<<ends;

else str<<min<<ends;

// try to find if our part already has our attributes

// if it doesnt - create them

// else - update them

vector <string> part_attributes = prt->askStringAttributeTitles();

vector <string> ::iterator it;

it = find(part_attributes.begin(), part_attributes.end(), part_name);

if ( it == part_attributes.end()) prt->addStringAttribute(part_name, prt->getFullName().c_str());

else prt->setStringAttributeValue(part_name, prt->getFullName().c_str());

it = find(part_attributes.begin(), part_attributes.end(), date_attr);

if ( it == part_attributes.end()) prt->addStringAttribute(date_attr, str.str());

else prt->setStringAttributeValue(date_attr, str.str());

}

catch (...)

{

UF_UI_display_nonmodal_msg("ERROR", "ERROR", UF_UI_MSG_POS_CURSOR);

}

}

// *** cut here

Ссылка на сообщение
Поделиться на других сайтах

2 Sergei.

На KBE-ях не получилось -- методов не хватило! Пришлось - на сях писать!

Предисловие:

1. Ставим Microsoft Visual Studio 6

2. Находим, где сидят WizardFiles - *.awx - это в "%MSDevDir%\Bin\IDE"

3. Копируем туда файл %UGII_BASE_DIR%\ugopen\UgOpen_v19.awx

Теперь при создании нового проекта в VisualC++ у нас есть возможность выбора проекта под UG.

2. Открываем VisualC++. и ... создаем новый проект под UG. (есессно в пути русских букывок не должно быть - а то не запустится).

2,1 При создании проекта можно все оставить по дефолту в Wizarde - если интересно - могу рассказать какая педалька за что отвечает.

3. ЕСЛИ У ВАС УСТАНОВЛЕН ОДИН UG - ТО в настройках проекта в принципе ничего менять не надо , если несколько - то жмем в

3,1 Project -> Settings

3.2 Выбираем Settings For: All Configurations.

3.3 Идем во вкладку C/C++ ; Category -> Preprocessor; и в поле Additional Include Libraries надо прописать полный путь к двум папкам ugopen и ugopenpp без использования переменных.

3,4 Идем во вкладку Link ; Category -> input; и в поле Additional Library Path надо прописать полный путь к двум папкам ugopen и ugopenpp без использования переменных.

3.5 Если используются самописные UG-овые диалоги то в поле Object/Library Modules должны быть libopenintpp.lib libopenpp.lib libufun.lib libugopenint.lib libvmathpp.lib - когда UG создает проект,

какая-то из этих Lib в проект не попадает (глюк панимэшь!).

4. Открываем C-шный файл в проекте - стираем все к черту и поверх пишем наш код. Кстати для данного проекта надо приписать о вкладке C/C++ ; Catgory -> Preprocessor;

в поле Preprocessor Defifnitions _AFXDLL.

5. После всех энтих манипуляций компилируем проект в Release конфигурации - и получаем *.DLL После чего в UG жмем в File -> Execute UgOpen -> UserFunction -> <наша dll>.dll и наслаждаемся Result-ом

6, Можно сию dll-ку прицепить на UG-овую кнопку или засунуть в toolbar!.

PS Самое главное замечание:

Как только используются C++ методы и объекты - функция extern "C" int ufusr_ask_unload( void ) должна или отсутствовать или возвращать return( UF_UNLOAD_UG_TERMINATE );

Проверено неоднократно - если это не так - самописный софт глючит в самых неподходящих местах.

PPS -Если вышеописаное слишком гиморно - могу прислать готовую dll-ину.

Regardzzz...

PS - если что непонятно - спрашивайте!

Ссылка на сообщение
Поделиться на других сайтах

niki

Большое спасибо за столь подробно изложенное обяснение.

Более менее все понятно надо будет раздобыть Microsoft Visual Studio 6 тогда попробую.

А пока хотелось бы готовую *.dll-ку попробовать вышлите пожалуйста на sergei@pioneer.ee

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

для назначения горячих клавишь идём в в ug_VIEW_POPUP.men (Program Files\EDS\Unigraphics NX\UGII\menus)

и меняем на свои клавиши.

BUTTON UG_VIEW_POPUP_ORIENT_TOP

LABEL T&op

BITMAP view_top.bmp

ACCELERATOR Alt+Q

ACTIONS STANDARD

Изменено пользователем RaSKaT
Ссылка на сообщение
Поделиться на других сайтах

niki

Виноват... глюк был у меня... библиотеки от 16 версии брались....

другая трабла вылезла: при компиляции в release выдает

--------------------Configuration: attr - Win32 Release--------------------

Linking...

nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in msvcprt.lib(delop_s.obj)

nafxcw.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in msvcprt.lib(delop_s.obj); second definition ignored

Creating library Release/attr.lib and object Release/attr.exp

nafxcw.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype

nafxcw.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype

nafxcw.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype

nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv

nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc

Release/attr.dll : fatal error LNK1120: 3 unresolved externals

Error executing link.exe.

attr.dll - 7 error(s), 1 warning(s)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
  • 2 месяца спустя...

если интересует, можно сделать так чтобы вся инфа о файле появлялась при выводе на печать там где укажешь ... без всяких приложений, стандартными средствами ug

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

В NX2 появилась возможность присваивать одну клавишу, а не обязательно в паре с Alt или Ctrl.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • RokiSIA
      Если б фаза то ошибка перешла бы на другую ось, а то ведь все работает. Есть предположение что по X плохое ШВП, но обычно дрожь бывает если есть линейка если ее нет то просто люфт. 
    • Viktor2004
      у вас раньше все работало, потом резко перестало работать Перекидывание показало что все компоненты исправны Значит внимательнее смотрите силовой контакт в разъеме подключения движка к приводу. Звониться оно может нормально, а при включении контачит плохо
    • intant
      У меня в работе 508МY Как же он меня уже замучил. Уже не знаешь какой фокус он выкинет.  Из приколов станка, которые выявил.  1. Параметрическое программирование. Есть свои нюансы.  2. Выявил баг. Отправил в ками.  Если в строчке с инструментом стоит комментарий со скобочками () он просто берёт не читает инструмент и начинает операцию  3 Программы со своими приколами.  Вчера по программе  G0 X30 Z1( по идее д.б 32 в будущем)    G71 U1.R0. 5 G71P10Q20U0.5W0F0. 2 N10G0X26 G1Z0 X28Z-1 Z-15 X35 X45Z-18 N20G1X46   G0X30Z1 G70P10Q20F0. 1 С таким припуском два прохода чистовой и черновой потому что там соточный размер и в конце квадрат идёт на удар.    Станок берёт и на морозе въезжает а деталь после чернового прохода по координате G0 X30 потом Z1 Т.е он не поехал одновременно по координате G0 X30 Z1 как сделал бы Fanuc.    При пуско-наладке показали как привязать инструмент через Renishaw. Посмотрел я на этот изврат и сказал переделайте на касание. Приехал сервисник переделал.  Пистолет для СОЖ бесполезная приблуда с такой реализацией через тройник, а не электро клапан.    По стойке HNC вроде ниче такая.  Но тормоза в меню удручают.  Программа на 400 кадров при пролистывание подтормаживает. И это ещё УП написана через параметрическое. Боюсь представить, что будет если загрузить в него  программу с cam на две три тысячи кадров. Самая дешманская мембранная клавиатура без тактильного отклика.  Но блин вы че. Это всё таки флагманский токарно фрезерный станок. Неужели нельзя было воткнуть что то получше.  В режиме прорисовки изображение по разным осям не развернуть никак.  Либо не нашёл.  Задняя бабка не автоматическая. Хотя ПО в стойке для неё есть.  Хотели впихнуть всё. Но на мелочи забили.  Есть с чем сравнивать. Были и Doosan с Y и Smec. Оба с manual guide.  По общим впечатлениям. Неплохой станок. Работать можно. Но до корейцев им ещё ой как далеко. Про немцев с Siemens вобще молчу. 
    • RokiSIA
      Звонили движки и мегомметром и на индуктивность. Всегда одно и тоже при нормальном подключении вибрация при инвертировании все замечательно уже раз 10 перекидывали. Сейчас электрики сами двигатели на ШВП местами махнут и будем смотреть. 
    • Soprin
      Теперь пишет и барабан вращает, но таблицу не обновляет. Какой функцие счётчик и таблицу данных перезаписывает?
    • Viktor2004
      такое ощущение что в силовом проводе двигателя какая-то фаза плохо контачит
    • RokiSIA
    • Viktor2004
      Какие провода? Силовые или энкодерные?
    • RokiSIA
      Провода на приводах)) X стал Y и наоборот
    • Viktor2004
      2084 2085 Если конечно дискретностью вы назвали коэффициент передачи
×
×
  • Создать...