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 3962 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……5 J8 j% V' c4 \% ]
        tag_t object,view;. g& Y: Q% L& Y' B: }$ ^8 D# F
        char cue[] = "select object ";
8 ]4 s' p( h0 W) f5 s' b& @5 ?; A        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
0 q. N# M5 d) _+ Q3 N6 u1 Z        char part_fspec [ MAX_FSPEC_SIZE+1 ];
! Z7 p' T  a2 x" h8 g        int  response;, l+ a! D% A6 g+ D% n" ^8 @
        double cursor[3];9 E1 N3 e# b% n8 V* C7 {6 a
        tag_t part_tag;
3 W8 C+ C, v" O& G- P        CString infro;
; d, V+ @: B! w) O7 l: V0 u8 Q; e" n
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );; G1 v. Z  j' S8 m+ \7 Y5 E
        if (response == UF_UI_OBJECT_SELECTED ||, p, z( M" f( i, w2 V( z
                response == UF_UI_OBJECT_SELECTED_BY_NAME)3 w9 l1 v) h) \  {* Z& a% m8 @
        {/ v) I1 m7 q3 |- r7 g. J
                UF_DISP_set_highlight(object,0);- k! i/ h7 D# s# Q$ e
                UF_MODL_update();* q5 _! X" d0 j  O0 |+ k; p* Y
        }
) m# E, Z( e/ m( v0 \$ a: `* Zstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
' q7 A+ r) T" i' [# G2 \{  
+ ?/ U' p2 c$ j        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
0 m! k* ]5 n9 H' A        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)6 A7 z5 t: o; L5 V/ l
        {
% }" {0 w0 \0 N+ a% o                return (UF_UI_SEL_SUCCESS);' ~$ G; x5 f2 b, q! {
        }( S9 P/ Y! p3 x" X6 W- Y# P
        else
* O( a: c+ C: b8 M' M        {$ r4 E: C/ Q5 V3 ]
                return (UF_UI_SEL_FAILURE);& I  C" P, H8 l$ }" W! c$ I: i
        }
! l3 l4 h& a4 z9 m}9 z2 T/ `- y/ E! ~4 l
* Q9 J, K( S) [, j" o. Y8 d
上海点团信息科技有限公司,承接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;
/ o: u; e3 ?; ]+ y& w; `$ k) r7 jUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view0 C% c0 [, ~4 M; _2 @
4 M; j9 t3 @1 F$ H( ]$ [2 u. ^
  }! g# h$ y, t9 n& g# Y" f: p: |1 Z) F
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象2 p' n! R0 E" I
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象" o/ v4 I) R5 Z& |# y1 l- l1 c

) p. g6 d$ y  L4 i, _1 V4 R————————————————————————————————————————  x1 e4 f; O7 Z( J. M8 v, Y* l
列子选择视图里的直线边缘
2 L& V! p9 |% I1 `  q1 E( ^$ L% C4 o, H* f$ H8 A
#include <uf_drf.h>4 F- o& G2 J6 M
#include <uf_obj.h>7 @* Q* D  G+ z' Z8 I8 o' k
#include <uf_curve.h>% p" P' u; a2 @" O8 L
#include <uf_csys.h>
, D; \, p/ L2 x4 ~9 R5 c4 v8 S2 E#include <uf_modl.h>3 I* M0 _* |6 X; P4 [3 S1 n) t3 ^3 A7 b
1 J3 l* A) F2 _# S7 _' L

+ r2 i% {+ L. l- X//设置选择的实体类型+ f  T% K. }1 ~" t7 i. V2 m- \/ p  V
static int init_proc( UF_UI_selection_p_t select, void *user_data )
& J0 {5 H# A! ]) A' V& m' W  F{
8 U9 t/ R) P0 j9 m) }* ^3 O! p7 y  int  errorCode   = 0;
' d  C8 G/ s5 m: ?- D, e8 c; U/ C" `/ k$ ?5 O6 Y' W
  int  num_triples = 1; //选择类型数量
+ A& k# d' S. V2 Y' _  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
8 d, X, w; Q1 N0 }% M; V* o. ?, l  ?4 e6 \" S- H  @" _9 e
/*
: J( O( b$ b9 DUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
0 M( a3 N& S1 [- u& vUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的' ~5 F8 Y, }2 I: `8 o
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
1 L; O% }+ n! dUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
$ S  u; W1 S! j# X& H9 fUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定% @& C+ }( O/ g% U
*/
" X: x% Y) q4 m, Q  ierrorCode = UF_UI_set_sel_mask(select,   v1 y8 j5 M& Z  l  I$ |) B( k
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,3 g0 E/ x3 ?2 u: j
                                                           num_triples, mask_triples);
1 u; ^+ n4 y6 P% v; y' [7 Gif( errorCode == 0)
- I8 P+ N$ x3 t( b{
5 {9 v9 ^# g1 _return UF_UI_SEL_SUCCESS;
6 m* g( H; i3 C9 v' M0 L2 ~}
/ u$ _$ u( O8 J4 W else5 v! n: N  v" B, Z9 w8 e
{
+ N, P( M3 i% k! m; C7 X( n return UF_UI_SEL_FAILURE;
, f  M, o, d' {$ u}9 \& i, I/ d8 Q+ U8 ]
}
/ B/ h  g9 b% B/ K8 r* a+ {( |; i  m% Y$ J7 k7 a( G$ _
) J! {; M5 P/ \% i9 y3 L; {. U

! k; o/ @( s& {  /* TODO: Add your application code here */
9 ]- a2 k, o, U- {# h: g
7 f5 R1 f$ G7 X4 j4 B+ w  char *message="梅雷提示!请选择视图边缘。";, o; e$ n2 u3 i1 D
  char *title="梅雷-QQ1821117007";- N5 l& G2 c0 o" m( s# [" W( |5 b
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
- j' n7 f! ?$ S) Y8 W& S2 g  /*) ], W% ]( y3 [( s, A
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
' Y7 [* \, [9 _. M5 X$ n- O$ _   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装" W6 S2 C+ M7 b5 X$ Q0 s7 Y: o
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
+ o1 Y- L. o( S. @   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC2 f; r/ j9 w9 Q) a* G0 p
  */
7 d3 r; N9 j  @# x4 U+ M( f9 Y$ P# Jint  response;
( i/ q3 j) G; f  s' C* w8 Rtag_t object_tag;
2 j& a, J* p' T% t; vdouble  cursor[3]={0.0};; J8 e/ ?4 E* h" H/ i6 r4 c
tag_t view=NULL_TAG;
$ U; x- Z6 L  I3 V3 [8 j1 Z
3 \/ C( _6 o' J, p# x+ e7 p" K/ kUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁& Z; g( X- ^+ z5 C
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
' s7 A3 Q' |: l: q5 XUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
7 t: D- g4 K- V  ^8 m9 Z2 FUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)+ |- I0 s' b1 t+ `3 t1 o
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示( }- e. q8 G/ O6 A) T2 ]$ b5 K
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
, |( E1 I, X  C* ?- Z
, Z, w; m; y* D0 c3 a$ R: ^; V' e( D0 }
if (response==UF_UI_OBJECT_SELECTED)
1 z5 c& `  Z4 o' F4 x% u9 n{
' u9 U# I9 T/ a- p" ]7 _  char view_name[132]="";
6 t) H1 L1 W5 e4 F" G  UF_OBJ_ask_name(view, view_name); //获得视图名称" u' r9 @  ^- d+ v8 s- L! e! p
  uc1601(view_name,1);
  U! X/ f5 b; ?" s8 T+ c- f# }}
& h% D: o: E. v& l8 w9 N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了