青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)% |, C5 j% _' U  b. Z) g
{! i+ m& n: z) v# ]! c2 p3 ^4 r
        tag_t       ps_tag = NULL_TAG;
$ W4 H5 I$ v, _2 f3 A7 y* k* G        double     amount[3] = { 0.0, 0.0, 0.0 };
7 A/ @1 i3 S" X0 X        double     mass[3] = { 0.0, 0.0, 0.0 };
& {6 J  B* Y* o6 _# S        double     c_of_g[3] = { 0.0, 0.0, 0.0 };8 p& r/ ^7 g9 a# J
        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
- i* s( y- q# y. F        double     periphery[3] = { 0.0, 0.0, 0.0 };$ w) i$ N/ @: `) F4 [6 q0 ?
        double     areas = 0.0;
% b% Z0 G/ e1 k' c        PK_FACE_t  pkFace = 0;
1 n! L3 j8 `1 K2 W5 z        PK_TOPOL_eval_mass_props_o_t props_o_t;        * ~* w7 ^1 X/ H, \
        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))
! a( G0 H. _% W0 v' a4 N                return 0;
% H. b' p9 Q, W, _8 {9 o        pkFace = ps_tag;
6 \2 I& Z* z, T8 `8 O% t- P4 b        if (tol < 0.99); `% J, @4 I4 j
                tol = 0.99;3 L) t/ p. T3 R
        if (tol > 1.0)2 `8 a- \! s7 h
                tol = 1.0;
1 Z6 c$ [2 h# {3 G/ c% i* L9 p0 r        PK_TOPOL_eval_mass_props_o_m(props_o_t);
6 b& T# h% k! C, W/ q. l        props_o_t.mass = PK_mass_c_of_g_c;2 W* y5 b  S. v8 S
        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);% U2 E% b7 p% O3 R
        areas = amount[0] * 1000.0 * 1000.0;% d+ f8 W$ K% a7 T5 A3 K% P( _
        return areas;2 N8 F, c+ w. b9 {
}
% J$ }1 B; c9 u
( Z- m+ o6 N. z2 V9 a+ m9 |# \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-16 16:26 , Processed in 0.048139 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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