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

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

  [复制链接]

2016-12-12 12:22:04 4090 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
$ ?; g& y' C. C! }8 L' @6 u        tag_t object,view;
, A2 y( i" O/ _0 k) C- F0 B2 I        char cue[] = "select object ";- ]5 [2 t. U- m+ f  r, R
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART' g  O* Y! Z7 a7 P' y) t' M8 s) L
        char part_fspec [ MAX_FSPEC_SIZE+1 ];6 V1 M& M$ f% Q! p2 l$ x' \) b
        int  response;
9 N, Y+ ]8 `1 `+ J! n8 ]        double cursor[3];% J# a5 E) n5 O) s; P. G$ K3 ]
        tag_t part_tag;
+ P# H" q) T. Q        CString infro;  a0 S9 A8 X5 Q/ L

0 p0 Y4 |6 g; f6 |  c' O        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );6 s1 S) T5 G2 @+ w3 B$ E' y+ k4 U
        if (response == UF_UI_OBJECT_SELECTED ||
1 k9 N, [9 [( e, {0 x                response == UF_UI_OBJECT_SELECTED_BY_NAME)
! D; O6 Q) K1 X3 u( H1 f        {
0 l4 u; t7 @# \                UF_DISP_set_highlight(object,0);6 m" K6 E1 W$ Y' k
                UF_MODL_update();
4 j: M; {  O$ n        }% g( t2 e) r. w# z
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)9 C5 U$ N2 v2 A( f1 [: [
{  
8 O' v+ ], w6 H( E$ M' q        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};& c3 S+ ~% A. [$ K
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)0 l: }) P1 {% k1 A2 j% I
        {: y9 J+ J- \! g6 a1 J
                return (UF_UI_SEL_SUCCESS);
# i; b9 b) x6 U        }; u0 R0 B8 L1 \1 t! P& C6 ?
        else
3 }8 A( r, t, B* m8 R/ i" p) z        {; w8 X- z4 a  v
                return (UF_UI_SEL_FAILURE);
! X3 N) Q& U$ L- }+ N# E1 W: r        }
2 O/ F% ^& L5 ^. K/ m$ D}- N% r" M9 i1 ^& U1 K3 i0 n5 k
' ~2 Y1 l* b. F, u" l1 z
上海点团信息科技有限公司,承接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: M' B% u5 A  a5 hUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view+ K) W, y0 u* e9 J8 J

8 ]* `: k% X- u" C: B# w& O! t' o4 u: Z
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
7 V' W- |3 J" N, }UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象; a$ H- C  l5 H, k

4 h; t" U+ }$ c! g8 ], W: V5 L# E————————————————————————————————————————
) v1 V* Z3 u: F+ M2 G! I列子选择视图里的直线边缘6 @" i) g7 D% j' F
7 @$ U9 I  ?& x/ n
#include <uf_drf.h>9 K  H  ~& s2 ~) I5 J
#include <uf_obj.h>
5 x6 b# V: Z$ G# G. {" w. F#include <uf_curve.h>
# p( ]( K, E4 w5 F9 Q#include <uf_csys.h>
1 t# u- w/ _. a#include <uf_modl.h>
( b+ s% N$ k  a7 Y- U1 o1 |& \: y! f% B
9 S. ]$ R6 _2 k& I: ^
//设置选择的实体类型% P& L3 w0 ^, s
static int init_proc( UF_UI_selection_p_t select, void *user_data )% f8 V- Q$ c6 b' w+ Q
{
( X: _8 c$ k* t- M) W1 `* f  int  errorCode   = 0;4 @  Q% M  y8 x3 N* L% p& J$ o
3 I5 C; g3 W/ \# A
  int  num_triples = 1; //选择类型数量
8 X: C; V- j4 s8 o  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型' Q, q5 }4 n9 G5 R& b
  V/ C4 ~9 n& F  X
/*
: b! E, {% q* d& F/ HUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
* A3 x' P% j1 g! H0 yUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
7 r) l- I2 v$ D$ @& u2 Y. rUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定; `* K9 O9 S0 L0 n) d3 G( x) e
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定7 c$ U) V2 ]: l7 g; C* w; k, H
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
3 ^# M) H( o9 ?, [& K*/7 S" l1 s: O, f( u. L, }$ c
errorCode = UF_UI_set_sel_mask(select,
0 b5 l' N5 p4 D9 n/ i                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,0 o6 M1 U' @* c6 c
                                                           num_triples, mask_triples);' s1 c2 Z$ z9 c
if( errorCode == 0)0 S# a4 {) [7 y! Q1 b* O, [9 O
{% W9 p: P! h8 `8 s
return UF_UI_SEL_SUCCESS;2 d& }9 l+ m" W, f" V2 }2 w* H
}2 Q2 C) d% i. {8 o" i9 j6 m$ o2 o
else
% ^6 X/ h8 c9 f* y{
* x: j& k) i8 V" j4 q! b return UF_UI_SEL_FAILURE;
1 r$ K! f. j* ]1 a2 T1 T}' E# b( E+ Y% n  h! W
}
% Y7 h! U! w' ?( ~
" j/ x% X1 e' K0 \' l3 B3 H# s, k# t9 e& K1 z9 o
8 K( Z" Z6 }* x( q6 T& q  k
  /* TODO: Add your application code here */
/ C$ N. R: _& B( S7 F: o6 m( e' e) \$ [
  char *message="梅雷提示!请选择视图边缘。";
( s) I+ o3 T9 X3 \8 w& a3 J  char *title="梅雷-QQ1821117007";1 N) K0 ?. |: g3 S
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围% G5 ?8 W5 y! ]0 G$ {2 R0 d
  /*
7 L4 B# G5 X2 N2 R0 o   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
5 L" ~$ E# F! G) H( a2 I   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
/ o6 V) r* n' z+ ]4 k7 ]   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分0 S9 B$ M0 {$ S6 O
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
6 h/ A1 J9 Q7 Y+ h* Y- j8 `( ^  */2 S( l" t; s; t4 \8 p0 m
int  response;, l% f6 J8 Q) e0 V4 j' p
tag_t object_tag;
8 z% H& U' o! p  \% S6 [double  cursor[3]={0.0};
% L/ O1 t9 t' k$ f( S- Atag_t view=NULL_TAG;
6 S7 E% t* G: s9 P6 y/ S% l5 g( N& h+ E1 N# a
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁$ M2 Z2 m% D$ U7 O' y
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)$ m& Z$ `) X* r; V. o
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
% f; O, F: N- R2 K) d% N& `UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
& s; `  B" p3 i5 F1 J5 `2 CUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示% ~- ]2 O& K9 v. a7 T. [( Q8 V
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁' V( [5 o+ t' c7 L  d# e# t% b, s; B
: Z6 T* O7 s. \* f( N) N' M* c! A

1 K$ |1 _, K" r0 o* K# {2 Cif (response==UF_UI_OBJECT_SELECTED)
* i4 L* ]( A8 \/ t8 t- X' ^{
& b, }6 x, @/ ?/ ~) p( D' V  char view_name[132]="";
. Z: I* r7 h$ L* s5 _  UF_OBJ_ask_name(view, view_name); //获得视图名称
- _+ b# a9 k- y* Y0 w$ D8 @  uc1601(view_name,1);' y* D  A& {" r
}: X& N8 P- _: Q) C8 f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了