青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)
2 i; ~/ |& w8 J6 N{
2 a8 `$ ?4 N" Z' B        tag_t       ps_tag = NULL_TAG;
+ q4 m: r0 F. [  ?3 S$ k$ o        double     amount[3] = { 0.0, 0.0, 0.0 };8 b. h3 Z  P2 D2 {. a
        double     mass[3] = { 0.0, 0.0, 0.0 };
: x* |  W( [' E0 o  M$ K        double     c_of_g[3] = { 0.0, 0.0, 0.0 };7 \5 g1 l$ u7 a4 s$ P' d
        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
  X, f# L& `- N1 R        double     periphery[3] = { 0.0, 0.0, 0.0 };
0 H. R+ v( V  w8 e: z/ {& y        double     areas = 0.0;
& b" @) |/ h% S, z( B+ ^        PK_FACE_t  pkFace = 0;
. s, _: x* C. E( c* J        PK_TOPOL_eval_mass_props_o_t props_o_t;       
6 B7 r4 b+ C; R9 _( d        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))% s. l; }+ [4 Y
                return 0;, p% q/ a4 I; n3 Q$ p
        pkFace = ps_tag;
& L  {# F2 P9 F' n0 i        if (tol < 0.99)
! o/ D# n6 F4 Z+ k- W+ Y$ R* r5 V                tol = 0.99;
$ R8 A  Y) J1 F( r) k        if (tol > 1.0)! P8 @  H2 o% V9 m$ N
                tol = 1.0;* o% B% [& _  I
        PK_TOPOL_eval_mass_props_o_m(props_o_t);
: h" e" W7 Q5 ~! D% d- [" f! L        props_o_t.mass = PK_mass_c_of_g_c;
0 @  y9 `5 v0 A4 \+ H/ \        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
: o6 R+ P: }" r        areas = amount[0] * 1000.0 * 1000.0;8 \) n) K  b8 f/ @8 N4 F4 _; v
        return areas;* c& c( t5 q; D3 [* M- N' Z
}
2 b$ ^; v6 j4 T) ]: e7 _# j8 U. O6 R2 G7 j, ^; w! a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-2 05:12 , Processed in 0.185023 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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