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

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

且听风吟 楼主

2015-7-26 22:12:05

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

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

x
/*****************************************************************************
) v6 Z2 ~( E# F**
: @! J  i) C+ y. _' R4 c) W** test.c
+ p, T8 w) m. r, K6 h**
- t1 w5 W. P- y% P! d8 n4 x** Description:  S5 I) M( Q2 I, U4 I% W! O
**     Contains Unigraphics entry points for the application.
$ f8 O$ t& w6 j( o. O*** m0 }  }& u" w/ A0 G4 M
*****************************************************************************/+ g+ J: p- v$ }2 y
/* Include files */
2 m$ q/ X( |9 G+ z  |#include <stdio.h>( ~. K- Z. d: u
#include <uf.h>& Y/ X* z8 m- T" U" a
#include <uf_ui.h>
# A9 S  Y$ p7 t  v3 S1 `8 A#include <uf_modl.h>1 J- y) m3 Y) b% Y2 `8 Z
#include <uf_curve.h>" ~3 ^1 E3 C9 i( T* I
#include <uf_part.h>
/ `+ }2 e0 L" T, K2 Q#include <uf_modl_types.h>& X' `! ]) v, k- ~+ m
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))2 t! u! d6 s2 @& r" S6 F
static int report_error( char *file, int line, char *call, int irc)
: J0 E9 W  i$ h; D  W' a{5 @+ @; R7 }# \# n; ~" ^
    if (irc)
  E2 n/ g: \0 j" h* T    {3 k' e' K( Y6 {+ |: v  u5 ]
        char err[133],! {- ^( @8 U7 P' h: p
             msg[133];6 |8 o% M4 ^8 L% D; b" H1 j
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",, j% d# F6 y6 ^  t1 h. ~# q' \& [
            irc, line, file);$ w6 V- y" u: U  m3 {& @
        UF_get_fail_message(irc, err);
4 k0 R3 F# O7 \) ]* p        UF_print_syslog(msg, FALSE);* y# p' {( N8 ^3 M+ B
        UF_print_syslog(err, FALSE);
/ `3 [! Y/ P" N  D4 `- M( N        UF_print_syslog("\n", FALSE);
! x/ k5 g1 z6 K  b% G8 U! x        UF_print_syslog(call, FALSE);/ o2 X* K8 L; e# y7 G
        UF_print_syslog(";\n", FALSE);
5 _' p: ^1 B: ?" S        if (!UF_UI_open_listing_window())$ D% T3 P7 E6 ?- G9 O3 P
        {- Q/ j& W; u$ q! i, u
            UF_UI_write_listing_window(msg);
% Y0 |) v8 [* U6 k            UF_UI_write_listing_window(err);, p, P' r/ F" L8 t( b
            UF_UI_write_listing_window("\n");
2 c: D2 f( U( |5 b3 {! n            UF_UI_write_listing_window(call);7 t( o6 F6 [) |* b0 [" s
            UF_UI_write_listing_window(";\n");! V. |5 V0 M6 Q1 [  c( ?' ~
        }# p% Y- y9 A- D6 ?) u) ?; M
    }+ z$ m& ?8 V- I
    return(irc);: X! Q+ S" M/ \2 `4 a# i  o! i
}7 f0 h8 ~9 x2 ~  ]
% I1 ?/ M! o" I
/*****************************************************************************
1 K4 ]" v- [# d2 c# W& S! u**  Activation Methods
2 g: l' O" g3 W' ?: r3 z) i2 k% f*****************************************************************************/
5 V! N8 Z2 \0 L! `1 i3 l/*  Explicit Activation
" W9 @  w, C' @0 r* o! W**      This entry point is used to activate the application explicitly, as in" y; T& R3 V  T. G/ [& g" I
**      "File->Execute UG/Open->User Function..." */' ~$ e' q# G( \; M$ |* @& |8 Z
tag_t part_tag=NULL_TAG;8 U$ [2 p9 U! H0 C% O! w# F
tag_t tar_tag=NULL_TAG;
* v' R8 ?) Y: m( X2 S! Gdouble origin[3]={0.0,0.0,0.0};
# J7 Y. [% d: @) O* K* R, ochar *height="30";
- i6 E! ^( O; N" _5 I8 Y. m' @' z& Bchar *diam="100";
! p, {: g' a' Y5 L: m$ g. vdouble direction[3]={0.0,1.0,0.0};# }% G: f* j9 z9 X
tag_t cylinderfea_tag=NULL_TAG;8 b9 `% @3 y) _- G4 G# _
uf_list_p_t edge_list=NULL;) z" c8 P  y: r% V) h
int edge_count;, Q9 v: p" o8 d* Y$ d
char msg[256];
4 g4 w0 s  n% ~/ m, Zint i=0;5 W7 k; n" d% v6 U1 E
tag_t edge_tag=NULL_TAG;" N+ K1 f2 a# a1 O8 ~( O
tag_t curve_tag=NULL_TAG;
) z0 e+ [, r2 P1 ]tag_t point_tag=NULL_TAG;
& E' c& Z( f0 M) mtag_t line_tag=NULL_TAG;
' @9 [' a8 q3 Ptag_t point_tag2=NULL_TAG;
0 l# H9 n* Z1 B3 R1 cdouble cen[2][3];4 l& B" q* [! Z
UF_CURVE_line_t line_coord;//最好不要定义为指针
4 Y  R, u& }" C; g) i" hextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
. C: R0 ^* J/ r9 H9 i1 V, U$ G2 Z{
4 q0 }' G1 ?( x8 J    /* Initialize the API environment */
2 [' b. q4 E- Y2 g' E' I    if( UF_CALL(UF_initialize()) )
6 r9 F2 G$ q" ]% z2 V    {2 t, n$ A, G& |2 @
        /* Failed to initialize */
1 b' k3 M+ w" M        return;6 |0 s4 }4 x- x. O; q  k2 g1 L
    }0 G7 l4 \* Z4 e$ S/ J# H
    ( T/ Z6 C$ S- |& Z% R
    /* TODO: Add your application code here */
. G, G8 f" @3 [6 e9 l* c$ v //1.create a new part
. P6 {1 J: j, V  o8 d7 c. n+ M UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);9 r% @/ X$ b: z4 r" S
//2.create a new cylinder4 V& [% v1 r: ]& w% ?
UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);
7 B% J# K2 B* v- Q4 J' k //3.get the edge list
( f% B9 L% E5 r3 U. V2 c UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);3 @; l% Z1 B) ^6 A
//4.get the edges7 z- p8 \( G, ?
UF_MODL_ask_list_count(edge_list,&edge_count);; c* P& n9 c2 `& K& T& O2 k0 ~$ F
) ^* F' @! w' |5 u  d
//5.get the centers$ n/ A. E: a* X1 _  V
for(;i<edge_count;++i){
9 E! c, v# M1 Z2 Y  UF_MODL_ask_list_item(edge_list,i,&edge_tag);0 M. p  ]! A" x- `* y' ?( ]
  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);
5 n6 P2 F5 n6 V4 f8 p) q  UF_CURVE_ask_centroid(edge_tag,cen[i]);
7 G  [" t% F0 m6 @ }! T' H9 N1 u" r' ?, T+ o8 H- O( {
//6.create line
. c# Q6 G' b3 ~  B9 W4 F6 ^ //UF_CURVE_create_point(cen[0],&point_tag);
# z: H0 h$ ^  h1 O //UF_CURVE_create_point(cen[1],&point_tag2);. F/ K) w, O4 u1 E) ?/ H  f
line_coord.start_point[0]=cen[0][0];+ _( W! T& T$ ^. H( j# y$ T0 e$ t
line_coord.start_point[1]=cen[0][1];( T/ {5 V: H" W3 Y
line_coord.start_point[2]=cen[0][2];
9 C* D; ~4 v/ A! o  g1 A line_coord.end_point[0]=cen[1][0];
/ \2 A  S9 K# m3 t* u$ [ line_coord.end_point[1]=cen[1][1];
0 n: h0 S3 ?0 K% Y1 r1 a" l: y, y6 }# ? line_coord.end_point[2]=cen[1][2];
: q9 G% |1 q+ ]5 A5 E UF_CURVE_create_line(&line_coord,&line_tag);4 P+ x; K4 a9 B% s. L" f
//UF_MODL_ask_list_item()& S- \( C4 F. t3 e2 F! W& f
    /* Terminate the API environment */
& R. _; c  D' W/ S# y    UF_CALL(UF_terminate());/ o, i4 e  G; b! p0 E
}
; o8 V) l4 v2 j" [, |0 u# Q& S+ H/*****************************************************************************# C( ^: |. A0 D! K6 L, T
**  Utilities4 e1 E+ P( g6 m$ ?
*****************************************************************************/
' H: g5 J6 R; I& Z/ |7 }( `/* Unload Handler
2 Z) z! @- L! F+ o6 |**     This function specifies when to unload your application from Unigraphics.- I8 O" }0 A* j! p( |$ Z' W
**     If your application registers a callback (from a MenuScript item or a
1 v' I2 u# O. s" i0 R: I7 C8 y**     User Defined Object for example), this function MUST return& D) [6 \# v. e' J& O
**     "UF_UNLOAD_UG_TERMINATE". */0 T4 ?/ }$ y( U4 t- X7 Q$ |
extern int ufusr_ask_unload( void ); \! |( v! S2 d0 X
{
0 q# K8 I. }0 E# O* y+ y" Z    return( UF_UNLOAD_IMMEDIATELY );
* f: o  g% @: U- p& N}8 x5 B2 j! x. {/ f
4 L8 U/ C: q: I/ w' l8 u' U

评分

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

    我知道了