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 3868 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()却选不中点线面,是什么原因??困挠了好多天,请大神帮忙解决一下,非常感谢。……
* Z6 `1 K6 w5 R/ t* e+ _        tag_t object,view;: H3 _- u# I) j
        char cue[] = "select object ";4 r: k2 `# I, |7 C& o0 G' p! @
        int scope = UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,UF_UI_SEL_SCOPE_WORK_PART0 e$ M5 q7 F8 c+ h5 ]1 H% F
        char part_fspec [ MAX_FSPEC_SIZE+1 ];
# K* w6 Q# W! N$ t7 p        int  response;
2 A+ d) [# Y+ E/ z2 ^        double cursor[3];
  B3 G/ F& d5 O2 F* k        tag_t part_tag;9 |. H' x7 v- o3 N1 V& q
        CString infro;) [) F2 p& b6 i8 o
( }- N/ X- H) n/ |  m+ V# c
        UF_UI_select_with_single_dialog(cue,"select the edge",scope, UF_UI_sel_edge, NULL, &response, &object, cursor, &view );
6 }. t2 ^! O" H        if (response == UF_UI_OBJECT_SELECTED ||) P9 T+ H% Z; f' O! w, s
                response == UF_UI_OBJECT_SELECTED_BY_NAME)
- n2 C3 U4 j- H: [1 S, E        {
( g% C1 X7 u- z0 c                UF_DISP_set_highlight(object,0);; `% G/ c+ H& V; i  V2 e% }
                UF_MODL_update();) {& i: v+ N6 w) S" {
        }5 D: o, J2 w1 a' k9 \( c% I6 v
static int UF_UI_sel_edge(UF_UI_selection_p_t select, void * user_data)
0 H& q7 f4 T% ]3 X7 |1 A1 `7 K{  # b1 g( @4 b4 C" \7 ~: h
        UF_UI_mask_t  mask_triples[] = {UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE};
8 W4 M) R/ _5 v9 Z5 }        if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)6 F6 B+ o, ]  W6 P1 N% V
        {
$ U2 d; w, h2 c' M2 w7 Q4 m                return (UF_UI_SEL_SUCCESS);. P) D$ [: U8 |
        }" s" \) r  p0 n/ s; O4 h& I
        else
3 V3 r9 T% ?1 T9 _: D$ P* y+ U0 W        {
8 u" t7 G8 K' @' N4 }' R/ s0 k                return (UF_UI_SEL_FAILURE);3 C1 Q  o" T/ ~
        }6 Q3 [- m7 p9 A# }, g! c
}
4 V4 ~. U0 @- k3 J+ P
- L1 x# h, Z/ ]3 ]
上海点团信息科技有限公司,承接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;& W' M* c: u" H; Q3 F1 L
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view- i. e! q2 H! J
/ E. r) D4 n1 ?7 S/ X& t4 i' Y
3 \$ [# G6 _6 u
UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象
1 K, o* ?# t- {, yUF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
7 I( T' _; X" e3 D9 l, m3 M$ c! o8 `# P5 I- C6 p
————————————————————————————————————————+ S8 r$ X" r0 E8 u
列子选择视图里的直线边缘6 Z& [7 j- Z% q- ?" K

7 e8 z) V) g$ g; v#include <uf_drf.h>
3 j" ~6 J- K  N8 I  @) Y: X#include <uf_obj.h>/ ~9 N+ `3 S, q. |7 P+ A+ v/ _
#include <uf_curve.h>1 I& j9 M" M# Y8 r( g, }
#include <uf_csys.h>; }9 O" z# w- [+ V6 ~$ l
#include <uf_modl.h>. J5 L) C9 d7 U- \" f2 s  F& D, l

% X5 H8 I7 c+ M" ]+ @; P% o& q' X% m% }6 M2 ]
//设置选择的实体类型
) D6 ^, O$ q/ I- A+ ?/ astatic int init_proc( UF_UI_selection_p_t select, void *user_data )6 C$ a; M6 V2 F9 W  j: f" H& h
{% L! X, B% {3 ]& D- }! }
  int  errorCode   = 0;
. r8 C' l, e9 `* P% s: z2 P3 Y
8 t3 P% k7 ?2 y  r/ X  int  num_triples = 1; //选择类型数量' `5 y5 K4 x  m0 M4 Y4 X
  UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
# E* y6 @3 P$ f5 M! g, Z# \* L2 S; w3 s: q. v
/*
, S7 Q, O4 d7 ^% _UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
5 s% X! R: {' A2 p$ eUF_UI_SEL_MASK_ENABLE_SPECIFIC  面具使特定的
4 q( l; X! F. [% W9 F* Q9 wUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
! N8 h& X4 N* }$ W  qUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定/ k: q) C  f) t+ x8 z1 j
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定: Q  {- }& g6 ]2 l! Y) C7 q% B
*/* f- A8 n" P* ]1 l1 |/ K
errorCode = UF_UI_set_sel_mask(select, ! y% r2 K6 |. d$ j/ t  _
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,$ q8 c/ v2 F9 g  G! ^
                                                           num_triples, mask_triples);$ K6 @7 p- l$ s) P5 c
if( errorCode == 0)( U1 m0 Y8 Q" [  y# r7 ]/ R3 w# k
{
8 b; \7 H& A) t" ?return UF_UI_SEL_SUCCESS;# D% I! q; Q- d0 A' X* j
}
& L5 |( [3 q/ _% g; _6 D else* \. b+ z! D3 W$ P( t8 D* t% x
{6 \+ m$ Z, z2 h6 i" [
return UF_UI_SEL_FAILURE;
& _& V' h( z$ f# W7 K}. w7 k/ D7 `, b: r. a. P& T
}2 {+ v% x8 f$ l' ~' i  }/ A

1 C0 S6 k6 S" n4 D7 l4 l- J/ ]# ~  q6 P8 w6 l

5 b2 g; A$ X: J8 a+ ?6 `  /* TODO: Add your application code here */
* q, b$ F+ \% R) ~: \) w" J& p. T! \; q# K) {
  char *message="梅雷提示!请选择视图边缘。";8 I: G& c( Q$ [3 B0 {" g* h
  char *title="梅雷-QQ1821117007";. N( u( x9 @0 o% a# _& f2 Q
  int  scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围$ j: H" ?1 ^, F" U; ^: e; Y
  /*4 p1 \" }' j" x& s6 e
   scope=UF_UI_SEL_SCOPE_NO_CHANGE;         //选取范围没有变化8 N# B2 h' ~" }! k' v4 M. b' Z% J6 f
   scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;   //选取范围在组装
( A0 _8 _' H$ v' I. f+ B4 P+ H7 r3 D   scope=UF_UI_SEL_SCOPE_WORK_PART;         //选取范围是工作部分3 S7 N  u" f/ `- R- [) S
   scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC- P, ]/ i( x: w$ S* l, ]9 p/ O
  */4 [8 J0 t; X# A' f2 J
int  response;
4 e; q+ w' H- @" \tag_t object_tag;4 [% \0 \8 O& n+ o+ s9 r9 x- e( e
double  cursor[3]={0.0};6 Z- f9 R2 \1 L2 q
tag_t view=NULL_TAG;
5 S* a; L2 P9 `4 s; ~1 I& C3 W
% S- D4 D+ |7 o1 W, M6 ]' eUF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁5 }/ H$ [- j: u; I7 ~* t# E
UF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)
4 H! ?0 d5 `6 kUF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view);  //选择框】5 u! w& y. \. j; y1 y
UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)# @7 p' A$ H; z( X! P
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
5 }4 Y6 {2 c7 e/ QUF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁
8 z$ j0 L. S+ S2 h3 a9 x0 h; Z4 t9 j6 S: W" _
3 _2 f2 T5 \' Z1 D, Z4 p1 y+ h- Q% _
if (response==UF_UI_OBJECT_SELECTED)
2 z5 t4 f7 f  F' Q{# u3 T% A) q( u. u4 Y9 z9 S
  char view_name[132]="";
) [& K8 O5 ~9 Y: `  UF_OBJ_ask_name(view, view_name); //获得视图名称
& @* d$ Z" i9 h7 H6 E! e7 B  uc1601(view_name,1);! h' e- @7 }0 }: O5 A$ |
}7 G& X) n/ Y3 V: ?% A: G% I- S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了