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

Программный вызов команд NX


Ростислав

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

Добрый день! Вопрос заключается в следующем... Возможно вызвать из своего приложения  UI, существующую команду NX. например "Массив  элементов"? То есть мне нужно из моего приложения вызвать команду "Массив элементов", и получить созданный элемент.  

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


нет.
вы можете добавлять свои POST/PRE действия к командам NX,
можно заменять их.
В отдельных случаях можно записать макрос в котором учавствуют твое приложение и команды NX.
Но напрямую вызвать из приложения нельзя (ИМХО конечно)

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

Спасибо буду разбираться с предложенными вариантами, может какой нибудь подойдет.

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

Возможно вызвать из своего приложения  UI, существующую команду NX. например "Массив  элементов"? 

Вызвать созданное разработчиками NX меню команды нельзя,

но выполнить команду можно. "Круговой Массив  элементов" - UF_MODL_create_circular_iset().

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

Но мне надо построить массив элементов, по определенной траектории. А как я понял, данная функция строить вокруг оси? Или я чего то не до понял?

 

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

Я всего лишь привёл конкретный пример. Можно очень многое.
Но для этого надо изучить NX Open API, для NX11:

https://docs.plm.automation.siemens.com/tdoc/nx/11/nx_api/#uid:index

ну а дальше, всё зависит от задач и ваших возможностей.

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

На самом деле можно попытаться вызвать диалог NX из своей программы.

Может быть не любой, но некоторые точно.

Но для этого надо сначала найти в какой dll он лежит, узнать его имя...

Потом сделать lib-файл с этой dll, включить его в свой проект,

задекларировать саму функцию (если диалог это функция),

ну а потом вызвать ее.

Если сделать всё правильно, то должно сработать.

Еще может возникнуть проблема совместной работы своих диалогов

и стандартных.

Когда то давно вызывал так функцию-диалог измерения дистанции:

нашел в libmodlint.dll по моему (уже не помню как :-) ), сделал lib с нее.

 

extern "C" {extern UFUNEXPORT int bcb_Info_Distance(void);}//UG Анализ-Дистанция

.....

int rcode = UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);

if (rcode != UF_UI_UNLOCK_SET)

UF_UI_set_status("Could not unlock Unigraphics");

bcb_Info_Distance(); // стандартный диалог UG - анализ->дистанция

// UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM); // иначе диалоги из программы не работают

 

как то так...

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, koner сказал:

@harbel А результат измерения где?

 

Это чисто информационная команда - показывает на местности дистанцию между двумя точками в виде числа.

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

 

Просто была кнопочка в диалоге, вызывающая эту функцию.

А в принципе можно запустить и команду построения (массива того же)...

 

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

Вызывать стандартную функцию NX, из своей dll хотел ради предварительного просмотра. Может кто то знает другие методы реализации предварительного просмотра, для построения массива точек на кривой?

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

Может кто то знает другие методы реализации предварительного просмотра, для построения массива точек на кривой?

строите своими средствами, и гоняете туда-сюда через UNDO.

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

Может кто то знает другие методы реализации предварительного просмотра, для построения массива точек на кривой?

Так, чуть ли не в каждой команде Моделинга, это есть:

в любом меню команды, внизу - раздел "Настройки" - "PreView".

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

Средствами UNDO можно, но думал может есть какой то другой вариант. 

Про  "Настройки" - "PreView", можно поподробнее не сильно понял?

 

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

для построения массива точек на кривой?

 

1 час назад, Ростислав сказал:

Про  "Настройки" - "PreView", можно поподробнее ?

 

вызываем команду "Набор точек" - внизу два ящичка/раздела с именами "Настройки" и "Просмотр"

раскрываем их: - в "Просмотр" надо чтобы была галочка.

- В "Настройки" уберите галочку перед Ассоциативно.

Меняйте параметры/типы/условия - на экране мгновенный результат.

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

Ну это понятно. Вопрос в том, как это реализовать в коде?

Желательно на с#

А мне, чем дальше ... - тем более не понятно ...
Но, положим, это особенность общения в инете.

Откройте это:

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_api/#uid:index

Далее NX Open, ну или что вам больше понравится ...

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

Подскажите пожалуйста как работать с метками отката!!! Каждый раз при нажатии кнопки строится кривая, нужно сделать так чтобы при нажатии на кнопку старая кривая откатывалась до предыдущего состояния, а новая строилась. Делаю так, об являю глобальную переменную  UFUndo.UserVisibility user_mark = new UFUndo.UserVisibility(), и int mark_id. В событии нажатия кнопки:

 try
{              
       theUfSession.Undo.UndoToMark(mark_id, "mark1");
}
        catch (Exception ex)

{}
 theUfSession.Undo.SetMark(user_vis1, "mark1", out mark_id);

 В таком виде выскакивает  ошибка "Потеряна метка отката". подскажите пожалуйста как правильно решить эту проблему!!! 

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

Подскажите пожалуйста как работать с метками отката!!! Каждый раз при нажатии кнопки строится кривая, нужно сделать так чтобы при нажатии на кнопку старая кривая откатывалась до предыдущего состояния, а новая строилась. Делаю так, об являю глобальную переменную  UFUndo.UserVisibility user_mark = new UFUndo.UserVisibility(), и int mark_id. В событии нажатия кнопки:

 try
{              
       theUfSession.Undo.UndoToMark(mark_id, "mark1");
}
        catch (Exception ex)

{}
 theUfSession.Undo.SetMark(user_vis1, "mark1", out mark_id);

 В таком виде выскакивает  ошибка "Потеряна метка отката". подскажите пожалуйста как правильно решить эту проблему!!! 

Попробуйте при создании точки имя всегда новое рандомно присваивать(чтобы юзера названия не смущали сделайте их невидимыми), и, соотв-но к нему потом откатываться

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

Попробовал не помогло, может не до конца понял. Можете поподробнее или в коде отобразить пожалуйста!

 

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

всем на заметку, имя undo точки можно ставить null, и т.о. хранить его не обязательно, достаточно только mark_id

 

вот рабочий код
 
 //запоминаем
 Session.UndoMarkId temp_undomark = theSession.SetUndoMark(Session.MarkVisibility.Invisible, null);
 try
 {
    чото делаем
 }catch{}
 //верстаем взад
 theSession.UndoToMark(temp_undomark, null);
 theSession.DeleteUndoMark(temp_undomark, null);

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Gmv
      По кнопке FTP стойка имеет 6 страниц для трех разных хостов. Где можно указать IP , имя, пароль 1страница. каталог 2 страница. Больше настроек не нашел.
    • gudstartup
      на фануке настраиваете доступ по ftp на соответствующей вкладке  и также расшариваете папку  вашим сервером и все прекрасно работает.
    • gudstartup
      симулятор предполагает взаимодействие как с чпу так и со станком посредством другой plc программы иначе вам придется самому управлять входами и выходами а это непросто.    
    • Gmv
      У кого есть опыт организации FTP именно на станке? Стойка 0i-MF plus   Сейчас пока сервер настроен на компе, и то не до конца. файлы видны, извлечь их или скопировать в память станка не выходит. Но операторы уже сразу возмущены,  им проще бегать с USB флешкой и нажимать одну кнопку, чем прыгать по папкам. На хаасе это реализовано классно, он создает сетевой диск и полный доступ и со стойки с пк. Хотелось бы подобного.
    • Guhl
      Я нормально проекты писал и отлаживал на эмуляторе Балт-Систем На Heidenhain, насколько я понял, работает симулятор с их сайта в связке с PLC design @gudstartup пользовался этим вот в этой ветке
    • ID_Hacker
      Ну уж балт-систем то не надо сюда. Там такое ущербное всё, что аж страшно вспомнить. Haidenhain эмулятор где взять, подскажете? А как отработать взаимодействие между NC и PLC, действия где работают и оси и механизмы электроавтоматики. Сам хочу попробовать Run my virtual machine, да всё времени нет.
    • Bot
      Данное приложение разработано на языке Visual Basic с использованием программного интерфейса NX Open API и предназначено для использования в САПР Siemens NX, начиная с версии 2000. Стиль интерфейса пользователя идентичен стилю САПР Siemens NX. View the full article
    • Jesse
      @ГЕЛА Ещё можно посчитать в балках и учесть влияние отверстия через коэффициент концентрации напряжений..) Но у вас отверстие на всю стенку, так что лучше, проще и быстрее посчитать всё это дело в оболочках как выше сказали. Скругления перехода от стенки к полке удалите и в запас считайте.
    • 5axisCNC
      Можно плоскость дна задать множеством вариантов например точка направление
    • mmaag
      Да, это из nc63 для one. Остальное надо смотреть в каталоге NC62, 63. Там описано много всякого виртуального софта, думаю, найдёте ссылки на что надо, если оно существует.
×
×
  • Создать...