|
哪位高手可以帮忙看一下应该怎么改,实现:点击曲线,生成管道。现在这个程序只能生成一次管道,再点就不管用了
+ K- }+ }' ^: d: E, ] b' u9 S( n. f0 G, K# m4 C
#include <stdio.h>
. D/ _2 s# \7 n: s& _8 ?( @#include <uf.h>5 C2 j% e- G! q/ b: e- H1 L1 i- |
#include <uf_modl.h>
1 c8 @8 ]! V. }1 N2 ?# @#include <uf_ui.h>/ \4 ^2 Z2 l6 N0 E, \- L
static int sel_init_proc(UF_UI_selection_p_t select,void *user_data)! Y, u- }3 e- u, D. [8 S
{
2 g3 Q& x0 o$ Q/ u5 U; N7 N1 ^$ ] int err,num_tripels=2;
4 Q3 W4 |: _: \) @7 W UF_UI_mask_t mask_triples[]={UF_spline_type,0,0,UF_line_type,0,0,};
4 Q& G: s) A5 [# a: v4 z, s err=UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
; K8 }; W! n7 g l7 b5 X' a: `# l num_tripels,mask_triples);: n0 G" t6 F9 W4 a2 M
if(err==0) return UF_UI_SEL_SUCCESS;
d5 [9 W* s w; B0 M else return UF_UI_SEL_FAILURE;
2 F- O1 H9 e3 H" i }
5 _$ E0 N2 a3 X8 [$ O0 |! _! Qstatic void do_ugopen_api(void)
/ O' p4 m1 u4 t" b% i{% {+ ~! ^( y- J$ U" R. P
char cue[] = "选择曲线";
& h0 t" {- N, Y; L3 f2 l char title[] = "选择曲线";2 Y8 |) J- ]3 x% j
int response, count, i;5 e# U0 j" {' d5 v; p# e
tag_p_t obj_line;
1 Y G* O! [+ X' T int obj_tube; y9 o0 K& E1 {9 S4 H9 a
char*body_limit[2]={"outer_diameter=16","inner_diameter=0"};
& b: T6 y$ \! X w" q7 k tag_t generators[1];
& J+ |. \% S! m UF_MODL_SWEEP_TRIM_object_p_t trim_data = NULL;2 |/ s% W2 A( k6 M8 M
UF_FEATURE_SIGN mode_sign = UF_NULLSIGN; 6 `7 J$ a3 u7 `3 ^" v. y4 p
if(((UF_UI_select_with_class_dialog(cue, title, UF_UI_SEL_SCOPE_WORK_PART,
$ y& [- Y7 l9 I6 ^3 E sel_init_proc, NULL, &response, &count, &obj_line))) == 0)9 X9 h, n4 G: b
{5 [- m! F9 q" x& |% g! f) J& Z
printf("obj_line count = %d\n",count);1 \8 B* F' W9 u# |) q1 C
if (response == UF_UI_OK && count > 0)
2 ^9 ]5 L1 u+ }2 P C {
7 X- h6 v$ L) z8 @5 h5 F for (i=0; i<count; i++)( m7 h3 H2 T( \ ^8 Z
{
: U& T! C1 @. i9 Z printf("obj_line tag = %d\n", obj_line); W e7 a; R _' I3 H$ \8 O9 L
UF_DISP_set_highlight(obj_line, 0);
6 [, k' B$ J4 P& A$ p generators[0] =obj_line;
3 Z% r! O' { s (UF_MODL_create_trimmed_tube(generators,1, trim_data, ; v/ ?% E' G/ C
body_limit,mode_sign, &obj_line, &obj_tube));# G0 I! ?- I. }; q) _8 S a
}& F! a) E9 P2 l p3 B& i: k1 e
UF_free(obj_line);
- R$ A7 z) r: V6 e2 W }# } ~ P5 p2 ]. \# q- @( K6 X
}
, I3 D. F k# y}
( o: y- t# t3 w3 Pvoid ufusr(char *param, int *retcode, int param_len)
3 A& c" l# {3 m% z. K; O{
b/ ^% r- Q6 _3 {4 n1 V; o8 q if (!(UF_initialize()))7 M- {5 n" e, x3 `* @8 m
{" y# p, q f4 z% y7 ]
do_UGopen_api();/ ] j( M( W3 v" j
(UF_terminate());' {5 f0 {- R. t1 M( b$ @/ ~: ?, a4 ]% o
}- j- i6 N: v+ }3 _& j3 H" J& Z
}
0 a: L0 ?& u% d. dint ufusr_ask_unload(void)
4 Z- }% \; V2 @{! y: V$ O3 d5 O# q
return (UF_UNLOAD_IMMEDIATELY);
# _( \* M, u& u2 F} |
|