PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

2015-7-27 11:00:52 2763 1

且听风吟 发表于 2015-7-26 22:12:05 |阅读模式

且听风吟 楼主

2015-7-26 22:12:05

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

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

x
/*****************************************************************************
3 Z8 N, U; s& f6 G6 t0 \/ I, n**
! I/ {$ t8 ?+ o; G0 c** test.c# N+ e- B' K2 ~' @2 v# W
**
" \* r$ B! O3 J. @** Description:0 c+ h5 n. Q" m: b% ^2 a; z
**     Contains Unigraphics entry points for the application.
. K; H8 W4 G: A**
& ?' U, ]' ]1 L" N*****************************************************************************/
# W. O; ?' Q2 ?4 X/* Include files */8 n* O" \+ @6 T! m4 `
#include <stdio.h>* X! M- c. \1 C* j; U1 g( n1 l) q
#include <uf.h>  F( b* M$ x) |$ e% D
#include <uf_ui.h>4 h+ |4 w3 C/ _/ S( P
#include <uf_modl.h>
: p0 D9 P( f' l5 Y+ e- g#include <uf_curve.h>
+ ]: T" X) x# _+ ~) u1 ]6 q7 S! _1 O( Z#include <uf_part.h>" F8 [4 T/ x4 O' j  q. p$ }6 k3 _* z
#include <uf_modl_types.h># F; {$ Z: n  ~; b" V
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 y* }' g( \, E$ y  h2 Istatic int report_error( char *file, int line, char *call, int irc): H$ q3 a  Q6 e1 s7 L0 y
{  D- J, {& \8 s. w9 y# \- }" j) Q
    if (irc)/ q& Q+ K; B1 f
    {
+ U8 }4 E) c7 |        char err[133],
4 x+ y0 x/ p$ c) y# z             msg[133];
0 v, t. Y3 f% |6 z8 ?+ e" ^        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",4 n; j: W4 O$ q0 j8 T; l. }3 B
            irc, line, file);4 w3 m* K0 g/ N: m+ C0 s! e, L
        UF_get_fail_message(irc, err);+ P. i3 J/ ^4 B* a; |8 O
        UF_print_syslog(msg, FALSE);: l' v/ P; z# i, k+ R3 \
        UF_print_syslog(err, FALSE);1 R6 J- ~& m: B( A. V
        UF_print_syslog("\n", FALSE);
  i+ _) E2 R7 M        UF_print_syslog(call, FALSE);
2 E  @* @: P$ ~        UF_print_syslog(";\n", FALSE);
7 ~8 r3 [/ h; Y- @        if (!UF_UI_open_listing_window())
) d3 q8 u9 Z8 @3 }        {- o* F( @; p; l+ e! M
            UF_UI_write_listing_window(msg);
) y( k1 ^7 C5 ]4 e) b            UF_UI_write_listing_window(err);
8 B$ C5 X4 z) F7 ]4 c            UF_UI_write_listing_window("\n");# \0 B" X- h& F2 E1 ]
            UF_UI_write_listing_window(call);9 v: M' M  m& }* w5 i7 K, d
            UF_UI_write_listing_window(";\n");/ C4 M& i' M& V) ?# N& y7 U. j
        }
- p+ t9 |3 R5 k7 n" e3 j8 x  u- z    }7 _5 \0 i, n: I3 S
    return(irc);
- P) y( W  ]( e" r* I( h9 n& d}/ o( {4 ^2 {9 }3 E

( u4 h. f+ q; p% T( }  O5 z/*****************************************************************************- ?+ D  M! z& F# s4 `
**  Activation Methods
+ c% e2 L& {6 d6 i*****************************************************************************/- N. O: x: C' l* }' Y- {- z' @) ?
/*  Explicit Activation% F* U  q' i. w
**      This entry point is used to activate the application explicitly, as in
: A  k' v9 G9 {7 E. h  J**      "File->Execute UG/Open->User Function..." */
: C6 m/ M8 G: I% x# M' |  h* z. gtag_t part_tag=NULL_TAG;
2 N0 E8 A8 s( u' s) g' L( j: qtag_t tar_tag=NULL_TAG;
  v4 ?6 k' m& b7 Adouble origin[3]={0.0,0.0,0.0};/ f4 m) D" C* x. D$ u* o) p" N
char *height="30";4 e7 s" q3 L5 \% H" A- E
char *diam="100";* ~7 {' _" ]% x1 H1 X
double direction[3]={0.0,1.0,0.0};
  R0 f' k- O! `$ Qtag_t cylinderfea_tag=NULL_TAG;1 T! f( \# Z9 O( x
uf_list_p_t edge_list=NULL;
/ D* D7 k" C: h& Z) e/ q+ Uint edge_count;2 O" e5 x$ d7 U0 N' \+ Z
char msg[256];
9 M1 w/ p; u8 W) cint i=0;
7 N% a& ?$ ~: v, W+ u% vtag_t edge_tag=NULL_TAG;
8 }2 x8 n, e" {9 `  x9 Ltag_t curve_tag=NULL_TAG;
3 O) q; c+ d# |. ^tag_t point_tag=NULL_TAG;/ C8 m/ a4 ^! M9 Y! I* x4 |1 H
tag_t line_tag=NULL_TAG;
2 Z4 z& v. E& W# w5 `; b: Btag_t point_tag2=NULL_TAG;, `8 i$ L; A" J& s$ w
double cen[2][3];
: `% n  f% ?; IUF_CURVE_line_t line_coord;//最好不要定义为指针/ \1 j2 s- I( I0 T# ?
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
: j6 D) R( n1 E& K/ z1 @9 A! I) s9 `{
3 @8 ^5 T& H& @* B5 s* }2 N    /* Initialize the API environment */
+ V0 }" T4 }% m; m. S  f7 [! E9 l    if( UF_CALL(UF_initialize()) )
0 X5 P+ J+ |( ]7 c- B    {
3 _  g( X+ ~6 f" \: L! |$ ]        /* Failed to initialize */
# M& z9 Z: w+ P" h, y# d8 ]2 W        return;6 L! J- l" Q; s% L; k
    }
% u( E" v  H0 G/ A# |   
8 o8 L' F3 e, X1 {    /* TODO: Add your application code here */
7 T: O# l6 L3 y& G! n0 Q //1.create a new part- z+ x. W3 G1 x1 I
UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);+ j" {: v6 A- f
//2.create a new cylinder
* s0 F3 f) T% ^/ @2 H) a UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);& f4 K" J* t5 [5 h1 P  o
//3.get the edge list! \8 M. V) k+ B2 D! O1 D- G4 J
UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);; L/ Z: N! p* o3 ^3 X
//4.get the edges% _- {* n6 W+ G; u
UF_MODL_ask_list_count(edge_list,&edge_count);' L# P( J9 b3 o
* ?4 W6 a0 B( @; z) _5 H* c. |  I
//5.get the centers) |7 E9 I9 w5 z8 B
for(;i<edge_count;++i){4 e" p; g& \+ p0 n: {
  UF_MODL_ask_list_item(edge_list,i,&edge_tag);4 D% X4 E' }+ V) j
  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);
4 J' Q; Z" J/ X; T, @  UF_CURVE_ask_centroid(edge_tag,cen[i]);4 e( L# y" L( w8 @5 J" w
}: M7 F# A, M8 T4 K. O2 y; Q  {
//6.create line  D0 _( N" W- j" i, o
//UF_CURVE_create_point(cen[0],&point_tag);2 Q* G, h! u' N5 s
//UF_CURVE_create_point(cen[1],&point_tag2);" E, N) i) k* l- s- d
line_coord.start_point[0]=cen[0][0];1 h9 c' G2 f, D5 I$ _, P& U, g9 w
line_coord.start_point[1]=cen[0][1];
: U9 k- K* `; [; \$ }, @ line_coord.start_point[2]=cen[0][2];
7 Q" h6 R. ~4 P& w; ^2 ` line_coord.end_point[0]=cen[1][0];; `. k  f5 m. c* u" \
line_coord.end_point[1]=cen[1][1];
" V6 x) n* Y4 L" p4 c line_coord.end_point[2]=cen[1][2];
: l7 ?+ j5 @+ g/ }/ K2 m5 f UF_CURVE_create_line(&line_coord,&line_tag);
6 N  R5 N, t4 t& o6 X //UF_MODL_ask_list_item(), F: e, ~1 H+ e8 w) Q/ u
    /* Terminate the API environment */& n0 A( H2 U7 t' S0 c% W8 }
    UF_CALL(UF_terminate());  i3 u) [$ C9 `
}
4 P3 R2 s6 U" v) L$ ^8 ~' P/*****************************************************************************
4 L% e5 S6 @* O' h1 Z**  Utilities
; x0 f6 ~8 f0 E& |. e: u) |* c' i( |*****************************************************************************/1 I& n  G* [% w* Q
/* Unload Handler7 U/ J0 I  {* g2 p0 y9 Z0 E$ r% y
**     This function specifies when to unload your application from Unigraphics., b# V- g1 z; b! u" K/ x' ?
**     If your application registers a callback (from a MenuScript item or a5 m# Q) Y: n7 `2 V0 I
**     User Defined Object for example), this function MUST return
5 j; @* u* \$ Y- j2 w**     "UF_UNLOAD_UG_TERMINATE". */
! G. {) M9 v; n% K4 @  O7 `! sextern int ufusr_ask_unload( void )
5 ^0 e8 p6 l. K, F{/ m3 N; h. K$ p/ o$ f  e! D# W
    return( UF_UNLOAD_IMMEDIATELY );
& l( [2 g; p7 S; t}. v( J2 g4 A' D, Y/ [
3 n6 J: G6 N& @! H3 Z5 Z

评分

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

查看全部评分

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

使用道具 举报

全部回复1

admin 发表于 2015-7-27 11:00:52

admin 沙发

2015-7-27 11:00:52

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

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了