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

[求助] 工程图模式下用UF_UI_select_with_single_dialog()选不中?

  [复制链接]

2016-12-12 12:22:04 4070 2

丿僦湜灬禧歡沵 发表于 2015-12-3 13:55:58 |阅读模式

丿僦湜灬禧歡沵 楼主

2015-12-3 13:55:58

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

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

x
UG二次开发问题:我在建模环境下用UF_UI_select_with_single_dialog()没问题,在工程图模式下用UF_UI_select_with_single_dialog()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……! r4 t  b' V$ ^  d" {9 H
        tag_t object,view;0 c; R2 g+ R+ s9 Q
        char cue[] = "select object ";
# [/ v* Z9 W) }" w' F& |9 @        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
4 l& I' k7 a4 J# t# f        char part_fspec [ MAX_FSPEC_SIZE+1 ];  y1 r! r1 @; ?: v2 E
        int  response;/ `2 j8 J; {9 Y8 T) `
        double cursor[3];
) h. d2 ]4 S0 ~& h& Z6 `9 \        tag_t part_tag;3 H  X# Y, n' r4 S
        CString infro;: ^* Y% s% m* z  K6 M) A  }; n
) f. H" u" s0 L0 q2 S4 D
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
, y( Y0 s) R" t9 P& h  W        if (response == UF_UI_OBJECT_SELECTED ||
7 A; U: E# ]. z# I* b3 F! a7 X                response == UF_UI_OBJECT_SELECTED_BY_NAME)
7 N" |6 ^9 Q1 Q, l$ v        {* O# l$ s* k. Q5 D6 ]  B# K
                UF_DISP_set_highlight(object,0);7 E, c& R$ b' ]6 k
                UF_MODL_update();4 ]/ o" C$ w7 s1 I( U6 a, y
        }
0 k9 o$ I; K5 d! p2 O; gstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)" O, f! a1 B: t* i+ {' C# e
{  
# k8 k2 ]8 ]* X' h& D5 N        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
7 l; u3 P7 Q) X* F3 b7 ]" X        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0), C8 d4 n$ V0 j; d$ ?3 ]( |
        {8 Y! G+ x( o  c! ^2 E9 s$ @
                return (UF_UI_SEL_SUCCESS);7 ^* W) m) I# B- d6 P- _2 j
        }
" M: ]: X8 v$ W* t) b) I1 m" o        else' _8 z* Y. J4 d
        {  ]6 N- W/ V# ~" N
                return (UF_UI_SEL_FAILURE);, H2 v3 X/ T) [! v
        }% d& H9 Z8 h% W+ ?7 b2 I
}2 x+ Z  Q( J9 F$ D- m* ^

# V% n9 m4 c: ^2 s
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复2

丿僦湜灬禧歡沵 发表于 2015-12-3 14:36:31

丿僦湜灬禧歡沵 沙发

2015-12-3 14:36:31

难道我过滤错了?没人回答?……。自己顶下啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

15757753770 发表于 2016-12-12 12:22:04

15757753770 板凳

2016-12-12 12:22:04

int viewview=1;9 p+ ^+ u- T2 g$ {  W+ P1 Z
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view! ?, J8 n! F3 q- f, C' g* O3 Y
+ T3 w( A; X: e% G1 l" B; t

7 H* G6 k% y, B4 OUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象; _. ^4 I4 m+ }0 e; v# J; n6 t
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象; w" x# W9 y$ i$ S8 S

. n' z- l: N, k————————————————————————————————————————
" H, ?/ Q  a/ Z8 n/ `列子选择视图里的直线边缘
9 p: ^, w$ ^, @
/ @  w% l9 N7 e" z. J$ }/ j; z; t#include <uf_drf.h>
' }8 x& a" }3 d7 h8 B4 c#include <uf_obj.h>5 K0 P6 E" w( v0 i) e
#include <uf_curve.h># w  G1 B* [& g  |: c6 k
#include <uf_csys.h>
1 L2 Z  Z% Z5 [+ L#include <uf_modl.h>* O& j* R+ w- O

# Y/ C7 j# k) @9 ]0 q/ A* r1 t
4 s/ B, X' ~% f; R3 k//设置选择的实体类型
2 u, Z- x2 g/ `: Y! ^static int init_proc( UF_UI_selection_p_t select, void *user_data )
4 l2 ]( W  l, _/ _& Q% R: ?% R{7 J7 M# x9 d, E  E( K6 g3 C4 t$ P: w+ z
  int  errorCode   = 0;
) B8 s: C& N+ F
& e- h# s$ F& D2 @/ L% n/ N4 s  int  num_triples = 1; //选择类型数量8 n$ K& G. N# Q
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型6 }& \8 M' k9 c0 z

8 H- Z; \7 S9 Z  ]4 H6 ~/*
& C3 [% \; A# }0 U0 L2 e% @3 XUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
3 p  M, F; Q+ [, [0 a+ KUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
! |) ]6 w- f) VUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
4 w" Q/ L7 w: u, h2 X2 iUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
! A: e" p$ L0 @UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定5 i& N! w& [8 h* X3 _+ j% P
*/% {# c3 ]! e  _
errorCode = UF_UI_set_sel_mask(select,
. y+ F7 |" W. F* c& l                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,: U7 A+ Q$ a" t& _7 Y
                                                           num_triples, mask_triples);
  E3 B: r8 m8 d1 w# A2 hif( errorCode == 0)/ ^8 `) F$ e/ X* |
{
( j) J+ B) l5 n( l# a) ?9 b, G3 Ereturn UF_UI_SEL_SUCCESS;' {& L! Q0 {2 Q+ C. W  W* y# I( I8 w
}
& e1 M# t6 Z3 H: s" r, \% d else
5 w8 [  ], r. a' p{
$ N$ q2 e7 q) \5 ]8 |8 |2 ] return UF_UI_SEL_FAILURE;) w- N/ m) x+ `8 T
}. E  ~/ \. l4 J$ Z5 D
}  k1 K, d# \% C, V1 j" `/ Z, l

! D2 M& w0 T9 Q8 z5 D# j
6 i/ `5 R  s+ O3 R# }/ |
- ]# T6 y* s) W  a5 m( Q  /* TODO: Add your application code here */
; f# p  z' u, c  d8 D+ c& t$ q( `; ?+ g- V9 _5 K4 f7 V' j% Q
  char *message="梅雷提示!请选择视图边缘。";
6 a. a9 s1 x4 T2 w" Q* q+ O  char *title="梅雷-QQ1821117007";
& T- Q7 z/ v& s, R6 _! H4 ^3 q( i7 }) X  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
7 |! d  Z: f/ E- q& Z% p  /** B1 X7 Z# {' D- s+ C
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
/ b7 v6 D# i' y4 ]6 n   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
/ e  c8 t6 w" d& t5 P% o0 V3 _; X: S& t   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分+ d% S1 f8 F! u' \6 v! p8 |0 b& e
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
; {1 j( P. E( h- c& T  */
2 L9 d$ B8 ]) A  Oint  response;7 g8 P0 ^' S, ]& T( m& C
tag_t object_tag;% ?: G6 ?5 G, F; K8 h
double  cursor[3]={0.0};
9 {2 s/ o0 m. V: V9 u3 Ztag_t view=NULL_TAG;3 `1 E' q' Q! H5 a4 o' z

( B$ m# \, _+ M1 o  ZUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁8 M. }) t1 \! X; v( z3 T
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
: N5 N, W# o& P! F8 S3 ]UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
: {# S8 ]7 h' D  k# d, LUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)  F* v, [& W8 k4 e+ |5 b
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示9 O- S2 c, ]5 [) y) J8 D
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁7 B, y9 P! w! a$ t
# r! N0 s& |/ J! f& \7 g# V
0 S2 c8 G( ?0 Z7 i$ b: [( v
if (response==UF_UI_OBJECT_SELECTED)
0 }" n, P7 c# q( N+ G{- G+ U# P) j! K# r4 M% r& O1 [
  char view_name[132]="";
" m& r* U! H6 f, n, m2 T+ K  UF_OBJ_ask_name(view, view_name); //获得视图名称
" P) `2 r8 u7 m% C. x' r2 ]1 M) F  uc1601(view_name,1);
5 ?0 u% @4 @2 f5 |: T+ u}9 R8 P3 U6 T* n# L2 `
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了