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

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


NX-Open-Dummer

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

Может начать с этих функций: UF_MODL_ask_feat_object, UF_MODL_ask_feat_faces, UF_MODL_ask_feat_body??? Потом с полученными тегами делать, что вам нужно.

P.S. Посмотрите раздел UF_MODL.

ТЭГи фичеров у меня есть, я их сам создал. Я просто хочу сделать так, чтобы они не отображались в навигаторе модели, а это как раз можно сделать с помощью фильтра

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


ТЭГи фичеров у меня есть, я их сам создал. Я просто хочу сделать так, чтобы они не отображались в навигаторе модели, а это как раз можно сделать с помощью фильтра

Посмотрите функцию UF_MODL_suppress_feature. Переводится как - подавить "фичу". Наверное, то что вам нужно. Пытался проверить действие этой функции, но увы не смог :sad:

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

Посмотрите функцию UF_MODL_suppress_feature. Переводится как - подавить "фичу". Наверное, то что вам нужно. Пытался проверить действие этой функции, но увы не смог :sad:

Suppress подавляет фичер, а мне требуется, чтобы он был скрыт в навигаторе модели, т.е. не отображался. Чтобы при пользовании утилитой, в дереве не отображался данный фичер.

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

А вы умеете UF_MODL_suppress_feature пользоваться?

UF_MODL_suppress_feature воспользоваться не смог, я сделал через

workPart->Features()->GetAssociatedFeature(nXObject1)->Suppress();

Она просто подавляет фичер.

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

Добрый день! У меня вопрос по Block UI Styler. Проблема следующая: самопроизвольное расширение окна диалога.

После выполнения определенных действий пользователя и нажатия кнопки Применить (Apply) кое-какие группы диалога необходимо скрыть. Делаю я это в процедуре dialogShown_cb():

BlockStyler::PropertyList *groupPropList;

groupPropList = groupnn->GetProperties();

groupPropList->SetLogical("Enable",false);

groupPropList->SetLogical("Expanded",false);

delete groupPropList;

Расширение окна возникает из-за этого. Как не дать окну расширяться? Или вернуть его в исх. состояние после расширения? theDialog->? Может у кого-то была подобная ситуация, подскажите, пожалуйста.

Попробовала использовать

theDialog->Show(NXOpen::BlockStyler::BlockDialog::DialogModeEdit);

окно восстанавливается, но возникает сообщение "Невозможно запустить меню". Вроде об этом кто-то здесь писал. Поищу.

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

Добрый день!

подскажите как правильно пользоваться функцией

int UF_PATH_create_linear_motion

(

UF_PATH_id_t path_id,

UF_PATH_linear_motion_t * linear_motion_data

)

Конкретно не могу совладать с первым формальным параметром. Там указатель на неопределенный тип данных. Что вообще туда отправлять? В справке пишется "идентификатор для работы с функциями из раздела UF_PATH". Не понимаю откуда его взять...

Нужно ли что-то сделать перед обращением к этой функции и можно ли создать траекторию обработки без создания операции обработки и создания CAM сессии?

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

Добрый день!

подскажите как правильно пользоваться функцией

int UF_PATH_create_linear_motion

(

UF_PATH_id_t path_id,

UF_PATH_linear_motion_t * linear_motion_data

)

Конкретно не могу совладать с первым формальным параметром. Там указатель на неопределенный тип данных. Что вообще туда отправлять? В справке пишется "идентификатор для работы с функциями из раздела UF_PATH". Не понимаю откуда его взять...

Нужно ли что-то сделать перед обращением к этой функции и можно ли создать траекторию обработки без создания операции обработки и создания CAM сессии?

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

Здравствуйте. Создаю операцию, заданную пользователем:

1. Создаю системную переменную, где прописываю путь к dll.

2. Код к длл беру из файла из каталога ugopen по рекомендации avd.

3. Подгружаю в nx, длл ничего не строит, но главное что подгружается и работает.

Ну так вот, я начинаю редактировать код, компилирую, старую длл пытаюсь заменить на новую. Ругается проводник, пишет длл используется. Приходится каждый раз выходить из NX. А это сами понимаете неудобно.

Можно ли создать такой проект, чтобы длл выгружалась из памяти без выхода из NX?

Заранее спасибо.

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

// Unload Handler

// This function specifies when to unload your application from Unigraphics.

// If your application registers a callback (from a MenuScript item or a

// User Defined Object for example), this function MUST return

// "UF_UNLOAD_UG_TERMINATE".

extern "C" int ufusr_ask_unload( void )

{

// return( UF_UNLOAD_UG_TERMINATE ); //выгружает вместе с NX

return (UF_UNLOAD_IMMEDIATELY);//выгружает сразу по завершении dll

}

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

// Unload Handler

// This function specifies when to unload your application from Unigraphics.

// If your application registers a callback (from a MenuScript item or a

// User Defined Object for example), this function MUST return

// "UF_UNLOAD_UG_TERMINATE".

extern "C" int ufusr_ask_unload( void )

{

// return( UF_UNLOAD_UG_TERMINATE ); //выгружает вместе с NX

return (UF_UNLOAD_IMMEDIATELY);//выгружает сразу по завершении dll

}

Спасибо за помощь, теперь рабочий процесс стал намного удобнее :smile:

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

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

Возник вопрос: что такое "current drawing" в драфтинге?

Вызываю функции UF_DRAW_ask_current_drawing и UF_DRAW_ask_views. В обоих есть тег на "current drawing". При вызове функций, UF_CALL выдает ошибку "There is no current drawing".

В навигаторе детали есть вкладка "Drawing", а в ней "рабочий-активный" лист и импортированный в него вид. Ошибка все равно выходит.

Заранее благодарен.

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

Листов чертежа может быть несколько, между ними можно переключаться, чтоб работать с их объектами (видами). Первой функцией получаешь тэг листа-чертежа, второй по этому тэгу получаешь тэги его видов. Там же есть пример...

А вообще для работы с объектами чертежа, может понадобиться открыть его:

tag_t dr,vvv,oj=NULL_TAG ;

int num_drawings;

tag_p_t drawing_tags;

//UF_DRAW_ask_current_drawing(&dr);

UF_DRAW_ask_drawings (&num_drawings,&drawing_tags);

for(int i=0;i<num_drawings;i++)

{

//открыть = сделать текущим

UF_DRAW_open_drawing (drawing_tags);

UF_DRAW_ask_view_of_drawing(drawing_tags,&vvv);

}

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

Всем привет!

Надо построить набор ассоциативных окружностей. Использую функцию UF_CURVE_create_line_arc.

Не могу задать радиус окружности.

В справке пишут для структуры :

 

UF_CURVE_constraint_s
 

Defined in: uf_curve.h
 
Also known as:
  • UF_CURVE_constraint_t
  • UF_CURVE_constraint_p_t

 
Overview
The following structure is the structure used define the constraint
with which the associative curve must be created.


Data Members

constraint_type
The type of constraint

end_type
The end to which this constraint
must be applied.

object_tag
Object with which the constraint
is to be applied.

value
double
If constraint needs a value then
use this field, ex. UF_CURVE_angle
UF_CURVE_radius type constraints
.

help_data
help data when constraint is tangent / normal

 

 
 
Член структуры value задаем, если ограничение есть число. Но за исключением UF_CURVE_radius... Как тогда его задать?  
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Здравствуйте! Подскажите, пожалуйста, чем можно заменить экспорт чертежа NX в виде cgm-файла (используем его для вставки в Excel или Word). При использовании cgm просмотр файлов Excel/Word выполняется очень долго из-перерисовки или масштабирования, кроме этого тормозится печать или изображение печатается неполностью. Вообще-то, достаточно бы получить JPEG или BMP чертежа, но при экспорте в эти файлы, нужно как-то отделять сам чертеж.

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

Всем доброго времени суток.

А есть ли возможность считывать/записывать атрибуты айтемов Тимцентра из-под NX.

Но: 1. не через маппинг;

      2. не с помощью invoke_pmd_server..

Может есть методы, позволяющие это напрямую делать?

с помощью PdmSearchManager могу получить все айтемы по идентификатору, например. Результат получаю SearchResult, а что с ним делать, кроме как вывести идентификаторы, не пойму.

И еще.. есть ли возможность, найдя список айтемов, поочередно открыть их наборы данных ugmaster в nx?

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

Здравствуйте! Подскажите, пожалуйста, чем можно заменить экспорт чертежа NX в виде cgm-файла (используем его для вставки в Excel или Word). При использовании cgm просмотр файлов Excel/Word выполняется очень долго из-перерисовки или масштабирования, кроме этого тормозится печать или изображение печатается неполностью. Вообще-то, достаточно бы получить JPEG или BMP чертежа, но при экспорте в эти файлы, нужно как-то отделять сам чертеж.

Можно копировать экран (команду точноне помню, что-то типа Изменить - Копировать экран). Если вы находитесь в моделе черчения и у вас отображается лист чертежа, то данная команда в буфер виндовс копирует векторную картинку в формате EMF, которую можно вставить в ворд или эксел и она будет намного легче CGM

есть ли возможность, найдя список айтемов, поочередно открыть их наборы данных ugmaster в nx?

Давно не программировал по NX-TC, но вроде если есть item revision и другие параметры (точно не помню), то открыть его можно через UF_UGMGR_decode_part_file_name и потом просто UF_PART_open

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

Так cgm же просто конвертируется в jpg через UF_PLOT_convert_file(...).

Только надо настроить вывод на плоттер (см.UGII_SDI_SERVER_CFG_DIR).

И вообще лучше сразу в jpg выводить через новые классы:

workPart->PlotManager()->CreatePlotBuilder();

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

Так cgm же просто конвертируется в jpg через UF_PLOT_convert_file(...).

Только надо настроить вывод на плоттер (см.UGII_SDI_SERVER_CFG_DIR).

И вообще лучше сразу в jpg выводить через новые классы:

workPart->PlotManager()->CreatePlotBuilder();

Большое всем спасибо.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • mrVladimir
      @gudstartup @Viktor2004 спасибо Вам за такое участие.  Я вот тоже в maintenance manual заглянул (наконец-то ). А вот фраза "при замене FROM/SRAM необходимо ..." (под пунктом 3 во вложении) не подразумевает, что появление ps5523 произойдет только если мы решим на нашей чпу поменять именно FROM/SRAM. А при замене других печатных плат (в том числе и материнской ) необходимо только как написано в пункте 2 восстановить данные памяти SRAM и, при необходимости, файлы пользователя. Нет?
    • maxx2000
      @davidovka это же очевидно. Вдруг нужного размера не окажется  как в анекдоте  
    • davidovka
      А для чего и сотни исполнений в таблице и гибкость одновременно?
    • ak762
      в СВ есть встроенный калькулятор для расчета балок при различных сценариях нагружения если ваш профиль монорельса совпадает с предопределенными профилями то можно прикинуть поведение монорелься без анализа на картинке 2 расчета двутавровой балки в качестве теста    
    • Viktor2004
      @mrVladimir не спешите отчаиваться. Вопрос спорный Я завел новую тему в которой мы это выясним  
    • Viktor2004
      Уважаемые специалисты. У кого был опыт замены фануковских плат? Именно на ЧПУ. Пожалуйста напишите какое ЧПУ и какую плату меняли И результат. Подошла или не подошла  
    • gudstartup
      @mrVladimir к сожалению с вашей платой все не так просто вам придется приобрести ее клон то есть она должна быть подготовлена продавцом и в нее должен быть записан серийный номер вашей старой платы он на штрихкоде а так готовить умеют не все или готовьтесь к сертификации опций также есть еще один аппаратный вариант но не каждый будет на новую плату м\сх перепаивать с риском превратить ее в кирпич.   если бы у вас был отдельный модуль процессора то вы бы просто переставили его в новую плату и все а с этой платой из-за ее не модульности намучаешься
    • SAPRonOff
      в окне состава изделия снять замочки у колонки позиция, тогда генератор колонки состава изделия не будет им присваивать свои значения автоматически, а запомнит то - что вы поставили или стояло до изменений проекта: 
    • Kelny
      Смотреть надо процедуру main, почти в самом конце: Слева от этих строк на сером поле ставите красные точки (клик мышкой) и запускаете макрос, когда макрос дойдёт до обозначенных строк можно будет наводить мышку на перменные, например, sPathName и смотреть значения, что бы определить где сбой: Для продолжения выполнения макроса нажимаем зелёный треугольничек (как кнопка Play).      
    • edifer5
      мне бы тоже было интересно,есть ли какой то способ вытащить модель из .cgd?
×
×
  • Создать...