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

NX Open API - Selected Objects (выбираемые объекты)


Entwerfer

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

Всем добрый вечер!

Создала интерфейс приложения с помощью Block UI Styler. Присутствует элемент выбора объекта в сборке:

 

 

По нажатию кнопки 'Apply' необходимо в появившемся окне вывести список выбранных объектов, получилось вывести только количество:

 

 
Список выбранных объектов и их обработку произвожу следующим образом (С++):
int CheckElement::apply_cb()
{
    int errorCode = 0;
    try
    {
		theSession->ListingWindow()->Open();
		int num = theUI->SelectionManager()->GetNumSelectedObjects();
		theSession->ListingWindow()->WriteLine("Number of selected objects: ");
		theSession->ListingWindow()->WriteLine(to_string(num));
		TaggedObject * objlist = new TaggedObject;
		CheckElement::theSession->ListingWindow()->WriteLine("Selected objects:\n");
		for (int i = 0; i < num; i++) {
			objlist = theUI->SelectionManager()->GetSelectedTaggedObject(i);	
			theSession->ListingWindow()->WriteLine("#");
		}
		delete objlist;
		objlist = NULL;
    }
    catch(exception& ex)
    {
        //---- Enter your exception handling code here -----
        errorCode = 1;
        CheckElement::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return errorCode;
}

Подскажите, пожалуйста, есть ли способ вывести список выбранных объектов в виде текста в информационном окне (ListingWindow)?

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


Можно тэг напечатать -Tag() или

GetTag (   )  

А по тэгу хэндл:

#include <uf.h>

char* handle;

handle=UF_TAG_ask_handle_of_tag(obj_tag);

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

Правильно ли я делаю?

		for (int i = 0; i < num; i++) {
			objlist = theUI->SelectionManager()->GetSelectedTaggedObject(i)	
			handle = UF_TAG_ask_handle_of_tag(objlist->Tag());
			theSession->ListingWindow()->WriteLine("#");
			theSession->ListingWindow()->WriteLine(handle);
		}

Работает через раз. Вывод получается такой:

RMAs_Unit.2 o0000010300000028

 

Я так понимаю, мы получаем идентификатор детали (тег) в контексте данной сессии. А название можно вывести, как в навигаторе сборки?

 

Для двух и более объектов приложение иногда выдает ошибку (use askUserMessage() or askSyslogMessage()). Не подскажете, в чем проблема?

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

Если выбирается компонент сборки, то можно что то типа:

#include <NXOpen/Assemblies_Component.hxx>

 

Assemblies::Component *component1;

component1 = dynamic_cast<Assemblies::ComponentAssembly *>(theUI->SelectionManager()->GetSelectedObject(i));

NXOpen::NXString name=component1->DisplayName();

 

 

А если Feature:

NXString NXOpen::Features::Feature::GetFeatureName (   )

и т.д.

 

А по ошибке - смотрите Журнал (меню Help)

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

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

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

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

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

  Разрешено не более 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
×
×
  • Создать...