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

Диалоговое окно 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 пользователей

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




  • Сообщения

    • gudstartup
      @Killerchik думаю хватит цитат про то что только механически может быть выравнена геометрия станка. советую выровнять направляющуб где на 5см 1мм отклонения от прямолинейности или она как сам@Guhl пишет винтом. 
    • Jesse
      да, так и делайте. Мне тоже кажется это самый оптимальный вариант)
    • Amiandar
      Народ, а подскажите, почему не получается редактировать (1 раз только получилось спустя 100500 попыток, поэтому я не уловил причину) вот эти значения в момент нанесения линии в эскизе?   
    • Alex1986
      Коллеги, подскажите, пожалуйста, как в имеющемся Компас 3D v20 в как-то сопряженных деталях сделать в одной детали отверстие, а во второй детали отверстие завязать на центр отверстия первой детали, чтоб при перемещении первого и перестроении, автоматически перестраивалось отверстие во второй?
    • Cas
      Это поможет в изготовлении? Вы в этом уверены? Я думаю, что Вы сильно ошибаетесь. Я бы с Вами согласился - если бы Вы мне написали - что вот - фирма по производству отличных мелкомодульных шестеренок. Но Ваши чертежи они понять не могут. Ладно, даже могут, но им дико неприятно (прям фу), потому что там действительно есть некорректная простановка базы, неправильные геометрические допуски и т.д. НО... ситуация то не такая. Чертеж поправить - не сложно, но от этого производитель не найдется, к сожалению.  
    • Shoker
      Конструктора поменяйте на нормального, может будет делаться то, что надо
    • Liga
      Разобрался, реакции можно вытянуть и из МКЭ расчета, но только после правильного закрепления. Сверху - снизу Спс за наводку    
    • Cas
      Вот это дельное предложение. Спасибо. Боюсь, что так и придется делать. Т.к. найти изготовителей мелкомодульных шестерней - прям проблема оказалась. Насчет терпеливого оператора - то точно нет. Не на мелкосерийке. Насчет таблицы - не понял. Ее на чертеже специально нет - она отдельная, что указано в требованиях. Насчет прогресса - то откуда ему взяться то?
    • roiman
      Переделайте конструкцию валов-шестерен, раз проблема с изготовлением. Сделайте шестерни съёмными, на шпонках, хоть с прессовой посадкой. После этого шестерни можно будет изготовить в любой конторе с проволочником. Или тем же проволочником при помощи такой-то матери и терпеливого оператора - с перестановом, с технологическим шестигранником на конце вала для закрепления в тисах, к примеру. Шестигранник после прожига обрезается. Ну или хоть прошивной электроэрозией, если содержимое кошелька позволяет. Но нужна приспособа с поворотом, которая не у каждого есть.   Конструктора найдите другого. Это весёлые картинки, а не чертежи. Хоть бы таблицу с параметрами зацепления привели. Может и дело  было не в разбитом станке, а в способностях конструктора... И кто-то мне говорит, что всё нормально и прогресс. Ни чертежи уже не можем сделать, ни изготовить наипростейшее прямозубое цилиндрическое зацепление...
    • Chuvak
      Я не занимаюсь изготовлением) Но конструктор должен сразу делать нормальные чертежи изделий и знать как их будут изготавливать
×
×
  • Создать...