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

Диалоговое окно Open API C#


zu_rab

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

Доброго времени суток Вам!!

Требуется создать диологовое окно, куда пользователь будет вводить параметры детали. Нашел Open API Student Guide UG NX 2.0, там процесс создания диологового окна описан, как создаем окно руками в NX, сохраняем его в файл, потомо подключаем этот файл к нашей библиотеке и т.д.

Весь код на С++.

Нет никакого способа проще создать диологовое окно, с помощью какого либо метода или класса?

P.S. Неужели нет никакой литературы по обучению Open API, не важно на русском или английском, короме Open API Student Guide UG NX 2.0 2004 г.в. и документации к NX, которая полезна только как справочник по фунциям?? Уважаемые профессионалы, как и с помощью чего Вы учились программировать в Open API??

P.P.S. Самому надоело писать глупые вопросы на форуме... но друго выхода пока нет =(

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


Нашел методы, которые отвечают за создание стандартных диалоговых окон, таких же как в grip. и практически все они находятся в классе ufui, но нигде не могу найти создание нужного окна для ввода значений uc1607-uc1609... подскажите к какому классу они принадлежат?? и как можно создать собственное окно??

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

Нашел методы, которые отвечают за создание стандартных диалоговых окон, таких же как в grip. и практически все они находятся в классе ufui, но нигде не могу найти создание нужного окна для ввода значений uc1607-uc1609... подскажите к какому классу они принадлежат?? и как можно создать собственное окно??

Речь о С#?. Видать эти функции не реализованы в ufui - это обычное дело, поэтому и приходится зачастую напрямую сишные функции вызывать.

А вообще в С# без проблем можно окна свои создавать, за это его и любят. Примеры, кстати, идут с NX...

P.S. еще есть простейший ввод данных:

NXOpen .Net API Reference

GetInputNumber Method (prompt, caption, initialNumber)

Namespaces ► NXOpenUI ► NXInputBox ► GetInputNumber(String, String, Double)

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

Нет никакого способа проще создать диологовое окно, с помощью какого либо метода или класса?

Вообще-то, в NX есть собственный модуль для разработки ГУЯ. Называется "Разработка пользовательского интерфейса". Правда, это способ для извращенцев, но зато диалоги выглядят как родные. :-D

Ещё можно через стандартные MFCшные механизмы создавать, но тоже разбираться придётся.

А самый простой способ - через .NET, с тех пор как оно появилось - я другими вариантами и пользоваться не хочу. Только уж если иначе не получится.

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

Vovaldo, harbel, спасибо! =)

Возник такой вопрос возможно ли из internal библиотеки запустить exe приложение?

Использую System.Diagnostics.Process.Start("MyForm.exe") NX выдет ошибку.

Задача состоит в том чтобы из NX запустить клиент для работы с БД. Написал приложение WinForm для БД, думал, если запустить его с помошью System.Diagnostics.Process.Start("MyForm.exe") все получится, ан нет =(

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

Возник такой вопрос возможно ли из internal библиотеки запустить exe приложение?

Можно, конечно.

В WinAPI есть такая функция ShellExecute, без проблем всё запускается.

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

Можно, конечно.

В WinAPI есть такая функция ShellExecute, без проблем всё запускается.

Спасибо =) Все получилось =)

Использовал всю туже System.Diagnostics.Process.Start("myForm.exe");

Проблема была в том, что NX искал файлы в каталоге ...\nx7\UGII\ , копировал туда myForm.exe и файл БД, все заработало.

А есть какая-либо фунция с помощью которой NX будет подтягивать файлы из папки где лежит .dll?

Использовать для получения каталога с исполняемым файлом функцию Application.StartupPath к сожалению нельзя, т.к. в библиотеке нельзя использовать System.Windows.Forms =(

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

Речь о С#?. Видать эти функции не реализованы в ufui - это обычное дело, поэтому и приходится зачастую напрямую сишные функции вызывать.

А вообще в С# без проблем можно окна свои создавать, за это его и любят. Примеры, кстати, идут с NX...

P.S. еще есть простейший ввод данных:

NXOpen .Net API Reference

GetInputNumber Method (prompt, caption, initialNumber)

Namespaces ► NXOpenUI ► NXInputBox ► GetInputNumber(String, String, Double)

Это окно с 1 полем для ввода, а есть окно с несколькими полями для ввода значений типа double?

Нехочется заморачиваться с созданием такого простого окна через .Net и потоками для передачи данных...

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

Это окно с 1 полем для ввода, а есть окно с несколькими полями для ввода значений типа double?

Нехочется заморачиваться с созданием такого простого окна через .Net и потоками для передачи данных...

Точно не скажу. Наткнулся только на это в документации. Проще свою форму сделать (в Net) и запускать под NX.

Можно из одной формы другие открывать - без проблем...

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

Точно не скажу. Наткнулся только на это в документации. Проще свою форму сделать (в Net) и запускать под NX.

Можно из одной формы другие открывать - без проблем...

Так сейчас и делаю... Но хотелось бы стандартным методом воспользоваться.

Кстати, как осуществляете обмен данными между формой и dll, с помощью файла, потока или каким-нибудь другим способом?

Хотел реализвать это с помощью буфера обмена, но в internal библиотеке нет поддрежки System.Windows =(

И еще заметил, что если использовать textBox для ввода только цифр там надо вводить проверку вводимых символов, тогда не работает copy/paste. Как Вы решили эту проблему?

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

Да как то copy/paste не пользовался, честно говоря, поэтому не замечал такого эффекта.

А форма и dll - одно целое, какой обмен данными?

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

Да как то copy/paste не пользовался, честно говоря, поэтому не замечал такого эффекта.

А форма и dll - одно целое, какой обмен данными?

Разобрался... Просто выбрал немного извращенский способ для реализации простого действия.

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

Создал internal проект, создал внутри него Form. Появилось 2 проблемы:

1. Когда запускаю библиотеку через NX создается окно, но не прорисовываются элементы в нем.

post-32938-1327058646.jpg

Код вызова окна

theProgram = new Program();



				theProgram.name_param = new string[] { "Param_1 = ", "Param_2 = ", "Param_3 = " };



				Form1 f1 = new Form1(theProgram);



				f1.Show();

2. Программпа продолжает работу не дожидаясь закрытия окна.

В чем может быть проблема?

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

Создал internal проект, создал внутри него Form. Появилось 2 проблемы:

1. Когда запускаю библиотеку через NX создается окно, но не прорисовываются элементы в нем.

post-32938-1327058646.jpg

Код вызова окна

theProgram = new Program();



				theProgram.name_param = new string[] { "Param_1 = ", "Param_2 = ", "Param_3 = " };



				Form1 f1 = new Form1(theProgram);



				f1.Show();

2. Программпа продолжает работу не дожидаясь закрытия окна.

В чем может быть проблема?

Программпа продолжает работу не дожидаясь закрытия окна - ну можно ShowDialog для модального окна вместо Show попробовать.

Может и элементы заработают.

А вообще f1.Show() обычно последний оператор в программе и дальше уже из него все события обрабатываются...

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

harbel, спасибо!)

Использовал f1.ShowDialog() окно отображается нормально, библиотека ждет завершения работы с окном.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Guhl
      Но ведь токовый сигнал надо  для начала в цифровой преобразовать Поэтому полный цикл преобразования не может быть быстрее аналоговой части У тиристорных приводов частота отклика не более 30Гц, но это не из-за ОУ, а из-за принципа работы приводов Да у обычного 741 частота 1Мгц Насколько это быстрее 32нс?     @gudstartup Аналоговая цепь всегда быстрее цифровой Так и живем Честно говоря я обескуражен Ведь тут же даже житейская логика говорит о том, что цифровая цепь привода не может быть быстрее аналоговой, просто потому что аналоговая является подсистемой цифровой цепи   Аналоговый вычислитель всегда выиграет по скорости у цифрового аналога Точность может быть ниже, но скорость всегда выше Сравните скорость работы сумматора на ОУ и на процессоре И оставьте свои ужимки, противно смотреть Или вы продолжатель дела "короля саркастических ужимок" (с)?
    • gudstartup
      с люфтами эта функция никак не борется она их пропускает гася резонанс ни насколько обработка контура тока длится 32нс попробуйте это сделать на ваших оу. @Guhl отдыхайте вы явно перегрелись у вас аналоговый процессор
    • Guhl
      Вы хотя бы в курсе насколько быстрее аналоговая цепь, чем цифровая?  
    • gudstartup
      вы хотя бы в курсе сколько длится в сигнальном поцессоре servo фанук обработка контура тока и сколько это было на ваших допотопных приводах и какие скорости и точность контура сейчас достижимы ,благодаря этому. добейтесь этого на ваших аналоговых схемах с оу и я сниму перед вами шляпу. полностью некорректное сравнение.
    • Ветерок
      Можно заменить гнутый швеллер на прямоугольную тонкостенную трубу. Если не стоит задача всё гнуть самостоятельно.
    • Guhl
      Большие люфты вызывают колебания. Причем эти люфты возникают не только при смене направления движения, а при других условиях. Путем борьбы с люфтами, борятся с колебаниями Для этого и есть dual position feedback  Ну вот видите, уже лучше. Борьба с люфтами - борьба с колебаниями Так для чего нужен dual position feedback? Назовите вы ее хоть чертом лысым, но она как боролась с люфтами, так и борется 
    • gudstartup
      а вам для чего писать то вы все равно читать не можете. для кого я   приводил описание функции и раздел к которым она отнесена уважаемыми вами японцами.   потому что он приводит к вибрациям!!!! я от вас просто офигиваю ну нельзя же так упорствовать в очевидном!!
    • Guhl
      А зачем же они упоминают люфт? 
    • gudstartup
      а где ваши аргументы? я вам приводил и формулы и выдержки из текста но вы адепт собственных измышлений и упорно называете функцию подавления резонанса функцией  компенсации люфта. контуры тока были у всех  без него вы не сможете мотором управлять а вот скорости другое дело. как всегда все путаете.
    • Guhl
      Это глава из книги по настройке приводов В ней еще хорошо расписаны принципы построения приводов. Контуры скорости, контуры тока.   Кстати не у всех приводов были контуры тока, умели обходиться без них. Это в мезоматиках кажется   Смею вас уверить, что принципы остались те же. Так что, вперед в прошлое! Авторы Чернов, Кузьмин, Синичкин Добротность.pdf
×
×
  • Создать...