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

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

  [复制链接]

2016-12-12 12:22:04 4147 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……( R0 ^9 [0 Q* G- ]7 E( b
        tag_t object,view;- z7 L, a: H3 i# q
        char cue[] = "select object ";
% [) P: J7 f. l+ M# P' }0 O        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART4 J4 d4 Q& [7 L0 c
        char part_fspec [ MAX_FSPEC_SIZE+1 ];! M1 w# R/ j5 i
        int  response;9 _" n- B5 x7 ^8 `- g5 B
        double cursor[3];
' F; s+ Y/ `  h$ \        tag_t part_tag;, l) |; m7 ]: [- m
        CString infro;; l# K1 [; A" f: c5 [* }/ l

0 ^/ _! i8 g# Z9 m& F) J2 i        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
- x8 P$ Z0 V7 s# U        if (response == UF_UI_OBJECT_SELECTED ||
5 n" F8 l+ h, }/ K; l                response == UF_UI_OBJECT_SELECTED_BY_NAME)
4 d( X/ W7 y# D/ C# E        {" f4 n) \+ H$ ^5 i3 w" J5 y
                UF_DISP_set_highlight(object,0);
+ g& `$ H1 }* s# c                UF_MODL_update();: K8 z: Q" A) q8 f
        }
$ W$ I: k3 j/ i3 L% W8 q4 V# Nstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
1 o1 \3 L: n$ n4 j" K. }{  
5 v0 V8 _; \  h$ y        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};$ h, ]3 h* t2 x3 @
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)$ V6 W  Y3 |0 [) r, ~- h5 c# m5 y
        {
& R5 w# Q4 i  w& \( u* L7 a                return (UF_UI_SEL_SUCCESS);
5 p* l# m  R2 {" n6 Z        }& Q. E3 R' T! u* P6 r
        else; G( A7 b2 _: M( {; B
        {  D2 z/ c. m% G  u. H$ o& f, U* V! m
                return (UF_UI_SEL_FAILURE);
% D$ t, t6 g5 r; j* x% w        }
# |2 J! x$ [+ S5 B' ], f7 V}
6 N- O3 Y( s  P8 Z. G, _' n5 h- g9 K( z$ }9 C
上海点团信息科技有限公司,承接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;; r/ @! O- T/ p
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
# G# i, J, p( i2 t
; @5 k4 A' u: A# K# g' s
+ [4 G" h6 z3 y  i! f$ P+ \UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象1 c! b5 M. H( V
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
) u$ ~/ {* \  O9 B9 D) i; i0 N) n4 f1 y4 J1 a1 c/ G8 M
————————————————————————————————————————
0 a7 D6 o& n( O% I列子选择视图里的直线边缘
, M0 l3 w& K, r! `8 N# ]! ?5 F
7 X, T6 X/ t7 L4 L& p" j3 M' R#include <uf_drf.h>5 Q3 y! M8 Z0 n0 Q+ C2 `; }
#include <uf_obj.h># P  B  L$ }) T" k& s5 R
#include <uf_curve.h>+ D4 N% U! l/ I; \1 _2 P
#include <uf_csys.h>8 b' P, r1 }; H+ Z8 f/ s$ o' m
#include <uf_modl.h>7 k! S& o8 Q) M! _/ c9 C
: {2 f" m  S4 E5 A' e

& f" ^4 Q( q1 y& x; h. y9 S//设置选择的实体类型
. i: ]6 C4 v6 `/ K9 E% ostatic int init_proc( UF_UI_selection_p_t select, void *user_data )+ y$ K+ `% \# h! s, J' d! ^, J( H
{
" y7 \, R7 G/ @' K% P  int  errorCode   = 0;
9 T2 G- Y& {: o) S( z% d* \# G# S0 W+ U
  int  num_triples = 1; //选择类型数量
: i3 \9 }- w5 u$ h  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
4 A8 c% y" C+ \6 @1 k3 X1 W" D) j0 t# V5 c6 L
/*+ V2 f5 Y( e2 a/ R! E
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
' v! q3 L) _0 p5 Q: U  bUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
: h, p" e  K9 ?& k, r/ W+ n5 E, g* KUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
! w0 X2 l+ T3 F) y4 kUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定" D; F" f2 q8 @3 A$ H; S; ]/ A
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定% s+ H, F" k* K. M
*/
( o* n* h8 l; }$ s. b: B5 u! CerrorCode = UF_UI_set_sel_mask(select,
+ m1 E2 M. Z& P9 d* `; L+ q                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,2 Q8 [- n. T6 L8 @0 p+ Q! V
                                                           num_triples, mask_triples);
3 ?$ S5 i3 w8 s8 z0 s5 {if( errorCode == 0)
, O; y# x; {4 X' d- x{
; k  G+ o2 r3 }1 {6 d0 ^# G+ b$ kreturn UF_UI_SEL_SUCCESS;5 a) n8 c+ m2 U/ t- R
}
2 A& H0 u7 c$ g4 ^ else( z+ f) u) M3 b& B
{
4 {! r$ w- Q# F9 J0 e1 d! _& ?$ j return UF_UI_SEL_FAILURE;( q7 X  U# |, J- \& d! n4 O2 p
}
  w5 \# X% o5 u: c% n2 h4 Z}# s3 Q7 l$ f: L- R* D  [4 s

( a, W/ @1 }* B' P; w
/ f/ i' x! G4 ?+ r, T/ ]) a' l3 F* X1 `# T" Y
  /* TODO: Add your application code here */& V. r. `  Z. s1 L# Q7 L

- f- w! S3 \# S4 H  char *message="梅雷提示!请选择视图边缘。";
9 q3 M3 g0 L) v+ ?* L2 P% i4 `  char *title="梅雷-QQ1821117007";
, u+ B' e% P% A% Z  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围: g, i3 ]5 |* x
  /*1 D' s. H( N+ u; h0 |+ ~% Z1 L
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
, J$ ~4 Y8 Q7 P. O6 @: \# @0 P$ @   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装( e7 O: s/ y( f" N/ c, C' }7 L
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分  [' p. W8 k1 V1 P
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
+ f' [8 \' S* t9 j' o# O7 b( N' l  */
6 N+ _  J( z$ b6 ^* n- I+ o* R% gint  response;* o% g/ r* x, {; @' p7 _4 L
tag_t object_tag;
* i5 ~; ^% g' ~5 Qdouble  cursor[3]={0.0};9 x# M  b8 C( F. K( j% s
tag_t view=NULL_TAG;2 c8 V7 n( _3 ]2 [7 ^
+ w( D1 c, N, Z4 w; [% i
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
! f5 ]1 E' Q' `' A8 h; R7 dUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)! v' k9 }7 Z# H' p# {7 ^
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
( r! p# ]3 G1 U. F) h, |UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)1 g( v2 J: r4 V+ T& c( [/ `
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示% S% u, N" i* ?' `
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁3 z6 ?0 r0 q3 ]: H, o

" ]0 K% @+ _* J( @  y0 U' q6 f7 d( \# B) E& b4 l6 `
if (response==UF_UI_OBJECT_SELECTED) 8 h$ v9 b% F/ D" b1 e, }9 T$ i
{
& n0 R, ?  v3 I  char view_name[132]="";/ u! e% J6 j, `  d
  UF_OBJ_ask_name(view, view_name); //获得视图名称
/ k# M7 r5 Z. r$ H3 _5 B  uc1601(view_name,1);
8 @. |! E, I* M" u' L* n+ ]}
! b: D# p; h% z7 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了