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 3897 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
6 R# X) m  m* d3 `        tag_t object,view;
# G* S3 D& `/ D& A        char cue[] = "select object ";
$ j* @$ h$ h# q" q) C        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART' b/ K- }0 T2 ^+ F* ]
        char part_fspec [ MAX_FSPEC_SIZE+1 ];9 _( }4 g3 P3 K
        int  response;. ^6 s" h  B7 b7 ]' `, u
        double cursor[3];2 G; }0 v5 Z2 R# Z
        tag_t part_tag;- V; _' t8 C/ M) U9 k( f: ]
        CString infro;1 P3 R4 i2 m+ s7 Z- K0 @
. C% J) p, F2 g! O
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
& h6 o7 t; t1 P2 g8 `3 E        if (response == UF_UI_OBJECT_SELECTED ||' s; j; D% b  ?- U4 b
                response == UF_UI_OBJECT_SELECTED_BY_NAME): c: O( }: Q" t
        {
2 b( \6 ^" u% U/ t5 ^7 m" k                UF_DISP_set_highlight(object,0);
! B& R) A5 v& G9 N9 V                UF_MODL_update();
, ?9 U/ r! E, L. Z$ x        }
  f& Y: M3 g8 K+ @static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)4 y% J8 H$ a, p* B. c9 w
{  
% _* k* E1 B2 N# f+ g/ H. p        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};! S! M. Q4 u4 \, g
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
5 v  e; N3 n- m        {
% z* A' Z  n, u- O& S                return (UF_UI_SEL_SUCCESS);
) g, J0 p3 f3 W        }
1 S' u& V" f( W        else
+ k, I- V' A; ]) u% q  {        {( ^' c5 ^7 a8 c) `
                return (UF_UI_SEL_FAILURE);
5 J! X* i  S) c2 S5 c        }0 O0 a! P0 k( _( @  k( i( s3 K
}
* K& e. `% c" W/ q& Z- z* T7 M; C% z  r
上海点团信息科技有限公司,承接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;! b7 u% m" x, ?+ C2 F+ u+ _* n* O" D: c' B
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view8 G9 e: M5 b7 F' N3 I' M

. I  P: W, y; _, t6 U9 M/ A( P3 _9 w+ i; u9 w+ W& e
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象6 d- `1 y# z0 d. ~! K, ?0 |
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象5 j' `4 G0 O$ L+ h

' t- r0 C3 N0 M6 u————————————————————————————————————————# F  O- C0 X- L" {
列子选择视图里的直线边缘
+ D9 q8 y2 U9 `; K5 ~4 g" z  f, W" ?
#include <uf_drf.h>
! g6 w& Y" B) k  R$ m# E#include <uf_obj.h># X) q3 H! o0 B) e; t9 ]8 K
#include <uf_curve.h>
6 c, Q5 ^% f* j# W. f#include <uf_csys.h>
: w* \. m  t) m+ [+ o+ D7 R#include <uf_modl.h>
; M' O$ |/ B' c6 u
$ W! l3 f) `6 o4 ^; ]  J- u8 ~% K
  W1 h( Y" Q' c0 ]//设置选择的实体类型
7 x* g$ V+ z" E' F- ^, Z7 M' vstatic int init_proc( UF_UI_selection_p_t select, void *user_data )! X6 t3 R9 b8 u5 `& e2 M: \
{
) z$ Z1 u+ f' V$ f# Z  int  errorCode   = 0;/ q' u" G4 |( F+ U6 \
0 j9 K/ g# b9 C, x3 E2 p. Z
  int  num_triples = 1; //选择类型数量
+ d  o2 B4 ~( a' \2 B, i  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
; r: J, g9 x! Q0 a6 x# U. K8 O4 w: `% n
/*
# S# o) H0 g/ @* a2 CUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型/ k7 R6 h8 G: z7 b3 d8 s4 S
UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的# N8 a. V; e7 H0 a; i- M8 @
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
6 |1 d8 o1 V4 k0 l! O; aUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
; X, e7 ]" _5 b. ~+ MUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
' D. r" S- _7 ^*/
4 h7 H9 f8 p" e# U0 W7 g3 u$ h0 \errorCode = UF_UI_set_sel_mask(select,
' e0 a0 `5 N; b7 X9 T8 I                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,, R7 o) V& b4 e% A2 X
                                                           num_triples, mask_triples);: v1 }: C3 j& o% \" P- N3 P5 ^' q( K
if( errorCode == 0)" T5 H, p% j% e& d& p" \: e, y. ]
{
) J: U. }2 U6 B6 q" Q, |' @% k- wreturn UF_UI_SEL_SUCCESS;: W0 V! ]' \: G' {3 Z5 D
}
+ ^. F2 [" }& \ else
7 f, w  z8 h5 s' k, m- ^( C{( A% G# l9 m  e" _6 B: p
return UF_UI_SEL_FAILURE;+ m6 ]3 `2 P4 j: U* `) [" N
}
$ v( P4 ?  w/ ~- e& a3 Z" ]  ~}* e( t+ [8 M( s, \2 |4 H

. `0 ], z9 D) e" s2 Y) R  f7 k
# _! E: U1 \! {& L* ]. M" `+ }& P/ l. \4 N4 z2 a
  /* TODO: Add your application code here */( P- D& ?! L- P8 M1 u

4 l" _7 y- W; h, `, ^. F  char *message="梅雷提示!请选择视图边缘。";
" `5 G$ O' ]! A  char *title="梅雷-QQ1821117007";
& u  G, K  h, D. ^9 P2 J. P  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围* f# @4 a! l3 t" C  M9 f
  /*2 ]; r( k2 t( I) [: T3 l
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化8 y7 l$ I, z/ o% I8 y* p
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
5 B& I& n  Y8 q; |. m  ~   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分! k4 N3 G: c8 l( {* m7 Z
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
5 U0 u4 D' c% Q( O. y! Z' ]  *// h; m2 \* I. e0 q( G8 [
int  response;6 ]" x6 `$ [9 h4 \6 q
tag_t object_tag;! y+ U) J1 C- A; _! r
double  cursor[3]={0.0};% M8 B3 P% M4 R6 q
tag_t view=NULL_TAG;
4 N/ t/ g8 d1 z: E' k% ^( e4 ~9 v- ^
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁0 z3 S& K7 [; Q' k/ u/ w
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
6 r" x. w$ a% K7 [6 s, K- A7 kUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】1 E% H. R! N0 v2 G
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
. ^0 B1 L4 l! i* g  N2 G( @UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
4 H; w; A$ |5 `$ h% kUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
- \" Z1 p+ w; o6 K: F! r' Z# }9 s; t# n; g8 `' G

: x" d- v% ?, |* r2 r! n* Jif (response==UF_UI_OBJECT_SELECTED) 1 i8 P, C2 N( h. u5 A3 O0 X, W
{7 }  W$ S( u3 e7 ?1 B
  char view_name[132]="";+ P3 }  {* z; R
  UF_OBJ_ask_name(view, view_name); //获得视图名称. n- e! B' y/ Y
  uc1601(view_name,1);! x) _4 B6 y9 y: |& ?/ Z, L! ]: X  K
}
7 A/ Z  q2 @2 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了