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

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

  [复制链接]

2016-12-12 12:22:04 4008 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……. J# _- J: ~* p3 X& H0 a
        tag_t object,view;
. D* l7 e3 ~) }9 p0 z+ e1 F        char cue[] = "select object ";- h7 b# v2 C: }+ w+ u( u
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
, D+ t, k. ~( O9 t; I! ~        char part_fspec [ MAX_FSPEC_SIZE+1 ];
2 Q$ T2 y' Q& j& }" w9 i        int  response;
' i# d% ]. E* b9 T% Q4 C        double cursor[3];* g- E* T% P, @% |* ~
        tag_t part_tag;5 y. d6 G) ^, A' c! O" z
        CString infro;
! P* b7 y3 d6 }$ k. r3 Q
) F: N/ G& `6 i( l9 Q9 D        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );+ c+ v5 p; l, `4 I! ?- ~* u
        if (response == UF_UI_OBJECT_SELECTED ||) E. ?  E' o. a/ K8 m1 p0 p% H
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
0 v8 L; `, ?4 P  F. i: W* k3 X        {
) p6 W! L! B0 f2 h                UF_DISP_set_highlight(object,0);
' D' A  ^1 l4 |1 E4 n2 m                UF_MODL_update();
+ I" E: d* l# I2 L        }
. _9 M' s! f$ ^8 fstatic int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data); f' Q4 H* i& U* Z7 B# D9 r
{  
0 t3 u/ g1 l  {) N/ v# C        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
1 J4 _1 B# s& `6 ^. D/ x1 b        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0), q0 ~7 Q" F" U
        {
' ?2 g/ ?, ?; k9 W. u% o                return (UF_UI_SEL_SUCCESS);
; j' P$ j: b- |: H6 m8 n        }/ g: C% s% r$ s2 B
        else3 d4 Q! i0 V# S. y; k2 `3 J& J
        {
& a# f" _9 G4 K7 d' O0 I' o2 @; d                return (UF_UI_SEL_FAILURE);
- L, N! t7 E0 K6 I  r        }$ _+ g2 I" Z! |4 r  _5 P
}
- S( R# P( T4 D, ^$ m, |
1 i7 X4 C8 _4 o2 t5 K
上海点团信息科技有限公司,承接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;7 y% o1 k8 F) j0 L9 a
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
3 G; G- |, D6 L3 ^! s" Y3 @% W
3 A5 O% J, f; g) C7 \2 h* o
9 s# N& S+ ^7 z( v& wUF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象) s4 X7 z& G* W) M- X/ L0 L
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
( n- e/ k8 S3 ]1 {
, x5 h  r0 G7 X————————————————————————————————————————
0 m1 J6 ^) b$ g& g/ a* M8 m列子选择视图里的直线边缘
" u3 q) w: E, f+ O& a
- J8 [* H: m# ]#include <uf_drf.h>
5 A  K2 S9 F" ?0 d9 o: C6 l! z#include <uf_obj.h>
! ^' R) [+ }* z- A- t/ f# n#include <uf_curve.h>
. j4 M8 p9 {, W( W% ~9 s& P#include <uf_csys.h>
7 k5 l# Q3 p- p  F2 c  X, W#include <uf_modl.h>, C) C' b+ Q2 ]

  ~6 q- ~/ e8 s# I; j3 H: E% p& t/ k
//设置选择的实体类型+ Z0 ]0 n9 S8 s- F! H% Q
static int init_proc( UF_UI_selection_p_t select, void *user_data ); ^! k4 e: h, ?) b
{& @' l! @6 K" S# E7 t' b
  int  errorCode   = 0;
4 P2 T1 v2 u+ c- k
; g7 b) U3 E2 d5 [8 y& V7 D  int  num_triples = 1; //选择类型数量9 l5 m1 }/ Y$ [) S3 a8 _! ?# t) `$ |
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型( J* T" m9 ?+ Q5 ]
7 V% q. \( A! i; \9 k$ Z2 T$ A; e
/*# B% a/ c0 D* r# H
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
7 r3 ]8 [% g/ U. b1 Y/ DUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的; Y. }' k9 i9 v7 t8 P/ C+ {
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
* ^8 Q& B% N+ I) uUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
9 D  z  i& Q; ?UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定
' ~; n5 |$ E* s# y! c& R7 a*/
" g2 t& k# q& DerrorCode = UF_UI_set_sel_mask(select,   ]9 ?% K$ f# A; D4 f4 k- C
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,' L; V. |7 U5 A2 f7 ?( m
                                                           num_triples, mask_triples);: I+ Z& K5 e+ [/ E! Q
if( errorCode == 0)
4 _. Y8 K% Z7 O4 G. ^{! m7 n( _; f; _- G8 y6 `; T
return UF_UI_SEL_SUCCESS;% n4 k* A1 n) Y4 F; f) O# ]
}
; }8 G& E" s4 t: Z8 S  N$ p else
1 P- [# \) g; D+ U8 X- M$ I{  r. ~" v$ d1 ~$ T  b; O  t8 E1 Q
return UF_UI_SEL_FAILURE;
+ m* r8 _% {) d* _. F3 i}
; a6 l2 G8 @4 D0 p, W7 q; @7 A}) ~" {5 d* Q7 f" _" H
( E. F7 r/ S4 Y! a
3 a& u* C- O3 b( F5 x  X- V

5 p' u9 G# Z" c2 n( @& g. d% {  /* TODO: Add your application code here */% ]# a, ^) K! q4 n, a1 c4 {

/ o5 k0 R" n* n1 t- D  B  char *message="梅雷提示!请选择视图边缘。";
8 D, @& H. d! q2 m9 p! g$ G  char *title="梅雷-QQ1821117007";
) f2 p# M3 g" V  C9 @8 m$ h# S' u  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围  V; M# A# P5 `: r1 {" g$ r
  /*6 C: @' r9 E1 r  }% y5 j
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化' r  y! L5 ^5 P4 j/ E
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
, b* b7 F$ y9 Y0 L3 Y+ ?   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
* [, x5 o2 I  H* ~: m. m! Z* O   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC8 ?8 Y; a# f2 r) u* S  F
  */
7 v; Z  z: _: x: Jint  response;/ H. {' x/ k" `) O
tag_t object_tag;
" P4 j1 e, I/ m; K% b. h4 n- @% bdouble  cursor[3]={0.0};5 ^: L; E2 w9 D9 w" k- n: \7 ~
tag_t view=NULL_TAG;5 j. P5 C8 I/ ^( @/ F& `
, ]: j  g6 ~8 {5 Z2 M+ T+ {
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
) ?3 s' K& V3 VUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)- a  q( e' S( z7 ?( Y5 k, k5 d
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
/ K1 u3 @" F' {6 hUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)2 S# w( I# J, [! f
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
  `* ?* J. v# V9 z  gUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁1 w6 n5 @& k7 Y) C7 Z" O7 ^4 p1 s& |( }
3 d- |& m8 v2 f. v- L8 t- E
/ H0 S+ e- }1 N& H
if (response==UF_UI_OBJECT_SELECTED)
) s$ `: K) W% O5 O; d: E* s+ r{
1 Z, d- c' Y6 G1 v  char view_name[132]="";
1 v) }4 c; P  ~, q) u4 c  UF_OBJ_ask_name(view, view_name); //获得视图名称7 x$ r+ k6 @; y' S' K
  uc1601(view_name,1);
6 m* e3 H/ G  o7 S% H3 K$ ?}
2 F; q; Y8 b7 d8 G5 W7 K4 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了