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

Block UI Styler


Closius

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

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

 

Не подскажете как создать меню выбора поверхности типа CAEFace в блок стайлере?

 

Ничего не помогает.. Даже когда просто создаю меню общего выбора объекта, то CAEFace (Polygon Face) не выбирается.. Посредством кода выбирать и работать с такой поверхностью я смог, вот сниппет (Java):

Selection.MaskTriple mask[] = { new Selection.MaskTriple(
        UFConstants.UF_caegeom_type, 0,
        UFConstants.UF_caegeom_face_subtype ) };

    	Selection.SelectTaggedObjectData selObj = theUI.selectionManager()
        .selectTaggedObject(prompt, "Select an Face",
                Selection.SelectionScope.ANY_IN_ASSEMBLY,
                Selection.SelectionAction.CLEAR_AND_ENABLE_SPECIFIC,
                false, false, mask);
Ссылка на сообщение
Поделиться на других сайтах


Сделал ) добавил маску выбора для общего выбора объекта в код .java файла UI Styler'a.

 public void initialize() throws NXException, RemoteException
    {
        try
        {
            selection0 = (nxopen.blockstyler.SelectObject)theDialog.topBlock().findBlock("selection0");
            Selection.MaskTriple mask[] = { new Selection.MaskTriple(
                    UFConstants.UF_caegeom_type, 0,
                    UFConstants.UF_caegeom_face_subtype ) };
            selection0.setSelectionFilter(Selection.SelectionAction.CLEAR_AND_ENABLE_SPECIFIC, mask);
Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Добрый день! У меня вопрос при работе с block UI Styler. Использую в диалоге edge_select0, необходимо получить tag кривой, пишу в коде следующее:

....... :apply_cb()

{tag_t x;

 PropertyList*  edgeSelectProps = edge_select0->GetProperties();
 std::vector<NXOpen::TaggedObject *> edges = edgeSelectProps->GetTaggedObjectVector("SelectedObjects");
 delete edgeSelectProps;
 edgeSelectProps = NULL;
 NXOpen::Edge* selectedEdge = dynamic_cast<NXOpen::Edge*>(edges[0]);
 tedge = selectedEdge->GetTag();
или
 Curve *curva(dynamic_cast<Curve *>(NXOpen::NXObjectManager::Get(edge_select01->GetProperties()->GetTaggedObjectVector("SelectedObjects").at(0)->GetTag())));
tedge = curva->GetTag(); 
.......
Все компилируется без ошибок. Но во время выполнения программы при получении GetTag() выходит ошибка Block Styler: Use askUserMessage() or askSyslogMessage(). Данная ошибка выходит при попытке получения tag любого "SelectedObjects". В чем может быть моя ошибка?
Ссылка на сообщение
Поделиться на других сайтах

Попробуйте не приводить к нужным типам через dynamic_cast, а посмотреть tag получаемого TaggedObject. Ну и проверка на null.

 

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

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

Спасибо за помошь! Я еще порылась в инете и оказывается надо  устанавливать параметр SECURE_SCL=0 в настройках препроцессора: #define _SECURE_SCL 0  Теперь заработало.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Maik812
      с какой версии сам модуль.
    • Павлуха
      Отстали от жизни? В солиде уже давно кам-модуль вшит.
    • Ветерок
      В Солиде не получится. Солид - это КАД - в нем строится геометрия. И только. Потому в каком-нибудь КАМ строятся траектории, задаются скорости, направления и прочее. И только потом всё это преобразуется в Ж-коды при помощи постпроцессора именно под конкретную стойку. Нужны все три составляющие - КАД-КАМ-постпроцессор.
    • bubl leg
      Всем доброго, друзья!   Вопрос такой: по причине того, что собираю свой ЧПУ станочек настольный с довольно простыми для ЧПУ задачами (супержесткой рамы и прочего - не сильно обязательно) - рисование маркером печатных плат и сверловка их же - требуется какой то более менее подробный гайд на русском языке, по подготовке G-CODE в Solidworks. На youtube я нашел кучу конечно...Смотрю...Но, хоть и понимаю англицкий неплохо, всё равно не так "на лету", как хотелось бы.   Из этого вопрос: может ли кто то порекомендовать имеющийся тут, на форуме или ещё где то - русскоязычный более менее подробный гайд или видео - по моей задаче? Именно в Solidworks (не во FreeCAD и прочем).   Заранее спасибо!   P.S. Как собрать электронику для станка, как прошить - это всё не важно, это всё знаю. Интересует именно подготовка G-CODE в среде Solidworks,с примерами и (желательно) последующей отправкой на ЧПУ.
    • grayve
      Нет этого пункта в меню((( Вопрос решен. Нужно нажать кнопку Применить представление структуры изделия...
    • BSV1
      С наступающим!  
    • grayve
      Народ, Добрый вечер! Подскажите, у меня в сборке несколько сотен кирпичей. Печь собираю. Многие из них стандартные изделия, но поскольку в библиотеке таких кирпичей нет мне пришлось их делать в виде деталей. Соответственно сейчас в спецификации они попали в сборочные единицы. Знаю, что можно по одной детали через окно структуры поменять Раздел... Но несколько сотен раз очень не хочется. Помогите решить проблему? T-Flex 17
    • grayve
      Нужно разорвать проекционную связь с проекцией и переходить на другую страницу.
    • Viktor2004
      наверное для этого и сделали переменную #8501 но она только для MDI клавиш. Цифр и букв там нет. Я когда пробовал на C-Executor писать, тоже не смог реализовать перехват нажатия кнопок во время загрузки ЧПУ. Там тоже фиксируется момент нажатия, а если она уже нажата во время загрузки, инструментами СИ это перехватить не получится
    • gudstartup
      клавиатурные события очень медленные и куда из переменной девается код  если он не замещается другим я не понимаю. если в цикле программы есть опрос и никто более ничего не нажимал и не опрашивал  код должен лежать где положено иначе вся эта катавасия никуда не годится. 
×
×
  • Создать...