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

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

  [复制链接]

2016-12-12 12:22:04 4089 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
) j' m: |5 W+ ?        tag_t object,view;
+ p. x' V; H2 e2 g# [( U, X* A. d        char cue[] = "select object ";; @1 Z% V7 C# T2 A; ~. g5 z
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART! Z$ Z% X9 k3 Y+ \0 T
        char part_fspec [ MAX_FSPEC_SIZE+1 ];. S- V8 {; ]3 o
        int  response;+ B3 V: P7 l" N  W) L7 C
        double cursor[3];
& j/ s$ H; e% `* l1 p        tag_t part_tag;
% m0 I/ f# P  X! |6 R        CString infro;
! k/ n2 j1 X3 p2 k% U  R9 n
7 s' `4 \& V" O        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
1 \. s1 r5 W6 V1 [- U" N2 Z& K        if (response == UF_UI_OBJECT_SELECTED ||# i; k7 [3 s+ j) D! K. K( Y
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
2 n2 l+ x9 b" \1 R        {: ]' M3 R# S- k: e( j0 K; }, o
                UF_DISP_set_highlight(object,0);
7 ^# m- x/ ]; H                UF_MODL_update();! w8 u; x% j: s) {) q
        }
' A& x* G7 x9 p% E+ }static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data). L# t0 Z. @2 t- S6 G. u
{  ) H- T  H" r" _" u# B" I
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
7 X' d5 N3 \; E" I* k2 z7 f        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
2 J# F5 e; P/ ]0 E' i. W- m        {3 k% X1 {+ r+ r1 z% ^3 C! n
                return (UF_UI_SEL_SUCCESS);' v7 x1 N! ]% g% P& W9 q2 e
        }
1 q% k( Z: m+ a9 j# ^3 _        else
! q$ }9 I4 d, h5 B6 n        {# U( f7 y6 K# V& r" S& i
                return (UF_UI_SEL_FAILURE);2 r; d, o( q5 i2 b
        }0 y4 K# s6 {: w' T) W
}2 K$ ?8 t, R/ t/ O( J

7 r! t& c: O7 k0 q; {* c! J0 ]# O" V
上海点团信息科技有限公司,承接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 v* B$ I* g4 S; P
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
& I" V9 E9 S5 N# C; {" m0 x/ |
1 L8 o& u! h) C
1 {% j( h. _2 q1 E  V3 H* W$ b, vUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象# B8 z! f' R8 J' J4 ^. s
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象# p( N, t. }: Y6 x! Z6 Y

0 A! Y( d; E. {4 G4 R' }————————————————————————————————————————
5 m& ~! i& ^5 e% e7 m& b列子选择视图里的直线边缘$ d8 k; ^/ b: w' A- S
# [, F4 e' f) ?
#include <uf_drf.h>
6 ~7 ?# g/ s7 u; A#include <uf_obj.h>
" h6 t* l  x0 D( H1 m" s#include <uf_curve.h>3 o% X8 a/ U7 m7 d4 b4 ?8 ?
#include <uf_csys.h>
5 N; ~+ v1 |$ c6 h9 k0 j: ~#include <uf_modl.h>
0 }+ X! H0 O6 v+ U) J/ t  ^
6 \! J8 D. D5 F0 Q0 x$ c. b3 }! W5 y% \! q: {0 W
//设置选择的实体类型
3 D# z* r' p& g3 E5 u' [9 Y1 sstatic int init_proc( UF_UI_selection_p_t select, void *user_data )1 s4 ^! C) r8 ]- ?
{/ f" s0 Y; v/ P0 g$ W
  int  errorCode   = 0;4 |2 y6 g( i" w/ A0 K
4 {  m& C, o' Y6 A/ @; [! t6 `
  int  num_triples = 1; //选择类型数量) R3 K+ u/ ~- o' N! x6 ^; I( e
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型6 W2 M# c/ a! G3 i+ @
' @7 M; X. ^$ A
/*
) b/ l0 H% {' `9 lUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
8 b' k: w6 l2 m6 l5 TUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
, s$ }9 P# k: m2 k* T# P' \UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定+ Z% \" }2 _2 x! S/ f
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
! X2 n: e$ t( I9 ~) yUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
2 f0 _$ |& g$ H" u3 \; Z7 S5 K5 `4 _*/
( m7 O1 S  X3 V4 s0 DerrorCode = UF_UI_set_sel_mask(select, / l6 O! r" T% k( i1 a
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,! ]! w  J3 z4 S; m, c' v# X
                                                           num_triples, mask_triples);
" @- C1 \/ M. m2 E/ N. {if( errorCode == 0)
8 i' k* j7 S+ e  m! V{
3 h* {% p" U% \' k+ H* \( Areturn UF_UI_SEL_SUCCESS;% [+ l& g2 t- Z6 A; ?+ ^1 U, R( f
}/ ^1 |7 S( ~: Q' t! ~/ U4 B/ s
else
) {: q+ J8 N; B6 H9 e: n( V+ q{+ @0 Y0 K1 T0 ^" K$ T- s4 t
return UF_UI_SEL_FAILURE;$ }3 M! e4 e' p: I5 s/ @
}" g5 r8 {% |: j
}
2 Q( Z6 P3 _* C# ~8 [( i3 X0 k5 e% ~0 N
; C9 c9 t2 g1 y# S" Y6 g* a( A
! ~' C7 e3 z/ U4 Q# K
  /* TODO: Add your application code here */0 X2 f  Q4 r5 h

4 @: z( e/ h3 [  char *message="梅雷提示!请选择视图边缘。";
/ V4 z6 q( V5 P  char *title="梅雷-QQ1821117007";
! |% P/ ]. [7 E  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
* N( }" j+ a5 s- W  /*3 R1 ?/ L" G: _( j- P! g
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
; U2 d. D# m0 w   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装: Q7 a- @" d/ M6 w/ K- J& ~+ _* \
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
% h8 I- d  p* }0 K' \   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
# p) Y* ^. {( C* A6 f  */
1 d6 j) V' ^0 L2 _  Jint  response;$ I0 j: W4 w2 j- G' h# b8 k
tag_t object_tag;* [: \3 T4 f/ s( z
double  cursor[3]={0.0};! y9 a+ H! t; g- Q: h9 X& Z* p
tag_t view=NULL_TAG;9 K! A7 s; L7 ~! S& {$ L! h
4 a& @' ^/ W4 [4 Y, e
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
: U  M$ e1 s- d" M: [UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
! v$ D3 y/ d' K% b1 B2 [1 m2 uUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
; D- P2 W; I* r2 kUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
' D: T. S: N/ l! I9 q' ZUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
/ b' g+ G7 h+ i" D: qUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁5 Z* J0 g, T, W) I) Z0 H* G# m2 P3 w
: \3 r9 ^+ W2 }9 x7 ^
# |% N8 V/ G" e
if (response==UF_UI_OBJECT_SELECTED) & P: u5 G% i( ^& N, x2 [: j: J
{1 }. S; j8 \; z) ?* D9 R
  char view_name[132]="";) s9 f8 j( t& p  u* a0 w, x- c% [
  UF_OBJ_ask_name(view, view_name); //获得视图名称. _, }& k( v2 g, M- q
  uc1601(view_name,1);$ g  T" A  b* b- u% ~
}- f) ~$ z; b" Y, k4 o3 h" i: r  p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了