查看: 3327|回复: 1

[交作业] 第二课圆柱创建轴线

[复制链接]

2

主题

21

回帖

270

积分

培训VIP会员

积分
270
发表于 2015-7-26 22:12:05 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
/*****************************************************************************
/ f& U+ I- ~; U*** K: V* [9 E1 k% }6 k. Z! p
** test.c
; y% l( D. D* F**
1 S2 u( r9 l" U  U% a) Z** Description:  j# _: u5 _$ I) b; O8 B6 V
**     Contains Unigraphics entry points for the application.
9 j' X  e& n- g7 K, {**
& m' H8 [4 M4 U0 Q*****************************************************************************/8 ]; x/ A3 d. c) }# _4 u
/* Include files */
- X0 H, f0 J+ E  H- L; A: q+ j#include <stdio.h>0 @& ~+ U# u# H* b
#include <uf.h>  G8 r9 M5 U, R
#include <uf_ui.h>
% M0 w6 v$ R  |6 J#include <uf_modl.h>6 _" }+ Y" r/ z1 ?" f! P3 U
#include <uf_curve.h>
  B  N' V% A# @#include <uf_part.h>
6 l# z# B! Q# V; B" s: N: V#include <uf_modl_types.h>* W& [6 f5 P8 [5 H0 G$ B( E8 I
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
" w# D: J* N' J- b* V3 w& Cstatic int report_error( char *file, int line, char *call, int irc)
/ s# X+ x2 N4 H; {, i1 v+ t{
, Z) A5 A" L' W6 X    if (irc)
7 L" n  A. R. I* P7 u    {
( X; ]/ y, e2 O        char err[133],8 S) {  S7 G6 z* s
             msg[133];
! x: R* t* l1 t- k- c$ R& e) K        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",2 k& l' E6 a: h! R+ X% u! H1 y
            irc, line, file);
$ ~/ ]& C. j, `8 p& D        UF_get_fail_message(irc, err);
/ ^! i8 ?# l: C* @% q4 I        UF_print_syslog(msg, FALSE);
7 `: s- L! ~( B$ p9 c* z* f        UF_print_syslog(err, FALSE);, Z$ T+ f0 h) X6 a. h" o9 L# `0 ~
        UF_print_syslog("\n", FALSE);
+ e$ M8 i5 C: Q* n8 i0 a; N        UF_print_syslog(call, FALSE);7 |3 B# R, R0 _4 F2 p
        UF_print_syslog(";\n", FALSE);
4 P" x% D/ ^. t5 W4 }        if (!UF_UI_open_listing_window()); ?: P! W  b0 v
        {
0 T7 l$ D$ D8 S9 k1 C            UF_UI_write_listing_window(msg);
( o' p8 |3 m9 r, @0 ^( H' s) w$ G            UF_UI_write_listing_window(err);5 z8 T. ?# t- I" f9 c0 Y) [
            UF_UI_write_listing_window("\n");8 Z$ v; W. V( J& f: P, \. V
            UF_UI_write_listing_window(call);8 l1 C* _. ]: r
            UF_UI_write_listing_window(";\n");: |, |3 K( L; T3 a6 l
        }
, j6 _) u1 v+ G5 C) r" N1 F5 X    }% [3 k& ~8 p) c- M/ Q- \- t
    return(irc);
0 B: T# z+ N" h5 T9 v. e3 L$ w, }}6 s' `$ F* H; ]: t" e$ b

. x- C8 F6 n8 }) l# S, }& L* V/ E/*****************************************************************************- L# s; S5 L# F  B9 [2 G. m; T0 k* g
**  Activation Methods0 F, p7 Q, h  P5 {1 _7 w, A
*****************************************************************************/% n; {+ m; f/ w) T( y1 Y7 W% s
/*  Explicit Activation3 }  v8 K* P( h4 m7 K4 v. f( E
**      This entry point is used to activate the application explicitly, as in
4 }: Q, P, c$ p4 F* f**      "File->Execute UG/Open->User Function..." */: m5 o; @# l& W- L
tag_t part_tag=NULL_TAG;; x! z2 \2 ~' p# l9 v
tag_t tar_tag=NULL_TAG;
; M$ t, t2 g  T& Fdouble origin[3]={0.0,0.0,0.0};
  w6 y- M5 z7 @! I$ H$ d! ?$ Achar *height="30";- N& C+ O1 _5 y: b3 \+ }) t" D3 [
char *diam="100";
# ^5 F. L: B& w9 Y7 B  gdouble direction[3]={0.0,1.0,0.0};5 _) G1 r3 i: B3 p) k$ [+ I3 o. N0 n
tag_t cylinderfea_tag=NULL_TAG;5 ^: a8 T/ F% y
uf_list_p_t edge_list=NULL;$ g2 J' q! Q. o+ p8 e- u( q
int edge_count;6 g1 r3 L; M  ~, u
char msg[256];4 S5 }; i, }- h* @% v8 j% L) P, b
int i=0;
4 }' K4 i# v, g7 c2 v1 ~: Ktag_t edge_tag=NULL_TAG;7 V. s& V0 _0 h
tag_t curve_tag=NULL_TAG;9 ^! ~4 b' }; y
tag_t point_tag=NULL_TAG;
" h5 ^' M5 {  Ktag_t line_tag=NULL_TAG;' g6 K. s1 M4 A/ k6 I: ~
tag_t point_tag2=NULL_TAG;0 q; s( O) @4 F3 I2 e
double cen[2][3];* Z- t/ i& J7 Z, Z0 u9 [' c% k
UF_CURVE_line_t line_coord;//最好不要定义为指针6 r3 ?/ N" c: f) M& z, e5 E( l
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
! L5 p; A" s; n$ I( t7 ]0 P! M  ~0 B{- k9 w# O$ t0 f+ a" E4 D
    /* Initialize the API environment */
; f* I: T& K. w3 K8 K+ m2 R    if( UF_CALL(UF_initialize()) ) / o9 W* |  C( c. X" i
    {+ M5 x1 |3 I+ y5 W
        /* Failed to initialize */  v" Z$ B  T' W
        return;7 l, [0 T4 |4 e9 x) Y' E2 z
    }
; ^2 D2 W9 j- w! c% o    0 D7 H+ T1 I9 G. k: B) |# A
    /* TODO: Add your application code here */
- X" H' \) I) j7 q+ N4 l$ N4 k //1.create a new part; i, w. F# [+ d4 l* {& M" b" i
UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);
# L1 I: u3 Y9 T) ^* g //2.create a new cylinder
+ j6 `8 _$ ~# N/ k UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);
2 \0 c* ]7 z5 D" Z# R- Y: { //3.get the edge list( g5 i" I5 y  @6 {" B4 {6 T0 n
UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);4 Y( {* @  V; @- g8 K
//4.get the edges+ s+ C' D3 f+ r5 o1 J% w3 {; G
UF_MODL_ask_list_count(edge_list,&edge_count);8 n6 u/ C8 W& w# q$ E5 Z
$ w* ~) g; q  O4 V( b
//5.get the centers
* I- {2 U5 B* j' P/ } for(;i<edge_count;++i){2 w3 }8 o' @. C9 [9 t3 v
  UF_MODL_ask_list_item(edge_list,i,&edge_tag);  a3 |; B2 |, k( v7 ?4 [
  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);
7 ]/ i. e2 Z  @# @% F  UF_CURVE_ask_centroid(edge_tag,cen[i]);
) s- U. G* q" s, x6 {1 o  { }$ {& l' n/ Z( u8 }
//6.create line
' }/ M- }) \/ I* h5 m; a //UF_CURVE_create_point(cen[0],&point_tag);/ e3 Q$ e. q' w+ m1 {( \' ?
//UF_CURVE_create_point(cen[1],&point_tag2);4 ?. ^' x# I9 R/ J, n
line_coord.start_point[0]=cen[0][0];' p8 c; T9 y8 b) ^0 y$ ~8 H$ o
line_coord.start_point[1]=cen[0][1];
( Q0 X2 z4 I2 @7 ]  ]7 B9 K* u line_coord.start_point[2]=cen[0][2];$ _4 i7 n, A! Y' b# p. N
line_coord.end_point[0]=cen[1][0];
% T7 y& s7 ^; ?  n0 X- W6 _% J8 e line_coord.end_point[1]=cen[1][1];+ [. v( f$ p+ V% s; I, E$ D( O
line_coord.end_point[2]=cen[1][2];/ c- }* @& r' S8 @' R
UF_CURVE_create_line(&line_coord,&line_tag);! s' X) Q* u3 g+ Y- J+ J: G- G
//UF_MODL_ask_list_item()
0 Z" H5 p& z( ~  O    /* Terminate the API environment *// I: k, r0 z% R
    UF_CALL(UF_terminate());7 \- z# k' j8 H6 v" _$ y5 E9 X2 Z, k" N
}
9 U* `; R5 N7 b3 q/*****************************************************************************/ S& f8 o& W9 j1 Q- X
**  Utilities' \; m% K2 }. O* S5 u
*****************************************************************************/. L0 T8 I9 j& r, {1 S
/* Unload Handler3 U8 {  z7 U  ~% H* P
**     This function specifies when to unload your application from Unigraphics.
/ d' N( C; Y% w**     If your application registers a callback (from a MenuScript item or a" G. M1 D" w1 v1 l" p) t" |
**     User Defined Object for example), this function MUST return3 ~* u9 l3 ~! u' @! p
**     "UF_UNLOAD_UG_TERMINATE". */
( s4 P7 f/ Y5 w( K8 Cextern int ufusr_ask_unload( void )& }5 e3 `' @; `7 m. \$ c: q
{
1 i, A1 o! A; {! m    return( UF_UNLOAD_IMMEDIATELY );
) v1 S- ?# d" b: _( F6 C}" X$ k! f' p+ E8 k, f$ |. X
! B# F; B1 G4 J1 K6 E6 u

评分

参与人数 1PLM币 +5 收起 理由
admin + 5 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2015-7-27 11:00:52 | 显示全部楼层
继续加油哦 !!!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部