PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

2016-12-12 12:22:04 4159 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……+ K5 \. l" P5 e- N
        tag_t object,view;
1 p1 x9 @2 H+ E. T& e$ Z        char cue[] = "select object ";
* Y6 q6 Q3 y7 q( w) g        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
& [8 ?+ L* K, i4 s% {        char part_fspec [ MAX_FSPEC_SIZE+1 ];2 u0 M9 c8 Q" K
        int  response;
5 t1 {5 N1 m& q7 H3 R  e- g- S, C        double cursor[3];
2 }" d1 V9 ?& `( Y" m8 o" e        tag_t part_tag;
" ?$ S( R+ ^* e  N- d        CString infro;
& J; q$ S. B, K9 [
1 M5 A# ~5 u1 _4 b' @/ G        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
6 g; N) E# @4 V8 s/ b        if (response == UF_UI_OBJECT_SELECTED ||
* @0 u% E3 d# A                response == UF_UI_OBJECT_SELECTED_BY_NAME)
/ w7 P# A: u  y4 J1 j; }0 u& w        {
# N1 \9 w' \. f9 m- Y2 s* W                UF_DISP_set_highlight(object,0);0 P' M5 v4 j/ R9 i# }! t
                UF_MODL_update();: j" O' n! N) j1 |6 o+ X0 h
        }- ~' |. q: g( h; l$ W: j7 L
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)" G; P2 @) R2 q, n9 z
{  
3 N% R: v& d1 I3 u1 c# u        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
4 _4 |4 @; p8 g# ^2 m' y0 X* q        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
: n5 m# _4 Z' a) |9 ^  A7 y! R' Y  b        {9 M4 F- z7 s$ p$ p+ Y
                return (UF_UI_SEL_SUCCESS);
) r0 I3 H; h  X: @# {+ i/ z        }
3 n+ _, ~! a" W: Y  c, V2 z& p! n        else
# I$ y/ o& z# R# S        {
% {8 ^- d( w9 Q# u" k0 v4 z$ H$ e                return (UF_UI_SEL_FAILURE);; c) u. |/ w  g' N2 ^
        }
" s- J& s0 o  l" b5 f}
3 q1 y& v( m) k' z# R" _  D( @. h  |. e& 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;
' M! G- N6 ^6 X0 @& C# w7 ]2 i4 KUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view. `6 k( y5 z5 i2 g

( k* Z# h; x; z$ h
: t  p/ o; D$ B# s7 lUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
2 H8 N* n& g' _3 q% j9 MUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
. ~3 ^4 `5 X+ \; c$ q) A% G
( s4 X+ F* G( [: @0 L% L# |————————————————————————————————————————
- v" N6 [& D; n' U' \: g列子选择视图里的直线边缘
0 J, h) C$ b5 m  x* r
4 V$ z3 t2 U- P. v#include <uf_drf.h>$ l( ]$ f2 t% a  w
#include <uf_obj.h>
" L; q# p" O  h# A. \: f# n- v/ I#include <uf_curve.h>0 Z  k( s3 \% `' }2 T
#include <uf_csys.h>
8 w$ D+ C- j2 d7 V. R- m#include <uf_modl.h>
& E) |; ^6 [& O  g
6 i/ `! X6 m( c9 p" W( F
0 F# [+ z6 j+ J* f3 l4 U6 ~- a//设置选择的实体类型$ @  N. G6 x+ I4 f$ `% p
static int init_proc( UF_UI_selection_p_t select, void *user_data ), F9 ?3 N4 I& |
{
1 N& M% A3 r$ H# n5 G  int  errorCode   = 0;1 ~2 B7 c; P' ~% A4 o; z6 L0 M

6 h1 X6 X% |9 }9 i' e  int  num_triples = 1; //选择类型数量1 R3 P/ d, T% w1 I
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
/ l* d9 h/ n1 z" v8 e: Q, Z; v) o/ E) x* o3 Z& h$ G! l0 b5 d( z
/*! _% ^: p7 \7 s; G2 E2 Y: \. d
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
1 S9 |5 Z; P% b! ~UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的6 y0 C& u$ c$ |' _2 k0 @  ~
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
9 T. I9 `3 u3 WUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定4 R; t5 Z0 f$ B
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
8 ]& y. }3 v6 f8 t*/
; K+ _1 `0 T7 X# NerrorCode = UF_UI_set_sel_mask(select,
. Q! W7 `/ U& ?( S  E                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
7 Y' ?: R, T, {3 A$ X                                                           num_triples, mask_triples);
/ ~7 p3 u4 M' f! P" [7 Sif( errorCode == 0)) g% k. c# P2 [6 R, s
{; F2 ~- X9 O& d
return UF_UI_SEL_SUCCESS;2 p. O1 h' P. V  Y. Q
}, w3 k+ A$ }* V( y$ u- K4 ]9 g
else
: z& I/ O6 E) o6 ~. G{
, C/ |. A) E# j: x! x8 h return UF_UI_SEL_FAILURE;
2 L; O8 @: B" L+ U3 n% p7 ]" i}2 Z6 Y2 L) _# ^: e
}
0 a+ f0 t* \5 ]  z2 \; y. W
, y8 \/ h3 [7 H- `
  z* C. \# K- r1 v) X. F) S# x. ]' f, r
  /* TODO: Add your application code here */
9 w6 o" b3 r0 W$ l
- q, D: Z% @& m* w! N$ \% ]  char *message="梅雷提示!请选择视图边缘。";
) J9 w6 e, J5 T/ W5 D  char *title="梅雷-QQ1821117007";
9 i, J4 c0 W8 d7 p9 V% _3 s  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
0 F4 y' F. i& U  |  /*$ R5 \+ Q3 h2 N, t# s1 l
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化' \6 p+ [2 u. D% l0 o2 O7 t. ~; B
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装  ~( @8 [% O, m. ]) M
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分: v, q6 N9 A! b5 w( `
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
1 k# o1 S: Q; M: j" ?3 L  */# R# \0 b& v  h7 c: u2 o; o
int  response;
4 O' i1 M- S: ztag_t object_tag;0 o. T, b/ D0 u& C
double  cursor[3]={0.0};/ ~# B7 z# u! |6 c, `- w9 _9 T, T
tag_t view=NULL_TAG;5 K% P; C: U# Y8 q
& G( }" a- Z) n
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
( A# V! I* y7 y0 v0 Q/ l0 ZUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
+ A$ V' s9 ^6 s. G  ]- U2 PUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
4 H+ x* U# N- Z* a. V; lUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)- S/ r0 p+ n$ w' [- E  ?9 ]& M
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示' `$ t8 x! C# w- {$ U* p6 g
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
6 K+ c7 M, a! W) \7 M6 f" s/ o( b9 ?2 c" e) E7 i% w6 p
6 A- w( c( T( Z7 X4 q- \
if (response==UF_UI_OBJECT_SELECTED)
$ I3 M& h. U# }: O+ G{
: b, C7 q& M4 @( ]9 s  char view_name[132]="";8 X2 X* Q: L1 N! y, t( u/ g( \
  UF_OBJ_ask_name(view, view_name); //获得视图名称
6 P' c! X8 _7 [9 e: d$ K: `2 w! v0 m  uc1601(view_name,1);
. Z9 M: X0 a2 C}
* \" v6 y& _! p, E4 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了