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

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

  [复制链接]

2016-12-12 12:22:04 4010 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……6 r  _5 C" Z1 [& z; x
        tag_t object,view;
5 O1 @7 f  r# i9 j9 f% q) B& l        char cue[] = "select object ";& P; f, Y& h7 w; P* d0 I
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
. W, U; H& M3 T+ a  Q        char part_fspec [ MAX_FSPEC_SIZE+1 ];2 s. K# I/ p8 V) G; N; e
        int  response;, |; D% v( E% V' |( e+ L
        double cursor[3];
3 e, Q4 o) \- D: W1 J1 e        tag_t part_tag;
" T& E* ^" t# S- I6 V, ^        CString infro;; Q4 h# W$ V5 N' c6 u) A4 p
- c3 D( O- C0 e8 _4 u8 _$ S
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
5 N5 F5 q; Q+ H3 {9 J$ a        if (response == UF_UI_OBJECT_SELECTED ||. z% Y$ b9 A; d- u* D1 }. k0 {+ u
                response == UF_UI_OBJECT_SELECTED_BY_NAME)9 M2 C7 Z7 q2 e3 ?) M
        {/ i1 k8 F0 E4 z/ m" u# K9 m
                UF_DISP_set_highlight(object,0);) z/ Q4 s, P( Y  a
                UF_MODL_update();$ ?# J  D# {0 b# r/ ?/ E
        }
6 `; x: T- u5 Q! @6 b! Pstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
0 b; P2 D, b' g{  7 |& S9 ]. v3 {0 B) f1 T8 e
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
1 Z& i3 B5 N8 @( S3 b3 G4 S3 m        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
- B5 t$ F) X7 a3 f+ Y        {! {) Q' H. j/ j6 f, b$ X
                return (UF_UI_SEL_SUCCESS);" ?7 \6 p7 L# g6 }' X
        }
. k, u* I5 u. |- d, ~. h  F- F        else
( p( ]: R( @' R/ s9 A8 z        {
: V3 V+ \  ?' `2 q# F                return (UF_UI_SEL_FAILURE);. @' I5 Y- w- {0 y
        }7 z( a  D, G+ y% ~* s. q
}
3 D/ t) c- P! }/ L4 `  o
/ v" Z' U4 T& V7 V& O
上海点团信息科技有限公司,承接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;
! I2 V1 Q( }1 sUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view' i2 U7 x% \% `3 s  n9 r0 v7 R
& v9 p6 J/ I. R

- R% f$ r4 @' R/ P* Y3 m2 l3 ?, T. B2 d5 QUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
5 J% I% b- y& v5 F7 T) Q2 _. |/ pUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象! d; E; ~* K' n1 u+ y( r
, ]! Q' K# K7 p& q, r; q# P
————————————————————————————————————————
& E: h5 U' g5 x( x列子选择视图里的直线边缘9 ?, }7 h: l0 |3 q2 h9 O

9 v) B, i" K" u9 r* g' o. m#include <uf_drf.h>& _" m& j9 J- a% k9 s& y
#include <uf_obj.h>' x, H7 ]4 a6 C% c2 f8 J
#include <uf_curve.h>0 F1 D& I* i# _
#include <uf_csys.h>6 W9 M' W# J4 `% v* V  @
#include <uf_modl.h>
* c! s5 `! |  p4 z" }1 l) V
' `+ P9 ^4 Y  v. C& z3 C% Y
" k# O4 B2 P2 v$ U% {//设置选择的实体类型6 `& v" n1 H8 o) l: V8 _
static int init_proc( UF_UI_selection_p_t select, void *user_data ); S$ M. V- f2 @1 ]( x8 z
{
1 ?9 Q  y3 W/ b% n  z5 t  int  errorCode   = 0;0 b6 r: ~8 w& X7 S) j4 Q) h4 J  T

' z# p& x* Q$ `: a/ r9 j  int  num_triples = 1; //选择类型数量
0 w8 g% B+ }0 t5 g$ V  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型$ K% V! R) N! B& Z" Z7 G# m

) d3 Q1 D% T8 g0 X6 o/ @( T  ?/*
+ ?  g% G0 Q! k' \* s7 s0 s3 ?UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型% a9 n7 K3 a' s2 b  E' P# ^
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
) i; C2 ?( h& H6 TUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定- h2 [! o% W+ T, B
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定, R% {* ?. j9 u9 Q( b1 q" R* K
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定- f. Y9 \% Y9 {) s! x7 g1 j
*/: m; q$ N) \6 _0 W* B
errorCode = UF_UI_set_sel_mask(select, $ I% P: H; N. ?6 ?  F# E( N
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,& ?$ V! m1 G% I! y/ P! _" M: b
                                                           num_triples, mask_triples);
+ e, H: u+ i' `$ cif( errorCode == 0)
6 E0 p+ D6 N! u{
* ^# a& g& [9 b1 greturn UF_UI_SEL_SUCCESS;' H' l4 h2 x. @( q" j. J
}
6 H. E3 f1 J1 g2 W2 E' f; n else0 ^0 q+ v9 I6 A! o' i, P
{$ Q6 C1 H; N; s: [8 h
return UF_UI_SEL_FAILURE;
+ B% e3 m, F/ j$ j6 Y; J}' k8 ]( e. ]7 M& C: g$ f5 e
}, n. ]. X+ B* Z$ `; Y
$ z) M' n3 X- a7 o, m6 m

# ]4 Z" d: x: Q7 }9 E, G/ n& a# Z( l' F" {. D7 |
  /* TODO: Add your application code here */
: r2 j* m# N* e' W) e
+ X1 V4 @; n8 J% D  |6 M2 a: {  char *message="梅雷提示!请选择视图边缘。";1 O" z' G- S6 f* N7 i% _
  char *title="梅雷-QQ1821117007";
" }! |- t' s' O' T  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
4 O: ^) m. M3 p  /*
; w+ y: Q, f' {7 O# E   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化. x3 z/ o# }. Q
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
0 |! N0 S! l; Z) Q   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分0 V+ ~: I7 _6 Y9 w5 O  o
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
1 y% ^, r0 P" F! N; m5 X; n, c  */: a  Z1 q# g1 k9 `9 B) Q8 k1 b0 l$ {  T
int  response;1 M, J/ l$ r2 Z  }
tag_t object_tag;1 |( R( A8 j7 H* `4 R5 D5 x" o% H
double  cursor[3]={0.0};  s  O6 x3 @" P" s1 f* p& h( }/ t' k5 e% ?
tag_t view=NULL_TAG;8 W3 M# K* m, W# @" g

7 }6 \( F  \) v  eUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁  k% ~( |' K, ], J! a7 d6 o
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
: U* J, N  f' A. eUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
9 ]3 Z3 w7 b8 _5 S' h% k* z! eUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象), e9 f4 r$ D  T$ @7 Y3 y( z
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
( B' D" j; o5 q: X( z3 DUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁  ]2 q" `# ~5 F6 ?- ]1 {
! }/ N3 u2 x: N, [* N/ Q# o

# w3 q0 A4 J$ G0 zif (response==UF_UI_OBJECT_SELECTED)
& U4 W1 n& [0 \1 K2 d{; z4 M  R9 k# A
  char view_name[132]="";
$ k9 N: z- v4 C" U  UF_OBJ_ask_name(view, view_name); //获得视图名称6 Z9 D8 M) F' p' u  c
  uc1601(view_name,1);
) f; J4 [, @1 c- {}4 j; q7 g/ i6 j- C& F0 Y, f5 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了