青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)
' P8 Z) r" \, o  q5 E{
' t) [$ _/ p8 `, t0 r" V( m- _        tag_t       ps_tag = NULL_TAG;# x0 r' m6 O% w; w* o+ l
        double     amount[3] = { 0.0, 0.0, 0.0 };9 P4 p9 @4 y4 u) n6 c) o
        double     mass[3] = { 0.0, 0.0, 0.0 };9 d) t+ e$ c0 x# m$ Y
        double     c_of_g[3] = { 0.0, 0.0, 0.0 };: o( Z2 p3 `/ x$ H& [* [5 l  y
        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };0 g* C+ E3 h# k7 @1 c3 O) R/ P# N2 T9 M
        double     periphery[3] = { 0.0, 0.0, 0.0 };
! h  s" f: B* j1 r! S  t2 p        double     areas = 0.0;
' N9 H! P( {+ S* H5 Y& _( }4 X        PK_FACE_t  pkFace = 0;; @# X4 p/ v" B( O* o" L
        PK_TOPOL_eval_mass_props_o_t props_o_t;        - z. _- U( t5 Z; l) m0 l( J
        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))7 i+ {# t" O" t" {9 I
                return 0;# j# e9 g2 n. m. b9 G
        pkFace = ps_tag;/ N, M2 ^6 A2 i6 A; R
        if (tol < 0.99)8 G" J! c' y. i
                tol = 0.99;
' V' k& E/ @8 J! X% v$ n5 l( Q2 _/ `        if (tol > 1.0)/ I7 X* G3 W% q) |% F; _; M
                tol = 1.0;
8 I$ h8 Z3 z7 Y8 J" o; t        PK_TOPOL_eval_mass_props_o_m(props_o_t);
  H: [( c- x* m4 S9 |" Z        props_o_t.mass = PK_mass_c_of_g_c;- ]' s; w: U8 V; J. F/ J
        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
# z+ o; f7 w# a. R2 |- E! x        areas = amount[0] * 1000.0 * 1000.0;
( J! b- i. A% \1 W8 r+ F        return areas;
& Q+ t. N9 O2 c7 A0 z5 S" `}& ^/ t8 O, D0 o: d$ H
* D( N! K+ O4 S8 Y! P" B( O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-4 06:46 , Processed in 0.090128 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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