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

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

[复制链接]

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

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

admin 楼主

2019-2-8 12:58:52

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

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

x

# `" w. b" p  l6 c# ?1 I
# o6 m" q, D5 a% I2 @( N1 k6 x经常能用的到,通过选择面,显示临时法线方向和点!
$ c/ [: L5 O7 u9 j" ]) w$ C. A' ?7 f6 b, Y: W1 h
3 \6 l6 i$ q% U0 y, W0 p' b
[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace)
: }0 ]0 P8 x' j- g" \/ A    {
1 R! b6 J% T. K2 n0 \2 Z- ]        double[] param = new double[2];% ?3 a& }( R, D5 [, l
        double[] p1 = new double[3];8 T  ?1 M+ m: x; e6 L+ S
        double[] u1 = new double[3];. L+ [$ O5 u+ |; V. S8 M1 M
        double[] v1 = new double[3];% \- B7 N% @9 U- K: `3 Y4 S
        double[] u2 = new double[3];
" b6 {$ ~( j* ]+ u. t        double[] v2 = new double[3];9 X9 K5 n( I% E# o! i, X7 k6 Z
        double[] unit_norm = new double[3];
; s6 {3 S" j: l        double[] radii = new double[2];
& Z3 y& u: K- z        double[] uv_min_max = new double[4];
( I0 y2 Q% _( l% K
. V) Q5 Q) e( j3 A1 U6 F        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);+ V0 y* A9 v# w* x0 R& l! T
        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2;
: ]; j" ^4 b, J" K. B) }' U; O        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2; 1 O. B3 W% i7 q0 ^1 f
        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);0 p( B( i) ]5 O/ I9 c' a
% z9 _# J, p( R1 {
        DisplayTemporaryPoint(p1);6 h  u6 z0 D8 [' d/ w
        DisplayConehead(p1, unit_norm);/ ]4 y& w9 _5 t  L
$ g" C! b3 L6 Q9 ^" _: o7 G, `
        return true;
% G; Y- Z8 t9 D' Y    }
$ Y6 i# P1 D: A- z    8 C; V9 I) H1 S) ^& {" c
    static void DisplayTemporaryPoint(Double[] loc)
# p% |& [. A3 L# d* L8 y# A    {
6 l* D6 N, v; a* Y+ a/ y8 R' g        UFObj.DispProps color = new UFObj.DispProps();
6 M$ q( a- {2 u" J6 d        color.color = 6;
+ ~2 @4 v) [: V) F+ l7 X: z        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView,
0 {8 Z+ Q6 |' ?& I  c; C& B            loc, ref color, UFDisp.PolyMarker.FilledCircle);
1 T7 `4 A) c+ U. w    }
9 n  h3 I5 ^9 z6 f: R  H7 g/ l  y6 {+ c; m- [
    static void DisplayConehead(Double[] loc, Double[] dir)& W# F0 V, R9 [  v; e
    {
- _& d, m* V" X7 W  \% [4 V        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);" \! ~& k, k! M; N" [  p
    }4 {0 E1 \, I1 i' O) u
[/mw_shl_code]
/ M1 P& A9 l5 ]/ G1 `, B
上海点团信息科技有限公司,承接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的函数基本如下:
; y- B3 c) ~& h) D* B7 G//获取面的uv极值
9 b- N; M/ T" h3 t1 v' ?int UF_MODL_ask_face_uv_minmax
$ s2 K2 `. d  z# {7 a9 s(2 T  n* s$ d2 J
4 G) `  w; K8 }* p# h
tag_t face_tag,
- ^5 U. _! d6 o8 Rdouble uv_min_max [ 4 ] 4 A( M2 [$ N8 A! \
' b7 B. I9 s5 @, o5 y4 J( G  H/ G
)& L. I; J& \2 Y$ |
* C5 ~! S- v3 J& _
//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出7 }/ d2 O, l# U1 J6 Q' q" w

, s% T( ^2 w: b0 [  rint UF_MODL_ask_face_props
3 Q% R5 ?5 E+ g1 O3 R) f* |( U' f( N6 B! O9 _0 ]
($ M3 O1 ~% u. k* p: r* V8 e
tag_t face_id, % A" o! _5 d; V! j) q- ?
double param [ 2 ] ,
' M# y# g% c# i# ?9 B2 hdouble point [ 3 ] ,
; s  f7 W$ Y) i8 {: z! X5 ]2 y+ g% Wdouble u1 [ 3 ] , * _% V1 i# E6 Q: G7 o' Z
double v1 [ 3 ] ,
9 v: i. ^) s/ F& e' r) N) N6 _  v; Ldouble u2 [ 3 ] ,
0 h* u9 t- p! V# k! Y; c+ f) edouble v2 [ 3 ] , 9 S& V: s/ R9 W3 q* A( F) o# k) B
double unit_norm [ 3 ] ,
$ @/ m4 A+ i' p3 Z5 hdouble radii [ 2 ] % C0 z. g- a0 W( P* }  D

/ V. K7 U2 d& b8 G. w)/ `2 g7 H. b  w) \
( j9 k8 U# r" H- y& @
//将点输入到显示临时的函数中
  I, Z( c) ?% Y2 {0 }  q
: z5 R/ r# y- ]$ p, I  ^. Lint UF_DISP_display_temporary_point' c* l% X" D  H1 c) ?: B
3 r  K: L# V$ `: C) y
(
. |/ @5 d' N. `; `9 Ttag_t view_tag, / E( F1 b# y& y" J9 I
UF_DISP_view_type_t which_views, 7 _: @4 L- ^' a4 N' G/ d
double markerpos [ 3 ] , # Z8 q0 F- M3 p! M0 R1 O
UF_OBJ_disp_props_t * color,
6 k& E1 T* ]+ e7 @UF_DISP_poly_marker_t marker_type
8 x" X4 F- j8 D6 W
6 z1 I) s$ _3 c1 j)  I) p; G/ R% o9 t5 x

! j' z! p% M+ F6 `6 }& D( W& }$ c//显示# l" W; i" G" Y) k0 ]
7 d# U+ Q+ T/ t2 @3 G2 S
void UF_DISP_conehead
" L7 M, n& R/ Y(
. Z  D4 V  @4 F" n
, H! ]4 V' I; ^( oint display_flag,
' r: b+ m" U( n0 V2 _4 K: Vdouble coord [ 3 ] ,
$ e. ~! @! `; t/ I6 b7 Z6 Edouble vector [ 3 ] ,
: s! ?2 d4 }/ }( D2 F7 Bint anchor_flag
, j0 [0 r4 Y5 x# C7 z
( o) j* q/ w8 c) b1 J)
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了