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-国产软件践行者

[交作业] 20160320 lesson 2 2圆柱求和+手工输入中心线+点信息

[复制链接]

2016-3-20 19:27:35 3046 1

gsmfxsmy 发表于 2016-3-20 19:15:41 |阅读模式

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************: [! j: y% Y: ]7 f
**& N( b) ~9 ^7 y, S: t5 ~
** creat cly.cpp
3 k, v! m" T9 k+ d/ f) G**
- ~( i( j: k# k** Description:
  }, d: P: b0 ~**     Contains Unigraphics entry points for the application.
* L' q3 Y. Q$ a! w0 s  Z8 x**; \% T4 g9 p9 c5 d  ?& A+ g
*****************************************************************************/$ k5 s  p1 I) z* l# T! q" D+ F% w
8 b# a& J4 k4 s$ @( Z
/* Include files */
; o' H3 c+ t- F#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )" Q, A; f; g# t4 y
#   include <strstream>
* _$ Q# l2 r6 {& E6 v' t, o#   include <iostream>
9 X3 p9 `) R7 ?$ k& h3 {, Y    using std:strstream;% Y( y7 f3 K5 T: A, s
    using std::endl;   
- V0 u' I; x: \9 V: ]0 Z    using std::ends;6 e1 h  y3 i* f+ T1 q
    using std::cerr;- J+ L8 l, l+ p
#else; H$ D$ X9 e  m. d9 M6 p. T
#   include <strstream.h>3 ]0 W6 t& Q+ o1 B! a
#   include <iostream.h>: {  g6 [5 ]6 S" C! Y
#endif
) {4 z4 X, V  @0 t# r; l1 c8 B$ Y#include <uf.h>
' G  i3 `* W7 N#include <uf_ui.h>
6 l1 b; N9 W- Y* M) o8 s#include <uf_exit.h>* C! v0 H/ Y8 N6 o, Y
#include<uf_part.h>
1 K- U, @2 w7 Z/ ]6 @#include<uf_modl.h>/ m- w9 ]4 |7 t" n' P4 |9 R
#include<uf_curve.h>
, M2 H& |4 X6 m# H0 C& q' b- H0 d#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))$ k  |# I- |0 s6 L" M1 C: |. J

2 J! R: d4 P- a
, }* m- z2 m, f2 L- {3 @2 Tstatic int report_error( char *file, int line, char *call, int irc). @8 a( h2 V1 ^! W* E( m" B
{
# @; m4 B3 x7 T/ S+ z- p# o    if (irc)
  q: n% ^; B6 L$ U0 m    {0 O' {# `: F+ h& }1 f4 v# D
        char err[133],. e  ~' ]3 w4 c+ N! v' C: O: u4 O
             msg[133];
: V% ^. u3 @2 m1 }6 {" Z
9 _$ x" w( E) `8 R. v% ]        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",2 @0 f3 ~" N, L9 c
            irc, line, file);' r+ m) m7 H. I
        UF_get_fail_message(irc, err);8 i( c1 f; o* g; G% N8 K: r2 l
( i; t4 x- ?& _/ K) B: X
        UF_print_syslog(msg, FALSE);3 ]% {) y3 S  I# U; A* r0 J
        UF_print_syslog(err, FALSE);
, N: D- b! j0 }4 u! v5 [        UF_print_syslog("\n", FALSE);+ H7 @7 }) D% a; N) C- K3 [
        UF_print_syslog(call, FALSE);
( G9 s7 S6 {$ x  J; \% Y( i+ j  F: ]        UF_print_syslog(";\n", FALSE);
6 w' M" [- d- L1 w  T; ^" Y. S+ i1 p1 N; O
        if (!UF_UI_open_listing_window())+ n8 i1 D. L% v' a- P' i
        {
+ D  L0 ]& f/ h1 u            UF_UI_write_listing_window(msg);( j& M/ w2 c" i$ Y# A1 s% S
            UF_UI_write_listing_window(err);1 H0 `6 K/ V0 K/ v. b  x9 i2 e' |
            UF_UI_write_listing_window("\n");
5 z5 _2 X' `- ~1 w            UF_UI_write_listing_window(call);
1 S- l/ R9 t  k7 x) O            UF_UI_write_listing_window(";\n");
) c9 _% q% G% g8 ]$ I3 _4 e$ W        }
- @9 W$ d! H7 Q    }
7 ?1 ^$ k( ?- }5 H$ l* O9 ^7 c8 l2 x4 T( {0 [9 C
    return(irc);8 x; e& K6 J6 ]0 C/ V8 l* c
}
# \0 P/ {' V! G! Q2 o& I* p. X
; d- P( d  k# C5 j6 T) y8 W, s" g) F: m/ S6 o- w4 u5 @* ~
/*****************************************************************************
3 }2 _$ E& Q8 v) Z% D# h! X- e**  Activation Methods& P4 ^" u6 f, E. X; g1 A: f% m
*****************************************************************************/
. G  q3 n, w' \/*  Unigraphics Startup: f: O% D% B  E
**      This entry point activates the application at Unigraphics startup */8 @  q& m9 e, `" J, n! b
extern DllExport void ufsta( char *param, int *returnCode, int rlen )" S0 ~' _: y" s# V2 [7 U
{- S4 R0 y* A$ U9 Q# f
    /* Initialize the API environment */  J" D+ x) }0 x9 D
    if( UF_CALL(UF_initialize()) )
' q/ u. }+ d" F    {
& w3 [4 O# B4 Q6 W        /* Failed to initialize */
: ]8 G# w% @) z9 B        return;
# o4 n8 q8 ^) _+ E+ t- G    }
" |4 Z; X/ ]; G9 i9 O& l* ]) l: ~0 @$ ~
    /* TODO: Add your application code here */+ K% G7 y9 Y. Z, X' U, a
        9 A  ^% D5 N" {! N% e0 J! [% ?9 f$ u
        //new part! ?! c; W& h) Y' J

/ I$ b! L& R4 ^+ i! s! \: m& }        tag_t parttag=NULL_TAG;) q7 X% x- B5 ^7 A" n1 k

+ j+ L" W7 n. e$ K! ]+ d        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
" c, j. j2 _! ]
' ]* I7 e( _+ A. n! I, E& J        //creat cyl& K0 Z" S: C! a7 D! J8 a+ l
! E1 f/ P+ ~* m, q7 n  ^/ M9 S
                double origin [ 3 ]={0,0,0};- `* S2 F+ G. X' v3 k% b6 I% l5 [1 x0 y
                char *height={"50"};
1 }( X; r& @: `                char *diam={"100"};" U& k- }' f5 y2 C
                double direction1 [ 3 ] ={1,1,1};
2 ~$ R1 f- D7 D' Q# r5 E                double direction2 [ 3 ] ={-1,-1,-1};               
( O9 j" ^4 R3 V2 [0 \$ j7 a" d8 m                tag_t cylFeatureTag=NULL_TAG;+ A$ U$ X' k; x! w" l  h, m+ X
& ?! U/ F3 h0 {* E
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
0 l* u' Q0 f+ }* A5 N" `        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));) c  r/ y# z5 E, j
        //creat line& B2 T. u5 Y* u7 n; N0 A8 q2 [
        UF_CURVE_line_t line_coords;, V. [2 F+ ?, {4 |  b
        line_coords.start_point[0]=-50.0;
7 v! y2 E; l4 {  u! q- g' P        line_coords.start_point[1]=-50.0;
# \' M: _3 q1 R7 l' V        line_coords.start_point[2]=-50.0;8 z% D0 `; O' p9 J/ U1 R% t
        line_coords.end_point[0]=50;
3 h! i! x; L. H3 v& d7 {) a        line_coords.end_point[1]=50;
# C# `$ n) y( ~" y; m: C. b& A        line_coords.end_point[2]=50;
3 @+ `$ H3 W! ]& S: k5 `) d- T# a        tag_t linetag=NULL_TAG;; w& n6 u1 k* N4 d; t" S' t
9 J% d% y/ N8 Z( w4 I9 @: T
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));3 G2 ~1 }# h0 r7 R. d# Z
        //creat point
: w! l1 t2 L9 y& D( h! ?        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
% n- ^; H/ W6 b9 [- k1 B        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
4 }2 o% i9 M, K, v. }        tag_t pointtag=NULL_TAG;$ W! Q- W* c! E& F& z
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
. T1 m( j% m4 Y) y0 ]                double start[3];- F8 M2 B1 N$ Z' g0 L
                UF_CURVE_ask_point_data(pointtag,start);9 x8 J# o+ S; Z' K1 y' j: G  s
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));7 K5 ^, W( h1 b5 _0 E
                double end[3];
9 h3 ]# m& @  r2 y# Z; u$ _: T$ a( v                UF_CURVE_ask_point_data(pointtag,end);
/ _5 g  \' j3 h3 E* ?; C# _) k        char msg1[128];
' }: ^* s8 H2 G7 e: I7 ]6 m7 q        char msg2[128];
0 T6 d$ a6 Q1 K        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);" m4 Q' ~8 J5 @% j" o
        uc1601(msg1,1);
. K5 W+ S9 {: L2 j" A& A( k# P        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
/ B. m$ b1 B0 P/ t- j2 x) D! T        uc1601(msg2,1);
# M) h! I( H. w( x3 w% c. V# ^        //mapping point from abs to wcs
# @, ^$ t! X- G/ ?6 g7 `; h8 K' G4 G% ]
        UF_UI_open_listing_window();$ R4 Q, ?% P. U$ u8 y" w
        UF_UI_write_listing_window(msg1);* V( E5 c9 U4 y; k
        UF_UI_write_listing_window(msg2);/ P" j0 X" ^3 T
        5 u% ]' ~/ |5 M6 ^: N
        //close
4 Q8 \/ v" T4 U% f/ R. q7 |        UF_PART_close_all();' D# C4 v& _% s% l
! P8 U7 l, f* u0 Y" i2 t
    /* Terminate the API environment */
, X/ \, y/ r/ y; {  |* O  E1 M  K    UF_CALL(UF_terminate());! m* h, S% i% g& T# }8 P4 ?" q
}
, z1 a, }4 y. [% L1 f. ], m
5 I% H. a1 ]) [, i  \/*****************************************************************************, a$ Z/ O6 u+ [: Y
**  Utilities
9 m  l; D+ o' `8 G6 X2 W*****************************************************************************/$ I$ P7 l* U) h' w( l: K

* v2 N: u8 T0 C7 x* P* U  |/* Unload Handler4 b3 L) I% Q7 j$ k
**     This function specifies when to unload your application from Unigraphics.5 o4 o4 A8 V8 d! o4 s+ n/ @
**     If your application registers a callback (from a MenuScript item or a
* `5 X: g9 L$ ~5 Q: g+ w**     User Defined Object for example), this function MUST return
* Y- C, M5 y; f7 ^" ]+ f**     "UF_UNLOAD_UG_TERMINATE". */. ?+ w1 T- f9 u5 U
extern int ufusr_ask_unload( void ): \( X9 v) Q8 _. z
{
' R- X+ I" f8 |! J* j5 W4 ]& |    return( UF_UNLOAD_IMMEDIATELY );% w" Z: B: ^1 V
}
5 z; H" N: {3 I
8 ~( N9 ^) z& f( u; U) \' ~3 |6 _0 F7 X" b8 M# a' a; E
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

gsmfxsmy 发表于 2016-3-20 19:27:35

gsmfxsmy 沙发

2016-3-20 19:27:35

本帖最后由 gsmfxsmy 于 2016-3-20 19:29 编辑
0 Y! W# _* p) Q4 ~0 Y# V1 H
2 Y4 M3 f9 B, |: `( [0 UL:\1

5 m3 g& H# F, ~! v% p0 |2 U  n                               
登录/注册后可看大图
, N# m/ j' [& ^' g6 P- O
                               
登录/注册后可看大图
) ]: L/ ~; p# N  _0 ^$ ~
                               
登录/注册后可看大图
3.jpg
2.jpg
1.jpg
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了