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

ug open create


-RD

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

Вопрос вот какой. Создал операцию uf_oper_create (drill, drilling, &oper_tag); но никак не могу найти функции на заполнение операции (точки, поверхность верхняя / нижняя, ось инструмента. ) помогите кто чем может или подскажите в какую сторону копать. Uf_cambnd_set или что то другое ?

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


Докопался до истины. Оказалось , что получить доступ к операции сверления из под open api невозможно. Только через grip. Вопрос возник другой. Каким образом можно создать рабочую систему координат на поверхности в точке и направить ось z по нормали этой поверхности. В grip все просто. А вот как из u/v параметров получить матрицу системы координат ума не приложу.

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

Докопался до истины. Оказалось , что получить доступ к операции сверления из под open api невозможно. Только через grip. Вопрос возник другой. Каким образом можно создать рабочую систему координат на поверхности в точке и направить ось z по нормали этой поверхности. В grip все просто. А вот как из u/v параметров получить матрицу системы координат ума не приложу.

В свое время делал так (убрал тока обработку ошибок)

// Спрашиваем линейный допуск в моделировании
UF_MODL_ask_distance_tolerance (&d_dist_tol);
// Создаем фичер Enlarge
i_type_enlarge = 1; // 0-linear extension; 1-natural extension
UF_MODL_create_enlarge (tag_face, i_type_enlarge, c_percent_size, d_dist_tol, &tag_enlarge);
// Определяем грани фичера Enlarge
UF_MODL_ask_feat_faces (tag_enlarge,&list_faces_enlarge);
UF_MODL_ask_list_item (list_faces_enlarge,0,&tag_face_enlarge);
// нахождение координат u и v на поверхности для точки 
UF_MODL_ask_face_parm(tag_face_enlarge,d_pt_abscsys[i][j],d_param_uv,d_point);
// Находим макс. и мин. параметры поверхности
UF_MODL_ask_face_uv_minmax(tag_face_enlarge, d_uv_minmax);
// находим новые координаты U и V (нормализация)
d_param_uv_new[0]=(d_param_uv[0]-d_uv_minmax[0])/(d_uv_minmax[1]-d_uv_minmax[0]);
d_param_uv_new[1]=(d_param_uv[1]-d_uv_minmax[2])/(d_uv_minmax[3]-d_uv_minmax[2]);
// Нахождение нормали в точке, принадлежащей поверхности
UF_MODL_evaluate_face(tag_face_enlarge,UF_MODL_EVAL_UNIT_NORMAL,d_param_uv_new,&s_eval_result);
//Удаляем фичер Enlarge
UF_MODL_delete_list (&list_faces_enlarge);

Позвольте не скромный вопрос, а где истину "выкапывали"?

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

На сайте Сименса )

Но как с этих данных построить систему координат ? Нормаль есть ось х постоянна. Для создания СК требуется матрица.

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

Матрица системы координат это покомпонентная запись векторов осей, по столбцам или строкам - не помню. Есть функция, которая формирует матрицу 4х4 для системы координат, поищи, точно есть.

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

double mtx_abscsys[9]={1,0,0,0,1,0,0,0,1};

double d_orig_abscsys[3]={0,0,0};

tag_t tag_mtx_abscsys,tag_abscsys;

// Создается матрица абс. СК

UF_CSYS_create_matrix (mtx_abscsys,&tag_mtx_abscsys);

// создаем временную СК

UF_CSYS_create_temp_csys (d_orig_abscsys,tag_mtx_abscsys,&tag_abscsys);

// делаем временную СК рабочей

UF_CSYS_set_wcs(tag_abscsys);

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

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

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

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

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

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

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

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

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

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

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




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