PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

且听风吟 楼主

2015-7-26 22:12:05

请使用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

评分

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

    我知道了