PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发源码分享:显示面的法相方向

[复制链接]

2019-2-8 13:26:19 2954 1

admin 发表于 2019-2-8 12:58:52 |阅读模式

admin 楼主

2019-2-8 12:58:52

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
* ]) a# ~6 o% Y. V4 U) Y
- F8 V) D; r: y9 y
经常能用的到,通过选择面,显示临时法线方向和点!8 Q& _' H2 H8 Z+ P+ G
% l! y) r- l' ?# {7 }
( ^. {1 o" e6 w
[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace)
" k( t4 K: }! ?2 }    {
  ~) x1 x& d/ V/ z- S        double[] param = new double[2];$ F1 ~0 K/ Y% d4 f
        double[] p1 = new double[3];; S7 R) [" b0 V1 b& Q
        double[] u1 = new double[3];; G4 u  E6 |; {; u
        double[] v1 = new double[3];
7 K: L4 Q4 Q" {* g% A7 ~        double[] u2 = new double[3];, k9 a! W0 K/ t0 _
        double[] v2 = new double[3];
3 `/ F9 S  o6 t# U1 q        double[] unit_norm = new double[3];
& }4 i  E& y! K: v- b- v        double[] radii = new double[2];+ X/ f0 Q: e' _
        double[] uv_min_max = new double[4];
( E+ M5 S; ^' A! S2 L5 ~0 _4 K7 s9 h' M9 y6 v. u) t2 V- o6 Y' Q
        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);
& O( w; H1 p: b! ^  v' I  M        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2; 9 l$ l3 ?0 f8 A
        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2; ; T; o7 @6 I! U4 f6 q
        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);( G: E- k, ]9 c* c/ I, y

9 Z2 |* ^& D* D6 q0 `        DisplayTemporaryPoint(p1);
$ y0 q, u8 y# q- X1 E/ X6 O        DisplayConehead(p1, unit_norm);4 C3 \1 D% U  X

8 I3 J3 e8 j* @$ P' \0 `: h. X        return true;
& j& R7 F. w) D    }0 K+ ?, |% Z5 i) C) C( q/ F1 W
   
* m' n' N0 Y" H; A5 T    static void DisplayTemporaryPoint(Double[] loc)* h/ _5 u; u7 I
    {2 V+ K1 U* Z6 ~- ^) q1 o: w
        UFObj.DispProps color = new UFObj.DispProps();& E5 F" E: s) W0 }
        color.color = 6;  K9 U7 [7 w) `3 @
        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView,
% V5 P1 E' k3 ?            loc, ref color, UFDisp.PolyMarker.FilledCircle);
  V2 F9 S* s. Y/ c% |0 `6 K    }! l8 p* d' f, S/ E' Z. |
2 A- A4 f) a* C+ V" y
    static void DisplayConehead(Double[] loc, Double[] dir)$ y# c; C( C( _. v- N
    {/ G4 F. U7 v5 Z% u' ?
        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);+ B3 ^$ o; M: |0 c# T# I1 D1 e
    }
0 y% o* z! z. P) {+ \[/mw_shl_code]/ X0 u) L& h9 e4 g
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

admin 发表于 2019-2-8 13:26:19

admin 沙发

2019-2-8 13:26:19

如果使用ufun的函数基本如下:) C( g( u, z* t' T  L) x! {) ^
//获取面的uv极值
( m$ p6 g3 _3 Z1 E* d9 Iint UF_MODL_ask_face_uv_minmax
/ @, M, v# V" X9 J) X- S9 e(
9 p1 r8 s0 q+ Q, E3 M1 S( C$ c  `$ A8 B8 a7 N0 z
tag_t face_tag,
& w$ F. _, E: A" S5 g. ldouble uv_min_max [ 4 ]
% T/ p/ m, Y& B# i7 `- r6 L
9 B7 p( w1 R- [8 K! M6 t)
3 J: g3 {  a9 K7 b) R1 ]3 b/ e+ D/ z9 ~
//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出6 y+ ?: \# f/ m, h
5 U* f3 i4 Q1 b5 s9 t4 a
int UF_MODL_ask_face_props- q+ v7 f- }* w; @2 j

: Q1 z. |0 d, U; K6 T& D/ g(, W- ~# w+ U  V# ]) Y; m- S
tag_t face_id,
6 j' P& ~. I" F% }double param [ 2 ] , ; j& I! z0 m5 B0 T2 X; Q+ C
double point [ 3 ] ,
+ I# ?8 U, X+ d5 K5 \double u1 [ 3 ] ,
6 G3 }  o1 x9 j+ k" `7 y  adouble v1 [ 3 ] , # o# k$ e. G$ v1 P2 [. d( k, ~
double u2 [ 3 ] ,
# f& Y& L) y- u! d1 y  Bdouble v2 [ 3 ] , - A; l6 [. v, C' F/ b" \4 f
double unit_norm [ 3 ] , 3 z2 n1 l0 R; e/ k/ v. ?
double radii [ 2 ]
+ Z, [) A( Z/ B& E
$ t$ \! ^; d8 ?) Q7 A)% L* }0 L# o7 h

2 i* N& X& K# s" b7 c) q3 j//将点输入到显示临时的函数中
* `6 |- R0 z; {( M" o# Z
9 L! |' J+ p' v: C( zint UF_DISP_display_temporary_point4 [0 A, E' u+ @: y% P2 |2 X
" s* D' m; _2 Q3 ]* E
(9 I0 l9 N, ?/ ?2 I) [: F" Q. ~7 t
tag_t view_tag, / D  E; B$ S% ^2 f2 b2 q* g6 K
UF_DISP_view_type_t which_views,
7 }* e# p: c* q$ X% `double markerpos [ 3 ] ,   b; R. E. @4 h" d
UF_OBJ_disp_props_t * color, 9 ^" c, w+ j8 C6 A
UF_DISP_poly_marker_t marker_type
3 N1 ~" j/ R- D& w/ x2 D1 f- r/ s; y* i; c0 ~  X9 U
)
) _; _- B! N5 F# n6 u6 y' ^
" X0 J/ Q% [% u; n. |+ S  s! z//显示2 m5 [' y+ M" @3 ~- W

. K1 `9 |! I* A$ O/ Tvoid UF_DISP_conehead0 F3 |/ `( Q' s  O4 r; Z5 j
(
9 n0 \5 |' |3 n8 H4 s* k& D: G2 y+ q& L
int display_flag, + L8 r6 V% v$ _
double coord [ 3 ] , 8 P7 k/ d1 v: s
double vector [ 3 ] , , O0 n$ h5 Z% w
int anchor_flag
! n0 z7 U( V( A/ g* r9 ]
. K2 C$ E8 h: _9 z( E% z! L9 U)
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了