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

Block Styler в NX UG


anton.lucky.88

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

Добрый день. Начал разбираться с Block Styler ,сразу возник вопрос.

При использовании BlockStyler : я создаю диалоговое окошко с выбором объекта и получаю код:

......

int TOLSH::update_cb(NXOpen::BlockStyler::UIBlock* block)

{

try

{

if(block == selection0)

{

//---------Enter your code here-----------

}

}

catch(exception& ex)

{

//---- Enter your exception handling code here -----

TOLSH::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());

}

return 0;

}

......

Не подскажите,каким образом я могу получить доступ к этому объекту, чтобы дальше я мог уже работать с этим объектом(например,мог удалить его,сделать его оболочкой и т.д.)? Я так понимаю,за выбранный объект будет отвечать блок selection0, но что он собой представляет и как с ним работать пока плохо понимаю. Заранее спасибо.

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


Смотри примеры в "...UGS_NX75\UGOPEN\SampleNXOpenApplications\C++\BlockStyler\SelectionExample"

Вот кусок оттуда:

int SelectionExample::update_cb(NXOpen::BlockStyler::UIBlock* block)

{

try

{

PropertyList* faceToggleProps = faceToggle->GetProperties();

PropertyList* edgeSelectProps = edgeSelect->GetProperties();

PropertyList* chamferSelectProps = chamferSelect->GetProperties();

PropertyList* angleLimitDoubleProps = angleLimitDouble->GetProperties();

PropertyList* angleToggleProps = angleToggle->GetProperties();

if(block == edgeSelect)

{

// When face filtering is on, establish a limiting face after two edges are selected

if(faceToggleProps->GetLogical("Value"))

{

std::vector<TaggedObject*> edges = edgeSelectProps->GetTaggedObjectVector("SelectedObjects");

if (edges.size() == 2)

{

limitingFace = sharedFace(dynamic_cast<NXOpen::Edge*>(edges[0]), dynamic_cast<NXOpen::Edge*>(edges[1]));

}

}

}

else if(block == faceToggle)

{

// When the face filter is turned on...

// Clear the current edge selection list

if (faceToggleProps->GetLogical("Value"))

{

std::vector<NXOpen::TaggedObject* > edges(0);

edgeSelectProps->SetTaggedObjectVector("SelectedObjects", edges);

limitingFace = NULL;

..................

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

В Block Ui Styler существует компонент Reverse Direction.

Для изменения текста, которое выводится с компонентами Block Ui Styler есть свойство LabelString. У данного компонента такого свойства почему-то нет, есть только Label, изменение которого визуально ни к чему не приводит. Вопрос - можно ли как то изменить отображаемое название данного компонента?

NX 7.5

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

Похоже косяк Сименса. Там не один такой элемент, есть и другие - Задать плоскость, Задать ось...

А мож так задумано...

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

С этим компонентом не работал, и вообще мой опыт весьма ограничен, но у меня был случай, когда в документации свойство (не это) не упоминалось, а реально оно было. Проверьте, если еще не проверили.

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

Похоже косяк Сименса. Там не один такой элемент, есть и другие - Задать плоскость, Задать ось...

А мож так задумано...

Похоже действительно косяк, нашёл похожую проблему на портале поддержки, но вроде как статус проблемы - FX (я понял FIX)

Но даже в 8.0.3.4 проблема осталась. Отписал в поддержку еще раз, посмотрю, что напишут.

С элементами Задать плоскость, Задать Ось всё более-менее нормально: Label "задать ось" меняется и название группового элемента тоже меняется, ну в "задать плоскость" есть LabelString.

Ну и проверил даже в рантайме - св-ва LabelString у блока нет

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

Здравствуйте !!! Кто нибудь поможет решить такую проблему 

NX Open Block Styler -> элементы выбора (Java) 

 

Как вытянуть это элемент выбора для дальнейшего использования ??

Ссылка на сообщение
Поделиться на других сайтах
block.GetProperties.GetTaggedObjectVector("SelectedObjects");

Синтаксис для шарпа, наименование последней функции может меняться в зависимости от получаемого значения. Подробнее и обозначения свойств можно найти в хелпе - там целый раздел по Block Styler

Ссылка на сообщение
Поделиться на других сайтах
block.GetProperties.GetTaggedObjectVector("SelectedObjects");

Синтаксис для шарпа, наименование последней функции может меняться в зависимости от получаемого значения. Подробнее и обозначения свойств можно найти в хелпе - там целый раздел по Block Styler

 

Не понял !! Делал такое только че то не получается вытянуть !!!

мне надо линии выделить и втянуть ... 

 

Вот это я делал только куда дальше я его не пойму .... Стоит NX8  а справка на нем на NX6

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

Кто-нибудь подскажите мне ленивому и безграмотному. Возник вопрос по Block Styler, может кто-нибудь с подобным сталкивался уже:


Попытался прокомпилировать пример BlockStyler/ ColoredBlock, в соответствии с Readme.txt, для чего создал проект на С++ с помощью Nx open AppWizard в Microsoft Visual Studio Express 2012, выбрал ufsta, добавил ColoredBlock.cpp и ColoredBlock.hpp, закинул в D:\...\NXOPEN\ ColoredBlock.dlx (заодно и в папку с проектом), указал в Configuration Properties - Active solution realisation - release x64, сохранил и нажал F7(откомпилировать решение).


 


В результате этого постоянно появляется ошибка, 


fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?


После добавления stdafx.h в .cpp или в h.pp из папки D:\...\UGOPEN\SampleNXOpenApplications\.NET\ManagedCpp и последующей компиляции, Microsoft Visual говорит, что не может открыть stdafx.h.


Что делать дальше не понятно. На иностранных форумах народ отключает функцию precompiled header, что и я попытался сделать, после чего ошибок появилось 34 шт. со следующим схожим содержанием:


ColoredBlock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl NXOpen::NXString::NXString(char const *,enum NXOpen::NXString::NXStringMode)" (__imp_??0NXString@NXOpen@@QEAA@PEBDW4NXStringMode@01@@Z) referenced in function "public: __cdecl ColoredBlock::ColoredBlock(void)" (??0ColoredBlock@@QEAA@XZ)

Ссылка на сообщение
Поделиться на других сайтах
создал проект на С++ с помощью Nx open AppWizard в Microsoft Visual Studio Express 2012

 

Единственное, что могу посоветовать, так это обходиться без этой фичи :glare:

 ColoredBlock.cpp и ColoredBlock.hpp должны быть практически полностью готовыми для компиляции. В .NET, например, достаточно создать консольный проект, заменить строку запуска файла проекта по-умолчанию на файл кода Block Styler и добавить ссылки на 4 библиотеки NX. Этого хватает чтобы запустить любой сгенерированный диалог. Думаю на плюсах не на много сложнее.

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

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

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

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

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

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

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

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

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

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

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




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