PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2019-2-8 12:58:52

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

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

x
' |( E  x6 ~% _  |  ?& @4 }

& I5 ?7 j" N# S( X! L4 W经常能用的到,通过选择面,显示临时法线方向和点!
, f& ?1 [8 w7 M: |9 J! y9 r3 {: c0 Z

9 t) Y9 K& Y/ T9 ]. f; @[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace)& E- @7 h& [5 O" Y$ R0 M+ ]' K
    {
6 Q* ~$ E2 N3 y% [( c  A2 G1 ?- C        double[] param = new double[2];9 e- p4 A$ ~7 V
        double[] p1 = new double[3];
3 O: R9 @! K  ~6 V% H        double[] u1 = new double[3];
5 {+ I, L+ O3 f; J. C        double[] v1 = new double[3];, Q/ I% n; ^2 i0 D
        double[] u2 = new double[3];; u) H. A3 h0 r1 f' g% \9 D
        double[] v2 = new double[3];
$ U/ B% S4 M6 E) a. J        double[] unit_norm = new double[3];* ^2 v& E/ W$ z, e7 l; t8 P
        double[] radii = new double[2];. j, j, y: M  D
        double[] uv_min_max = new double[4];
! x% S; U6 S# A: _3 ?9 d5 z8 Q
- i. g5 b( ^# Z% j- \6 {3 N        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);" `- D" J8 }( t
        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2; 2 @& \! f) ~4 f
        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2;
5 n+ ], X& m8 g5 t' o1 X, k        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);6 q& i. l. c) r# ?
" w0 m  w& \0 ], R% V
        DisplayTemporaryPoint(p1);
8 l) f1 Q1 k. h6 Y0 o' t        DisplayConehead(p1, unit_norm);
- c& k4 j- i) e2 x- M) c3 F/ H7 k. J8 N
        return true;/ t% I1 d5 l* X6 o' h; S1 B
    }9 l, E; d0 R: x$ |# t, q
    * ^9 K# Z) Q% {% N! W6 M* \" V
    static void DisplayTemporaryPoint(Double[] loc)
- W9 t- _& |* z) l- j    {
2 @% V, |: M# G5 I        UFObj.DispProps color = new UFObj.DispProps();9 U4 r- \) V2 K
        color.color = 6;4 T8 v) r& t7 a2 v. Q
        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView, % n4 k$ [" `9 N& c
            loc, ref color, UFDisp.PolyMarker.FilledCircle);
6 Q6 t( D  K0 Z' q    }
. J- v7 D, U  Z0 l$ W0 I4 q: X+ l3 o/ ?% G+ m
    static void DisplayConehead(Double[] loc, Double[] dir)& V, _- ?& k  U, H+ }
    {; W$ i4 s# I  q- _2 U) o
        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);: P. ]4 x, G$ N# ?. ^! _' ^
    }
1 _; Y2 W+ V/ c/ O) }/ C[/mw_shl_code]
: ~3 S  e% O, a6 n! j9 J7 c
上海点团信息科技有限公司,承接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的函数基本如下:
) n5 O3 j* U  ^$ T9 ^- b  _//获取面的uv极值
4 B0 U$ v, J% i1 E0 H. ~int UF_MODL_ask_face_uv_minmax; g) @" U' v8 S# B/ K) v2 y! y8 n
(+ B  y6 v% @7 h& V% f
4 m- u5 N6 e  a( v9 [7 J8 z, W
tag_t face_tag, " A2 P* W6 i1 P
double uv_min_max [ 4 ] 5 X: Q: X1 N3 @4 O. |; V2 h

. H& E( r( i) D" X, V* b" Z7 C) x6 i)
0 q- ?( x3 f/ [. D' K. j& b- Y
4 H. l' x1 @; |% D//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出
9 z0 s2 I: B5 P$ M, g. B
' C/ A) M3 e8 N0 _7 n# v; Cint UF_MODL_ask_face_props6 A4 @' p8 V4 z* d- Q, O. P
+ {4 @' B) d. {9 \& ~9 e
(  m- f: g8 Z0 R+ o9 k$ P
tag_t face_id, $ E2 q& B3 u6 g/ t
double param [ 2 ] , + H% N6 J4 e/ H0 v) f! |! d
double point [ 3 ] , 1 X& j/ {3 p4 J) M7 L
double u1 [ 3 ] ,
1 x% G2 U; F. y. C7 K. G. ], G5 Zdouble v1 [ 3 ] , # j0 s9 b' @1 @7 o- g7 o4 \
double u2 [ 3 ] , 3 }" ]* {% _# D6 v: K9 S
double v2 [ 3 ] , $ W0 |; O6 R# J" U( t- u, K4 E5 o
double unit_norm [ 3 ] , ' Q: T, f5 ?4 W7 _/ j$ \
double radii [ 2 ]
- j2 H- }3 v$ c" R. I
$ Z8 [, b, `! ^)
4 w5 I1 b8 W" P: e
8 k8 \6 h& s% n( m  ]7 a//将点输入到显示临时的函数中
8 U- V; {9 ?4 S8 Z, e
+ @0 L0 c4 A4 K9 J5 Kint UF_DISP_display_temporary_point
1 d* c* _# L" K7 h1 I% f* x' Z' r9 n: F! [: K% o# w) K0 @
(
7 \( c( `  N' J5 Ptag_t view_tag, - m  _0 G5 X4 J# T
UF_DISP_view_type_t which_views, ' \* [  Y9 E/ O3 d$ M( P* z
double markerpos [ 3 ] ,
! ]$ q- m3 O5 hUF_OBJ_disp_props_t * color,
" V5 w! |' U/ a2 VUF_DISP_poly_marker_t marker_type
- |. Z6 M: X3 @1 q
! R  ~* s1 B$ P, N6 ~)
+ x' `, w: j7 V5 c4 ^- R' M3 v/ ]* i5 t3 L# w7 D; ]3 p( @6 r
//显示7 R3 n$ B! K/ l* \. K
6 x7 w8 f: k: q6 y: w
void UF_DISP_conehead
4 [4 F1 A1 r- p! D% |& O8 R(5 g- [0 N/ a, ?" P+ [. m" `# n
8 `- h, `# J; \) |3 N. @! J( Z
int display_flag,
% I* r3 \. b' v# w# mdouble coord [ 3 ] ,
. F2 @; T8 q. S) K' xdouble vector [ 3 ] ,
1 X; g5 j2 F; ~4 e8 v7 Rint anchor_flag % x) y7 d2 b# s7 N: \( |, p. M

) h: Y6 T, F- ?)
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了