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

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

且听风吟 楼主

2015-7-26 22:12:05

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

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

x
/*****************************************************************************
- t/ w3 G) _# o$ m**# C/ z6 X# J- g. }
** test.c9 T( ^# S6 s0 Z. h' O
**6 A) k: z6 Q$ y: M
** Description:3 \" [  Y5 X( H5 f' T9 e% V" O
**     Contains Unigraphics entry points for the application.
5 y0 s/ t  G- `, D& n6 ~8 n, r**7 [0 d: F2 R8 T3 [& q
*****************************************************************************/2 a# i/ r/ j: T0 e' V: F) j0 T
/* Include files */+ f0 _+ a& h4 i' S
#include <stdio.h>4 \' l0 A! M6 I* @1 w3 Z1 o) s, g. M4 c
#include <uf.h>! W" w0 f8 H3 T" Q( W/ q
#include <uf_ui.h>
/ o/ ?: P! c. x# W$ V#include <uf_modl.h>
1 m: x3 U+ Y7 F) p#include <uf_curve.h>
5 C3 j4 v5 g* H; ?#include <uf_part.h>' Q' H! y. y, w0 V$ I( T2 o6 q# ?
#include <uf_modl_types.h>7 F4 v) c$ `! {
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
- F; {' `1 x, ]/ N+ Bstatic int report_error( char *file, int line, char *call, int irc)7 H# K1 O" g) j, b
{- K$ r& _8 c1 V
    if (irc)
3 N+ n" |* y3 J    {
* s2 ?; @3 B6 @3 [        char err[133],4 F4 U! `7 _! r& T
             msg[133];
+ z% z& n0 r) ?7 j( @        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
3 z# u& J  w! V  H+ G) U0 H            irc, line, file);1 V. k3 j4 s  F( d- J7 Y* A( c
        UF_get_fail_message(irc, err);3 W' d' L' N; z" m0 K
        UF_print_syslog(msg, FALSE);5 a% k/ R* N% }1 u0 w1 ~
        UF_print_syslog(err, FALSE);
3 y+ J, n; u$ z' \! k9 W  b. o        UF_print_syslog("\n", FALSE);
* j; _7 W9 A5 [; l8 Q/ v        UF_print_syslog(call, FALSE);
" A* _+ Z0 E& Q9 t4 g. A1 Y- I        UF_print_syslog(";\n", FALSE);3 v! S- N1 j3 d3 p# ~) ^* J
        if (!UF_UI_open_listing_window())6 y0 e0 H6 m3 d( F6 M( n
        {1 N# m3 q$ \/ }% _! f5 k2 B
            UF_UI_write_listing_window(msg);
# t% u/ ~8 \/ P            UF_UI_write_listing_window(err);: L- j! ?( d# o) i, T
            UF_UI_write_listing_window("\n");
( Z: s2 x* A2 e9 p8 `            UF_UI_write_listing_window(call);
/ B9 A9 {, e' {6 E$ {( F            UF_UI_write_listing_window(";\n");
; L, _, j- q& d3 [3 i' c0 w9 I' @3 d        }2 ]( H& I% a. O& a; O5 w7 {# o
    }5 l7 H% r' r8 U' O/ N
    return(irc);8 s) p; Y" j+ N) G! c7 o
}% }5 e4 ^. \! S+ b
7 j5 l5 ?1 G' u3 a
/*****************************************************************************
9 O' e9 _0 T$ s**  Activation Methods
+ w0 a) D( n+ j: }3 l; e*****************************************************************************/: Z1 g; I" K+ }; i/ x4 J8 T
/*  Explicit Activation
3 E# D) [% M3 u0 O5 X**      This entry point is used to activate the application explicitly, as in* Q- R+ e9 \( R( U" `- T
**      "File->Execute UG/Open->User Function..." */
2 S/ I* U7 H8 ltag_t part_tag=NULL_TAG;8 O5 k! w2 k, p" p
tag_t tar_tag=NULL_TAG;
. v6 f; g# o' Ydouble origin[3]={0.0,0.0,0.0};7 h/ N* z* E" d) Z' J" n6 d  A
char *height="30";, I0 ?1 t* [: C  d$ Q' U. P
char *diam="100";
% d) Y- t* J7 \6 w+ hdouble direction[3]={0.0,1.0,0.0};( d0 M- N6 \: Q
tag_t cylinderfea_tag=NULL_TAG;2 \; @2 u7 G! U- D& o% C* e
uf_list_p_t edge_list=NULL;
4 `5 N" q" F4 G# d# p0 o8 Hint edge_count;
% u5 |3 [: H" p1 cchar msg[256];9 Z1 `5 u& W/ \7 w( b
int i=0;/ p/ Q3 H6 \7 q1 V4 }
tag_t edge_tag=NULL_TAG;
( ~4 L) s8 V: }2 ^7 A! w/ A* ptag_t curve_tag=NULL_TAG;
& X4 w/ ?! b3 _' a1 _tag_t point_tag=NULL_TAG;
( z: t& {0 T& W& btag_t line_tag=NULL_TAG;6 Y4 H/ J3 G* W5 g# X$ o9 v
tag_t point_tag2=NULL_TAG;! `4 g0 m! i1 y( n! n5 t
double cen[2][3];0 U4 d% k& G" i0 v/ w9 {) S
UF_CURVE_line_t line_coord;//最好不要定义为指针
' t8 {* x- y0 pextern DllExport void ufusr( char *parm, int *returnCode, int rlen )/ Y0 g" ?0 m% P
{
, r/ [- {& A3 o/ v" {& f    /* Initialize the API environment */* f. v1 x. W  E, W2 o1 U
    if( UF_CALL(UF_initialize()) )
, C7 v9 ?0 y( M1 r    {' p7 A2 ~, e: h% j- B6 p
        /* Failed to initialize */
* z# X  @* C! r8 S1 v) o7 `        return;
& n" ^& R$ v  E: _  ^    }" @5 }0 M$ i5 n7 m  r4 O% @) e
   
6 O; w& f. K( L0 D  i+ y8 ?    /* TODO: Add your application code here */
. F3 P: L' ]: |" O- a //1.create a new part/ p8 U# w) ^" S* e$ h8 o
UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);
( y9 a. }4 P! d3 J9 f  D- C //2.create a new cylinder
' Y9 K* O7 [8 |  ? UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);
5 D9 u  k% E" k; B: @, e- _ //3.get the edge list7 |' i( f0 M+ i8 c. Y! S, N
UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);5 [9 c3 _- J$ J! C6 J5 j) F
//4.get the edges! q; Q  e7 H7 w! E$ Z" K6 ~) ?
UF_MODL_ask_list_count(edge_list,&edge_count);
; f; N8 |7 {5 [: U
  b- U* x8 G& G/ F+ V //5.get the centers' B" @6 v: X- R3 R* q1 }  K
for(;i<edge_count;++i){& x1 `% k& B  e" v& D' G/ U. @
  UF_MODL_ask_list_item(edge_list,i,&edge_tag);
7 y. Q3 i! u7 M) i  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);$ ^2 D+ V; s$ A5 [+ g' ~! U( b8 @
  UF_CURVE_ask_centroid(edge_tag,cen[i]);: M- c; D* W, g" z- t7 W
}
7 p5 F# G  Q( j: x //6.create line
* J9 V) [# j) J$ W% U7 h$ M //UF_CURVE_create_point(cen[0],&point_tag);! b& [3 C5 N* b. O7 v9 h' \/ {
//UF_CURVE_create_point(cen[1],&point_tag2);, g' N+ v* }2 ?" c) ~: l
line_coord.start_point[0]=cen[0][0];% N. `3 m+ Y7 C9 ^
line_coord.start_point[1]=cen[0][1];
% @/ ]6 F9 g# U4 P line_coord.start_point[2]=cen[0][2];) V; E  |, L6 P3 R2 Q
line_coord.end_point[0]=cen[1][0];
& ~/ f1 n8 J7 R- i line_coord.end_point[1]=cen[1][1];
  o8 j& M* u" ^/ ^4 p' z$ A& u line_coord.end_point[2]=cen[1][2];
; T, r; t- M9 V* n3 `# s8 ]" S UF_CURVE_create_line(&line_coord,&line_tag);( a+ X# L& i+ Y3 Q
//UF_MODL_ask_list_item()) R; w0 O5 p  t: E" _! `
    /* Terminate the API environment */9 Y' P& e+ M! A9 l( t
    UF_CALL(UF_terminate());% R& F8 c/ x. i' T& M& r
}
$ Z0 G8 J$ A+ I/ M: A/ x/*****************************************************************************
7 S+ z4 N9 f  U. g& [, v' Z7 M9 e**  Utilities/ f6 K9 w" T3 a9 P8 }" v6 ~
*****************************************************************************/) I8 m; ]3 V, Z+ z
/* Unload Handler3 l: p8 |/ v5 `2 R
**     This function specifies when to unload your application from Unigraphics.- c6 Z0 j* \: S+ \- Y
**     If your application registers a callback (from a MenuScript item or a
6 {( X7 x; ^3 a, _' U**     User Defined Object for example), this function MUST return
) D+ o' {7 P4 v; p8 m**     "UF_UNLOAD_UG_TERMINATE". */
. }4 r- q- A6 Z' yextern int ufusr_ask_unload( void )
3 D1 f: \) g, n' ?% v* J- [{
0 F" q2 z1 g- e    return( UF_UNLOAD_IMMEDIATELY );
/ N: ~. T% H! N9 c}
  \8 M4 U0 h( R3 o2 d
0 b$ ?, L8 {/ f: B6 m, {. o& A1 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二次开发专题模块培训报名开始啦

    我知道了