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

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

  [复制链接]

2016-12-12 12:22:04 4148 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
8 J% ?* E1 E$ t5 W: I# ~        tag_t object,view;
4 {% w, o; |8 ~2 t$ |- F" U        char cue[] = "select object ";% J9 _+ x, m, k: S5 ~$ L
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
3 Q, t$ y, d9 ^/ v* ~! S" f        char part_fspec [ MAX_FSPEC_SIZE+1 ];
1 L! i6 ]4 h/ F2 U- B        int  response;
9 K& \9 |+ {( L  i        double cursor[3];
4 \+ y" C( y7 J2 r: ?1 k' v0 i( |        tag_t part_tag;# n9 i" @/ N( Y8 Q
        CString infro;' S$ _; ?7 s, Y2 x" I* U
  i* |% P0 h' e. l+ O
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );! \, T( M0 Z& Y" v
        if (response == UF_UI_OBJECT_SELECTED ||0 Q" w7 A: Q3 ?( F4 N! P; H. r
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
8 l  p: P0 l3 Q        {
' D$ N+ n9 K& Y/ L$ ?  B% T                UF_DISP_set_highlight(object,0);& `* F# @4 {! @) j: R! p! l/ k6 _7 c+ g
                UF_MODL_update();
& }: Z( ?5 B7 Z3 Q7 l- O( D        }
+ b& k5 X8 w" e7 V0 T/ {static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
* o/ x) ?4 O& q- X4 `$ ~1 B{  : P9 u+ V, W5 w8 S9 y5 C' T, Y
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
9 f6 n/ e: b; s+ ?        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
& p9 `7 K4 f* S/ q( ^5 G        {
) Y$ G8 W( w0 j                return (UF_UI_SEL_SUCCESS);
8 {: z/ U& y4 S4 D' J; q        }
5 n* g5 X2 H9 H  w  G        else
8 h! B2 b$ W) t% @        {
. V: f) w$ ^; x7 p" M5 X+ m! u/ M0 \                return (UF_UI_SEL_FAILURE);' X/ i7 ^- U% d" `
        }) x; K- F) E5 a: p$ e/ E
}
" b. F' y/ L9 ^8 x" ]6 K
( c* ~0 g( h, r9 _
上海点团信息科技有限公司,承接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;
* v& C7 o( f# JUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view! D5 Z3 d1 }/ _/ C  p: t; s
! J2 e3 [, ^2 w
, r  x4 a9 z0 A" a& _2 F/ a: G
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
2 }  \1 G4 Y! a; o8 F1 HUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象5 H5 }* U3 t4 o
! R* J& q  O7 u9 A! Z: o) i
————————————————————————————————————————
4 B# L! s0 P; M* m& u+ ^列子选择视图里的直线边缘
# u+ Q# b' L3 p8 ]& q- i0 c  O% _5 B1 \8 N: X2 R5 C+ h/ Y$ ?
#include <uf_drf.h>
6 f- o& m7 c- ^0 D$ D) y* ^#include <uf_obj.h>' Y+ N- H9 I/ N
#include <uf_curve.h>% A; b9 x& }! Q9 @4 M* {& B
#include <uf_csys.h>0 a5 [4 t* E1 v% }. M/ c1 n
#include <uf_modl.h>
) G. q& k8 S/ W; K) `) x' @# z
# f+ \1 H3 f% O0 _/ i) Q. H' S1 B3 ^
//设置选择的实体类型
- ^( m4 d. m$ ^! V4 |. {static int init_proc( UF_UI_selection_p_t select, void *user_data )* V5 s* ?; R  F8 d/ W' p1 ~6 t
{( k& E0 x, J* A: k% e1 W/ v
  int  errorCode   = 0;/ |+ Q- ~% ]* x. m% h
& {6 ?1 |4 M& o: h  D! l
  int  num_triples = 1; //选择类型数量+ U5 ^2 y0 S2 y# r
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型1 p6 Y( c* ], a7 x7 d3 k$ J
0 |9 s; R! a) Y5 ]
/*
( T1 d, n. T: fUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型" J9 \5 ~) J8 b7 z: @
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的" J3 Q5 P/ G8 t6 p7 F
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定: z5 I1 I2 t* N- Y5 ?
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
( q5 N7 _2 W3 @/ a: a( g* i6 p7 u" l# vUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
) r7 S& z9 e# v/ ~! }' z*/
1 V/ C6 W4 V$ w6 L$ Z$ _0 VerrorCode = UF_UI_set_sel_mask(select, 6 a: C  Z8 w7 @" q" U  {# `5 I
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,/ W2 i0 q+ o& [3 Q) q; G- E# u
                                                           num_triples, mask_triples);* }  k% V( a* e' T; `1 G
if( errorCode == 0)" j, H- J0 Y6 r: }
{
: `- ]' ^/ h/ Y4 [return UF_UI_SEL_SUCCESS;6 u9 B9 D* N3 D4 o. v3 D! M. r
}9 ^0 L1 P! q- ?- r" {4 c
else( {1 ^4 x: n6 A5 l" @
{
" H  w/ h- c) ]* f" M7 X return UF_UI_SEL_FAILURE;
* ~) ^; b9 H# Y6 g8 y: y( a4 P& f1 W}  ^7 P- ?  v6 o8 q
}
0 p8 C2 o: a  ~+ I# F( A
! K% w+ w. F4 C
7 u% \, I+ H1 F4 ?* `. ?1 g) r  k- Y1 r4 Y9 `2 a
  /* TODO: Add your application code here */
1 w! C9 _* o+ T8 _; `# p  t0 Q: N: |& K) n- Q- Y
  char *message="梅雷提示!请选择视图边缘。";" E$ I9 ~3 ]1 D
  char *title="梅雷-QQ1821117007";8 p  b3 o1 o3 o9 o  P( r1 x
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围, @: B$ Z) m% v  A$ \2 H
  /*
( f' O' J3 h$ s+ l' p9 A   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
1 ~' m3 i: q1 f& k3 @* L! l4 J8 a7 g4 K   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装4 s6 r4 \2 ]' Y
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分8 U5 @! G% o" Z8 f* U" ]  \# G0 P
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC/ M3 p* D9 ?7 Q7 A+ i% f
  */0 L) L, `  j3 x' h! r5 U# w  M) J
int  response;
6 `0 V% I& {; ]& t+ T: @4 l$ ~tag_t object_tag;- _+ S) ^' L+ V5 H( w. r  F
double  cursor[3]={0.0};
5 F, q  E' A$ O5 ^6 x3 Ytag_t view=NULL_TAG;
1 _$ c* m, F' k7 M  J2 @  k2 q
$ ^- a' t' l) @" FUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
, ^: L; F5 e% z% F3 w' @UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)# E% U- @3 A# [; I
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
  s4 S  N; U7 y- A& Z. q  WUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
" P3 t3 Y1 N% f, y5 _9 A6 Y; }UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
8 r" C. N1 q% k, |7 k. g" U* i5 sUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁% Z2 G; V5 t# A( L7 p& k! E

; J: V- A. z# {6 S; R
/ e# u4 J1 A. x$ w7 p2 ]/ {if (response==UF_UI_OBJECT_SELECTED) 7 N+ l6 S0 `/ ^) B9 r5 m  x
{& `+ V! P* [" {. @& V3 U
  char view_name[132]="";
  T8 i$ U6 ~, H* N# p  UF_OBJ_ask_name(view, view_name); //获得视图名称
* q, U1 j% q& ^  uc1601(view_name,1);( F6 l* R! U5 O3 K( E4 V
}' u% Y0 i# x0 m: c2 ~( J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了