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

Python, как подключить модули NX ?


izhgtumekhanik

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

У кого есть опыт подключения NX10/11/12 к Python ? Нужно внешне управлять NX. Не как не хотят подключаться модули к Python, как их подключить?

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


UnPinned posts

ошибка:

>>> import NXOpen
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Siemens\NX 12.0\NXBIN\python\sitecustomize.py", line 60, in load_module
    module = loader.load_module(None)
  File "C:\Program Files\Siemens\NX 12.0\NXBIN\python\sitecustomize.py", line 13, in load_module
    return super(NXOpenLoader, self).load_module(fullname)
ImportError: DLL load failed while importing NXOpen: Не найден указанный модуль.

 

я так понимаю что то не то реализовано в sitecustomize.py

Ссылка на сообщение
Поделиться на других сайтах
15 hours ago, izhgtumekhanik said:

У кого есть опыт подключения NX10/11/12 к Python ?

Ну, сначала, не NX "подключается" к Python, а наоборот, можно в NX писать свои программы, с использованием API NX на Python.

 

15 hours ago, izhgtumekhanik said:

Нужно внешне управлять NX.

Что значит внешне ?

Если вы хотите из др. программы автоматом запустить NX и что-то в нём автоматически делать, то:

1. насколько я знаю, на Python, это не делается (только на Cхх).

2. далеко не все функции API NX можно для этого использовать ... (функции, которые можно использовать помечены как "External".

15 hours ago, izhgtumekhanik said:

Не как не хотят подключаться модули к Python, как их подключить?

ну, и это, тоже непонятно ...

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, IgP сказал:

можно в NX писать свои программы, с использованием API NX на Python.

Это не совсем удобно.. Хочется запустить программу пожмякать кнопки и на этом все.

 

8 часов назад, IgP сказал:

1. насколько я знаю, на Python, это не делается (только на Cхх).

 

Можно же, точно знаю что под .Net работает без проблем, а пока гуглил нашел способ для Java.

 

8 часов назад, IgP сказал:

ну, и это, тоже непонятно ...

 

Там идут динамические модули *.pyd - но там идет цепочка переменных сред из которых получат ссылки на библиотеки из за чего пока не получается запустить(в моем понимании). А так собрал примерчик и скомпилировал как pyd - и без проблем вызвал в нем функцию с другой версии Python(разность в версиях Python не большая).

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

В общем неверно реализован скрипт  sitecustomize.py но так и не пойму как исправить..

 

Пока исправил костылём и все заработало.

 

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

в этом скрипте есть массив automation_namespaces

 

в ходе работы там по мимо добавляемого 'NXOpen' появляется еще 'NXOpen_Preferences'

Ссылка на сообщение
Поделиться на других сайтах
18.07.2023 в 07:01, IgP сказал:

(только на Cхх).

 

В VB:

 

Environment.SetEnvironmentVariable("PATH", "C:\Program Files\Siemens\NX 12.0\NXBIN\managed", EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("PATH", "C:\Program Files\Siemens\NX 12.0\NXBIN", EnvironmentVariableTarget.Process)

 

Все работает как часы..

 

Вот он продает видео о том как настроить за зеленые - тут даже купить возможности нет..

https://youtu.be/468SGBALQQM

 

Там же есть всплывающие подсказки при кодинге 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
18.07.2023 в 07:01, IgP сказал:

2. далеко не все функции API NX можно для этого использовать ... (функции, которые можно использовать помечены как "External".

 

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

Нашел еще видео на C# 

 

 

Ссылка на сообщение
Поделиться на других сайтах
Session theSession = (Session)Activator.GetObject(typeof(Session), "http://localhost:4567/NXOpenSession");
UFSession theUFSession = (UFSession)Activator.GetObject(typeof(UFSession), "http://localhost:4567/UFSession");

 

Пребывал так но не как не пойму почему у всех localhost когда у меня активно на 0.0.0.0:34265 и еще 192.168.56.1:34241 но не как на 127.0.0.1 .. даже если и их подставить не как не хочет подключаться..

 

Судя по коду что нашел все работает как часы..

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

Разобрался в чем была проблема :) 

 

теперь при обращение объект виден НО он не хочет работать выдавая ошибку:

System.Net.WebException: "Сервер нарушил протокол. Section=ResponseStatusLine"
 

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...