|
哪位高手可以帮忙看一下应该怎么改,实现:点击曲线,生成管道。现在这个程序只能生成一次管道,再点就不管用了
8 y4 K R5 H; h" S6 R' a" }4 \% x( z4 i X4 {( ]
#include <stdio.h>
# U% E/ @, a$ e#include <uf.h>. ]! t7 N# e: t# y/ A
#include <uf_modl.h>. q; I' A8 Z/ |* G9 b2 q
#include <uf_ui.h>
9 z% {) N) ]6 pstatic int sel_init_proc(UF_UI_selection_p_t select,void *user_data)9 T9 Z5 W9 y) p& L0 @! Z' k: A8 g
{+ j+ m4 N: E J. Q/ G
int err,num_tripels=2;
5 J, h. ` L( K0 }6 Z9 Q UF_UI_mask_t mask_triples[]={UF_spline_type,0,0,UF_line_type,0,0,};8 ]5 _9 k: D) { D) G- _ q0 z
err=UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,. n7 Y5 R5 b7 l) {
num_tripels,mask_triples);( Q3 Y: u/ x- S" ^" `
if(err==0) return UF_UI_SEL_SUCCESS;
\7 m/ P3 D' c7 p+ X1 `7 O else return UF_UI_SEL_FAILURE;) G6 S' ?8 s7 j; [' ~
}6 D8 Z! @' v& C' A
static void do_ugopen_api(void)
* u k) X% a$ F8 T+ l2 n! B7 m{
# c$ [/ k; R7 V! N char cue[] = "选择曲线";/ p' B- f6 v$ G% v" i8 N
char title[] = "选择曲线";3 x1 H2 \! _* f& d: t9 A( _8 J, \
int response, count, i;
! L/ I X" d& v tag_p_t obj_line;& d! \2 o5 |: y! D* |$ c a
int obj_tube;
1 i) \* [: l) ~4 A1 w char*body_limit[2]={"outer_diameter=16","inner_diameter=0"};1 n/ ?; {' k7 \7 f
tag_t generators[1];& M- p- ~. o. q( B# w
UF_MODL_SWEEP_TRIM_object_p_t trim_data = NULL;
1 _6 Q# {6 a) o% S; b+ Y* L UF_FEATURE_SIGN mode_sign = UF_NULLSIGN;
" l" M# t# m& i% J1 q if(((UF_UI_select_with_class_dialog(cue, title, UF_UI_SEL_SCOPE_WORK_PART,
- s( H1 Y; t. v) E! _ sel_init_proc, NULL, &response, &count, &obj_line))) == 0)* z- m! \3 H, |- q! P
{
4 j; r/ ?6 s# Y) e" t L printf("obj_line count = %d\n",count);" b. v `4 |2 S$ ` [0 s
if (response == UF_UI_OK && count > 0)6 D1 b1 T s( ~7 g+ s7 L7 E
{2 \( M: H7 i @7 _+ J
for (i=0; i<count; i++)+ G u& u8 F4 M: I) [1 a4 ?- b- K
{3 T' F' ` Q( M# p* I" t
printf("obj_line tag = %d\n", obj_line);
, `2 K" n! e6 l2 s$ W UF_DISP_set_highlight(obj_line, 0);! [( `$ |& c5 F
generators[0] =obj_line;0 v" `8 C# G& q' c0 o% T
(UF_MODL_create_trimmed_tube(generators,1, trim_data,
$ C; D, o( H; T+ b/ u5 ^% P+ k8 y body_limit,mode_sign, &obj_line, &obj_tube));
3 A. ]1 h _* G0 @, E p; U }
. [3 R5 r7 N+ V7 q, G UF_free(obj_line);
$ S) O# ?4 U0 v G1 L" O }2 g4 |7 m! _& P3 m& O* |# d" m3 K+ u! A
}/ b9 g6 z8 T, X$ g+ x
}
9 I G3 t7 u# R8 Dvoid ufusr(char *param, int *retcode, int param_len)# N% s; w) [( W8 m6 Y
{% }8 z# @. T; F
if (!(UF_initialize()))
+ G& U" o2 w+ @+ ? {8 K( R0 u5 A, |: W, p- A
do_UGopen_api();
& \5 W; H* \$ Q! l% X, O- i, P4 \" D (UF_terminate());
7 J; E7 ]8 \. k$ Z }
! t3 H1 Q. m0 U, ?8 ], B" e}5 L5 x% Z# W$ G3 y
int ufusr_ask_unload(void)
* u+ f5 e$ Q2 C2 [# E2 C0 P{
6 R7 ~9 n0 _0 ~4 ]- Y3 h return (UF_UNLOAD_IMMEDIATELY);$ ~% e# g. _, Y' j
} |
|