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

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

  [复制链接]

2016-12-12 12:22:04 4119 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……) _; u; Y9 ]4 o/ h5 k8 [3 a
        tag_t object,view;
' v  Z' _0 B. B        char cue[] = "select object ";4 s6 H3 M* u( N% P
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
7 \4 F5 `/ Z6 U        char part_fspec [ MAX_FSPEC_SIZE+1 ];
! j, \  q. Z3 Q9 S4 t        int  response;/ W' k( j6 t, i' c0 D# H
        double cursor[3];
( c- o, N/ W8 ], M        tag_t part_tag;
5 a$ L- O. d) V' w7 E        CString infro;4 m+ q% X& W! _( S

) m. c9 ~: W4 ]9 s' T- }7 [        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );  v7 J7 [$ Z. ]: o, ?* {8 O
        if (response == UF_UI_OBJECT_SELECTED ||' d, X. P# A- Z& S
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
& T1 [1 ^. k- n2 Y9 f) ?        {
8 O8 J. H, L# c$ C8 I: E                UF_DISP_set_highlight(object,0);
) }2 l" \: O7 N; [8 y9 b; M                UF_MODL_update();; @* e2 y7 g/ F0 a
        }
+ D5 L  |  k) K3 f/ B9 u0 P3 G; istatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
' O$ H) D1 A/ n: p+ m{  2 X. \4 o+ ~2 h
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
5 {3 r+ r) ]1 T: Z: y3 [" n' }        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)7 J7 X1 I' A. Z# V4 S; V4 ]! B
        {5 y$ G% L0 N. C5 n  S* V7 y4 I4 w" L
                return (UF_UI_SEL_SUCCESS);
* P. i/ e; {1 l% x, M        }2 d2 t  Y/ F+ P$ w- |* v' y
        else: m8 O8 S% o! x- y; L" |
        {& E5 W' q7 B& M. _# I
                return (UF_UI_SEL_FAILURE);
& ^2 b# H" O9 T' i. V        }
1 j! ~8 g, h1 I3 f, x}; G9 G$ E" J% @
+ M* ^* d+ G: q- e6 W
上海点团信息科技有限公司,承接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;
) g9 ]5 O" |, D" B0 ?6 p& EUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
% g* d+ A' R. U. f- }4 h+ k/ u5 L

  y; Y( T+ l1 K; A4 vUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象7 w" J; A9 t% F6 N3 o1 _+ C
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象6 z5 |) Q/ ?- J+ {
8 G* s, T2 i0 v3 x8 }7 L* `, b
————————————————————————————————————————
( c$ J) ^, F7 F列子选择视图里的直线边缘
, M# h. z8 q6 ?' c4 C+ |# Z3 g7 ~, H/ U. y
#include <uf_drf.h>8 ?+ J5 R) Y* }' p3 B" M" c
#include <uf_obj.h>
* ?) r% I; P; F8 H: l) {#include <uf_curve.h>
7 r( Z) ^' r6 X( j#include <uf_csys.h>
# w+ u1 H) p) K/ }6 @* w#include <uf_modl.h>
; G- ]) m2 N( ~# ]- l5 _
; I1 b+ U1 ?7 V$ f$ y
5 x+ ?/ |% L" m//设置选择的实体类型
2 q4 Z+ W0 ]. X& H1 cstatic int init_proc( UF_UI_selection_p_t select, void *user_data )
( v3 Q; w: k* j! u- L{& ~, ]- [' V( K" z9 }' ~
  int  errorCode   = 0;+ S, {4 H% G0 z+ _( S
  Q1 E5 y, x5 [+ ~& p
  int  num_triples = 1; //选择类型数量/ ]- A5 b6 \7 U  V: h
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型: i6 Z: B8 m# G$ t5 b! e

. Z1 |0 ^$ E9 p. n0 V0 v: I/*
/ K* K: K7 [. k$ XUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
5 k, G+ N2 E, D& a! KUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的4 u9 `  O/ \2 |8 |
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定! l( o! r3 Q* a0 U7 c
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
( v  D8 ~: D0 u5 N1 cUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定1 J2 z- r, M% N% y
*/- i0 F) j5 @3 @
errorCode = UF_UI_set_sel_mask(select,
5 x0 {0 {. V( T                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
2 u6 b3 }$ _$ A! ~: `: c                                                           num_triples, mask_triples);
7 r4 u0 o8 r9 Xif( errorCode == 0)
3 R! {* ^( ~4 u( I8 f{6 \& k9 f. O9 _+ l
return UF_UI_SEL_SUCCESS;
: e% [3 v; c6 a( [& E* U% N2 O}
. c% {% Y; Z* ? else
- N. ~/ S2 A) [% j! N1 p% ~{! G  m( w; V/ G( c: ~
return UF_UI_SEL_FAILURE;2 `/ [3 H' |6 u3 A# E. K
}
& l8 U0 z3 x/ {7 V) y" }6 B+ F}& ?& D8 o5 n' n
( k& i% L) ]3 B, R* ?2 M  d
! W4 W4 f5 Z) D# B" U+ n0 |

$ R, t9 m( w# q- X5 Q* z$ X% y- s  /* TODO: Add your application code here */
/ Z& u  @$ \  ?
; ^' ~& c" w) U* L" v; C  char *message="梅雷提示!请选择视图边缘。";
6 q  Y5 p4 v8 }1 f! y  char *title="梅雷-QQ1821117007";+ q+ z9 R9 o- N$ ~; H+ T1 R* J+ k
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围' z2 |4 D1 K/ C0 e
  /*7 t" w, V/ ^* c9 x; T$ c
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
, z# Z5 |$ V% L/ O   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
' Q. _3 g# a5 d- ?5 s5 N   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
+ Z& v9 o$ P6 {9 W   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
3 `' U7 P" {1 h& t) F( u5 F  W) [  */; E5 P0 |1 Z% j
int  response;
0 `& f: k6 [" D4 o# ptag_t object_tag;
4 |3 x* ~( l& c6 h& ]double  cursor[3]={0.0};
3 y: D. _' L9 u1 _1 Vtag_t view=NULL_TAG;
! R( K# ^+ q- R( I, r0 ^- j  c) B- U( N9 R! |0 _
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
# g8 H) B8 Y. j2 e) eUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)0 f3 B& V+ A* C9 n
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】. M/ q2 n& s+ B9 x7 U- d% k  x+ f& ^
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)' t8 J- w, E) @" l" o/ E
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
6 m) v4 m. c" i. @  J8 @+ sUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
. L1 \( Q1 n2 L- R3 _$ J$ x' k6 M: i

4 {/ I, A& ^% h* gif (response==UF_UI_OBJECT_SELECTED)
3 U! D0 M1 c2 @- n7 b{
! Y& ]8 w/ G! h5 A' }2 @2 G& [# b  char view_name[132]="";
6 ^8 Z  t% U" l' v  UF_OBJ_ask_name(view, view_name); //获得视图名称
) K+ ?7 B8 F- c  uc1601(view_name,1);' N; ^2 \$ }, r
}/ O, s7 Z" r* r5 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了