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

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

[复制链接]

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

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

admin 楼主

2019-2-8 12:58:52

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

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

x

7 }" M, X# t, P( j; f; Q2 y1 \* }
2 R) [/ i8 n7 B% N: ^' R经常能用的到,通过选择面,显示临时法线方向和点!
( s! c/ W/ C% F2 b% L" m, N
, p* X8 l0 u- P  y$ x
, j- L0 e9 t5 y, @) a4 {[mw_shl_code=cpp,true]  static bool DisplayNormal(Face theFace)
5 c% y7 O; b3 M% a0 |  V4 z    {9 m- @) F1 y4 R% P. [" j. C
        double[] param = new double[2];
! i, y# J9 N, |( B        double[] p1 = new double[3];5 v  a9 \( |2 \$ Q" k+ i
        double[] u1 = new double[3];" B1 d5 C1 j( F2 @& a( n( D
        double[] v1 = new double[3];
- B. u/ s" s  o; |$ m+ F, n        double[] u2 = new double[3];
. j3 k6 ?' f8 f0 h        double[] v2 = new double[3];
3 X4 }! L# j% K5 f3 ~        double[] unit_norm = new double[3];, U) j1 W/ t* ?" e
        double[] radii = new double[2];. w) T) c; l; }% ?0 |$ e
        double[] uv_min_max = new double[4];6 L% q, a/ q8 N- I0 o. y$ E6 r
4 L& X/ N6 K) C, h5 x3 H" y
        theUFSession.Modl.AskFaceUvMinmax(theFace.Tag, uv_min_max);, Q4 t9 r# X, f# H; ^, Q5 X
        param[0] = (uv_min_max[0]+uv_min_max[1]) / 2; - B* ~+ o# a# p
        param[1] = (uv_min_max[2]+uv_min_max[3]) / 2; ; h3 `4 x% f, E6 o; E* d9 S; a- U
        theUFSession.Modl.AskFaceProps(theFace.Tag, param, p1, u1, v1, u2, v2, unit_norm, radii);
6 }& S8 i( W# j# U4 Y% i3 Q" r: I
; p; C6 S. @' ]5 z: I6 y- U) v        DisplayTemporaryPoint(p1);
7 N9 s) S9 [( K; O" y* z        DisplayConehead(p1, unit_norm);
; O, i7 d6 `& J. V" v4 u8 I" P- m3 C) [4 W2 f& P& w5 M) {
        return true;
) r: i, _  d1 F2 f, ~" x( g1 }, W    }2 ]: d! A+ u& o" e
   
1 A$ Z& m% a( R5 N/ M6 N    static void DisplayTemporaryPoint(Double[] loc)
" ^. h, M7 ^  @2 L" J5 ]    {
1 O4 y4 ^- d4 T8 b        UFObj.DispProps color = new UFObj.DispProps();
& l' Z  a' A: H* ?0 ]        color.color = 6;# n- y7 I! {% \, z, b6 ]
        theUFSession.Disp.DisplayTemporaryPoint(Tag.Null, UFDisp.ViewType.UseWorkView,
8 L* U3 ?$ k8 n5 `4 ~) C+ a            loc, ref color, UFDisp.PolyMarker.FilledCircle);# b9 R' D$ f5 Q& Q: s  m# s5 Q
    }6 q" L- B- _( B* V

/ _: a& `) R- n" W4 b$ t2 U* `    static void DisplayConehead(Double[] loc, Double[] dir), z9 j4 H  y2 z9 ]7 U% H* S# h' L
    {9 R9 E7 |- a7 V$ M3 Z8 T
        theUFSession.Disp.Conehead(UFConstants.UF_DISP_WORK_VIEW_ONLY, loc, dir, 0);- G, H* {5 `+ V! m7 @
    }% e4 H4 ?4 \3 {" L4 r+ r6 n
[/mw_shl_code]  f& `) D9 E( v* v) m
上海点团信息科技有限公司,承接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的函数基本如下:! k! l* ?4 g% `( {) q
//获取面的uv极值# X/ K& l. M  F0 z+ q, ]  m
int UF_MODL_ask_face_uv_minmax
2 f" R" x, v$ P2 |1 Z(* Z6 `2 g5 y) i+ H
5 V* `+ X1 q& U0 R$ Z# C
tag_t face_tag,
' N, H) I! E# p* o3 f. g- Mdouble uv_min_max [ 4 ]
3 h% R  e) e! N' s3 f, \
5 ^  i: B4 R" }$ f4 q)
  @2 ~2 ~! v- q" ^* c7 k
/ b. E, ~8 a+ T  [) I; m! }//获取位置点信息--double param [ 2 ] 的输入就是上一步的输出
9 [# i# F; k- W2 _5 c. K: r) L- c7 P8 M* P
int UF_MODL_ask_face_props
7 w5 `1 y$ F, B' w  k: z+ u5 P& @% Q) P
(# E$ D; F$ z# `, f8 f
tag_t face_id,
. N& q7 H# A+ @) u7 e$ \double param [ 2 ] ,
! T( l/ z$ n- x, H' p) Fdouble point [ 3 ] , 6 L$ J% L' k+ D& U" a
double u1 [ 3 ] , # I' h/ B8 R8 n% J$ Z  k' D5 k
double v1 [ 3 ] ,
' @# ~# w, ~" ^+ k6 ^double u2 [ 3 ] ,
8 o* K) y) _8 ]7 ?  ^. Jdouble v2 [ 3 ] , ) `6 G( n. a2 n+ R4 N
double unit_norm [ 3 ] ,
+ V! K$ n9 ~  R1 F5 U. q6 `: ^double radii [ 2 ] 1 U( v2 s, Y. L" s" _! j/ W% @2 s9 ^1 U
; R6 w7 |& o  H+ f
)
0 m& j# z, `) _5 K
: ^5 }- j7 G0 @//将点输入到显示临时的函数中# F. T6 r& L9 ~

' [. Z  s$ i6 w2 o  o1 Fint UF_DISP_display_temporary_point; [4 ]+ V! r  m. u
( @' m0 t, W& w) ^" k7 J
(
4 u/ E. u; w+ a6 X/ `tag_t view_tag, & o' b/ d: X( w8 C8 E& g* O
UF_DISP_view_type_t which_views, ' @8 ^& Q1 \: Y
double markerpos [ 3 ] ,
- F6 @4 o' R/ t9 N! x8 f  h. h  y2 FUF_OBJ_disp_props_t * color, 2 B# {* U0 ^* {2 t7 l
UF_DISP_poly_marker_t marker_type % {$ W0 d+ N6 |) N1 f' |. o2 \! z

, I& t  V1 L* I9 \8 a% W& z)8 }4 O# n* s  a& r1 U* d
5 @0 u7 R# D, c5 G; d6 Z7 q; o
//显示3 B6 u+ H3 f4 t6 o

  i2 X6 C: g( {9 U" N" ~void UF_DISP_conehead2 r) f+ Y9 v# H7 p7 Q" i- ?2 [
(/ }1 D4 K. t/ Y! |

, d$ C7 u# n* i7 U( ^int display_flag,
9 H7 C; \& t0 M, B7 rdouble coord [ 3 ] , * y; V! U2 p1 f0 S/ s; X
double vector [ 3 ] ,
$ j6 X9 K: [" V( Q+ ~# G) B% Hint anchor_flag
  F/ l/ O0 g+ L" d" D6 q2 R5 }
7 p/ e! N1 B! W# M; y)
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了