Jump to content
NX-Open-Dummer

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

Recommended Posts

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

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

 

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

UF_MODL_update()

 

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

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



 


 

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

Edited by Lockdain

Share this post


Link to post
Share on other sites


lexx174

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

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

Share this post


Link to post
Share on other sites
harbel

NXOpen::PhysicalMaterial* mtr;

....

NXOpen::NXString mat_id;

mat_id = mtr->GetTeamcenterMaterialItem();

Share this post


Link to post
Share on other sites
harbel

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

...

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

Edited by harbel

Share this post


Link to post
Share on other sites
lexx174
В 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() где и происходит обвал

Share this post


Link to post
Share on other sites
harbel

А зачем 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();

....

  • Нравится 1

Share this post


Link to post
Share on other sites
Luriya

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

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

Share this post


Link to post
Share on other sites
lexincton
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);

 

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

Share this post


Link to post
Share on other sites
Luriya

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

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

    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); // ДОЛЖНЫ ПОЛУЧИТЬ ПЛОЩАДЬ.
 

Share this post


Link to post
Share on other sites
Max999

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

Share this post


Link to post
Share on other sites
Max999

Столкнулся с проблемой вызова диалогов выбора при работе с 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, но безрезультатно. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...