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

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

  [复制链接]

2016-12-12 12:22:04 4173 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
; o& T' P! q- E9 U! i( a: f        tag_t object,view;! }, C; v4 T5 F: `$ L1 ?
        char cue[] = "select object ";$ Q; }! {3 P( B  P$ r
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART$ m8 g$ w1 l; Y( ]: ^" P
        char part_fspec [ MAX_FSPEC_SIZE+1 ];  E6 y% q% g! {3 y; y  y7 L0 E$ n
        int  response;, |/ o, {& X3 l7 H' u
        double cursor[3];- i2 l% [/ Q2 T* z6 x! N
        tag_t part_tag;# N/ b7 o/ S5 q& v8 R' D
        CString infro;' p6 Y4 `2 L$ G( ?7 d
3 {1 m" i5 b! W% f' v# E
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
& q$ g5 k  R8 r/ _9 h) N: @" r% D        if (response == UF_UI_OBJECT_SELECTED ||
6 V, ?3 f& k' d, a                response == UF_UI_OBJECT_SELECTED_BY_NAME)
% E+ R1 D% @  j6 K. f5 n        {
2 Y/ |# N+ {* x, X7 y* x                UF_DISP_set_highlight(object,0);
5 k; A7 k  o* \$ {2 w5 _                UF_MODL_update();
: C6 o0 C# a* `4 m7 o" }0 k        }8 O4 b9 H! {4 f, S3 ]
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)& ?5 V" b7 J; M: c" u
{  
& |% k# e4 _% h+ b$ M        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};! C. Q1 c! \- J  ^0 P
        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0): `* D$ @7 Q; y, G8 t& ]
        {
9 l3 N' Z7 j& `" V3 I/ N3 G* ]( {                return (UF_UI_SEL_SUCCESS);% t# r9 D+ K# Y
        }
* N. V" U! n/ i  L, _6 O9 _+ \. n        else
7 d" m# x  I* G" `& }        {% o" G4 S6 `. g: d  p+ A6 }2 W
                return (UF_UI_SEL_FAILURE);. V8 r8 y7 K7 @3 N% @* a5 H+ ^% W
        }
+ E* P) P& P& g" f5 w* V/ a}
; ^  U: w' n) ]6 l3 i( t+ {6 y+ t' F5 c
上海点团信息科技有限公司,承接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;
# w3 K. r3 ~4 V: l1 P8 `( xUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
8 [; i9 `: C/ u, w, L" x: H3 F) G, W* b
* W" S9 ^# c! E+ _/ A2 Z
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象0 F9 S  T) ?5 I0 ?6 O  ~% w+ ^
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象2 a$ Y: j/ o9 b* F5 k
% {0 K3 j  _. {0 c9 R6 a
————————————————————————————————————————9 Q2 n$ H5 D5 y: w2 n
列子选择视图里的直线边缘6 m" Q- R2 d% X, u0 Z) l; Z5 ]  F
% g( }2 X! @5 V2 K
#include <uf_drf.h>( B0 s, _5 S& }* t
#include <uf_obj.h>1 ~/ D2 m8 y! p
#include <uf_curve.h>: w) A" s8 v, l
#include <uf_csys.h>: d) G1 W* e4 u6 f" E$ A
#include <uf_modl.h>: k/ z5 o7 ~0 ~( n' l. [  W

7 X+ A8 g4 f' ?6 N$ E
8 g5 U, s$ g+ i0 F: r, s//设置选择的实体类型8 Y) g/ `$ \6 e) k+ O4 j3 e
static int init_proc( UF_UI_selection_p_t select, void *user_data )/ x/ s$ ^2 H6 G+ I
{
0 y5 C. M# g- ^5 l1 G; K, _  int  errorCode   = 0;
9 I1 Q6 C8 G5 }( O- K
( ~2 A$ X) Z# d/ Z  int  num_triples = 1; //选择类型数量1 E- Z& A" y) R1 W# q0 L
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
7 x4 o& ^' g; i# }1 ?! N
% G, n. A# t6 U; d: Z/*
) V# E* L4 V9 P! B" m: x$ JUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
6 z* h1 Z5 C* T- |% s* gUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的8 @4 S! Q+ H  c+ C2 \: Z+ x
UF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
" B$ Y% l7 W7 O. q# cUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定
9 A, b8 c, s7 r" z% nUF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定& i1 t6 J% Y" g
*/
8 K9 Q( L8 ]* j; ~$ t( rerrorCode = UF_UI_set_sel_mask(select,
8 j. [7 G% f8 N: R                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,0 j. D. i0 O. |) M4 j) F/ f  C
                                                           num_triples, mask_triples);
- D- M) i0 d' B- N7 o, Q; i5 J& rif( errorCode == 0)
, U1 |& D" f1 b3 Z, I{
  |0 Q, L. Y3 U' S3 B5 C, ?return UF_UI_SEL_SUCCESS;1 b3 P) _0 i. Y$ z% X
}
0 _8 t2 I9 s8 U' x; X) v else+ j- M' ]$ ]# U0 `: ~# ?; r
{
* y$ |4 N4 J+ ^* C8 W: t return UF_UI_SEL_FAILURE;# n, N1 F3 B, W- R! U
}
$ [$ ?) P5 w9 t# j% r# @}
; E1 k7 V. W( Q7 Z3 {
" P7 z) }  A7 B& {0 E
8 [5 x2 ]$ L. C3 M+ a& ?* {3 j# O0 w. ?" h; C, [- z
  /* TODO: Add your application code here */# z- n# A: x) m7 p5 G6 W$ _; F
* E8 {) i* L' E  Q
  char *message="梅雷提示!请选择视图边缘。";
  o% T1 z- O' `, ]- T+ ^  char *title="梅雷-QQ1821117007";
5 [2 R3 M. T" Y  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围& h/ l1 C- \' m
  /*
: k* p9 {. ~1 ?8 k1 H! h   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化: P7 v7 y4 ]0 S( i3 g7 M4 H
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
+ G! G' \3 Z6 D7 g; p$ `! X2 n   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分9 H6 @4 m0 Z' e+ k* T8 p
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
6 c" u( W! r7 X- s% c  */0 L; X; j& y: N( `* p  S
int  response;
' U( A5 L2 V. H; @; }  l$ C: e+ s6 itag_t object_tag;. A# Y& `/ X4 j- A/ V; w5 K
double  cursor[3]={0.0};! a" E4 J0 y8 N0 c  }* z
tag_t view=NULL_TAG;
+ z1 R2 W3 {8 H7 }0 M
- M  x6 U) R9 L) [* O# J$ U& |UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
0 C, d, |; Z  B/ [" X; eUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)) r0 M8 e5 F( A8 n( ?+ g* M: P; y
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
' f* t$ p( G' }9 A5 OUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)$ o1 @; r" L1 x' k/ @: m
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示+ U5 C7 d3 P' F7 b7 u2 l
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁- g9 f  Z1 }1 F2 n9 d- D6 O
1 a: U! P0 M' S8 D& Y" }: E& `$ ?

! k& }* V8 h" z( pif (response==UF_UI_OBJECT_SELECTED) : }' o$ l& D/ _+ m; n
{# N0 u3 t, t. Y4 Q; ~( f
  char view_name[132]="";
) f4 u- q( J8 w; Z  UF_OBJ_ask_name(view, view_name); //获得视图名称
+ Z$ `. ^; N: ^- p, g. Q  uc1601(view_name,1);
7 M/ m8 E+ b- z; A. O5 s}
! a+ @: L- U3 B1 X3 y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了