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

NX Open C программирование


NX-Open-Dummer

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

3 часа назад, lexx174 сказал:

Вопрос по удалению члена семейства деталей програмно.

 

Есть такой баг - после удаления члена семейства методом UF_FAM_delete_member далее нужно вызвать

UF_MODL_update()

 

Но этот метод не обновляет саму таблицу семейства, строка с членом семейства в таблице остается.

Какие варианты есть чтобы сохранить изменения в таблице семейства после удаления?



 


 

В NXOpen.PartFamily.TemplateManager ничего похожего?

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


Как через NXOpen c++ получить материал,назначенный телу из библиотеки тимцентра?

Метод GetUsedMaterials() почему-то вызывает OS error signal 11 (самая мерзкая ошибка NX)

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

NXOpen::PhysicalMaterialCollection* allmat = workPart->MaterialManager()->PhysicalMaterials();

...

....mtr->GetUsage(...

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

NXOpen::PhysicalMaterialCollection* allmat = workPart->MaterialManager()->PhysicalMaterials();

...

....mtr->GetUsage(...

GetUsage() - нет такого метода

В 23.08.2017 в 06:48, harbel сказал:

NXOpen::PhysicalMaterial* mtr;

....

NXOpen::NXString mat_id;

mat_id = mtr->GetTeamcenterMaterialItem();

прежде чем использовать mtr->GetTeamcenterMaterialItem(); нужно получить массив mtr а получить его можно только через

workPart->MaterialManager()->PhysicalMaterials()->GetUsedMaterials() где и происходит обвал

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

А зачем GetUsedMaterials() ???

 

NXOpen::PhysicalMaterialCollection* allmat = workPart->MaterialManager()->PhysicalMaterials();

NXOpen::PhysicalMaterialCollection::iterator mt;

NXOpen::NXString mat_id;

if (allmat->begin() != allmat->end())

{

...

//перебор материалов части

for (mt = allmat->begin(); mt != allmat->end(); mt++)

{

NXOpen::PhysicalMaterial* mtr = (NXOpen::PhysicalMaterial*) *mt;

NXOpen::NXString mat_name = mtr->Name();

....

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

Необходимо построить Конструктивный элемент -> Вращение (листовое тело вращения относительно оси XC)

Какую функцию NXOPEN C использовать для построения? UF_MODL_create...? Если есть возможность, пример использования

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

Необходимо построить Конструктивный элемент -> Вращение (листовое тело вращения относительно оси XC)

Какую функцию NXOPEN C использовать для построения? UF_MODL_create...? Если есть возможность, пример использования

    NXOpen::Features::Feature *nullNXOpen_Features_Feature(NULL);
    NXOpen::Features::RevolveBuilder *revolveBuilder = workPart->Features()->CreateRevolveBuilder(nullNXOpen_Features_Feature);

 

Про журнал программирования знаете?

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

Спасибо за участие!

Листовое тело вращения построила, я пользуюсь для этой задачи чистым Си :

    tag_t LinWrk;

    UF_FEATURE_SIGN mode_sign = UF_NULLSIGN;
    tag_t generators[1];
    char *body_limit[2] = {"0.0", "360.0"};
    char *offsets[2]= {"0.0", "0.0" };
    double origin[3] = {0.0, 0.0, 0.0};
    double direction[3] = {1.0, 0.0, 0.0};
    UF_MODL_SWEEP_TRIM_object_p_t trim_data = NULL;
    int  obj_count;
    tag_t *objects;

    status = UF_CURVE_create_line(&LinWrk_coords, &LinWrk);
    UF_MODL_set_body_type_pref(UF_MODL_SHEET_BODY);    //листовая поверхность
    generators[0] = LinWrk;
    UF_CALL(UF_MODL_create_revolution(generators, 1, trim_data,
                            body_limit, offsets, origin, false,
                            true, origin, direction, mode_sign,
                            &objects, &obj_count ));
    UF_OBJ_set_layer (*objects, 103);            //103 - элементы построения

 

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

 

    status = UF_SF_face_ask_area(*objects, &area); // ДОЛЖНЫ ПОЛУЧИТЬ ПЛОЩАДЬ.
 

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

У меня NX8.5. Как реализована (и реализована ли?) в соответствующем UGOpen работа с сопряжениями сборки? В старых примерах я что-то подобное нахожу, но в тех заголовочных файлах, что имеются у меня, соответствующие функции и структуры отсутствуют. 

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

Столкнулся с проблемой вызова диалогов выбора при работе с UDO (UGOpen).

Написал программу, определил методы для UDO. UDO в NX успешно создается. Теперь пробую эти UDO менять. Для этого в методе Edit пытаюсь вызвать диалог выбора:

DllExport extern void edit_my_udo_cb(tag_t udo_tag)
{
...
	char*	message = "Выберите группу точек";
	char*	title = "Выберите группу точек";
	int		scope = UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;
	int		response;
	tag_p_t	object;
	int		count;

	if (UF_CALL(UF_initialize())) return;
...
	errorCode = UF_UI_select_with_class_dialog(message, title, scope, point_init_proc, NULL, &response, &count, &object);
...
}

Код успешно компилируется (point_init_proc определена), но при редактировании UDO в NX диалог выбора не создается. Отладка показывает, что функция UF_UI_select_with_class_dialog возвращает ошибку "Dialog area 2 is not currently available". Гугление ничего внятного не показало. Пробовал применять указанное здесь - https://docs.plm.automation.siemens.com/data_services/resources/nx/10/nx_api/en_US/custom/ugopen_doc/uf_ui/uf_ui_ref10.html, но безрезультатно. 

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

Такой вопрос , а вы инициализировали диалог объектами которые хранятся в udo? Может в этом проблема . 

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...
В 10.06.2020 в 19:20, denis3122 сказал:

Такой вопрос , а вы инициализировали диалог объектами которые хранятся в udo? Может в этом проблема .

Не понял. Можно по подробнее?

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      вы тоже думаете что можно все компоненты чпу заменить и ничего не изменится и предупреждение о том чтобы oprminf не восстанавливали на другой машине которое фанук встроил даже в загрузчик это просто алармисткий текст и ничего не будет..... ну и ну и где написано что она mate как например здесь с чего тогда базовый чпу mate если гл.плата не mate мне непонятно из-за экрана что ли
    • статист
      Охренеть, ни за что бы не догадался. Хоть бы словом где обмолвились об этом в документации. Короче нужна команда EMODIF, E_ID, 3, N_ID где E_ID - номер элемента, который мы собираемся модифицировать. Так как используется BEAM188, то у него не два узла оказывается рассматривается, а три, где первые два принадлежат элементу, а третий узел - направляющий. И соответственно число 3 - это номер узла балки, который мы собираемся модифицировать, то есть направляющий узел. И мы этот узел соответственно заменяем на узел с номером N_ID. И тогда сечение реально вращается. Разобрался по этому видео.    
    • Александр1979
      Материнка такая в руководстве есть. На 0i-D я менял материнку, опции не слетели. 
    • gudstartup
      @Viktor2004 кстати конкретно модели автора в руководстве нет хотя оно последней редакции 18 года
    • Viktor2004
      конкретно на этой не менял. На каких менял, написал выше
    • gudstartup
      какие платы и на каких системах вот в чем ворос конкретно на этой возникут проблемы
    • Viktor2004
      ну да. А то что я менял платы это мои бредовые фантазии   Ну исправили в паспорте. И что?
    • gudstartup
      это догадки и гадание на кофейной гуще а япривожу документ где написано про то что прочитайте пункт 4.11 а там представляете вот что 4) Замена печатной платы может привести к изменению идентификационного номера ЧПУ. Проверьте это на Экран ЧПУ. Если оно отличается от описанного в техническом паспорте, исправьте его.  
    • Viktor2004
      я менял все платы. И на форуме наверное не я один их менял. И никто еще не писал что при этом у него слетел сертификат Возможно ID номера проверяются только в момент установки опции, а когда они уже установлены и мирно хранятся в OPRM INF возможно ти уже на ID наплевать
    • gudstartup
      для кого это написано CAUTION Before replacing a printed circuit board, be sure to read Section 4.11, “OPTION INFORMATION FILE” to confirm the procedure.  
×
×
  • Создать...