青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 916|回复: 0

[分享] 通过PK内核函数获取面的面积

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)) }& g! {. x$ n# N0 B
{
/ }3 p/ K9 |3 }$ i: e! m  \        tag_t       ps_tag = NULL_TAG;
5 r- `2 B( M! m& N! z. B% N        double     amount[3] = { 0.0, 0.0, 0.0 };2 ]1 {/ G9 {5 S# o2 P: U
        double     mass[3] = { 0.0, 0.0, 0.0 };
6 w# Y1 G5 o) D# T  s        double     c_of_g[3] = { 0.0, 0.0, 0.0 };2 R7 i, D% o' }7 w
        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };. m8 J/ m+ c' ~  t( T' K
        double     periphery[3] = { 0.0, 0.0, 0.0 };; T7 o1 d0 W; D9 `) @- |- C; V( N4 X
        double     areas = 0.0;3 [& {5 C* w1 J/ a$ ~$ K
        PK_FACE_t  pkFace = 0;
3 C! [5 L. E( ]/ j2 i! A        PK_TOPOL_eval_mass_props_o_t props_o_t;        " u! r. A) j4 u; w4 Z! j: r
        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))
' y" ?5 |8 l* l4 z6 Y: M7 y$ D% A                return 0;
2 ^! U0 {1 a& }5 ~9 T$ b3 ~* f        pkFace = ps_tag;
- i2 a0 {) G% g: H, ^        if (tol < 0.99)
: Z( m. }) T$ b0 S                tol = 0.99;/ w& }4 _  C* Z
        if (tol > 1.0)
4 j8 V. e0 }$ c5 e+ J! S                tol = 1.0;& ^* n+ `, n* ~; m) f  a- H' J
        PK_TOPOL_eval_mass_props_o_m(props_o_t);+ J( C7 |3 X: Z0 q' _( q
        props_o_t.mass = PK_mass_c_of_g_c;# Y: Z- u% T. a$ u6 W$ i
        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
  H: |+ K8 V, Z: C$ \        areas = amount[0] * 1000.0 * 1000.0;' J! X5 r! i4 k; d( Q6 J
        return areas;
8 g/ j% Y7 ~; B. i}. R4 {3 Q* }* L8 p' `% S
  g6 Y* [* c) d" d0 l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-2-2 09:28 , Processed in 0.048639 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表