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

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

  [复制链接]

2016-12-12 12:22:04 4195 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
/ N" N! \  }- Q' R* m        tag_t object,view;* x- I+ X  G) R1 G( q) Z+ ^0 G  A) a
        char cue[] = "select object ";6 |" B  i' M1 m2 O. |
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
5 g" c2 H, Q( U' m% c4 q  D; e0 N        char part_fspec [ MAX_FSPEC_SIZE+1 ];
& F- Z# Z5 Q- Q. R! f( f. w$ R        int  response;2 J3 `6 p/ v$ ]7 R- k& p8 s
        double cursor[3];
9 _- a- @5 v' b        tag_t part_tag;6 O+ x" j- O0 w# v- a  c+ g
        CString infro;" \- ^6 Z7 h, ~

. P: e5 o! H# h) o% v- K3 S( w        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );* S. A5 q- l, ^8 i/ {3 t& k
        if (response == UF_UI_OBJECT_SELECTED ||/ k# c% u) m( d: e, g
                response == UF_UI_OBJECT_SELECTED_BY_NAME)) N6 {4 F5 h& u! \, f
        {
  [, I1 s# ]. Z/ t$ C+ Z; K: c                UF_DISP_set_highlight(object,0);( T8 E( m; q. b' w' w+ u' ]4 x
                UF_MODL_update();* L4 w) v. i1 [, Y3 K4 \# u4 n) s
        }
5 O/ o4 U' {6 kstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)$ x5 @1 Y& _% v$ g$ m$ e: A
{  
& k0 @) A1 y, ^$ P        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};1 [1 g' q/ X) M2 y( R6 n
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
0 G( ]  R; O% J( C8 l3 {8 M0 X* V        {
6 ]9 U: |  _  @  e2 Z5 L+ `- S                return (UF_UI_SEL_SUCCESS);. \# ]& g; Z: ~" e# r
        }/ ?' e' e7 \7 x. ^4 c, u
        else
/ Q. e- n- S& U  _        {
, @5 S" C. b) w% T( X0 r                return (UF_UI_SEL_FAILURE);7 u7 X" G5 B3 F* a  j
        }7 M6 I( H. A" J- e  g& ^6 x$ m
}
1 Y5 H; {' H  ?
9 F7 n# p; x4 `: k' O
上海点团信息科技有限公司,承接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;
1 A% z) t/ g0 g9 DUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view+ G! K3 G$ {: w$ @) @" o: |% Z

9 ]# I5 z5 M: v! q
' J2 E4 G  i# DUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
( m4 W9 B2 Q2 B; u$ G, `% OUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
# L1 a1 \! x2 p, R: q; M* p! o0 @, Z2 `' i& L# \/ ?
————————————————————————————————————————) |# s( Z& `+ G
列子选择视图里的直线边缘
3 i2 K0 b* W; _' |& k# ^$ B8 i# q# F( T& o! K6 m
#include <uf_drf.h>
9 W* U2 q% t/ ^% j; ^0 n#include <uf_obj.h>
) r! j9 i- ^1 M  B7 e1 Y2 k" i2 i#include <uf_curve.h>
( Y: Z% a; G* _: K- s#include <uf_csys.h>, [' k: A  J& |& [! T8 `
#include <uf_modl.h>' o5 b$ M& g) i9 B3 w7 x
* F% b1 L3 b% G) e# x, W. i( R! ]
% ~$ x# A; m0 S3 ~
//设置选择的实体类型3 n& k9 o) R6 q9 [
static int init_proc( UF_UI_selection_p_t select, void *user_data )
. ]$ Y! ^" u) f, T0 C{
  `/ T- X1 A# G' A0 r0 ^  int  errorCode   = 0;
& ?" [# N3 h& W) w
+ J9 \$ y) w  P# ?$ O  int  num_triples = 1; //选择类型数量2 m% S# F4 F: j4 E! [
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
2 U0 t3 E+ ?$ e1 N  _) S5 J) d$ S3 V/ M# J. N4 D
/*
+ z9 S5 }' }% b( v1 Y+ O; bUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型+ m3 C; J+ o, m# w& ~' O
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的8 P4 y9 o; s; O# _
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
) z* u) U2 {$ \/ L" FUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定; `' I$ e. j- n0 U: B2 J: `4 [
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定* Z$ k% r6 L) U0 i* t
*/
- \! f8 C2 f" A7 F, t) A; O. a8 WerrorCode = UF_UI_set_sel_mask(select, . Y, x+ t+ G: C+ Q" \0 F# F
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
; X" o+ G* E* k                                                           num_triples, mask_triples);, g+ c, `) ]- U4 b% }+ N) p
if( errorCode == 0)1 S" B$ l% R9 b1 V2 _- R) J
{
* d( x5 G$ J& N5 K9 f& areturn UF_UI_SEL_SUCCESS;% h1 Y( U# i5 J
}. w1 K) ?8 o' h# \( R
else
# w; l# A, D5 I% K1 f1 g{
% \) ?4 A3 ]0 V+ O5 _& P% g# m return UF_UI_SEL_FAILURE;5 _7 Q; x$ ^4 @6 Z3 C" M6 U. {6 {' A0 \
}
: X$ b  C- ~6 I& V% @}
" a/ t: N' a& S7 V+ Y1 D" e( ~1 z( x5 @5 V$ K
  V" N$ w) @8 ~7 C+ d

% P) ^+ h5 Y1 x  /* TODO: Add your application code here */
. ?8 z* s# L. ^2 v& X9 o* z! M- c* _$ \# R( u' H
  char *message="梅雷提示!请选择视图边缘。";/ l/ e, `5 G. Q9 ], \. a
  char *title="梅雷-QQ1821117007";$ z$ t2 H9 X$ s: R0 Q
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
8 i9 x0 k& S' h4 C! i9 n8 J  /*8 n6 x+ ?/ Y( {( M% v' Y% }
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化& u& ^, |7 ~0 ?
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
: f+ N' @7 A4 ~/ x9 m   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分# R5 W5 W/ n. h/ v6 T1 U
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC9 U. {& l$ I* W8 ~: F5 L6 R
  */
( l- i% x, T2 ^) R8 n7 ^+ tint  response;
% ~7 w. j  h2 j9 ftag_t object_tag;
4 _: I) d  S9 N0 I2 _, N$ Ldouble  cursor[3]={0.0};
! U/ G; I- i! o7 B' V0 Otag_t view=NULL_TAG;: W1 ^5 o% m" U; |
7 J( n2 T' ~0 q! ]/ S; _% K
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁  L- s2 Q; T, Y) W/ F7 g" A
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)1 B' [) x. O8 ^' ?# H
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】8 [4 f. G) R" ?7 b6 b
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)4 ~3 \1 S3 f9 ]
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
( u- H# B3 H: ^' e! D: e2 tUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁% }1 M0 o: D8 h, H: u
! {+ |% }* q; {$ Z4 c; d6 q  g1 X

0 v) b1 K3 F  w& o5 [" @if (response==UF_UI_OBJECT_SELECTED) 2 V# O3 |4 _3 Y. ]3 _1 g  q+ U
{6 T$ O" ~3 s3 w  I. N: Z* D( O$ ~
  char view_name[132]="";& _- n. b; v: n
  UF_OBJ_ask_name(view, view_name); //获得视图名称: z& Z$ E. K" ^# p
  uc1601(view_name,1);
' O# E$ ^( f1 U6 l}
5 B2 K6 [3 D6 h  `, \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了