PLM之家PLMHome-国产软件践行者

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

  [复制链接]

2016-12-12 12:22:04 4080 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 I' o! a2 X# k* x! J        tag_t object,view;
$ S7 D7 ~4 d1 r& G, `5 s        char cue[] = "select object ";
7 {- d0 M8 B0 i        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART+ V9 S& D: l; I' `; S; }% K( k
        char part_fspec [ MAX_FSPEC_SIZE+1 ];5 z( T/ W9 T, r; I( m
        int  response;
; V/ G3 f- q/ C* B& g& Q        double cursor[3];8 R: ?+ [' }1 f- s. A! {3 L* i3 _
        tag_t part_tag;& D. F1 }! r2 r/ b0 ^5 j- U# Z4 a, _
        CString infro;
& ~5 U$ J+ I) l
9 j6 R. \  l$ k' \/ V' g; s/ i        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
7 F9 F$ U4 P. B0 {6 K3 ]9 b        if (response == UF_UI_OBJECT_SELECTED ||
8 h2 [; ]4 g, S2 l9 g                response == UF_UI_OBJECT_SELECTED_BY_NAME)
" M5 r! w) L  ~$ R5 o+ N( Z        {  P' q* w3 ?5 e9 X" R+ O" x
                UF_DISP_set_highlight(object,0);1 k; T6 |+ I4 b# _8 D
                UF_MODL_update();
. ^% t5 m* ?- Z8 @  L0 a: Y2 c        }
; h$ F3 v. g, D6 o( M2 Ostatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)$ Y, d8 v5 b5 g* [# J9 i3 A6 e$ Q4 d
{  
- v4 K; V' O: D! G5 z( Q        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
3 M. [* Y# U$ k# y$ ]! Z        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
$ s' b. p. L) ^8 ]) v# x        {
$ v- I2 q8 b( F/ K. R) x                return (UF_UI_SEL_SUCCESS);# y/ V" \3 F2 E! J. {* o6 q
        }
# t! }4 A( S3 Y5 y/ c' H4 v7 E        else
% _2 v* a3 Y$ e. }; N        {
4 a5 _8 b; R7 ]9 Q2 C3 i* [                return (UF_UI_SEL_FAILURE);
- n6 K$ l* q2 A& O+ |# ^        }
3 }7 `; c" d# T/ M4 x# @) V. V* C6 ~}9 ~9 |$ @( V" M8 R2 j
1 v% h' T- k. m
上海点团信息科技有限公司,承接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;! H4 F" {2 V1 W: c: q" g) h% h" ]
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
  k8 R/ x+ o2 M3 v, W- B
+ e& D/ W) r6 A& `* n: F8 B) k* z5 B  u" u$ l% V- d+ B9 F/ `7 d( I, `
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象4 U. \6 }, P  W0 n; L
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象+ B4 Z: N% m; y" t' }) G3 j

" K' N  d" \/ H9 r* M/ ?————————————————————————————————————————: \, O( H, d3 {3 h
列子选择视图里的直线边缘( T/ i  t4 e$ O2 R; i

0 C- Q) G8 E( w2 P9 E/ W#include <uf_drf.h>( Z  A' C# G# N$ ?
#include <uf_obj.h>
8 C2 N+ X# Z! C- f5 |" w! {#include <uf_curve.h>
( _* o6 f. b+ w#include <uf_csys.h>
1 |1 @" S* ]/ ?" X6 u#include <uf_modl.h>
/ g# l/ ?6 m; ]1 s- s) l5 E4 O; O
5 j9 x. ]+ V* `+ U( r+ G2 G9 j$ a- R' }, {1 y
//设置选择的实体类型
, Y6 K3 `; ^, F) pstatic int init_proc( UF_UI_selection_p_t select, void *user_data )* f1 g7 F+ N& T
{
$ A0 I& j. R0 `3 c6 s  int  errorCode   = 0;
: W. S: \, l+ u: n# A$ N  |
  |, e. r$ N& j7 W* f  int  num_triples = 1; //选择类型数量
0 }- C  O% @, \* v. ]( l) |" g  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型# o2 @0 A0 K( O2 W% N) z
4 `6 O2 p! Y# T1 z* ^  j4 i- g
/*
7 I6 {1 E7 P( F: WUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
& L+ ^; }( t+ m2 N) ~UF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的9 ?/ ?3 v! `+ I6 i: ^
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定! C; w9 f% T4 e- {9 @
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定- Q) Q, W, D2 H& a# r9 ~, E; a3 g
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
2 K: i4 Q! T) j6 u4 s*/6 d' {5 u9 p! G% W3 ^! S8 N
errorCode = UF_UI_set_sel_mask(select, 5 d+ ~# z2 q+ Y* {
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,2 f/ M* `1 _3 n
                                                           num_triples, mask_triples);& Y2 [1 `. C2 i: s6 B
if( errorCode == 0)" G7 _; @; s5 Y, K$ X
{$ ]9 H' v, ]$ q4 S. C0 b
return UF_UI_SEL_SUCCESS;  {" N! }+ K; X. |- B" T
}
/ b4 E" b8 D+ V* L else! t4 X1 f/ X' p# U; y/ d8 r
{
# q0 Q2 E# R! E4 r' W- z return UF_UI_SEL_FAILURE;; R* T: T$ I0 i5 Q4 Y* J
}, [" Z( @2 G: T5 Y% V$ V  Y
}; {( i2 n* [7 D0 M) t

/ P# x* V  c( _. b# h7 ~
$ ~, B9 u% ~( u' |# M  `9 ^' X6 l) f/ [2 |, T& b
  /* TODO: Add your application code here */2 z+ ^. y4 t8 Q0 I
5 @0 M+ I- v8 P1 O
  char *message="梅雷提示!请选择视图边缘。";
! P+ a$ x  N  V9 G0 A- I  char *title="梅雷-QQ1821117007";
3 `* e) I5 [: i9 l$ j8 T+ ^8 }# E3 y4 u  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
( R5 J, X% h: d! L/ u  /*! x4 A. ~9 C7 |. B3 j" D
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化
; D- ?4 b. d( ^: O   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装. I8 h$ s% U3 U" ^- G, Y
   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分" t! T; r5 C# Q7 K
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
3 v4 |$ }! |6 y4 O: J6 {( o  */
# ^! F9 `" j" Z2 s6 Fint  response;
$ h0 k) [& a6 @7 y( Jtag_t object_tag;
, S4 x* f3 A# \% cdouble  cursor[3]={0.0};
5 D' P* a' [) a6 A% ztag_t view=NULL_TAG;
' ^' B. w/ Z4 [" p: D7 G) p/ S' B
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
7 M- }/ d8 u, Q4 KUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
+ d! h7 T5 ~8 J+ W' X8 C* UUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
6 u2 |7 g; _  QUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
6 d, Z1 ]% m" |$ D2 I+ t; NUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
) _- D3 j8 N: P* s2 lUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁5 Z" L* |# z8 g, @" Q* s& H

6 n) l! {7 c& k
) e0 I+ g. Y8 O8 w2 sif (response==UF_UI_OBJECT_SELECTED) 7 d2 ^$ N3 }# j& |  Y. f& d$ Q) a
{
( V5 E, ^4 j" z# w  char view_name[132]="";
  ^1 _1 S" ]5 G/ Z  UF_OBJ_ask_name(view, view_name); //获得视图名称
& W  O9 `; v! }/ }( H  uc1601(view_name,1);
4 }: D/ I! C; b; e* U0 e$ E1 B$ N& |}" s  f9 M2 N! a( M# m& f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了