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

NXOpen .NET API NX 7.5 запуск через exe-файл


azuralyn

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

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

Недавно начал работу с NXOpen .NET API и никак не могу решить следующую проблему - написал .dll для получения нужных мне данных из .prt-файла. Если я ее вызываю из под NX (версия 7.5) по Ctrl+U, все работает.

Так же, сделал .exe и вот с ним возникла проблема - из под NX по Crl+U он открывается и работает штатно, а из под самой ОС (Windows 7) не запускается - приложение сразу падает. Среда разработки - VS 2008.

Вопрос первый - как заставить работать .exe?

Вопрос второй - возможно ли реализовать запуск NX с вызовом .dll, либо, .exe через .bat-файл?

Вопрос третий - Если можно реализовать батник, то как запустить NX  в фоновом режиме, чтобы перед пользователем не мелькал графический интерфейс?

 

По форуму искал, но не нашел решения проблемы.

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


А какая ошибка то? Может надо просто prt-файл открыть сначала под exe.

А так вообще меняешь тип выходного файла с dll на exe, и должно работать...

А, еще dll из ...\UGII\managed\ нужны, и в path прописать путь к ugii-каталогу и лицензию для NX

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

на чём пишете?

C# или С++?

С#

 

А, еще dll из ...\UGII\managed\ нужны, и в path прописать путь к ugii-каталогу и лицензию для NX

Можно ли об этом подробнее? При создании проекта указывал external, чтобы был .exe. Какие еще изменения сделать надо, я, к сожалению, не знаю. Из хелпа нашел, только, что нужно поставить external.

 

А какая ошибка то? Может надо просто prt-файл открыть сначала под exe.

Ошибка при запуске .exe. Компилируется он без проблем. Засовывал в него тот же код TODO, что и в .dll, пробовал просто с пустым TODO компилировать, то же, без проблем. Если запускаю его из NX, все работает так ,как должно, а, если запускаю, просто, из самой ОС, то появляется окно консоли и, тут же, падает с ошибкой "Windows пытается найти решение этой проблемы" или как там ее.

 

А, вообще, желаемый результат - запуск .exe из самой ОС (скорее всего будет вызываться другим приложением), либо, если так не получится, запуск .bat-файла, активирующего, в фоне, сессию NX и вызовом из под нее .exe (как сделать такой батник, тоже, не пойму еще), но, тогда, можно обойтись и .dll. 

 

Сам .dll делает следующее - открывает .prt, собирает данные, экспортирует их в .txt и закрывает .prt. Еще есть вариант, который не открывает .prt, а работает с открытой в текущий момент. В будущем будет добавлен выбор, какую .prt запускать, либо, в итоге, указание каталога, в котором будут перебираться все .prt-файлы.

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

Сделай командный файл, пропиши в него путь к UGII, фай лицензии (если нет в системе переменных этих) и запуск своего exe. И dll рядом с ним положи. Короче ссылку выше указали...

Еще есть run_managed.exe в UGII каталоге спец. для запуска exe...

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

Спасибо, на днях попробую, так как, занимаюсь этой задачей не постоянно. О результате напишу.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • arsenev
      Первый свободный номер инструмента   int list $toolnumblist = extract(folder('TOOL'), 'Tool.Number.Value') int $newToolNumb = 1 while member( $toolnumblist, $newToolNumb) {     $newToolNumb = $newToolNumb + 1 } Message Info 'Первый свободный номер инструмента - ' + $newToolNumb     Инструменты с повторяющимися номерами   int list $toolnumbers = extract(folder('tool'),'Number.Value') int $i = remove_duplicates($toolnumbers) string $op = '' foreach $n in $toolnumbers {     string list $names = extract(filter(folder('tool'),'this.Number.Value == "' + $n + '"'),'Name')     if size($names) > 1 {         $op = $op + 'Инструменты с повторяющимся номером T ' + $n + CRLF         foreach $name in $names {             $op = $op + $name + CRLF         }         $op = $op + CRLF     } } message info $op
    • PETR_1
      Можно переназначить правую и центральную (колесо) кнопки с помощью бесплатной программы X-Mouse Button Control (есть портабельная версия). Это переназначение будет работать только для компаса.
    • Kelny
      Может изменяемый вами размер импортирован из модели?  Обычно переносилось удержанием левой кнопки мыши, а если сделать двойной клик, то нужно потом выбрать новый объект уже без удержания кнопок мыши.
    • Kelny
      Отключить галочки режима большой сборки. Инструменты-Параметры...-Настройки пользователя-Сборки
    • brigval
      Если не прописали, значит считается, что производственный процесс их изготовления гарантирует качество, достаточное для присвоения литеры. Можно и так посмотреть.   Между прочим, пред вынесением Решения о присвоении литеры проходит "испытания" весь комплект  КД. Разрешат вам не предъявлять часть КД на проверку? Спросите у НК.   И все-таки, если есть Решение о присвоении литеры, надо прочитать, что там сказано. Как сформулировано. Возможно, это снимет все вопросы.
    • cepr
      Есть в Компасе возможность построения зубчатого колеса с углом профиля не 20гр., а 25гр?
    • shishov32
      В ТУ не прописали про испытания КМЧ и упаковки, отсюда все пошло. 
    • clavr
      подскажите: как в солиде 2024 в чертеже перепривязать точку размера к другому элементу? раньше достаточно было выделить размер, точку привязке и удерживая ПКМ перенести к другому элементу. теперь это не работает   По справке сделать не получается( просто быстрые привязке не подсвечиваются https://help.solidworks.com/2024/russian/SolidWorks/sldworks/c_moving_dimension_leadersOH.htm  
    • BSV1
      КМЧ бывают разные. Если КМЧ состоит из одних стандартных болтов, например, то может испытания и не требуются. Если же КМЧ состоит из изделий собственной разработки, то почему их не надо испытывать? Что касается упаковки, то есть ГОСты на тару. Например: 80071.pdf ГОСТ Р 53775-2010 Упаковка. Испытание на штабелирование при статической нагрузке ГОСТ 18211-2018. Упаковка транспортная. Метод испытания на сжатие  gost-9142-2014.pdf  Есть еще испытания изделий в упаковке, которые подразумевают, в том числе, и испытание самой упаковки. Проверяться изделия в упаковке могут на транспортную тряску, удары, падения, климат. При этом упаковка должна обеспечить сохранность изделия. Есть еще вопросы консервации. Как же без испытаний?   Странный у вас нормоконтролер.    
    • brigval
      Ответом на ваш вопрос будет противоречит. А вообще, надо читать Решение о присвоении литеры. Интересно, что там указано?   Интересный вопрос. Если есть указания испытывать экпл. документацию в форме книг, то надо испытывать Я, правда, с этим не сталкивался.
×
×
  • Создать...