PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2019-2-8 12:58:52

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

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

x

& v+ a) e! G  F7 ^2 L. i, \& t& A$ H5 x: @
经常能用的到,通过选择面,显示临时法线方向和点!7 x9 M# g# \! U$ A% Y5 `4 V- S
" Z- l" D) U( v" L$ `& E0 s. ?
8 k8 a# p5 i/ h% M$ C7 j
[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace), m! G% J; U( O
    {3 z7 R1 Z1 a9 c# o) p) W" i4 D% e
        double[] param = new double[2];
" l8 A( d0 A9 k/ F8 B+ ^& v        double[] p1 = new double[3];9 S  K) D' Y: \7 V! c! }
        double[] u1 = new double[3];
: K3 k5 {& U$ P/ J- V) L6 c        double[] v1 = new double[3];# \* K6 ?* T2 h
        double[] u2 = new double[3];
8 h; |9 z5 |! P7 [        double[] v2 = new double[3];
# k" D* K4 q7 i" j0 ~/ \        double[] unit_norm = new double[3];1 o# _9 I! J( Q4 y
        double[] radii = new double[2];: r/ e/ h7 y$ {
        double[] uv_min_max = new double[4];
% d! w3 A0 ?  [- Y; Q" p
3 y7 o! b; b& o! @) P        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);
/ L1 ~( ]; [; P  ^- r        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2;
: J8 S: R9 P2 ^/ G' W; f: m        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2; ( h! |; r. }' L% G* F
        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);3 j  r7 A  |3 p8 C! n5 l0 s

' f: w% f. f% e4 K- |! y) A        DisplayTemporaryPoint(p1);
9 k' g' d2 D. b# [) @        DisplayConehead(p1, unit_norm);
% K# o+ o  N( b, E/ ~( `
1 W; p) q" {/ V! |6 g& S/ q9 ^3 A& x        return true;
- a6 w- h0 ^6 q8 k2 B; d! r! x    }, c2 |9 [" E8 A: P  `
   
* `& a6 s9 W  B! X0 q+ H, r( [- e2 K7 I    static void DisplayTemporaryPoint(Double[] loc): R1 S3 W" D% ^! |; ?
    {8 p: |, }% N; E( e
        UFObj.DispProps color = new UFObj.DispProps();
) C  M* n  ]7 u        color.color = 6;4 Q$ A1 J/ C' w" {: }# P: P
        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView, ) V. f+ N1 ]; J
            loc, ref color, UFDisp.PolyMarker.FilledCircle);
6 ]1 `# c1 b* R/ A" l. R3 |    }
! F1 N0 Z' w3 r7 M; E7 S& B' q# M9 w5 Q/ q0 e; F% I
    static void DisplayConehead(Double[] loc, Double[] dir)8 @2 l( t( n4 {
    {; n! H$ U# @/ R% ~
        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);
$ J% Z6 Z7 ]3 o6 a    }
+ p# Q! K% ?& P% i% O8 D% N[/mw_shl_code]- r9 i7 o/ V5 K
上海点团信息科技有限公司,承接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的函数基本如下:$ M1 J; I% _3 D
//获取面的uv极值2 f% |- |! v+ k/ k
int UF_MODL_ask_face_uv_minmax7 V5 Q2 e/ N9 i% O) v) l, K0 v; @
(( M! B: E: b6 N/ a9 @
6 u5 @2 o3 P( q
tag_t face_tag, ( y5 a" C- B9 B" j7 f3 O
double uv_min_max [ 4 ]
# S' H' {6 o4 H; ]  `! ~: ?4 N) ~& i- L/ c0 R/ ~0 b+ e- r
)
9 A6 f$ J* }* ]( t2 s% E* ~, w( H: N
//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出
7 J7 H1 g- y: s# U: C
  w2 }# v0 V; M7 r; zint UF_MODL_ask_face_props8 @2 V9 R. s' E8 p  x, c
2 D: \+ a" G4 K* m8 o
($ n9 p/ E# B" G3 W0 m
tag_t face_id, : ?+ P! G* F8 r) a( R1 a$ `  M- w
double param [ 2 ] ,
' B3 ^, C0 M3 o& W. q# Jdouble point [ 3 ] , 9 M' D0 c+ {0 [
double u1 [ 3 ] ,
5 |/ @) u! x6 g8 x( N! _double v1 [ 3 ] ,
. l. W/ @: \6 J8 fdouble u2 [ 3 ] ,
. Z1 S" ?7 p+ M; D) {double v2 [ 3 ] ,
2 }, f! V) a% Y/ a' c) A5 Z& ~) Mdouble unit_norm [ 3 ] , + _$ j( |$ y6 E# ]
double radii [ 2 ]
( @! f7 i8 p3 `/ s) c
2 ~8 j; l2 Z, p- _); i) G6 @: \" P4 k  j

, b& N% b( k6 I; d& G3 \8 x0 r//将点输入到显示临时的函数中7 L+ Z! G6 c0 |
' M* h5 P  q% d) t1 x' I6 r
int UF_DISP_display_temporary_point
" `; u2 ^/ c& y9 i/ i9 `, `1 O; ~- ~
(" ?! A+ ]- v' i: S  Y
tag_t view_tag,
" i! y5 |$ J) x% f- v2 E0 GUF_DISP_view_type_t which_views, % @" f; s7 c& J6 s
double markerpos [ 3 ] ,
# f, v8 l- n$ N# j, Z6 V+ B& V  TUF_OBJ_disp_props_t * color, / u# V; a' r8 ~; f3 q; e& _5 V* ~
UF_DISP_poly_marker_t marker_type
- T- Y1 h. p+ m6 g3 G3 n* E
/ N7 E! m1 q* w& b1 l5 ]/ z)3 D, J  |7 P* }/ H2 O) K6 b1 i

# O- z3 `9 N! i//显示
6 f9 p2 Y' a: T* P7 B4 ~* w3 f
) T- u4 Y% X) bvoid UF_DISP_conehead: C4 h  P1 j" e( X7 I8 h
(% Q2 q' J$ `% [8 R" ~

* o6 E0 L% i2 @. i& L" g! x1 Nint display_flag,
; X2 a) v! F; z7 w2 B: ndouble coord [ 3 ] , 0 s" I3 `" j7 }: F
double vector [ 3 ] ,
8 S3 P( Q8 V9 @; L2 B+ Q- `" dint anchor_flag , c3 p, c$ C1 e* A  N9 J) q7 l, ^
6 a0 S: E8 h/ k8 `1 n# E+ U7 m) s
)
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了