青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)
7 X% I7 ?2 ~4 {% ]1 c1 G! ~; `{
5 O) K* I4 l/ x9 g; a& G/ V% c2 A        tag_t       ps_tag = NULL_TAG;' T/ C$ Y' f2 w* N: R
        double     amount[3] = { 0.0, 0.0, 0.0 };% X0 E& J; C* b8 C
        double     mass[3] = { 0.0, 0.0, 0.0 };
$ Y: b, Z6 H5 h# H  d) I" ~        double     c_of_g[3] = { 0.0, 0.0, 0.0 };: q! u% \) K! g) M3 @# v0 f' _
        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };7 @; j6 X8 m# z! M
        double     periphery[3] = { 0.0, 0.0, 0.0 };
' L* p5 r  |, {: u7 h5 Z: J: y" ?' @! }        double     areas = 0.0;
4 M. O3 e2 d' F  Q" B( F        PK_FACE_t  pkFace = 0;
  g2 N7 n6 c0 h( E! A* w        PK_TOPOL_eval_mass_props_o_t props_o_t;       
2 n8 e  W; d- \        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))
9 m/ w2 X6 ^  ]- g' E5 _                return 0;/ |! N5 E7 i3 H! N7 d
        pkFace = ps_tag;
' T/ w/ n, @; ]: \9 C+ m! E        if (tol < 0.99)
$ f& c0 |1 M' m5 P                tol = 0.99;; e: I" k3 C8 f
        if (tol > 1.0)! U& c. S% w3 I2 o, b4 `
                tol = 1.0;
- y3 J1 g1 w# z- n& Z3 K        PK_TOPOL_eval_mass_props_o_m(props_o_t);' P* e/ B, r5 H, ?
        props_o_t.mass = PK_mass_c_of_g_c;
% ?) s8 s9 Q+ y8 G% Q: ?: B+ w9 `' \        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);# H0 j) o9 O+ l& [! S7 V
        areas = amount[0] * 1000.0 * 1000.0;
2 D. a3 h' F2 o) J  g, M. C# n        return areas;
) z3 W, b* Z. B}
% Q. Y: z4 J7 w9 Z
: a' I% ~& q/ R. {; T! x" U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 02:01 , Processed in 0.064377 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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