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 2741 1

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

且听风吟 楼主

2015-7-26 22:12:05

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

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

x
/*****************************************************************************
. \# L0 E) T6 R8 D1 o**
  B6 P% @6 b- I, a  f2 N2 B3 [* h6 ~** test.c! X1 x" b1 v3 f  {3 ^
**. j' z/ j0 c1 j
** Description:0 b6 P4 m2 L9 N+ e6 ]
**     Contains Unigraphics entry points for the application.
" `/ ]7 b) I/ Y# A" s" k/ V**# v/ Q$ u) V* a; _2 H+ P( V
*****************************************************************************/( x5 [6 ~1 [& f; }  W( ~! n" A* g
/* Include files */( O) s/ W/ a1 q0 O: b
#include <stdio.h>
& V7 P+ T# A! W; _. j1 J/ Q#include <uf.h>
: |1 P( F6 k  G#include <uf_ui.h>: i) M" f. t7 T+ a+ j5 T
#include <uf_modl.h>
, I5 Z1 w1 L- o& Y, _#include <uf_curve.h>) t# D9 ]- @# T  e1 ]. D9 F
#include <uf_part.h>
2 k" \( a; Q0 @4 c#include <uf_modl_types.h>( L3 I' J0 H2 b
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
: P7 c1 V7 B# K7 d; k) D7 r) qstatic int report_error( char *file, int line, char *call, int irc)" b0 z" @% Z- K/ m. ^
{
/ S1 l3 F# L+ Y. ]: O    if (irc)
. ]7 }. @# G5 u3 B    {
3 s* y$ A  f0 d        char err[133],% D1 m1 E; d' i3 T1 `5 e1 w
             msg[133];
- W9 T' P! _. p0 R' t, W        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",4 K) y6 D' @6 Y
            irc, line, file);
' a" s5 k, K8 E5 n' ^( j  u        UF_get_fail_message(irc, err);9 r6 @6 u- }) c! V5 `  E" n; A2 D
        UF_print_syslog(msg, FALSE);' p+ F% W" ?. j2 j9 h, o
        UF_print_syslog(err, FALSE);5 s3 M2 o0 K; C
        UF_print_syslog("\n", FALSE);
1 g' N) |9 _0 s; f9 N        UF_print_syslog(call, FALSE);
) N% x) R+ {- z        UF_print_syslog(";\n", FALSE);; v5 \" P2 d/ G' D! x  a* s# P3 n/ R
        if (!UF_UI_open_listing_window())
; M6 B& l) M8 [: ~. S7 h/ N        {; f/ ?9 R+ A: X9 ~' h8 d0 Q
            UF_UI_write_listing_window(msg);
1 T; y3 z, x. P: m; I% l            UF_UI_write_listing_window(err);, K( L" b3 e* m) B6 E
            UF_UI_write_listing_window("\n");. p, ~8 m% u" @% v7 m5 S2 K
            UF_UI_write_listing_window(call);1 [9 }5 l! J$ M% e  J" x* G
            UF_UI_write_listing_window(";\n");
5 y) \. I: l$ C9 O- Q, n        }; n( ?9 ]! ~6 O( K$ z
    }
/ n! N0 [" F1 C7 M0 y* e5 M    return(irc);, [: W4 Z8 T& Y* ]% x
}$ [' U) \: W! S8 S2 K

1 T' S/ Z* `1 X- D( p/*****************************************************************************
! m8 @9 Y$ e: G" a1 e6 T' x**  Activation Methods2 z. i# \, }4 d6 Z/ b
*****************************************************************************/0 u/ I0 E! U( e  X; m& Q8 V/ L
/*  Explicit Activation9 ?1 Y' S7 ]4 o8 Z. I
**      This entry point is used to activate the application explicitly, as in$ ~& x  E8 {3 ?* N7 ~( C
**      "File->Execute UG/Open->User Function..." */6 f5 e" n, d: V+ x' z8 [; _
tag_t part_tag=NULL_TAG;
* U, H# j0 `' ftag_t tar_tag=NULL_TAG;. [7 B) @% t  s: m1 A2 w/ U
double origin[3]={0.0,0.0,0.0};, a2 u0 F0 ]. v- N/ X
char *height="30";% O. f. {- q, k
char *diam="100";; Z  u! C0 |8 M% c3 A5 \
double direction[3]={0.0,1.0,0.0};
4 U/ G. [; e7 r: c' gtag_t cylinderfea_tag=NULL_TAG;
4 R' t) v9 G/ P- ]/ Tuf_list_p_t edge_list=NULL;
0 E* T2 l, p6 G1 l3 A" aint edge_count;
1 ~1 {- G* r6 A7 p# ?% m1 U% l  Lchar msg[256];' t$ a1 r  o" q
int i=0;- K% X8 m& k0 y
tag_t edge_tag=NULL_TAG;4 ~. r" h9 k. H6 M& ]
tag_t curve_tag=NULL_TAG;3 A) L+ r. }; k" s
tag_t point_tag=NULL_TAG;
* }1 _+ a# N! R( a% k3 qtag_t line_tag=NULL_TAG;. E+ Y$ j8 E2 q* b* Y/ h/ z4 J
tag_t point_tag2=NULL_TAG;, u* o& {6 d9 g$ t7 H/ E. h
double cen[2][3];
: `7 m& ^& M8 m2 CUF_CURVE_line_t line_coord;//最好不要定义为指针3 Y( O9 M) g0 ^/ D" ?
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
$ j. t& |4 m6 a/ l: T3 U{
8 L) g/ `, K. q- }$ ~    /* Initialize the API environment */
& M; e* {, a6 r3 k7 I% `, t" _    if( UF_CALL(UF_initialize()) ) 0 [( @2 k* V; Q! |1 P! W
    {
% c3 v% Z3 X% O4 }+ j7 R        /* Failed to initialize */
$ S1 E: _$ C+ c* x& O$ E2 K        return;- I1 z: H5 X- d/ o
    }
% |7 X$ s4 y8 @/ V/ n. o; v   
% D( u, j$ }. _6 P" O    /* TODO: Add your application code here */
; q8 t$ w0 K, H. n! z% g* X //1.create a new part! G( T( Q3 Q: {
UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);+ l. y- ~* L, I5 s8 v5 s
//2.create a new cylinder
" ^' m) r5 f* r, e: \) h  _$ ~ UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);# ?3 w& u& Q5 o% k" H- [) F. Q! W
//3.get the edge list# U2 `( i* G& S
UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);) J" s& T: [) z/ u1 k. s" @0 j# Z
//4.get the edges( b5 |* D2 ^$ F1 i( z0 O
UF_MODL_ask_list_count(edge_list,&edge_count);+ X1 w2 `2 I" \% o
/ n' P  ?; a' Y
//5.get the centers/ M! w9 V; U1 M" B# e  ?
for(;i<edge_count;++i){& G. K5 j, v9 E
  UF_MODL_ask_list_item(edge_list,i,&edge_tag);
- \" o% [. F% u5 i  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);: W6 F2 F. h* e
  UF_CURVE_ask_centroid(edge_tag,cen[i]);9 O0 |' M! G" C3 j$ o
}1 x! c2 U' ^$ B: N$ C
//6.create line
2 P' Z4 X5 x" Y3 T //UF_CURVE_create_point(cen[0],&point_tag);
( p& T/ B9 t# T1 F //UF_CURVE_create_point(cen[1],&point_tag2);* }. V3 \7 H- A3 o/ x- B
line_coord.start_point[0]=cen[0][0];
) B1 M/ V1 z' R  I1 l line_coord.start_point[1]=cen[0][1];
; f. O/ Z# B4 N/ K2 f1 c! a) W6 ?3 D line_coord.start_point[2]=cen[0][2];
1 A1 M) I: o8 V2 e1 F line_coord.end_point[0]=cen[1][0];
' G4 c# Y1 E0 Q8 g7 p line_coord.end_point[1]=cen[1][1];
% F9 r; g8 ~3 m& x9 l; | line_coord.end_point[2]=cen[1][2];
# ^  m. _0 }) x2 L8 c! H' c# M UF_CURVE_create_line(&line_coord,&line_tag);/ t" m, P# V0 P, X- I% V
//UF_MODL_ask_list_item()
; W- Q4 i& b9 W  u& o  f    /* Terminate the API environment */
7 ]% F8 x+ G7 n; o# G% K0 ^    UF_CALL(UF_terminate());
% P# G0 l1 @6 {' H1 Q9 N2 f: R9 a; p}
& g- j1 j) v& L/ f0 m( O/*****************************************************************************0 x) g$ A- G  A: v
**  Utilities( H5 L9 B7 z& c9 T. _, ^: T! b+ E
*****************************************************************************/- G) {, f" S5 V  t( k3 w
/* Unload Handler
) H" H! y. }/ B6 u**     This function specifies when to unload your application from Unigraphics.2 f1 T; K, N3 S) M
**     If your application registers a callback (from a MenuScript item or a
3 Y: |. O4 g3 _2 w**     User Defined Object for example), this function MUST return
( Y: D3 S- d2 A( Y  M**     "UF_UNLOAD_UG_TERMINATE". */1 B7 J* P; q4 z9 u  m& W5 ^/ j
extern int ufusr_ask_unload( void )
, A& Q" S: S: `, U: {$ x! w$ H{
  I5 s3 @7 V3 h6 r3 `$ o5 I    return( UF_UNLOAD_IMMEDIATELY );4 G+ o" Z5 G  v- [
}
9 c# E& W9 \/ o( C: M6 y; @$ H, A3 {* R- e

评分

参与人数 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二次开发专题模块培训报名开始啦

    我知道了