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

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

[复制链接]

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

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

admin 楼主

2019-2-8 12:58:52

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

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

x
: R; Z8 l" B3 h1 H) z' n

1 x  S, g0 v* z# M经常能用的到,通过选择面,显示临时法线方向和点!
" {+ h5 s, o! c5 C7 }  \% b+ e# h: Q3 r" @

+ ~6 k. o  E6 y$ z8 ^0 v& Q[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace)8 x4 L6 N$ k8 D6 i
    {7 c6 N+ q5 \+ F/ T& S
        double[] param = new double[2];3 q6 U; A( }- ]& t8 h( q$ A
        double[] p1 = new double[3];
' s9 r' }3 p7 [, ?        double[] u1 = new double[3];
3 E: F& K* d7 A0 A) n" c1 l* q        double[] v1 = new double[3];
) F5 |) f4 s" w2 _6 F        double[] u2 = new double[3];: T6 M+ I. A( z5 @( g
        double[] v2 = new double[3];% D! Z; y  J# p; U0 B/ D$ M4 D
        double[] unit_norm = new double[3];
: X2 |' \3 ~: N& }        double[] radii = new double[2];
% |, E# O, g- p) {1 y& ?6 R$ A        double[] uv_min_max = new double[4];# Y# W% z3 A3 g4 E) r$ X6 }6 o- c

5 x7 X+ y+ x" r: Y3 F        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);
! }1 M, J% w! L        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2;
( @% p# g1 p0 J        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2;
  p; }) t/ x" M& }4 ]! D        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);
9 t' u0 L/ n& U  P
9 `7 x3 R* F5 J, Z  t8 L, R7 g        DisplayTemporaryPoint(p1);" @2 n6 s1 `6 q: d8 r9 M! _
        DisplayConehead(p1, unit_norm);
. Q* o3 E0 V, H6 Z' a+ h* u: G: Q
- D/ K, b' F( K6 P: w4 \' k: g5 j        return true;
3 x5 p& ^+ U9 y+ i* P0 v# K    }! j) F3 `1 Q1 ^' G( L
    & _5 n/ _( Q8 n4 X
    static void DisplayTemporaryPoint(Double[] loc)- K3 _# f, V( ?3 c
    {8 I& T2 e* @3 x( Y
        UFObj.DispProps color = new UFObj.DispProps();* ^5 z) J7 f( ^8 Z
        color.color = 6;7 {7 M/ s! Z( c
        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView, : N. ^) h2 v- A2 X. N9 d
            loc, ref color, UFDisp.PolyMarker.FilledCircle);. a- {% S2 d& [) B, x( n* [
    }  U( P& H; _7 W/ H  }

; _' Z9 O9 Q* \% e4 m0 X) J    static void DisplayConehead(Double[] loc, Double[] dir)
) ~+ e' U2 B" Q& P- e2 J    {7 w2 m0 t. g- T; f+ T+ n  t
        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);
  s0 ]. ~. Y  A* O; A    }2 \4 g1 D9 ]2 o+ l: N: ^# ?
[/mw_shl_code]
+ X0 G  W- P' i
上海点团信息科技有限公司,承接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的函数基本如下:
; U. g% j2 O8 X2 [5 T' @4 F//获取面的uv极值9 Y9 [4 r" n6 ~0 k. V0 h! G6 V3 S
int UF_MODL_ask_face_uv_minmax) |4 w3 d- T$ h) u1 H+ n
(
$ c% z& {9 J1 P' N# i
  x6 f' R' W5 u2 e, d2 C+ Ltag_t face_tag,
, D. Z3 m" b7 L' cdouble uv_min_max [ 4 ]
# y! b  G- c+ x: C+ `
7 K$ Z- I! M0 z  @% c$ E% u)/ W* p' r' W& r( K# l

: h- p  @) a! ?7 _: U//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出  v$ i+ f3 W; ]1 e3 d* C- M6 J
- K' @+ H+ C5 L
int UF_MODL_ask_face_props
! \/ `7 g9 v% z  o, b9 w
: J5 Q% L# f  H+ u7 L% Y(
, K0 E+ ]* f* I; o0 Itag_t face_id, - [0 ?' v; ^9 v: V. w/ H; y
double param [ 2 ] , & n) o  y0 O) F. t$ f
double point [ 3 ] , 7 u" o" w8 z) I/ @; I) P' g
double u1 [ 3 ] , ! c0 e$ F8 Z; z% I: x; c
double v1 [ 3 ] ,
/ l+ }+ K% n0 `, c5 I* c3 Xdouble u2 [ 3 ] ,
/ P* ^/ P7 Y; bdouble v2 [ 3 ] , 6 s' |# D! ^- e; J4 B. W
double unit_norm [ 3 ] ,
$ }0 P0 ^* O( i% F1 n5 P, udouble radii [ 2 ]
; \( f# x9 M. a5 y' T
% R5 \- g" ^" ~/ c)
& V9 l) c! P! @( a' q8 e8 i
9 R( Y4 x$ M' i//将点输入到显示临时的函数中
3 j( v- I: d& `# N  H* B: R& l  |* Y% u1 r% K
int UF_DISP_display_temporary_point. J0 p8 w' C6 D9 r3 l

! B% O4 T+ k4 [4 X( K) W$ b* i! i# E(
/ \; ]+ A  T2 Y+ y9 w- O+ W, Rtag_t view_tag,
( R  |6 }7 k( G1 g& T' VUF_DISP_view_type_t which_views,
" v: ?$ k2 G  s' Zdouble markerpos [ 3 ] ,
1 F. G2 y) [" k; Z; z# _7 m: W6 t. [UF_OBJ_disp_props_t * color,
- e" E3 ~* v% ~4 a1 WUF_DISP_poly_marker_t marker_type
0 j* G) {6 j) p' h  k  Z* \1 z  S  L+ _  {, V3 o: g* k
)
* Q( z; D7 O) u+ Z. n' s- [; M1 z8 i0 i6 u5 ~8 i. C! _$ {- W
//显示" B8 [" }- J& {8 ?& g1 Z  A
  h5 i) Y, r& G
void UF_DISP_conehead4 y/ n" o) g, U0 u* @3 N+ q! w5 L
(
6 R4 w8 T5 T1 E
6 q, y2 R! a  r) Hint display_flag,
' `- L0 V( I0 S6 P8 ~double coord [ 3 ] , + R7 l/ f) d1 y" n1 d
double vector [ 3 ] ,
7 r+ O$ t! h! w9 I9 Nint anchor_flag
- b$ V) Z% S# l6 t- s. a% j& |. _6 o9 k  O5 r, q
)
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了