|
|
int viewview=1;; r/ @! O- T/ p
UF_UI_ask_cursor_view(&viewview);//获得你选择的视图范围类型0 = Any view,1 = Work view
# G# i, J, p( i2 t
; @5 k4 A' u: A# K# g' s
+ [4 G" h6 z3 y i! f$ P+ \UF_UI_set_cursor_view(0);//可以选择“图纸上视图”里的对象1 c! b5 M. H( V
UF_UI_set_cursor_view(1);//可以选择“工作视图”里的对象
) u$ ~/ {* \ O9 B9 D) i; i0 N) n4 f1 y4 J1 a1 c/ G8 M
————————————————————————————————————————
0 a7 D6 o& n( O% I列子选择视图里的直线边缘
, M0 l3 w& K, r! `8 N# ]! ?5 F
7 X, T6 X/ t7 L4 L& p" j3 M' R#include <uf_drf.h>5 Q3 y! M8 Z0 n0 Q+ C2 `; }
#include <uf_obj.h># P B L$ }) T" k& s5 R
#include <uf_curve.h>+ D4 N% U! l/ I; \1 _2 P
#include <uf_csys.h>8 b' P, r1 }; H+ Z8 f/ s$ o' m
#include <uf_modl.h>7 k! S& o8 Q) M! _/ c9 C
: {2 f" m S4 E5 A' e
& f" ^4 Q( q1 y& x; h. y9 S//设置选择的实体类型
. i: ]6 C4 v6 `/ K9 E% ostatic int init_proc( UF_UI_selection_p_t select, void *user_data )+ y$ K+ `% \# h! s, J' d! ^, J( H
{
" y7 \, R7 G/ @' K% P int errorCode = 0;
9 T2 G- Y& {: o) S( z% d* \# G# S0 W+ U
int num_triples = 1; //选择类型数量
: i3 \9 }- w5 u$ h UF_UI_mask_t mask_triples[] = {UF_solid_type,UF_solid_edge_subtype,2};//选择类型
4 A8 c% y" C+ \6 @1 k3 X1 W" D) j0 t# V5 c6 L
/*+ V2 f5 Y( e2 a/ R! E
UF_UI_SEL_MASK_ENABLE_ALL 所有面具类型
' v! q3 L) _0 p5 Q: U bUF_UI_SEL_MASK_ENABLE_SPECIFIC 面具使特定的
: h, p" e K9 ?& k, r/ W+ n5 E, g* KUF_UI_SEL_MASK_DISABLE_SPECIFIC 面具禁用特定
! w0 X2 l+ T3 F) y4 kUF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC 面具清晰和启用特定" D; F" f2 q8 @3 A$ H; S; ]/ A
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC 面具和禁用特定% s+ H, F" k* K. M
*/
( o* n* h8 l; }$ s. b: B5 u! CerrorCode = UF_UI_set_sel_mask(select,
+ m1 E2 M. Z& P9 d* `; L+ q UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,2 Q8 [- n. T6 L8 @0 p+ Q! V
num_triples, mask_triples);
3 ?$ S5 i3 w8 s8 z0 s5 {if( errorCode == 0)
, O; y# x; {4 X' d- x{
; k G+ o2 r3 }1 {6 d0 ^# G+ b$ kreturn UF_UI_SEL_SUCCESS;5 a) n8 c+ m2 U/ t- R
}
2 A& H0 u7 c$ g4 ^ else( z+ f) u) M3 b& B
{
4 {! r$ w- Q# F9 J0 e1 d! _& ?$ j return UF_UI_SEL_FAILURE;( q7 X U# |, J- \& d! n4 O2 p
}
w5 \# X% o5 u: c% n2 h4 Z}# s3 Q7 l$ f: L- R* D [4 s
( a, W/ @1 }* B' P; w
/ f/ i' x! G4 ?+ r, T/ ]) a' l3 F* X1 `# T" Y
/* TODO: Add your application code here */& V. r. ` Z. s1 L# Q7 L
- f- w! S3 \# S4 H char *message="梅雷提示!请选择视图边缘。";
9 q3 M3 g0 L) v+ ?* L2 P% i4 ` char *title="梅雷-QQ1821117007";
, u+ B' e% P% A% Z int scope=UF_UI_SEL_SCOPE_WORK_PART;//选取范围: g, i3 ]5 |* x
/*1 D' s. H( N+ u; h0 |+ ~% Z1 L
scope=UF_UI_SEL_SCOPE_NO_CHANGE; //选取范围没有变化
, J$ ~4 Y8 Q7 P. O6 @: \# @0 P$ @ scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY; //选取范围在组装( e7 O: s/ y( f" N/ c, C' }7 L
scope=UF_UI_SEL_SCOPE_WORK_PART; //选取范围是工作部分 [' p. W8 k1 V1 P
scope=UF_UI_SEL_SCOPE_WORK_PART_AND_OCC; //选取范围是工作部分和OCC
+ f' [8 \' S* t9 j' o# O7 b( N' l */
6 N+ _ J( z$ b6 ^* n- I+ o* R% gint response;* o% g/ r* x, {; @' p7 _4 L
tag_t object_tag;
* i5 ~; ^% g' ~5 Qdouble cursor[3]={0.0};9 x# M b8 C( F. K( j% s
tag_t view=NULL_TAG;2 c8 V7 n( _3 ]2 [7 ^
+ w( D1 c, N, Z4 w; [% i
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);加锁
! f5 ]1 E' Q' `' A8 h; R7 dUF_UI_set_cursor_view(0);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)! v' k9 }7 Z# H' p# {7 ^
UF_UI_select_with_single_dialog(message,title,scope,init_proc,NULL,&response,&object_tag,cursor,&view); //选择框】
( r! p# ]3 G1 U. F) h, |UF_UI_set_cursor_view(1);//0 = Any view,1 = Work view (0可以选择“图纸上视图”里的对象)1 g( v2 J: r4 V+ T& c( [/ `
UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示% S% u, N" i* ?' `
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);//解锁3 z6 ?0 r0 q3 ]: H, o
" ]0 K% @+ _* J( @ y0 U' q6 f7 d( \# B) E& b4 l6 `
if (response==UF_UI_OBJECT_SELECTED) 8 h$ v9 b% F/ D" b1 e, }9 T$ i
{
& n0 R, ? v3 I char view_name[132]="";/ u! e% J6 j, ` d
UF_OBJ_ask_name(view, view_name); //获得视图名称
/ k# M7 r5 Z. r$ H3 _5 B uc1601(view_name,1);
8 @. |! E, I* M" u' L* n+ ]}
! b: D# p; h% z7 v |
|