|
大家好,我想实现拉伸功能(先选择线框,然后拉伸),但是按类选择对话框打不开。。代码如下:
* }( x. R" o2 L1 \int Project_Model_Create_Extrustion(ModelMandrelParameter *p_mandrel_para,tag_t *p_ext_tag): {. e) z. Q; K0 U/ x4 i' A
{. H3 ]+ a: p4 C% |* _) O+ h
uf_list_p_t loop_list,features;
- J% H8 g. z2 [& l" Z# \7 V4 Zchar *taper_angle="0.0",*limit[2],limit1[2][30];
- U9 V9 j; p" U7 p! B: Z* jdouble ref_pt[3];
6 _- {8 E, l& q- [- r9 Ldouble direction[3] = {0.0,0.0,1.0};
" k! w; y3 q f* t# e4 Z! D: aint i,err;
, ]6 e. _) X+ K( P% o1 p1 wchar cue[] = "选择型材线框";
9 @8 M1 A2 X4 K4 |/ f char title[] = "按类选择对话框";' O, h; C$ @; u$ r8 i
int response, count;1 p" B) v! |0 Z- j9 y+ n
tag_p_t objects;
+ \% L0 b+ _. O# `+ Wchar message[200];9 l. D$ j' v: Q- u8 s. W$ n
sprintf(taper_angle,"%lf",p_mandrel_para->A);
2 y N8 V" `8 e) C+ Gsprintf(limit1[0],"%lf",p_mandrel_para->S);# e& y1 h0 b: p: A: c
sprintf(limit1[1],"%lf",p_mandrel_para->E);
: v1 w4 I' g# P$ ^7 E, K" q5 elimit[0]=limit1[0];limit[1]=limit1[1];
- m8 ^! F7 `/ G% n, D7 {' Y UF_MODL_create_list(&loop_list);
2 W! N4 [; b6 j: G if((UF_CALL(UF_UI_select_with_class_dialog(
0 F% V& Y# P& N8 E1 O y cue, title, UF_UI_SEL_SCOPE_WORK_PART,) a! k* R6 h `4 K e
NULL, NULL, &response, &count, &objects))) == 0)# j+ v; m7 k' N8 |
{
, D1 |/ n7 A/ V 6 Q$ }1 B9 D- }: T- t" H5 Y1 Y' J+ K. D
printf("object count = %d\n",count);' q8 u+ Z1 I. Y' U% N- x0 A
if (response == UF_UI_OK && count > 0)
6 q* M6 p/ I* S2 x {6 P6 i4 y( W! q9 H* Y) Q
for (i=0; i<count; i++)
/ ]( ~" u% y7 {: ~ {
3 }, ]+ M* U+ ^ UF_DISP_set_highlight(objects[i], 0);
: w! M, E2 ~, }" o. Z- z1 P1 Q UF_MODL_put_list_item(loop_list,objects[i]);1 v9 R1 P% J4 H; P
}
( p0 E+ k' r/ F UF_free(objects);* \% v8 q) N9 Q. G
}
' q& v/ v( ^# T7 a7 n+ O2 N4 k }
( `8 K1 J* ?/ X% u2 Z; Z# ?: b9 }, f# t# m/ ~
err=UF_MODL_create_extruded(loop_list, taper_angle, limit,; d Z# v/ Q. f8 {1 I$ m
ref_pt, direction, UF_NULLSIGN,&features);! g& J4 |( Y3 s8 ]& J
if(err!=0)
4 ?' k* M2 J% g8 r& y ]7 s{# X, Z: K$ Y4 ?6 N+ |& C' D( P
UF_get_fail_message( err,message);+ J$ f6 i$ w, ^ `" ]
uc1601(message,1);! v& r$ Y: W2 R9 p$ m! e/ ~
return err;; p5 k. w) Y1 I# ]8 R
}* M. {& H0 d J0 }4 l0 R
UF_MODL_ask_list_item(features,0,p_ext_tag);! d9 \6 R* u- o9 x8 r) Z
UF_MODL_delete_list(&features);
* ]; a( e7 g5 I, }return err;
. G1 |7 x! b" `}5 j% r, c' j: m4 C6 H/ m
5 ]+ ^0 a& F4 |5 F! S
|
|