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

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

  [复制链接]

2016-12-12 12:22:04 4088 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……4 j: s! Y) s" S% o2 J' N
        tag_t object,view;# A& F1 G# M- V# _
        char cue[] = "select object ";
; y( c/ x3 y+ K7 v" `1 y) d        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
  T% C! k/ w: n0 x$ V' ^        char part_fspec [ MAX_FSPEC_SIZE+1 ];
% G; l+ x* S) t+ J. l% b* U( W        int  response;
- y! D% \/ g  ]        double cursor[3];
) A/ B. N% E0 c        tag_t part_tag;  M9 P" Y; q* Y0 j8 U
        CString infro;& F4 k0 o& B8 \2 Y. V- n4 [
8 _& V/ I& R. a5 m% `" i( V' O) Q; T
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );0 Y& E" `. A* w- W5 Y5 b2 \
        if (response == UF_UI_OBJECT_SELECTED ||; }# H) s- _; L3 T# H$ n0 }
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
8 Q: F# ^3 h; ~" I        {
+ E- V. z8 J4 x# L8 h: D                UF_DISP_set_highlight(object,0);
( }4 C4 X8 d2 z                UF_MODL_update();2 l2 ?* B3 ^$ \3 j0 q
        }1 t0 x1 [- W- @. [, ^8 E1 F
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
$ }  g0 ]# f( ^! o# ~{  
7 ?: m1 w( H5 b# V" X        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
) R; N2 N0 z4 F2 M$ n- T( ]        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)" n6 P7 M( M  J( O" |+ L
        {# @  L$ h6 j9 U; {7 N/ H* u
                return (UF_UI_SEL_SUCCESS);
3 U: q& t6 E6 }6 t1 b+ o        }/ K0 |! Q) P7 B0 z. t/ }. k8 L
        else
+ R) w1 I" @& Y4 @: W        {
1 a, X' f4 a5 c                return (UF_UI_SEL_FAILURE);
: @8 ?5 B9 t6 Q8 C; R2 y        }- y& F, @, R' K" i/ d
}
8 M0 y% H0 t9 k% n( k* q+ C, Z
; O% `$ s; c% B+ L, T
上海点团信息科技有限公司,承接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;0 d. L! r) x7 E  a7 {4 R0 f
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view( w9 l0 b& A9 l" }

# K* p; ~  H' V" }7 M2 _, N7 e2 \) `1 Z8 o4 I6 k0 Q" v5 R& t
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象; E  n, {: k4 M) l5 R+ y) [2 k
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象- J+ \8 x! V# C! b' `. Z! u

+ j8 P. W! M* C# L: v5 o————————————————————————————————————————
/ _2 z' d  e4 W4 u/ Q列子选择视图里的直线边缘5 }+ n8 M+ y( b$ s) J6 B& S

4 ?9 {- [% p2 i#include <uf_drf.h>$ I' T; ^3 g% A" Y' X$ R" ~8 Z
#include <uf_obj.h>2 N- u6 y8 Q  a: a# u- n5 w: k/ i
#include <uf_curve.h>) O+ A# g' z! s
#include <uf_csys.h>; s( F' C" O8 W) X/ A
#include <uf_modl.h>: e# T! _5 h2 I% q. }$ m3 k
1 `9 e( P. K5 R8 Z

- P% p* B. l7 N$ a//设置选择的实体类型, m( w4 A8 i9 O# J! R
static int init_proc( UF_UI_selection_p_t select, void *user_data )
6 [1 W2 f. m, x# ^2 J{' m# C* }2 o9 o; P( i* x
  int  errorCode   = 0;
3 ^  [8 a5 m9 m- u9 C) y
( t* T/ z$ S" C' O: T  I5 P% W5 l  int  num_triples = 1; //选择类型数量, Q& V+ k; ?9 C* u
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型! f% V$ [# N# A, `/ p9 ~
+ L+ K2 W. D% ]2 h
/** K- @, L5 A7 h2 }% c/ K
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型+ ]" U6 O% A& z0 y
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的4 C5 m* f* U3 J2 }5 d. z
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定3 P/ u) ]  _# m. D  z) y
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
! g! C3 Z( ^, Y1 {& Y6 L0 ~/ AUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
! c- |& \  C/ k4 r*/
, o, T: t7 K$ O2 A3 h# p" H. x* kerrorCode = UF_UI_set_sel_mask(select,
0 Z! _! B% N( ]4 ~% }. q" I( B3 Z                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,/ ?2 d% b, k- W6 W. h5 Y$ F/ C6 [
                                                           num_triples, mask_triples);
, z# R- N7 |$ w, q* nif( errorCode == 0)$ Q7 l! S( t  N1 Y" ]+ ]" b
{' e8 K! Y6 e; ]! f2 n. p
return UF_UI_SEL_SUCCESS;3 d5 q3 [7 R4 Y* p  L
}+ q# M% n" Y5 m; Y
else
4 {# Y; o' ?% t6 B' ?) X{8 e2 n$ m" K* |# E/ G
return UF_UI_SEL_FAILURE;! l; r8 R( d+ A) o8 I
}
8 q- p) h2 f: h- Z}
( e% D) o; t5 g; P' M
7 u+ Z1 u& q/ R; @
  E+ j5 I" X% s' J1 b9 \
; F2 I3 Y2 J$ T  /* TODO: Add your application code here */
- @! q- X  ?# W4 P; ~, i8 H7 T, B1 w& I+ e
  char *message="梅雷提示!请选择视图边缘。";$ W8 s/ a9 I. k; W, ~
  char *title="梅雷-QQ1821117007";
8 F2 ?5 B! o' G, |  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围' W$ g% p! W: O( K- e# t. G1 Y1 O
  /*
3 N* {% v! ?) E& q  t+ g   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化: @$ i# d0 r( F# U
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
. l0 }; `, C5 s6 `2 u( E  L6 F; @   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
1 s5 c# U' x  R   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC- C3 t4 z+ Z, L  q' {$ E5 |$ b
  */
! W: R( e0 t  T* j; `" O3 kint  response;+ E5 ?+ \3 G2 Z4 d4 ?* i7 |5 o- s
tag_t object_tag;5 P: @! ~- @( ?& c: h9 ^6 R
double  cursor[3]={0.0};
5 W; y& d! h: I0 B: L2 }tag_t view=NULL_TAG;" }' n2 h) J5 E" t
# Y6 n! h7 Y+ f- S* w" J% T- `
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
0 P8 t) d6 ~4 d$ S+ \UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
$ x% I/ a. g* `; V$ L( |* cUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
5 j  y: M2 y; K1 G6 r: U& f- hUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
/ w% w" d( \# J; QUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
) j/ Q2 [0 g; x, `& a) y& [/ o# BUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁8 ]1 i/ i* l5 i  r! i1 g3 N" q
( p: }8 V+ n* P# G" }$ M
, G" t% u- U- U9 T0 x
if (response==UF_UI_OBJECT_SELECTED)
: i. A3 Z6 [" w" Z{7 m5 l( L* F5 x0 _3 W7 x
  char view_name[132]="";
- g2 v6 Z8 i/ ]  UF_OBJ_ask_name(view, view_name); //获得视图名称
; ?$ l  b% O! Q5 \' ]" r( p  uc1601(view_name,1);
4 ]" Y: Y* }1 e% M; `1 I  B}6 c6 l  p+ w8 U. d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了