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

NX Open C Вычесление площади грани твердого тела программным методом


Brokki

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

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

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


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

Ребра то сдесь причем

Они площадь не имеют

Вот список функций что Тебе нужен

int UF_MODL_ask_body_faces

(

tag_t body, 

uf_list_p_t * face_list 

)





int UF_MODL_ask_list_count

(

uf_list_p_t list, 

int * count 

)



int UF_MODL_ask_list_item

(

uf_list_p_t list, 

int index, 

tag_t * object 

)



int UF_MODL_delete_list

(

uf_list_p_t * list 

)





int UF_MODL_extract_face

(

tag_t face, 

int mode, 

tag_t * sheet_body 

)





int UF_MODL_ask_mass_props_3d

(

tag_t * objects, 

int num_objs, 

int type, 

int units, 

double density, 

int accuracy, 

double acc_value [ 11 ] , 

double mass_props [ 47 ] , 

double statistics [ 13 ] 

)



int UF_OBJ_delete_object

(

tag_t object_id 

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

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

Судя по всему - автор мыслит категориями "полиэдрических", извините, твердых тел, или попросту говоря - речь о телах, представленных сетками? Если так - то можно проще: выбросить все в STL, а там - каждая грань (со столь милыми ребрами и вершинами) по точечкам описана. Имея координаты трех точек вычислить площадь каждой грани - как два пальца намочить.

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

Ребра то сдесь причем

Они площадь не имеют

Вот список функций что Тебе нужен

int UF_MODL_ask_body_faces

(

tag_t body, 

uf_list_p_t * face_list 

)





int UF_MODL_ask_list_count

(

uf_list_p_t list, 

int * count 

)



int UF_MODL_ask_list_item

(

uf_list_p_t list, 

int index, 

tag_t * object 

)



int UF_MODL_delete_list

(

uf_list_p_t * list 

)





int UF_MODL_extract_face

(

tag_t face, 

int mode, 

tag_t * sheet_body 

)





int UF_MODL_ask_mass_props_3d

(

tag_t * objects, 

int num_objs, 

int type, 

int units, 

double density, 

int accuracy, 

double acc_value [ 11 ] , 

double mass_props [ 47 ] , 

double statistics [ 13 ] 

)



int UF_OBJ_delete_object

(

tag_t object_id 

)

Спасибо большое, про ребра, просто хотел сказать всё что имеется , думал может быть будет какая нибудь взаимосвязь между ними и площадью. Спасибо:)

Судя по всему - автор мыслит категориями "полиэдрических", извините, твердых тел, или попросту говоря - речь о телах, представленных сетками? Если так - то можно проще: выбросить все в STL, а там - каждая грань (со столь милыми ребрами и вершинами) по точечкам описана. Имея координаты трех точек вычислить площадь каждой грани - как два пальца намочить.

Простите, а можно об этом методе немного по подробнее, если не сложно:)

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

Да почему нет?!

В STL файле каждая грань описана отдельно, с указанием координат вершин и нормали. Читаешь координаты вершин, вычисляешь длины ребер (как корень квадратный из суммы квадратов разностей координат), а дальше - по школьной формуле Герона определяешь площадь треугольника. Все просто.

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

Да почему нет?!

В STL файле каждая грань описана отдельно, с указанием координат вершин и нормали. Читаешь координаты вершин, вычисляешь длины ребер (как корень квадратный из суммы квадратов разностей координат), а дальше - по школьной формуле Герона определяешь площадь треугольника. Все просто.

Это я понял, вопрос в том, как правильно разбить тело на полигоны из этих треугольников. Вот нашел функцию, сомневаюсь, то ли она делает или нет что мне нужно, но всё же

int UF_SF_create_ugs_tet_mesh

(

UF_SF_ugs_tet_mesh_parms_p_t const mesh_parms,

int num_bodies,

tag_p_t const bodies_p,

tag_p_t mesh_tag

)

она вроде бы и выполняет эту задачу, но никак не найду где взять вот эту структуру UF_SF_ugs_tet_mesh_parms_p_t const mesh_parms. Если Вы проделывали эту операцию разбиения тела на полигоны, или хотя бы знаете что нибудь о ней, подскажите пожалуйста:)

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

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

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

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

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

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

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

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

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

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

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




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