青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2023-10-20 16:34 | 显示全部楼层 |阅读模式
double AskFaceAreasByPK(tag_t face_tag, double tol)
) \$ |9 f; B3 y6 H# X9 g& o' J. A7 X9 t{
+ F; {! F9 n: i( [6 f        tag_t       ps_tag = NULL_TAG;' ~" o$ F/ h, ^9 p) I
        double     amount[3] = { 0.0, 0.0, 0.0 };. X# k: m$ |6 e, u4 E
        double     mass[3] = { 0.0, 0.0, 0.0 };3 n1 P& f) j1 ?/ E% |* n
        double     c_of_g[3] = { 0.0, 0.0, 0.0 };
$ y1 z2 t! c' U' m# {% N: D0 X        double     m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
7 U' V) T- t4 h- r. s        double     periphery[3] = { 0.0, 0.0, 0.0 };; a: i1 m+ ]# n' r" f$ c
        double     areas = 0.0;8 w! @) B3 b, {& N5 c% A3 `, x
        PK_FACE_t  pkFace = 0;% G& g) i. r& f# C/ p2 z% z% O2 B
        PK_TOPOL_eval_mass_props_o_t props_o_t;        & e2 p) w9 O& Q6 P( d
        if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))# ]; A$ V+ v  U7 f0 w8 ~" N1 n
                return 0;- r! @- ]' t3 e. E3 l" R
        pkFace = ps_tag;( ?9 {! E* u  B- e( X) u4 l
        if (tol < 0.99)8 t  @/ s1 v6 Z- r3 L# L0 d$ S6 a* ^
                tol = 0.99;4 V2 Z' y3 H1 B# {
        if (tol > 1.0)
5 C" R! u! n# N* v$ E                tol = 1.0;$ A+ z/ z2 r2 q! u! {" S
        PK_TOPOL_eval_mass_props_o_m(props_o_t);
, ]$ s7 O1 Z7 I9 X( A; i( R        props_o_t.mass = PK_mass_c_of_g_c;5 Q# `6 K% r, z8 F" M
        PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
! {- u; }. m1 N4 f3 z! n( g        areas = amount[0] * 1000.0 * 1000.0;% u- B6 R! P5 s: ~+ _4 ^
        return areas;  s) O+ O* e+ W1 p
}7 o( K- r2 a9 @3 T. P9 ^& q
% Q: O$ Z4 I/ n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 09:39 , Processed in 0.047906 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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