PLM之家PLMHome-工业软件践行者

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

  [复制链接]

2016-12-12 12:22:04 4193 2

2

主题

19

回帖

158

积分

注册会员

积分
158
发表于 2015-12-3 13:55:58 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
UG二次开发问题:我在建模环境下用UF_UI_select_with_single_dialog()没问题,在工程图模式下用UF_UI_select_with_single_dialog()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……5 _1 E% r8 _' M( \4 T' b
        tag_t object,view;, q0 o0 V) P( M8 i( ~* v: B, c* C
        char cue[] = "select object ";. e" e% \4 h; a! X( N
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART" g4 h5 n7 X* t' ^
        char part_fspec [ MAX_FSPEC_SIZE+1 ];
- z) R- S1 }  }; W0 Y        int  response;
, b8 A! X/ Q2 Y- C! _$ H        double cursor[3];
% z7 k) C5 ~9 I0 I. S3 q7 o        tag_t part_tag;
7 I, X0 D! M& G& |+ F        CString infro;, Z9 Q( w* v! R5 j, f/ [# o

. _" x2 g) V/ G8 l  R) U5 ^        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );0 S0 V4 ?8 o( E* U- j# z1 @
        if (response == UF_UI_OBJECT_SELECTED ||
1 w& c1 Q6 }3 e) d$ Q/ K) p                response == UF_UI_OBJECT_SELECTED_BY_NAME)
" X# V( ], g( Q) T( o( W        {0 {" Q. A' L( f3 V
                UF_DISP_set_highlight(object,0);" R" A: `9 F0 N' L
                UF_MODL_update();
$ V$ N* b& X/ t' _        }
, q' k' [+ s# m  E  l) P$ \; Z( u7 Astatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)/ {3 o# F+ E9 p; h- u
{  
6 }+ p! G0 t% J  q) _        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
2 }, ^/ t* C  @        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
0 s- h/ p! Q' N' w8 N2 u3 f, g        {
3 W9 p9 w" m) X                return (UF_UI_SEL_SUCCESS);
1 B3 B2 d) q) H$ Q        }7 ~8 P& E" O% J6 J+ _
        else; B* A/ _) _+ l* ~
        {
2 I, i# \( C- g0 o1 O4 J                return (UF_UI_SEL_FAILURE);  [( P4 Y; \8 e
        }" o/ w' [$ l2 ]2 ]5 x2 w
}
4 X3 b9 h9 ~& \! {
3 F. s5 \4 C! m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复2

2

主题

19

回帖

158

积分

注册会员

积分
158
 楼主| 发表于 2015-12-3 14:36:31 | 显示全部楼层
难道我过滤错了?没人回答?……。自己顶下啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

8

主题

10

回帖

146

积分

注册会员

积分
146
QQ
发表于 2016-12-12 12:22:04 | 显示全部楼层
int viewview=1;
% P1 ]9 I& }( W2 JUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
% T4 z$ W! [" }* f
! o# f6 e2 Y8 a4 _8 e2 y
8 j+ o. V' P& G1 `' fUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象( H7 v- n9 c+ @" w
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
6 U+ i/ {7 h* u9 F2 F
; P2 \4 ~1 `1 Q6 C0 C$ }+ v————————————————————————————————————————
- l, k9 H& y1 N1 B, c& |8 ?列子选择视图里的直线边缘
. {, h, B$ l: ]; P2 J8 C/ t! S/ A6 A# l8 w" h, \, P. Q
#include <uf_drf.h>; {& f: q3 w8 Z: ~; N# e
#include <uf_obj.h>) O7 n' G! T) u* U  g  A4 ?
#include <uf_curve.h>$ E0 p% @( c. H0 q
#include <uf_csys.h>8 {- @3 ]8 _0 a4 o! G
#include <uf_modl.h>/ z; \7 w  u' t/ X% ?
" a0 K* r% o& K# J6 U/ g
! h& d% K, d# o( p6 X: s
//设置选择的实体类型, c7 R2 ?$ P9 h( `* o
static int init_proc( UF_UI_selection_p_t select, void *user_data )  c( ?6 T3 H  U" i3 ^) c
{4 o; Z0 ~- ?: {" z9 U6 t4 e/ v
  int  errorCode   = 0;: _) E5 m, v1 F

& \. u0 p; I! F+ u' k$ [# r7 z& j  int  num_triples = 1; //选择类型数量" T* O3 o( o) Q1 e' ~
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
- V6 D! a+ v$ A8 f+ Z3 Y
% ^) ?% V& G2 R/ @9 e% E6 E/ [/*
4 Z* _) `$ }) u5 C7 {UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
% z7 j3 O, a9 C9 S4 V: XUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的7 N& a9 `' ?/ s! d& f
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
) z) t% W, J8 [) ?# HUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定; R0 _/ J$ \. Q& @4 r
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
! l/ L, h1 m' W9 Z*/
2 `5 H) `3 p* Y8 ]% ~errorCode = UF_UI_set_sel_mask(select,
6 o" I% S" s0 ], c- T& ], `* Y                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,6 ~& R/ c' x# N- t$ }% t7 y
                                                           num_triples, mask_triples);& D$ H9 i& \) p, h
if( errorCode == 0)0 S; P9 N0 u5 k2 w( g. J$ J
{5 b  w& j7 P' C; _' M6 o5 S$ f3 ^
return UF_UI_SEL_SUCCESS;  e4 _4 R! ], }
}2 _7 U0 U6 O4 r
else
9 e- `" j2 q4 P; ~1 C% I{% X3 |3 R  a0 d2 K; q
return UF_UI_SEL_FAILURE;
3 W& s  k8 h4 Y- b}
/ J' x, w, d) I5 N& Z0 I4 b* w}
; D( H: g9 C1 Q) t8 [$ ^
8 Q1 }4 O6 z! G( x/ s. p" f$ B( r( l$ j( |, u  ^

' F* V7 M' V& w5 B. ~& s) i+ x8 d  /* TODO: Add your application code here */; E. c% c: @# p0 N( K

+ N+ q9 z' M7 I8 I# T5 }+ e5 h  char *message="梅雷提示!请选择视图边缘。";
; C3 G  ]# [/ P6 a' h  a  char *title="梅雷-QQ1821117007";5 q6 l& ~$ d- F1 ~
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
  `5 R3 R$ r" S/ s  y$ Z" h  /*
4 E# D  F) p; o   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化8 g3 W) Z- d- J3 J' P% P' _/ C
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装0 T* {% i# h0 V* z6 w. d
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
3 v0 E  E' w: P' a, [   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
& F5 e6 c3 m' q5 K$ A# }7 X  */
+ q! x* a/ w0 n; R( @9 [, \3 Y2 p6 |int  response;0 {, a- }" H0 l6 Z8 g* N* `3 t
tag_t object_tag;
1 c9 f$ y# N$ y6 L( y* z5 W& Z: ydouble  cursor[3]={0.0};5 g+ k3 ]% x& R2 \- H! J; h. Q; F
tag_t view=NULL_TAG;  U: H) y1 N/ I: {# ]+ |, j1 y
8 {* D& M/ U* n
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁. e' q; w/ @# O4 {& x# M8 \6 V8 ^; u
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)2 n# C# O2 m3 b  X, J" E) m
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
! W1 G% p6 S* N7 X5 N* zUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)5 \& i) g8 _0 N. `3 l5 V% s
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示* w+ C3 `6 S( f, k$ j
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
0 w" S1 @! K* I( l. n! _& K8 [- }8 `
! M7 z* B8 W5 R, C+ Y6 c7 U+ e/ g( U6 t+ l  i6 R7 Y
if (response==UF_UI_OBJECT_SELECTED) ( {, D; v8 ^" c; Z, r( s
{
2 L" p/ M- V  j, J  char view_name[132]="";# j, ~& F( o& @% ~# I1 q
  UF_OBJ_ask_name(view, view_name); //获得视图名称
- I+ P( t$ v+ v+ Y' T7 ?+ q3 J5 h  uc1601(view_name,1);. `0 ^$ Y  M& f& `) S+ Z2 }3 {
}
; ^0 [3 r. H* J0 s
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了