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

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

  [复制链接]

2016-12-12 12:22:04 4007 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……, b9 n' e* N  `
        tag_t object,view;) E8 @) r3 |; |" C: g( v
        char cue[] = "select object ";
) X* \& _- J7 N  y+ d        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
( z) U+ t  Z7 ~2 s& Q% ]# y        char part_fspec [ MAX_FSPEC_SIZE+1 ];
) ]/ _8 ]$ X" r) c5 W( l9 _        int  response;
) \% ~0 Q- v7 h& S$ h) h! @+ H1 T        double cursor[3];
! t! ?, d8 N4 J: n- r2 y6 I7 }        tag_t part_tag;
7 Z3 Y% O' }. S; ~" `$ g7 s        CString infro;2 l( q) @0 R( s
: B$ ]; w! ]6 h
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );! j# i$ ^% E$ T$ i1 w; S# f
        if (response == UF_UI_OBJECT_SELECTED ||
* O8 A9 E% D3 X: q' ]+ e0 @                response == UF_UI_OBJECT_SELECTED_BY_NAME)% j4 W+ S4 S4 H! P+ [3 z9 }
        {6 g  W9 H/ x6 f! f
                UF_DISP_set_highlight(object,0);
- p& P$ K) i# C3 w                UF_MODL_update();
" @) Z0 x/ D3 V' ~6 Y+ h) t        }
% N, Z: @# h* Z2 ostatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)- `: p/ z9 e* V) D4 I
{  # q+ h# A% Q; m
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};" ~1 ~/ _( h; ?8 W
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
0 S7 L, _' P$ S        {2 j, N) x/ B/ e) |+ d- J
                return (UF_UI_SEL_SUCCESS);
1 u& x1 G  f1 P% Z3 D/ s9 c        }
5 c* l: S% u1 m/ s        else4 m2 \4 R2 O3 F7 h' u
        {
* X5 h0 r" |0 c0 Y                return (UF_UI_SEL_FAILURE);
1 P" h! A/ S) F$ C( b$ a" u        }
- _& m& i, ^' V& x& {: H}* F3 @/ g7 w5 V/ r
! g* r" f3 x( X3 ~
上海点团信息科技有限公司,承接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;+ e) V, \1 h% [# Q1 q5 p5 |+ ?
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view& d; G7 ^7 e3 s- @
/ g0 A$ o' y. D) u  K
+ t( G3 P  u% N- M! q0 \+ O
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
4 d7 e8 C1 c4 L; VUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象" B4 W: k: T- Z( M8 w3 [
' c" Q: L& g: D& I9 ?
————————————————————————————————————————( V$ D5 [( t+ [/ S. j7 c
列子选择视图里的直线边缘
8 Z. r, ?8 K2 V, Z" ^1 J
4 D2 O2 D; y( P/ g  @#include <uf_drf.h>& Y- z% Z6 ?3 X1 g5 _
#include <uf_obj.h>
$ {* Y  R. {6 F- @- d- e% c#include <uf_curve.h>
+ {; U. l# L& ]- S+ t6 i, t#include <uf_csys.h>+ o9 {$ r2 J1 N- |# k
#include <uf_modl.h>
* w% [0 ^/ u9 _' X& G- X. w9 p* u% A* J# ^. Z+ G
: p" {, I& ~0 K! d
//设置选择的实体类型( Y6 L9 _: E5 J
static int init_proc( UF_UI_selection_p_t select, void *user_data )# F6 a' m. Q; l, R
{
, W- H% i# c& s7 Q0 z$ Y  int  errorCode   = 0;8 ]0 p5 E/ L& R
6 S, K7 c* w2 v( w# K
  int  num_triples = 1; //选择类型数量+ n4 i/ A  d4 [- K( O) a
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型8 V9 G" Q8 b! l+ Z

9 T$ j! C6 t1 y* j2 \/*
5 K4 X+ a: |6 V7 R% f- T* P2 }% xUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
' V* g! C; R% U5 iUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
5 i" [4 \4 f7 WUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
( J8 h! B( F5 S3 Q* Q; GUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定: X( ?) I1 A* g$ a2 S# L0 F6 a
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定" m* v" H2 A4 x4 i- h, s6 _' [2 K
*/
: Q- z: r+ r0 d  ]: T( t  _0 herrorCode = UF_UI_set_sel_mask(select, 2 z! o8 y- E2 J* R# Y. O, u; K
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
9 Q4 Q4 a: L+ p1 G                                                           num_triples, mask_triples);
& b% h) S6 m- }8 k' B/ B" z+ U8 ~if( errorCode == 0)% r( N8 S/ d- @$ [  U
{
- c1 a. W* X. c; Z9 rreturn UF_UI_SEL_SUCCESS;
7 G  O7 e7 ^, l}( H2 R5 ?. Z" a2 ]
else
# @# A/ a( T  [0 d' g0 E{+ ^6 s( t- M0 f9 O3 _
return UF_UI_SEL_FAILURE;1 N2 c, J" V/ Q5 Z9 j+ U% j! ^! _
}
8 K" }+ N* u. N. V2 O% G$ I9 d}
% ?7 q' U4 B% D# {5 v0 w* `/ p1 J: z, d* f( T% b
1 e+ C; d4 `( U# \1 O0 U) V% f
. H+ l- g' k, ?2 g
  /* TODO: Add your application code here */1 \( C0 S. h5 e$ q# t* I& Q/ ?

$ n. k+ t3 b3 ~! ~, R  char *message="梅雷提示!请选择视图边缘。";6 e- A* [3 ^# N- }/ k8 ~4 h+ C% X
  char *title="梅雷-QQ1821117007";% L$ t3 x& X7 n( u$ X, v. Z
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围: J1 J/ M& C6 T
  /*
( I" D0 X9 B8 X) ?: n: @1 ?4 a   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
, {( ]' e4 `3 D+ \8 u! h   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
8 p" l; x) ~' H  }   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分5 I/ ^6 z6 k4 e! @) e
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
- b' Y6 j" [) b, Z" `. Q$ Z5 c  */
! U9 n5 K6 S- E; _# u' N- jint  response;2 W# o+ J6 ~2 _7 G/ h$ V
tag_t object_tag;# E, e+ [3 L5 b3 A
double  cursor[3]={0.0};: |$ N* H  F: v! E# w/ x1 O
tag_t view=NULL_TAG;+ k1 ~9 J& ]1 p4 Q* X& b1 t
! `& I5 l* f4 P* m* d7 |. j
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁7 x. n2 q8 t+ I7 ^, c' N
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
( b7 q: T" @7 v% T! E7 F! I. NUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
% n5 i& O2 \: e/ CUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
- X+ _: l6 @0 OUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示% |) D1 t  G9 M$ G( n, L
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
( ~6 j( q: Q3 w3 s6 W" o5 x0 [$ @% a; y4 t1 ~, b
$ P4 }3 H" v: R2 W$ P8 ~
if (response==UF_UI_OBJECT_SELECTED) & M% R- Z( v- z4 }
{
5 o1 S- ?+ c/ I7 V  char view_name[132]="";+ B, c8 y2 B% c& R2 ^* c# i% W
  UF_OBJ_ask_name(view, view_name); //获得视图名称8 i9 Y$ b( d0 @5 E5 g
  uc1601(view_name,1);
8 Z/ X. V, X7 z3 X. _}6 X2 R6 D1 m( L% X1 c. D7 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了