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

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 пользователей

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




  • Сообщения

    • Alex1986
      Коллеги, подскажите, пожалуйста, как в имеющемся Компас 3D v20 в как-то сопряженных деталях сделать в одной детали отверстие, а во второй детали отверстие завязать на центр отверстия первой детали, чтоб при перемещении первого и перестроении, автоматически перестраивалось отверстие во второй?
    • Cas
      Это поможет в изготовлении? Вы в этом уверены? Я думаю, что Вы сильно ошибаетесь. Я бы с Вами согласился - если бы Вы мне написали - что вот - фирма по производству отличных мелкомодульных шестеренок. Но Ваши чертежи они понять не могут. Ладно, даже могут, но им дико неприятно (прям фу), потому что там действительно есть некорректная простановка базы, неправильные геометрические допуски и т.д. НО... ситуация то не такая. Чертеж поправить - не сложно, но от этого производитель не найдется, к сожалению.  
    • Shoker
      Конструктора поменяйте на нормального, может будет делаться то, что надо
    • Liga
      Разобрался, реакции можно вытянуть и из МКЭ расчета, но только после правильного закрепления. Сверху - снизу Спс за наводку    
    • Cas
      Вот это дельное предложение. Спасибо. Боюсь, что так и придется делать. Т.к. найти изготовителей мелкомодульных шестерней - прям проблема оказалась. Насчет терпеливого оператора - то точно нет. Не на мелкосерийке. Насчет таблицы - не понял. Ее на чертеже специально нет - она отдельная, что указано в требованиях. Насчет прогресса - то откуда ему взяться то?
    • roiman
      Переделайте конструкцию валов-шестерен, раз проблема с изготовлением. Сделайте шестерни съёмными, на шпонках, хоть с прессовой посадкой. После этого шестерни можно будет изготовить в любой конторе с проволочником. Или тем же проволочником при помощи такой-то матери и терпеливого оператора - с перестановом, с технологическим шестигранником на конце вала для закрепления в тисах, к примеру. Шестигранник после прожига обрезается. Ну или хоть прошивной электроэрозией, если содержимое кошелька позволяет. Но нужна приспособа с поворотом, которая не у каждого есть.   Конструктора найдите другого. Это весёлые картинки, а не чертежи. Хоть бы таблицу с параметрами зацепления привели. Может и дело  было не в разбитом станке, а в способностях конструктора... И кто-то мне говорит, что всё нормально и прогресс. Ни чертежи уже не можем сделать, ни изготовить наипростейшее прямозубое цилиндрическое зацепление...
    • Chuvak
      Я не занимаюсь изготовлением) Но конструктор должен сразу делать нормальные чертежи изделий и знать как их будут изготавливать
    • mmaag
      Допуски на размеры толщины зуба s, w, M имеют допуски в два минуса, т.е. задают гарантированный боковой зазор. Это противоречит требованию об отсуствии люфта. Требование об отсутствии люфта в свою очередь противоречит работоспособности. Оформление сырое. Правильно оформленный чертёж поможет более адекватно оценить трудозатраты и риски и, следовательно, может помочь найти изготовителя. Совет: если у вас есть функциональные требования, то оформляйте их. Это может упростить требования к точности.
    • Cas
      Ну лично я не оформлял.  Соглашусь, что перпендикулярность некорректно поставлена.  Может еще что-то.  Но мне детали нужны для нашего изделия, а не чертежи идеально правильные.  Я себе слабо представляю технолога, который не поймет по этому чертежу, что от него хотят. Я согласен с Вами полностью, что надо оформлять все правильно по ЕСКД. Если Вы мне поможете в изготовлении детали, то заставлю я своего конструктора поставить правильно Базу и перпендикулярность на биение заменить.
    • Chuvak
      Вы разрабатывали валы и оформляли данные чертежи ?
×
×
  • Создать...