|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*****************************************************************************) B* v; ?. o) }& A0 t/ m% }: n- W
**
4 J/ b* y/ ?+ C7 E) u** test.c
; _2 `: X6 F! B. T/ f, y**
2 \# q9 F/ r; ~7 b** Description:
/ G+ X0 x) M5 n! I** Contains Unigraphics entry points for the application.
8 c' M& ]& A% _**
. a/ n- _: f" ~*****************************************************************************/
: w* P$ @& g2 h8 H/ E/* Include files */
' p' ^' T3 Y( T% |: e- k#include <stdio.h>
' }' {9 Z/ J' t: R' D' c% i$ Q#include <uf.h>
: l) h# n L6 {, ]; l1 u7 a#include <uf_ui.h> m$ j* X$ x) B5 \6 j/ z l9 K ~
#include <uf_modl.h>, S! T9 w& _, W4 a7 l- x
#include <uf_curve.h>
1 y- p6 T9 h6 S( G3 L#include <uf_part.h>
3 T) t- `8 j1 q1 x! R: j" X#include <uf_modl_types.h>
2 L* a$ p6 L$ @. K#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
! J. N6 |; P8 w) s0 M7 V* Jstatic int report_error( char *file, int line, char *call, int irc)+ [9 W0 E* ^6 d9 z; m! C( a
{/ o2 Q$ @1 p1 W3 \
if (irc)8 f$ n3 _2 F. _
{! d+ t' I3 ?! T9 `" t0 a
char err[133],2 O& `/ \7 h: V
msg[133];
& o$ J2 _9 s+ e! Q sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
2 J1 b' |1 Y" P7 M$ r- b6 f irc, line, file);
: L; x/ ~- e& K UF_get_fail_message(irc, err);
; }% w% M3 s0 K0 c UF_print_syslog(msg, FALSE);6 B( U; `6 j! H7 J
UF_print_syslog(err, FALSE);
+ J/ q) a( a7 o UF_print_syslog("\n", FALSE);" d: j S/ g# H% R4 ~1 X( H
UF_print_syslog(call, FALSE);
/ n2 j* q1 i: C' [ UF_print_syslog(";\n", FALSE);
/ m' X, Z- r# y4 c( W if (!UF_UI_open_listing_window())
# r. G8 j9 W. c, {9 V {
" u) A5 }/ T' [' m6 K1 G+ ]1 m UF_UI_write_listing_window(msg);8 l. h2 E: M# p
UF_UI_write_listing_window(err);
' g3 J! Q/ b7 t UF_UI_write_listing_window("\n");
4 o/ I$ o' ?* M& O4 |2 f% i# ^ UF_UI_write_listing_window(call);9 r) o [; b- m4 a+ ~
UF_UI_write_listing_window(";\n");7 z7 O* j/ ?- m8 F5 {/ [! f
}
$ @7 |( q m6 e }& ^2 w2 c' R4 T3 A
return(irc);; z1 i) B& l- A) g. F
}
7 L) F# e* {0 O8 A6 r5 b8 u
9 L. f$ E: l+ U3 B) X5 q" B/*****************************************************************************
( r3 @2 E+ l0 \0 H& j** Activation Methods
0 V3 @" r4 x% p- h8 P" }) F*****************************************************************************/: J% z) i( G4 L& d2 f, f
/* Explicit Activation
2 q6 ~* A: a0 [** This entry point is used to activate the application explicitly, as in2 I3 b6 i3 G6 f) J' a
** "File->Execute UG/Open->User Function..." */5 X8 I" w S2 c
tag_t part_tag=NULL_TAG;3 f6 w& b: Y0 W$ Y+ h
tag_t tar_tag=NULL_TAG;
" K1 e# T/ F: p4 d2 k4 gdouble origin[3]={0.0,0.0,0.0};, L0 |# V( o% w- C% t5 J
char *height="30";( @" Q) j) U; V) U
char *diam="100";
7 p. ?9 I2 S( n/ Adouble direction[3]={0.0,1.0,0.0};9 }& R- Q- H5 _& |4 y8 t5 j
tag_t cylinderfea_tag=NULL_TAG;' v! c% v7 B: d% b' e
uf_list_p_t edge_list=NULL;
' m2 [% B8 D F7 @) T- Bint edge_count;, Y Q; {3 ~8 C! G& K0 Q
char msg[256];
: q- q0 |0 y2 Z' o; S9 e+ F4 T% Tint i=0;
% B/ u* C" D, H) \8 H' htag_t edge_tag=NULL_TAG;& C$ U$ \" |7 A# c
tag_t curve_tag=NULL_TAG;
/ {4 g! R, B0 ?tag_t point_tag=NULL_TAG;
7 h9 G0 U& X2 Y6 C( Vtag_t line_tag=NULL_TAG;
' }1 b1 V9 P6 U, U1 ktag_t point_tag2=NULL_TAG;
& o1 @* X! c% g2 ?double cen[2][3];
, w$ r( \2 s/ I/ VUF_CURVE_line_t line_coord;//最好不要定义为指针5 V8 H+ m1 Q. m. s
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )+ `3 y* Y8 g$ N1 U
{1 E8 j8 s, z7 L e- F: S
/* Initialize the API environment */
& x) f- H. i5 x4 P if( UF_CALL(UF_initialize()) )
# r' H; K' j8 G# T {" t+ t4 Q$ [- @; G
/* Failed to initialize */8 J* S& p9 e( ~5 w
return;) ?1 ^4 y. y |6 ]% N6 O7 j* Q
}# P7 s3 j# j; y/ w# E
- k& j4 W9 K+ _6 l" F* ]
/* TODO: Add your application code here */- s: m1 S1 x, N e
//1.create a new part
: `7 j; ?! I" }- R) I9 h UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);$ s- T& d" P5 V! K6 K8 l
//2.create a new cylinder1 R0 I( } b$ ` @" z1 U0 s
UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);! ]1 V4 h0 E6 ~- J8 ^5 u b
//3.get the edge list/ Y7 j9 }2 s; b8 N$ g8 z2 H
UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);
5 D2 v" q( H1 [5 U8 |. _ //4.get the edges
- H. P6 N' s: t% L4 q UF_MODL_ask_list_count(edge_list,&edge_count);
z7 W( j0 g& A3 |3 P5 O 6 Y$ Q7 Y0 Z6 F- `5 H
//5.get the centers
& K/ U3 X1 y" g* O for(;i<edge_count;++i){# O2 N- J. J. V' h4 l. ~$ E3 m. }
UF_MODL_ask_list_item(edge_list,i,&edge_tag);
9 F& q' V4 H: g' j% ~ //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);1 A* D' I- W$ f& ~
UF_CURVE_ask_centroid(edge_tag,cen[i]);6 b" O0 z! f) {) J/ R
}
. f, h9 l$ j/ B9 }3 p //6.create line
3 h6 N& w0 r3 p3 q //UF_CURVE_create_point(cen[0],&point_tag);8 p2 J5 U' I9 E, y# F
//UF_CURVE_create_point(cen[1],&point_tag2);# M3 P8 y/ z# Z, \
line_coord.start_point[0]=cen[0][0];
7 C, I Q6 ?& \- L. h7 U line_coord.start_point[1]=cen[0][1];
5 J+ r* k0 s8 f4 R* P line_coord.start_point[2]=cen[0][2];
8 v& E7 _, X; g' x! } line_coord.end_point[0]=cen[1][0];
% ?, u3 [% |* ~* S: T line_coord.end_point[1]=cen[1][1];
( _' q% I& Q! e: _/ j: E* P line_coord.end_point[2]=cen[1][2];" c: [4 q2 y8 `
UF_CURVE_create_line(&line_coord,&line_tag);' N/ Y, t# I6 \/ F5 Q) K
//UF_MODL_ask_list_item()
8 e* j3 _! t% Q0 [4 I& c /* Terminate the API environment */
- L! U2 g9 }. @# X9 m: J) N UF_CALL(UF_terminate());0 @3 s y" d6 n: z4 `9 X- \5 ?
}
6 B1 c2 }. j: t+ D4 p/*****************************************************************************2 Y* Q) ^9 j( J* Q
** Utilities+ Y+ Y/ b2 q. F9 A( H
*****************************************************************************/
2 q4 Q8 p4 x) z/* Unload Handler
/ w; Y1 V+ H! m! \* q' b( y** This function specifies when to unload your application from Unigraphics.5 m5 F) ]. F' i5 T) I% H
** If your application registers a callback (from a MenuScript item or a' i! c+ z; D$ a* o& Z
** User Defined Object for example), this function MUST return
5 N2 K7 |8 H; f$ W/ a3 r** "UF_UNLOAD_UG_TERMINATE". */
; M* Y( y6 E) d. u" iextern int ufusr_ask_unload( void )* f$ n( A8 c. R& A5 L7 q% L
{
: s X: l1 q" }# t9 O- n return( UF_UNLOAD_IMMEDIATELY );3 M3 z7 o' n6 g$ ]3 P' B
}- U1 v: `4 X- x, m. m/ D4 z! J
+ o, v$ F8 `% @5 O" i
|
评分
-
查看全部评分
|