|
哪位高手可以帮忙看一下应该怎么改,实现:点击曲线,生成管道。现在这个程序只能生成一次管道,再点就不管用了( q3 o: Z5 |2 o: n) ]
6 g4 h2 }/ S Z
#include <stdio.h>% I4 P$ w: `: r0 f: M6 {
#include <uf.h>7 A# V9 Y, D+ E2 ~* o
#include <uf_modl.h>
- I( Y$ H6 A) l#include <uf_ui.h>) f) S) v$ ^: R3 }+ C( e( B: n
static int sel_init_proc(UF_UI_selection_p_t select,void *user_data)& R8 ~" @' H0 s3 l$ P0 u
{
9 T# E1 l9 k, S" t$ ~' V; o! s int err,num_tripels=2;0 s( t1 j% Y, W
UF_UI_mask_t mask_triples[]={UF_spline_type,0,0,UF_line_type,0,0,};
( [% J' f1 p- _0 [# ~$ K1 p err=UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,% N% w! [' Z9 y& x. L6 G) Y# F
num_tripels,mask_triples);4 F. s- k$ a' i; e# |5 O
if(err==0) return UF_UI_SEL_SUCCESS;
7 x! n: M; k) ~9 F$ P( { else return UF_UI_SEL_FAILURE; J6 C, I; N! p1 ]
}5 s( j6 j' O& G$ w1 l0 n/ j
static void do_ugopen_api(void)
: R1 e' L6 A5 E1 \1 a5 {5 i{
7 S+ E' B! y8 V$ s# V char cue[] = "选择曲线";
, s* ]- Q( L- b0 \! I4 X: w char title[] = "选择曲线";
- ^( R. L8 Q1 b( j( f int response, count, i;5 t2 e8 a& [" @- I. M3 B8 a- r5 j/ n
tag_p_t obj_line;/ o: q) V/ C" D0 ~% o& `
int obj_tube;8 ?$ | p( R8 w% z5 M
char*body_limit[2]={"outer_diameter=16","inner_diameter=0"};5 \; Q4 R. y8 B
tag_t generators[1];
8 r% p& v2 @ } z7 O, A UF_MODL_SWEEP_TRIM_object_p_t trim_data = NULL;
5 E( t" [" F R; B' w5 Z N) { UF_FEATURE_SIGN mode_sign = UF_NULLSIGN; . @2 W$ G' s; x4 p0 C
if(((UF_UI_select_with_class_dialog(cue, title, UF_UI_SEL_SCOPE_WORK_PART,! S8 q6 }, A! z
sel_init_proc, NULL, &response, &count, &obj_line))) == 0)) o9 I) m* A. ?
{4 X% ^! H4 o2 P8 ?
printf("obj_line count = %d\n",count);7 k1 }& I$ h- p
if (response == UF_UI_OK && count > 0)- a: b6 H+ f0 T; W, m/ |
{
" A, r# F3 M$ y/ e$ Q4 @* m4 o. `! r* V for (i=0; i<count; i++)0 i( O1 L- A: i
{, J- L8 v/ j$ X% Y
printf("obj_line tag = %d\n", obj_line);
6 ?$ ^( R& C0 S) b8 c8 U UF_DISP_set_highlight(obj_line, 0);3 l! W P9 \6 a4 ^/ K: c1 }
generators[0] =obj_line;
7 G- M) u( l3 Q1 O- Y! u* R$ l Q (UF_MODL_create_trimmed_tube(generators,1, trim_data, + t3 ~2 }' _5 J6 u/ X* Y
body_limit,mode_sign, &obj_line, &obj_tube));
3 d4 |2 R& f% V2 |, e. W }
1 R; u6 w. t4 O7 k" R, e8 w9 } UF_free(obj_line);5 S; e5 f$ R; p; m, ^8 {
}( X! A5 K' B7 A3 L6 I# K
}
9 c4 A' c' e0 _+ i) B}
- D. b9 q; C, t# ?void ufusr(char *param, int *retcode, int param_len)
7 F; K3 E$ L) ^1 D! `{# b& s' J3 u6 n F
if (!(UF_initialize()))3 m& K6 s/ n7 \) `* o
{
5 E' k6 E: U; s- X+ w: H4 o do_UGopen_api();
" K3 @5 ?: l1 X5 x( c3 q (UF_terminate());
8 G+ Y* J! a2 x9 j* Q; G% Y% p5 v- o; g }8 B. `6 D% R; B7 y
}
+ D0 v* u' U8 s" p' l/ W* [int ufusr_ask_unload(void)
5 u0 N2 ~7 O; \ T6 y{$ X1 h, X- K8 {; w$ Y8 j" e1 P0 n c
return (UF_UNLOAD_IMMEDIATELY);
8 K0 j. Z: u5 x$ F. M& t} |
|