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

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

  [复制链接]

2016-12-12 12:22:04 4071 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……/ O3 a8 E6 T8 n
        tag_t object,view;9 j# b& I5 v) X/ y+ w) k
        char cue[] = "select object ";
1 M  W5 x. {" p/ B        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
/ M# \" {$ E7 w' Q8 G# c. x. E& ~        char part_fspec [ MAX_FSPEC_SIZE+1 ];
4 U- l+ y- }5 B        int  response;
& o7 S1 b  u& y: v2 d        double cursor[3];
/ ~2 ?4 Z3 j* o# {: q$ k& _        tag_t part_tag;& c- p( g. x" K2 M" u
        CString infro;9 a  n. b. n$ {! ~6 [, x3 \# w: k
; ~( _# c% {4 D6 y: F4 m9 O
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
' A9 B. Y- L9 Y+ I7 ^3 l        if (response == UF_UI_OBJECT_SELECTED ||# I% F+ g5 k# d
                response == UF_UI_OBJECT_SELECTED_BY_NAME). B7 x' \4 K# N2 W) S- Y7 B
        {
8 u3 i% z" C; d5 n$ t                UF_DISP_set_highlight(object,0);
3 a6 c: ]6 k* g1 G, l- d                UF_MODL_update();
1 {8 ^# J9 F4 e8 a) l- [& M  E5 H        }, H8 I. T; N' c3 p3 E
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
# }+ i, N5 t0 n* \7 h1 r7 |: b8 N* B{  
, U" J8 _+ P8 N1 d' X& O: l6 W8 A) A4 _2 `        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};5 P+ V# R1 y& V" H( s* Z
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
' C4 z+ {& {9 J, g        {
, q0 Z) k; |  W6 ?3 }3 c( G! P5 N                return (UF_UI_SEL_SUCCESS);+ R  r* g6 s3 z/ D
        }
# Y9 S5 H+ r! L# y: h  T' B        else
% m- p4 [) M/ D, w: E        {- u# \  R( R! n; m- T1 h0 u6 V
                return (UF_UI_SEL_FAILURE);) \$ Y$ M/ G  a4 s: l
        }* S1 x6 n: l+ r' T4 X
}" U: u6 f, Q3 m+ ?+ w5 O3 g( n

* _- C  `& G* p, @9 T2 L) O. p
上海点团信息科技有限公司,承接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;/ s$ `6 T7 W9 e  Q, }$ y
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
3 J/ l- N" F: X0 a7 {
! D4 p/ {7 u$ u5 T. y
% a. m! v. }  C" KUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
( F1 A; X8 L# R0 ]2 R5 lUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
4 p/ U, S' t0 A6 ?; ^" B
4 G: C) ~4 L- t2 n9 ~, s  @————————————————————————————————————————7 u9 J8 N9 |% {) V  F4 C5 L
列子选择视图里的直线边缘
$ K! a+ ~$ a  m0 {9 d0 L0 j/ @( q$ F9 v. M9 y" x9 X
#include <uf_drf.h>) E, S2 P$ @2 p& l' u6 W$ h& i
#include <uf_obj.h>
5 W! j& t2 P2 g#include <uf_curve.h>: g0 N% t- c$ ~" l, P3 B9 w
#include <uf_csys.h>9 ^' e" i0 b% o! L+ f8 U( M
#include <uf_modl.h>
6 _5 C* Y- g% X9 k3 b. c
& s, j9 U! x. L* u- m  J9 `, Z; @7 y( T; ~
//设置选择的实体类型* a: a( @- y# r6 I* y
static int init_proc( UF_UI_selection_p_t select, void *user_data )7 h/ a- A* v8 t6 R6 m. v
{7 P  }! ^* Q$ V4 ~: X  Y% R" ~
  int  errorCode   = 0;8 Z# H% a: C" A& y, `

" x2 K0 W/ W/ `8 M' o3 |  int  num_triples = 1; //选择类型数量
7 Y8 {4 P: {% Q, t) W0 t  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型0 k1 q3 ~5 p. k. [1 t/ K, E
5 p+ t4 Z1 s+ s+ _
/*
1 K0 ^" z$ `6 f3 w% a! k9 sUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型4 ^- Y3 ?6 d  ~% N5 P
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
9 w! _6 y; C2 e' b; m8 @UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定2 P8 t  b+ R' p! t$ ~2 f4 {
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
3 e( H2 i5 p5 U8 MUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定/ n+ `2 e$ }% Q& L
*/1 w1 A5 ~; B1 a4 B# l
errorCode = UF_UI_set_sel_mask(select, " J7 y0 c5 }4 k" P0 I( U$ m
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
( N+ l9 b; a) u                                                           num_triples, mask_triples);( o: m0 g- G# S; I, l3 B
if( errorCode == 0)' g) J) F6 j1 ?+ y
{, }! J' @# y# G' Z' ?' ?1 g
return UF_UI_SEL_SUCCESS;
: C% o. u$ S7 q0 c}' L2 S' ]. ~4 `3 T& i
else
: v& |4 D; `& F{' Q) O% @) D! J! Y
return UF_UI_SEL_FAILURE;2 Y7 _+ \1 P! ?$ v
}& ~) {! E( x7 N  i3 ?
}# x' _+ g5 E. ^7 e; o

/ a) j1 u: O, [; o  {4 ~( n. B& N
2 r# ]  u+ s. j& v/ T6 |# d0 E: S) ?% W2 s2 j
  /* TODO: Add your application code here */' ^3 v6 X7 B; p" g6 ]! ~( g

* l0 h6 Q6 `! U! }: C  char *message="梅雷提示!请选择视图边缘。";1 _" Y0 M2 n0 K( w+ s
  char *title="梅雷-QQ1821117007";
7 g1 \8 c8 n" r6 G" x  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围* H. ~5 u5 Y6 ~$ t3 I0 x- Y. d
  /*
7 f) {1 }1 b$ t0 U- y) X7 ]   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
4 E2 w6 h* o" d$ N8 ~2 B/ [   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装7 _. R) ^9 S/ w1 v
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分3 ?0 z  f( n6 X4 i- f
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC- J, Z1 H: @5 u) g
  */
- E4 Q! W: i( ]. R) _* eint  response;/ E" k2 b: G$ d7 r; b0 Y- P
tag_t object_tag;
5 I7 T5 z" r- `double  cursor[3]={0.0};
2 l) h7 X! u- D  y8 ?tag_t view=NULL_TAG;
% I* r9 i! _  _/ _' F" V
4 k  K( c  F$ Z2 v. sUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁1 M3 o. t, F/ R# B' M: t' G5 |
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
0 _* V. {7 E5 h) r7 i0 o$ ~, |5 fUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】, `& B6 y' O3 R! d! i1 G# W
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)! n- a2 q5 J& a  n- M
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示: h1 n3 K: S( h$ |; Q* A0 A# B
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
3 T6 a) V. `3 ~0 A9 M* T* U4 w4 Q, d: p
, a/ U; d! m/ ]. v" O, J+ `
if (response==UF_UI_OBJECT_SELECTED)
4 k; p8 }: S  F7 u{
0 \9 ?/ k9 z0 O6 t% k  char view_name[132]="";! o4 U: y6 @- b' @: F+ y+ M7 B
  UF_OBJ_ask_name(view, view_name); //获得视图名称
5 \; B4 L; v2 s7 _/ {  ]+ {  uc1601(view_name,1);6 M: G# d7 d" J; ]2 I% S
}# d- {0 A, F1 X
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了