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

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

  [复制链接]

2016-12-12 12:22:04 4085 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
9 Z5 E/ K& B0 v6 [) z        tag_t object,view;
, V+ }" n; F. |, [- b0 ]8 k4 n6 s+ r        char cue[] = "select object ";! J0 W5 s5 M4 }1 T
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART
/ G' U3 d, g) k3 {9 Z# F4 L        char part_fspec [ MAX_FSPEC_SIZE+1 ];
7 Q9 u; B$ b* t  S- J        int  response;' Q- ]8 }( Z2 p3 R
        double cursor[3];8 c; m* H+ _' ?+ n  X
        tag_t part_tag;/ x, s, O# l8 j/ x' N' v# k
        CString infro;) K; G' j8 M" c4 f" g

# m+ O9 J7 v# Z! r$ n& x9 L9 F% }* n        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
! d  J$ k: d/ m/ V9 C        if (response == UF_UI_OBJECT_SELECTED ||$ q  q# U4 s/ S  O! b) J) j
                response == UF_UI_OBJECT_SELECTED_BY_NAME)7 _. V0 c& ?. F# E- {/ i8 R
        {
+ a  K( ~" u& C* v                UF_DISP_set_highlight(object,0);
5 g, ]8 w/ c, G2 _- h6 R8 s$ O                UF_MODL_update();& P" L6 z  Z2 d9 m3 V4 F/ c: K
        }% [0 {# t9 A% d
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)6 Q8 \, f8 h& ~
{  
+ G5 T3 c  i6 C        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
4 e3 P1 T6 I6 l: P" {( n: J* j        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)2 U( x% W: v( t& W2 w$ H) L
        {0 }( i3 C" O, `" v' }8 V1 o
                return (UF_UI_SEL_SUCCESS);
) H( d; I6 ]$ Q) I        }7 F( `0 b- d5 I
        else, X8 r( s# A4 s. f/ f4 g
        {
, z& ~9 }( j. ^                return (UF_UI_SEL_FAILURE);% L$ A  ^5 u6 c4 ?: Q7 c5 [
        }, t3 Z& d1 y1 p! |
}- [2 N9 k& K* |2 j: k
$ k% g3 j1 Z0 z2 t
上海点团信息科技有限公司,承接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;
1 W9 C: W. }" N4 V3 X: U; W/ LUF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view' J7 y. z& i% [, }9 p& Q, z

+ m4 p. G' A/ V8 q
/ X0 M  R) x$ k. U/ B+ @UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象! o5 \% h2 R5 ]! q. ~9 e
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
1 w9 Q9 ~5 M5 f
' ]  M! U6 h+ I  ]; c: J! W2 N————————————————————————————————————————
( @' Y, v1 {# a+ V, S3 F列子选择视图里的直线边缘
' R/ j# {6 A: n' D0 t
! i+ x: y+ g5 R$ V( ]* K$ a#include <uf_drf.h>4 l) {. _$ X, y  A+ k6 o
#include <uf_obj.h>* _7 e* O" t  W& `$ ?
#include <uf_curve.h>3 {$ z+ ]" y- r+ R2 i; _* l
#include <uf_csys.h>
" H5 ]( L( o# `; h$ z5 N#include <uf_modl.h>
# l- q: F# r  Q; ~: j. v% P6 T5 M6 K$ A- g; T- e: {
0 B9 d0 H  Q1 x; _" [
//设置选择的实体类型, s4 ]% a, L3 b6 ?' G. F
static int init_proc( UF_UI_selection_p_t select, void *user_data )! k+ p4 z- _: s, L
{! v" Y3 w5 L7 p  J5 X- g
  int  errorCode   = 0;
( r% f* e. D0 Q/ h( O7 Q" T) S0 @* t, b' ]
  int  num_triples = 1; //选择类型数量
3 G# W% a) b4 K4 g( }3 f3 b  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型( {) ^/ D8 z2 Z: U! z$ r9 s2 i

6 A4 u* c( {' Y5 i" h: n! l# Z/*
: Y  Z4 N9 T9 a! ]# i. e! gUF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
) X: A* W/ U5 l7 VUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
; Q0 @% g4 s4 r4 A' _3 h  y- fUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定, C1 i. w* e. L" K( L3 T5 K9 L
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定9 b: ]% _$ ~2 o8 O
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定1 v3 x6 B% F+ K" b4 A4 ]
*/' z1 S" f; N' e4 b2 V
errorCode = UF_UI_set_sel_mask(select,
- |% q3 J/ ^" @  ?' [' Y3 F- T* X) G                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,( ~% w4 u3 y8 Z) X
                                                           num_triples, mask_triples);' [- y+ k; r1 j+ e2 Q( D* U
if( errorCode == 0)6 j2 N9 x' t7 E& V
{
- x; l, k' [  B7 Kreturn UF_UI_SEL_SUCCESS;- G, K4 P+ I3 s) Y4 \0 }5 q+ m
}
: m$ K  w, g( y! a; X else8 l3 T7 ^+ [9 e
{
( d/ T/ Q- |9 @' E" U+ I6 s4 K return UF_UI_SEL_FAILURE;! K% M9 z2 [* e% U$ Q0 b' Y
}
5 ?6 `; E  Q4 `. V}
! R) Q0 K" F6 g6 ^
5 j3 L' v$ P5 T4 U8 P/ E- ?+ W4 T
. z. W  J9 W0 M! v$ s$ x- C3 d
/ s, ^2 S3 \6 X4 D  /* TODO: Add your application code here */
, K# r" e5 m% S/ ^, X9 I& ^7 Y, V0 s) Y, K$ `, M
  char *message="梅雷提示!请选择视图边缘。";) S+ _! L- b9 o9 l# q% l0 L
  char *title="梅雷-QQ1821117007";9 q0 y; F& f6 t4 O6 h" n
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围
5 L* j$ ^( Y6 ?5 e; K( v5 f4 y" @) e  /*$ |' J2 A) C3 H" X' m7 y8 k: _
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化7 I2 h+ n! x) \& i
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
) e! d! A$ [) A* {7 F4 k   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分
  F+ n/ J) \$ Y4 T   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC7 A, {% [$ H; z/ d1 C7 [
  */
3 V5 `* L' h) z; Fint  response;
7 ]( N8 ?) ]2 C: O( atag_t object_tag;
, W% ^( \" q; ^# W' D+ s) b% ydouble  cursor[3]={0.0};
+ m. r0 }( T4 b4 A' ^0 ptag_t view=NULL_TAG;
7 P/ C1 S3 ^* X/ i5 _& W: Q* J* z& Z! t: ?: a' A5 o
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
7 S: G; L/ Z5 f2 I& tUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)7 S0 @6 T+ V/ l% y
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】
% |4 [& e* _, E& WUF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
. s8 {/ Z9 N& E; ~) f% F+ S8 ZUF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示; m5 }, {0 \* \+ x. V
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
; G# F6 l. g+ }* q" s
0 Y2 o6 s0 c# ?; A3 }
+ Q  n  ^8 e' ~2 e4 z9 B9 yif (response==UF_UI_OBJECT_SELECTED)
1 h2 O* W! p' A! j& F* b{
" |% F+ Y1 S: S* E% F7 N" L" A4 F# b  char view_name[132]="";
% }2 ?+ Y, X2 M8 X* z  UF_OBJ_ask_name(view, view_name); //获得视图名称/ ~" N  _  l& |% a
  uc1601(view_name,1);$ O* b: B! b: i# n! h* U
}
2 [/ P9 P" _9 c8 I( z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了