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

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

  [复制链接]

2016-12-12 12:22:04 4172 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……, w; D# |! E! X8 w
        tag_t object,view;( W9 `7 u! y. w# L+ T1 E+ n/ x
        char cue[] = "select object ";
5 v+ s& o1 l4 m( f# ~8 ^& h& M        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
, B- L2 F. q/ U# M; i        char part_fspec [ MAX_FSPEC_SIZE+1 ];/ C, `4 Y0 I0 @. W* I0 v& z/ h0 }
        int  response;
& p0 v/ H& Y( q1 i7 k/ s2 H        double cursor[3];
" p0 P* ^+ ^2 r4 ]        tag_t part_tag;: |, z& Y/ W/ w$ R. ^
        CString infro;1 L  k  c+ C" J

8 x- {9 `  {5 l& p% l- `        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );7 s+ c, q6 r/ E4 P
        if (response == UF_UI_OBJECT_SELECTED ||$ C( f5 g, O. R/ B
                response == UF_UI_OBJECT_SELECTED_BY_NAME)* }; u8 S  |5 N  t9 v/ z; ?
        {
* U/ y) p0 ]7 }7 A, D                UF_DISP_set_highlight(object,0);
5 |3 D2 r# A! y4 S4 e                UF_MODL_update();% y. P7 [/ f* g2 e8 w
        }
5 o* E8 U% B5 H" wstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
' n# G! V; P: {{  ) }) O9 `; l! {7 e) v6 |
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};* N, i) Z" T0 U9 ~
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
1 K3 ]! ^7 c2 v& u1 u5 D6 r3 h# O, ~        {  c& x+ r& `) p" s* o  s
                return (UF_UI_SEL_SUCCESS);
- ]# _) Y- m( T! G        }
4 \/ @, W2 O$ Y6 R1 A& s        else
% L2 X# Z" ^: d' }/ d; |        {% R5 A( J/ P: X0 o' {4 r% |
                return (UF_UI_SEL_FAILURE);
4 v% Y! R, y; n        }
8 [2 H& n; b" q% i0 _" ]0 z' Z}
4 K/ z6 m* O9 n0 f( }4 g: O9 A( [8 P! ?
上海点团信息科技有限公司,承接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;
; e& Q1 x0 T7 V# R6 L+ vUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
' |  X$ |* F2 R$ k8 z7 c
6 T; W& p4 e% F7 Z/ m2 e
3 h+ |: S, B8 W; v3 x+ z1 EUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象8 x  D& p- k, f8 M  I4 V' r- R
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
3 s" @0 N4 \  S0 y/ E! L7 ^  V: F
————————————————————————————————————————, `0 d$ C& ?# |  \
列子选择视图里的直线边缘
) p6 U# P0 l. x  A. {. r" u* e2 `. p( K' w; u
#include <uf_drf.h>7 m. \# k- c1 b' a1 ~& c- o8 q: ?- c
#include <uf_obj.h>' w$ f9 K& M) Z# C8 }# I5 Q  W, f$ o
#include <uf_curve.h>- H# ^: A# V9 n3 d
#include <uf_csys.h>4 ]2 M/ D: ]" X
#include <uf_modl.h>
& {* Q! w- f( g) D' t% e+ r) Y9 M% i. Z# A
* `3 [9 |0 {+ x) E, P2 I. \
//设置选择的实体类型4 f, ~7 H/ c1 d  B2 ]  h/ W2 _5 ^
static int init_proc( UF_UI_selection_p_t select, void *user_data )
7 r. C+ A  Z+ q+ l/ I& o6 j{
+ r7 d2 I/ t6 Q! @- ~  int  errorCode   = 0;
& _' |; o% B  A1 I6 h' f1 n5 Z0 X1 C- r+ d. k' o
  int  num_triples = 1; //选择类型数量
  T5 e5 \* l! Q1 q7 i  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
) ?) D6 n8 `. [* X" q
6 s6 e! }0 ?4 g; b3 [4 ]: u6 m/*3 D: W' V* ?- n1 Z& _$ H
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型! V, E/ X/ O4 w6 Y: p( ~' S* O: `
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的( T+ e' T9 J; y- D  V7 y& m
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定4 i( F0 M0 e2 s  X+ y* A% t/ e
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定6 K  z& j+ w9 o- C6 F' T
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
7 {( p) _$ g4 S% f& A# D*/
! C9 y. S, k' ?/ L" L! BerrorCode = UF_UI_set_sel_mask(select,
/ c3 _2 u9 x  Q; _# f8 L7 w, D                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
7 \/ m) Q2 w) `8 j) H6 S, ^& W                                                           num_triples, mask_triples);
' O. m" }& v- W6 Oif( errorCode == 0)
+ `" j' \  }  c8 L% r5 a{7 I' K4 P/ `8 v- ^+ M0 V+ G6 p
return UF_UI_SEL_SUCCESS;; f% c. Z" O  R0 B: D4 Q6 s9 z1 H
}0 ^5 M% X' G3 H5 q
else
9 @" Y' c$ ?. L. A$ a{# Q0 {  T. w5 R/ Z3 j- }6 e
return UF_UI_SEL_FAILURE;1 c, q5 \  m, I. u8 D# m
}
: f/ B5 S( w; |, p: Q: b0 v}" u( K& w$ I  v$ v% T+ n3 l

) E# j8 e5 F- b. z* V
4 w* C$ E  M* ]5 B: O( W0 q1 x+ {+ d, @1 T! s8 |1 }6 p' Z
  /* TODO: Add your application code here */
8 T8 }2 W- o* {/ R- F. `" f3 }$ ]* W% d  |7 ]+ V8 A( ?5 P& k
  char *message="梅雷提示!请选择视图边缘。";) ^# j8 q8 U4 K# D0 N% q
  char *title="梅雷-QQ1821117007";* @* Y7 L" W$ L
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围  z8 W/ D( k& ?2 H
  /*9 `" z  s6 x( w$ z) r/ y5 C
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
5 |  X% }% h% ?   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装( m! Y. P, h. s, n2 o, I' n
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
' ~4 }6 l7 R. _2 d   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC0 e3 F5 `4 n7 ]- P; E2 c; O4 J
  */9 m' ^/ }" [/ _% g
int  response;8 ?. G& T3 p! ^+ r' m2 l
tag_t object_tag;9 F( ^7 t" a5 F" S0 M+ {, a: ~. C
double  cursor[3]={0.0};
8 z: b* T! w  z0 }+ ?3 }# q% J9 qtag_t view=NULL_TAG;
1 {+ ], j$ m# c2 S2 z8 e! D
, h) }2 J& P/ J, v; \) F( NUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁  P0 X9 c5 p# h$ C9 I
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)3 j) T+ E0 O5 I: v3 y3 q
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】7 t" d6 S/ ]( Q) V6 s9 @" z1 D9 {
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)7 n" t4 l: c% l( F7 Q
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示3 e. D8 k# k1 ~9 C- w
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
& X# A- _3 R8 ~! [
2 R5 e0 j/ j. J! K9 J- M+ \8 Z2 M) }4 s) @* Q  k/ `/ N4 r3 `
if (response==UF_UI_OBJECT_SELECTED)
7 _9 V* z) l+ p8 d{
: E$ P: Y0 M3 g$ V% K  char view_name[132]="";( j" Z( E3 p( i' j9 G" w5 m$ \
  UF_OBJ_ask_name(view, view_name); //获得视图名称
# J' o: u, ?$ Q7 H( k  uc1601(view_name,1);
, P$ e4 |5 N0 i* w. U}% r8 h6 L  d7 U' t! S- @7 h4 |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了