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

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

且听风吟 楼主

2015-7-26 22:12:05

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

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

x
/*****************************************************************************
( L$ f8 l% w" s  F" E* b9 B**
1 {5 ]! p. C* Y4 j5 q' B** test.c- s- e# w9 k. ~2 n, x+ e8 l
**
8 m. t$ M) M4 |3 P* K3 X7 F" d** Description:
' Z$ c) w! n  I( }6 x( V**     Contains Unigraphics entry points for the application.3 _% e% A1 R; [# @! V
**" `( b; F$ i6 ^8 f2 @
*****************************************************************************/
3 s& Y, ~3 y+ ]  o( w* w/* Include files */& j" a. }6 s, D, C- x8 a  O/ c
#include <stdio.h>5 e: ?/ @+ d7 x. R8 q) i  R# A
#include <uf.h>" D4 @; M. G) R1 H0 r; l
#include <uf_ui.h>
$ y  q4 G- D0 W) L#include <uf_modl.h>/ S: E( d' T( h  V: t5 ]/ c. d% x
#include <uf_curve.h>
8 b5 |, n7 S, D! |#include <uf_part.h>6 j0 ^. @- l9 A3 j
#include <uf_modl_types.h>
) ?- {7 z& n( {5 Z6 C0 G+ J#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
  h" |( {1 q5 ?0 t. F" K% @) jstatic int report_error( char *file, int line, char *call, int irc)
( \# |3 _! m6 d# W- `  d) i, h{
: W- G9 S& L4 n; D    if (irc)
1 C0 |8 C+ u# P+ Z) C6 E! u    {9 g! }  H1 {) N' a4 b
        char err[133],
7 U) V8 l2 b) Y             msg[133];; f! _& ^. ^; B8 ?9 ?& f
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",5 Q2 E$ q* g/ r4 L
            irc, line, file);; n! K2 f' r: K1 \, r  K6 Q5 M( R
        UF_get_fail_message(irc, err);3 H' r; U: t8 D
        UF_print_syslog(msg, FALSE);
2 o6 h& Z, n- S        UF_print_syslog(err, FALSE);
1 H9 b7 F" {" T1 U0 D# @3 O        UF_print_syslog("\n", FALSE);: X) I0 k& i# x7 I
        UF_print_syslog(call, FALSE);; }2 G! e& x+ y$ S+ ]2 {5 N
        UF_print_syslog(";\n", FALSE);0 x! N8 e% V+ m" |4 _
        if (!UF_UI_open_listing_window())
: K: a. `! |' W7 _0 O        {
! e" i: Y1 _/ w& _  N            UF_UI_write_listing_window(msg);3 F* Q' p) P. q2 a# i' u, |
            UF_UI_write_listing_window(err);9 ^* w' Q# M7 v7 A0 w! j- C
            UF_UI_write_listing_window("\n");5 l4 \" m) I( V0 y& Z4 S
            UF_UI_write_listing_window(call);7 k, n+ W6 G5 l+ ]% Z/ c( e$ a# B
            UF_UI_write_listing_window(";\n");
0 Z) \- Z/ q- o, Y0 f        }2 e1 m# T5 ?/ s3 G/ P
    }, L7 ]0 K; b6 C: j" I' c
    return(irc);) N* o( j! h! ~$ q; _
}
0 o% L# x& k$ m( D) a1 f1 h4 |  o; {
/*****************************************************************************
2 K* m2 o8 s- I5 }* i**  Activation Methods
) N5 _( T* i$ _4 X* n8 z& g*****************************************************************************/
2 ^6 J: Y# [9 S- w* `7 `$ J/*  Explicit Activation$ D4 ^- f& s! N( z$ k# q
**      This entry point is used to activate the application explicitly, as in
: K. q& R7 K# c% d4 `**      "File->Execute UG/Open->User Function..." */
8 k! L- R- j5 N: Ytag_t part_tag=NULL_TAG;( `% D( C8 y3 }8 K7 m# D' j
tag_t tar_tag=NULL_TAG;3 p) T  i& b5 Z' ?
double origin[3]={0.0,0.0,0.0};* N- f( @% z5 [
char *height="30";
% s2 V0 L) c+ G" ^+ a8 P2 K: A" Zchar *diam="100";
; r6 O8 o. C; |8 l" ?( }double direction[3]={0.0,1.0,0.0};
( v7 ~2 C8 Z0 q# _& |5 ztag_t cylinderfea_tag=NULL_TAG;$ |; l1 @$ d$ J9 R( K
uf_list_p_t edge_list=NULL;
& F/ g  M0 P4 d# ~int edge_count;
* F1 ]+ m; d8 p( G# V7 y- y, _char msg[256];$ w! P$ i; @, h. x1 y  m
int i=0;% V# A9 H6 O  F8 `5 z
tag_t edge_tag=NULL_TAG;0 r3 k( L& F( A! v- g7 H
tag_t curve_tag=NULL_TAG;
* f2 h. q4 C/ h# ftag_t point_tag=NULL_TAG;$ g7 |$ g6 [' V& y( s# A2 P
tag_t line_tag=NULL_TAG;
& `9 h0 d$ P3 s% Ttag_t point_tag2=NULL_TAG;( ^' x: M5 R% O, u1 q
double cen[2][3];, {) P0 `, ?/ G4 s0 v! A1 M) J
UF_CURVE_line_t line_coord;//最好不要定义为指针
& [7 d) ?+ }$ n8 A8 l7 v1 Xextern DllExport void ufusr( char *parm, int *returnCode, int rlen )( e% h- J7 J$ ?& ?8 a- K
{
* _; M3 {. N0 p    /* Initialize the API environment */
1 ^7 p% `, L1 O$ m/ l, Z' q% {    if( UF_CALL(UF_initialize()) )
' s% M) @5 S/ P9 t8 F' M/ i1 h5 N' z    {
) g* a* u+ C6 H% c. K; A4 V, Q5 [        /* Failed to initialize */
7 u+ A- w) \1 v& B% V4 x        return;
, u* D$ B8 D/ c% {9 D8 k    }
- y% F( z8 i, K5 p0 D/ p% E   
6 s  z( J* D  U2 I" I! }    /* TODO: Add your application code here */+ y) ]8 _% N9 C0 w$ A
//1.create a new part4 }; c& n, d4 r. h- i% X
UF_PART_new("C:\\NX_work\\cylinder.prt",1,&part_tag);9 t; h; t0 M- _  W- @- G* V
//2.create a new cylinder7 ?+ Y5 a3 ^# C: J; E
UF_MODL_create_cylinder(UF_NULLSIGN,tar_tag,origin,height,diam,direction,&cylinderfea_tag);
7 A( ^5 U* y0 Q" F9 B //3.get the edge list
1 A$ F6 y8 H0 J- x) _; L8 a UF_MODL_ask_feat_edges(cylinderfea_tag,&edge_list);5 }4 I/ W0 s; J; p# H& C) w9 `
//4.get the edges
+ x6 O5 H6 o$ J1 z UF_MODL_ask_list_count(edge_list,&edge_count);7 b7 H! r+ L: O- i) Q

1 S, |1 A8 T5 ?/ b3 i+ T* r //5.get the centers
4 Y  V# }( }5 k6 A1 s% o for(;i<edge_count;++i){+ q6 D. z) s/ Q" ?' ^% Q/ X4 [
  UF_MODL_ask_list_item(edge_list,i,&edge_tag);* \& e, D$ I7 m) D* e
  //UF_MODL_create_curve_from_edge(edge_tag,&curve_tag);
$ L% }! q$ H8 y  UF_CURVE_ask_centroid(edge_tag,cen[i]);
+ X2 s) y, h& R! C  }. ? }
- `( R$ @' G" a& j$ S0 p% @ //6.create line
& R$ A0 t; r$ n //UF_CURVE_create_point(cen[0],&point_tag);$ p) K5 b/ ~! D
//UF_CURVE_create_point(cen[1],&point_tag2);8 g9 B  r9 W- b+ V9 B5 A
line_coord.start_point[0]=cen[0][0];1 j, |! b6 L# o! [& `
line_coord.start_point[1]=cen[0][1];; d/ y8 R- p1 N7 i# d' l
line_coord.start_point[2]=cen[0][2];
+ }: J9 `4 |* Y  B line_coord.end_point[0]=cen[1][0];
( A; ?3 K) u- o8 i line_coord.end_point[1]=cen[1][1];
9 f! o4 U& m/ X' `! D* G8 C) G% e: _ line_coord.end_point[2]=cen[1][2];) X- @9 B8 K9 r0 p/ L! g
UF_CURVE_create_line(&line_coord,&line_tag);
0 q$ o5 H  }/ Y0 N; C: U //UF_MODL_ask_list_item()
% R9 L1 j& Q  z: C    /* Terminate the API environment */
4 k/ x( i: s# g& j" n    UF_CALL(UF_terminate());
& D% k# z7 z4 n! D5 \) _  A4 z}
5 ~; J% U- M5 b* t& j. y/*****************************************************************************
% b& j( M: p6 W6 X" Q. Y' v$ z**  Utilities2 ~: U& z9 Q* I- P
*****************************************************************************/5 z' x6 W$ O5 _% R; z3 v+ W
/* Unload Handler# S0 a! q  I9 ]) ^- y) n& H
**     This function specifies when to unload your application from Unigraphics.
% z  y  [6 @7 y9 c& y**     If your application registers a callback (from a MenuScript item or a# X3 t% U7 g0 v1 L: z9 A
**     User Defined Object for example), this function MUST return
, B& v; @( y+ g1 i' u+ ^7 b0 s**     "UF_UNLOAD_UG_TERMINATE". */
% W* l  J7 L/ j  P; t' |/ F/ Wextern int ufusr_ask_unload( void )3 |, K3 B( z5 @
{
) |) k3 Q: B# J# u8 a0 D5 ]    return( UF_UNLOAD_IMMEDIATELY );' d3 x0 H/ A' k. M4 V' s* n" R3 D
}) I# l0 k( s0 Q! B$ c$ j3 C; I! X  f, }

9 N8 {5 ?/ W' q# g- L

评分

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

    我知道了