|
大家好,我想实现拉伸功能(先选择线框,然后拉伸),但是按类选择对话框打不开。。代码如下:& o& Y0 y U( N0 y/ n& v& ?
int Project_Model_Create_Extrustion(ModelMandrelParameter *p_mandrel_para,tag_t *p_ext_tag)7 U& [1 z9 I9 F# V4 ]3 U
{
$ J, t( [/ p, G: luf_list_p_t loop_list,features;: Y# C9 j( `- m- }4 s( w8 x- Q3 s
char *taper_angle="0.0",*limit[2],limit1[2][30];( v1 ~1 B- A7 \; N: Z
double ref_pt[3];. N) A4 h& K3 R$ }1 T7 X+ B
double direction[3] = {0.0,0.0,1.0};
; s# @: t& a% ]3 _# h& mint i,err;4 L/ J$ l' ^. _2 ?, \: k
char cue[] = "选择型材线框";
3 d, d/ j/ e; E& i3 c8 H: l8 I char title[] = "按类选择对话框";
; t. S3 p* C/ i; G* b7 \& e int response, count;( u. B. d& W5 O, l8 g
tag_p_t objects;! C4 Q4 U' X. d) p. D$ D; D
char message[200];
, d3 j9 n) \; X- vsprintf(taper_angle,"%lf",p_mandrel_para->A);: U1 p+ r0 X2 n+ G3 a2 r1 H
sprintf(limit1[0],"%lf",p_mandrel_para->S);- T2 l" ~6 g2 Q$ K1 m& w
sprintf(limit1[1],"%lf",p_mandrel_para->E);" {+ V5 Q1 [! O* W5 J6 W8 D
limit[0]=limit1[0];limit[1]=limit1[1];
# L4 _( x! _+ _# ^ UF_MODL_create_list(&loop_list);) v: @- B7 {# N8 m3 V0 V O* s6 V
if((UF_CALL(UF_UI_select_with_class_dialog(
3 P# p8 }+ N. T- i0 S cue, title, UF_UI_SEL_SCOPE_WORK_PART,7 V8 |) K' t$ {& ^3 m; F' d1 R
NULL, NULL, &response, &count, &objects))) == 0)+ r6 y" L* j: f+ O! a+ z9 j) q y
{
( g3 p8 A; l4 H, S8 P6 @1 c' Q0 Z: y
: `! Q" R" H* A! o9 J: G printf("object count = %d\n",count);
1 G% K9 } U7 S6 X/ b if (response == UF_UI_OK && count > 0)
4 I: d# b) ]% c, M {6 L5 Q, f$ Q% l; ]
for (i=0; i<count; i++)
" n* u. K: {" p {
. F+ d) e' C. _9 w UF_DISP_set_highlight(objects[i], 0);
7 l! ^0 R) h% y0 T: @' ]2 m UF_MODL_put_list_item(loop_list,objects[i]);# q2 k( Z) L" p( c! C: S
}9 W" [. U! e; F+ {2 x
UF_free(objects);9 | _7 Q5 k+ q3 M# v2 \
}: n' O0 w, S6 J$ _
}
* d3 X; z* k4 ]% b6 A) U2 p/ _+ u- n7 q1 Y o* ~; `/ K
err=UF_MODL_create_extruded(loop_list, taper_angle, limit,! }4 b( D$ ]; _* _
ref_pt, direction, UF_NULLSIGN,&features);
' I; S, J/ Z# k! Q2 k+ j& ~' R9 \6 Nif(err!=0)
/ X; i! r/ E. [2 r6 O{# |/ J7 z8 A7 W& W2 o7 o( b8 o
UF_get_fail_message( err,message);
2 R% h+ s8 v) a. {; x uc1601(message,1);2 z6 }+ e7 \& a" B
return err;( Y1 [) {& M- Z# d" M @3 ]2 X. p# N
}. W& V8 K0 X; _3 s: d
UF_MODL_ask_list_item(features,0,p_ext_tag);" R9 }6 l, J* D8 s0 \
UF_MODL_delete_list(&features); ]7 r4 o, g& Y" g2 k, J8 |
return err;+ O/ N) k W% `, Z: K
}2 E9 N4 q0 C( _: h; n, R
- R! r8 p7 J$ L& r; j+ j |
|