PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

  [复制链接]

2016-12-12 12:22:04 3946 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……3 x! K! l: X  T  O3 O
        tag_t object,view;
" S% O; g5 k  i$ e. X+ r        char cue[] = "select object ";2 j- @* p- e: m: ]: g& ~
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART1 z1 n4 v# L2 p3 F4 n* A
        char part_fspec [ MAX_FSPEC_SIZE+1 ];
  P1 S8 j! L' n' ]4 j% E4 [        int  response;% Q0 G# f' e4 L" h+ j
        double cursor[3];; |  N# ^) g- u4 O
        tag_t part_tag;
3 ~# D* |% {) m7 g4 f5 f        CString infro;# e8 ~) s6 Y/ O
( ?7 _' T: B/ d& x
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );+ O* W- e: Z3 q2 c9 P
        if (response == UF_UI_OBJECT_SELECTED ||
9 N0 D6 S4 r2 d+ g8 u+ j2 b' ?9 I                response == UF_UI_OBJECT_SELECTED_BY_NAME)
7 l3 d$ I) T9 [5 B: t8 x        {( g: m3 D+ Z3 Z* e3 ]$ j3 ^
                UF_DISP_set_highlight(object,0);
5 ]/ o& |( W! B1 b8 i                UF_MODL_update();
! A1 F9 e4 h5 }2 C, U- h% X, ^        }
+ `# b; L" f* A: astatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)2 G( c4 Q' u+ r  N( h. g8 ^
{  9 D8 s) T: n2 p1 @7 C
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};- D( Z( {. Y/ z6 A' ^& F
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)% I( w; ^1 ?4 ]4 n$ n* d2 m: q" j
        {. L0 m: b1 ~% [) q. N
                return (UF_UI_SEL_SUCCESS);$ ~* O3 U7 c1 u7 ^3 [: d
        }
  d% k5 i+ l4 A; H, _        else+ @+ |, _; c; t) k
        {1 |4 }* H& x; L$ `" J9 z) T
                return (UF_UI_SEL_FAILURE);
/ o- q$ ^: T9 v  F( m        }' t: u+ ?7 |  ?! c8 i6 s
}
/ n: A" H- d: s# n7 J0 G/ f* d" H  _9 N; h6 ]4 k+ 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;' `; C/ J0 Q: U7 o1 t( ^+ R
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
# I, {" a  F, ]: O4 g8 S1 q2 S% i  y5 k
% m2 S, i5 }$ T5 ?' q. E
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
& O+ a+ L+ ]# S5 U1 ~$ D' xUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
' I+ j( u) q$ ]0 w. I; l2 h( I( g4 g# b+ n/ D0 t# h
————————————————————————————————————————0 M0 F3 g7 g! E5 k
列子选择视图里的直线边缘1 S( U9 l" @  d
; C/ `8 k" ?* W. p
#include <uf_drf.h>
1 V2 c; e5 [& o3 f1 L: w#include <uf_obj.h>
" U# R' t: n. Z% T#include <uf_curve.h>
' B4 S, y. Q$ B, @#include <uf_csys.h>5 _. n$ w3 U( A; ]5 C
#include <uf_modl.h>
' ^1 X% I6 d0 z% c* U' _
5 p1 E: o3 p  t2 s# B7 U  m7 H! I$ A7 V# Z: p9 ?8 i
//设置选择的实体类型
8 ^6 m& D' w0 j3 y' j- sstatic int init_proc( UF_UI_selection_p_t select, void *user_data )" ~( R* |+ I! S2 V1 k3 [
{
5 u) N7 V4 p/ K1 f# j) U: y$ f  int  errorCode   = 0;4 F/ y3 ^3 p) x. q( _) ]
  ?8 F( r) O& p; w" g
  int  num_triples = 1; //选择类型数量
# r# `& Z1 T. u% r' e, M9 b6 o  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
2 T5 H! d( v3 T- G+ E2 N6 s4 k& @$ T+ y7 G2 ]
/*
/ b2 l( L7 z$ x/ n4 qUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型1 H/ h5 N6 s0 W8 N! H, B
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的( Q: U8 c) ~) R5 Q( g( T
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
4 v8 T) ]+ R$ `8 }! L( K! ]UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定$ i2 d! ?' Z4 d, {! E7 I, {1 }- ^
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
% X) {. n# O9 v" Q*/
1 ~% X- v! N; d# U% E2 \errorCode = UF_UI_set_sel_mask(select,
! J7 k; c2 V" w; I0 t2 U% ^8 C                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
) C# Y' n8 i1 R) |' E, W2 \                                                           num_triples, mask_triples);' b3 J4 M; {4 r9 l9 O* A
if( errorCode == 0)1 ^% T8 x) r; c% x. l+ C
{
$ n- j- K7 M4 I% i( Q) n) {return UF_UI_SEL_SUCCESS;5 C. B/ D! F& ~- B9 B( @* `
}, K9 z! s% `6 h# O2 b
else& u5 F+ @5 k: e. Q0 \) p: E+ y
{' A: J1 ?/ b* P( H: m4 M
return UF_UI_SEL_FAILURE;
  `5 u, x; q) a6 h' F  c, z- l}, k: P# Z6 b7 e# g- ?! [! c; i1 a% a
}* [9 w5 k* k* N7 [5 f
0 w# q& ^) W3 w5 _0 B: A  U0 ]

3 L+ c  k. ~6 {4 L
5 y% H( v* Y2 ^7 @2 I  T/ k  `3 A  /* TODO: Add your application code here */
  v$ B( i+ E9 y) r+ m
+ H  L3 D# u2 r4 @$ j' ^  char *message="梅雷提示!请选择视图边缘。";/ Y' `; h; j' [, f6 ~! S8 n
  char *title="梅雷-QQ1821117007";; Q1 @1 @# J$ t7 i
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围  w* l- ^- [1 Y# {9 E% P
  /*
' U$ e0 [. a% a. D; I) y   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
: Z& b& I, k" J" J& r$ \   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装9 Y& Z. j8 f2 D( o9 R7 ^" J
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
" |3 q8 d0 W0 e7 Q5 d   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
  x2 p& U1 Q9 n2 s  */
. ?+ |7 C; R' tint  response;
% R  t) E! m* s. ltag_t object_tag;
8 s. H# j2 k) Y+ `" A9 ldouble  cursor[3]={0.0};, Z: z. {' _/ m" T( p/ H% ~
tag_t view=NULL_TAG;
# E5 {0 n2 u1 I; u2 A" ^; N8 p0 S* M+ \3 W
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁- d9 J- R0 P* w2 a) r$ G* g2 ]
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)* C) w* W) m; C) e5 _( K
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
; d5 T& D% f6 ?' S; Q1 V, |6 _0 m" _8 QUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)+ t' }% Y6 d, Z* y7 a
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示# N* L5 R; W" d- F" i5 g
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
; X+ b% H: i2 i* O" j- }& D& b: K0 s% a& y$ p. \4 x

. \6 {' N) i) y  Pif (response==UF_UI_OBJECT_SELECTED) 9 S1 }* n! M5 W" l
{  g! r' Z7 }; t/ U1 l  X6 D
  char view_name[132]="";
5 _: r: Y! d6 Q. w  UF_OBJ_ask_name(view, view_name); //获得视图名称
% F1 _. H  e5 ?; ~# T; \/ y  uc1601(view_name,1);
) L2 B) J, f' l' a% z# F}4 s5 T$ v! b( R' M9 m$ @, z0 C/ 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二次开发专题模块培训报名开始啦

    我知道了