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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
0 F  K$ n, H) G8 j8 B5 g  Y**
# s; K' h0 i% z3 ~4 N** creat cly.cpp  V8 l* r1 m7 ^: x) T
**+ S( ], J5 [! p' r% x9 E
** Description:
3 l1 o) O+ T' l0 I$ q8 H**     Contains Unigraphics entry points for the application.- Y5 ?: ?" v% d8 H, W
**9 C& a4 F) @% e
*****************************************************************************/
0 v. \* `5 ^4 ?7 H  N( Y2 w# {7 X- M7 K
/* Include files */
/ t3 F5 q$ ~2 f1 J: Y; s9 F#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
% W/ [  U! \7 B#   include <strstream>
/ S; l7 d4 q$ a& F$ Q#   include <iostream>
: I0 K/ z/ U7 Z. d* g* i    using std:strstream;8 u. e' X; Z# W) o" P9 R
    using std::endl;    " W' H( i2 m5 s4 B' E$ ~" `9 R, H
    using std::ends;
- r- ?+ d; p/ y; F2 B! v    using std::cerr;; D: b2 b/ h% P: W1 O! k% B6 i
#else3 n! u7 z2 v' v* I: S0 H  w
#   include <strstream.h>* g& ?5 S% l" U  }, P/ }
#   include <iostream.h>
- j" J, }7 O; L2 [- U+ E#endif9 X4 n2 [5 R" Y/ J2 Z4 V  Y
#include <uf.h>2 l! A" }+ g5 L, A2 Q
#include <uf_ui.h>1 Y0 |; q& U5 e; g' ^# V! _; S2 d$ v
#include <uf_exit.h># N0 y* b$ I# k9 z7 s
#include<uf_part.h>" I+ p9 D3 e" C8 \" l5 ]( N, w
#include<uf_modl.h>
! U8 s# W( E) L#include<uf_curve.h>7 Y! v  z" @$ M2 y* E
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
' [. z  j& x+ l  ?5 \& U
- w( @" H$ W6 b6 p2 `5 g* G' v# l# G* p( e
static int report_error( char *file, int line, char *call, int irc)* F) e+ u, m! u' `8 W/ H
{
6 G9 g" D6 r( C7 ]5 J    if (irc)
( X" a5 @6 S- E6 Z' s* {    {5 h  E% I$ k! ^" S8 u
        char err[133],/ G+ m4 r3 ?- L  Z% K
             msg[133];
$ J' H/ E" f/ b
/ z$ j, Q* N- o3 L5 [; I        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",: C& L% D: i! P! U2 l# }
            irc, line, file);! N% s  Q* ~: K  w5 p
        UF_get_fail_message(irc, err);
6 c( |% P# E' g8 k4 B4 X) k: o8 q0 C9 ?3 U- t
        UF_print_syslog(msg, FALSE);3 ~; m# |, o+ b  A) f2 O5 f! y2 v
        UF_print_syslog(err, FALSE);9 q+ M2 }: Y" Y
        UF_print_syslog("\n", FALSE);" j& q. G: {! f1 i! o. h
        UF_print_syslog(call, FALSE);
) t8 m, |3 r: t! a# S        UF_print_syslog(";\n", FALSE);, }1 [; C2 ^2 t* h3 k: I7 \  o  i
7 T) B: P* \' ~
        if (!UF_UI_open_listing_window())( }3 p) ]  x2 X: x& c1 ^
        {
7 c9 R- B! _" Q4 I/ W1 a7 w7 c! R            UF_UI_write_listing_window(msg);2 S' n: i/ \- C( Z; `' j
            UF_UI_write_listing_window(err);6 l3 x; ^& T9 y& u. Y/ Y) k; b
            UF_UI_write_listing_window("\n");9 R( ?2 j/ I% i% N+ S
            UF_UI_write_listing_window(call);
3 Y% B6 T1 E1 E" v$ [            UF_UI_write_listing_window(";\n");
$ j( J( M% p) s3 F9 v! _7 _$ h        }
9 \6 o; b% ^% W  O    }
/ _  ^/ e- g" Q* y' L' m4 o. [  ]- {8 q
    return(irc);9 G; P) Q$ v( {
}  s9 L- B; X4 c. }6 F

: I4 J! y' k* Z: w' |8 I6 k+ d6 i
/*****************************************************************************
3 `( e2 I9 U# Z**  Activation Methods% S$ e% Y- U) U+ b
*****************************************************************************/! [7 j3 W% L* l# v
/*  Unigraphics Startup0 s* m' G) n- ^8 o2 }
**      This entry point activates the application at Unigraphics startup */7 ^( I2 U; V0 Q' G) m
extern DllExport void ufsta( char *param, int *returnCode, int rlen )! n& l( N: X5 J" |) \9 R
{
( ]4 Z* z1 g9 ^, G4 R9 s    /* Initialize the API environment */; v, o# ^+ K- L/ n8 }
    if( UF_CALL(UF_initialize()) ) 9 I; t! D0 ^* k' V  }1 Y* p$ a
    {
+ f( j1 I0 J* b0 W4 v/ a, P1 N        /* Failed to initialize */5 [+ D5 R7 F* l5 x/ W8 @2 ^9 V% X
        return;# h! O" W7 I4 I' `! u
    }
8 _' o  o$ p, f' ?: B: f4 k: D* t+ Z  L# K1 i5 J1 F7 Z& H3 E
    /* TODO: Add your application code here */8 w* {4 S. `4 W& n/ }6 s- {
       
1 ~, T. x; O8 j+ I        //new part
0 c, D$ R! o5 ]/ H. D1 {" r2 Z/ g& T- v0 C, D9 r- p
        tag_t parttag=NULL_TAG;/ Z* k5 y# u6 c3 ?4 u# D

6 M2 B4 b+ X, c% z7 X7 `9 D        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
, Y3 P  o+ U/ X) B$ X8 I& t  O0 s# t) d1 O- T6 n
        //creat cyl5 L9 Q" P6 u% T- O% Z9 {5 {9 A* N
2 `$ Z& n, `/ Z
                double origin [ 3 ]={0,0,0};! G2 |8 s& P, a, Q& T
                char *height={"50"};* C% U2 m4 b% L8 |8 h5 O4 H
                char *diam={"100"};* I1 t2 r( J6 ]8 ~+ m7 o
                double direction1 [ 3 ] ={1,1,1};
! F0 x2 T( w& H% [: X  d                double direction2 [ 3 ] ={-1,-1,-1};                ) o! v8 m9 J6 G& x' {) t$ Q6 ?  Y0 P
                tag_t cylFeatureTag=NULL_TAG;0 |8 L' f7 t8 o/ b

9 N6 l7 `2 m! m" Z        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
2 R# K' j2 w: I# |5 a7 w- C: i        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));9 `% S( {5 L5 [' C: w- N- |5 f
        //creat line
1 l: }- d8 k' r3 F8 h        UF_CURVE_line_t line_coords;7 [: \8 V: m8 V8 e9 j& A
        line_coords.start_point[0]=-50.0;+ V/ j  b" w- P. M) V4 |- c% l
        line_coords.start_point[1]=-50.0;
' y. Q  L/ \1 F4 e* w" s2 T        line_coords.start_point[2]=-50.0;/ Y9 n$ `. _$ r0 w* s  w) v8 A
        line_coords.end_point[0]=50;  u) Q6 x$ a4 |
        line_coords.end_point[1]=50;
6 O9 R* @/ f4 K( K0 r' ?/ {* X        line_coords.end_point[2]=50;
. V) K/ t6 r4 ~  x+ Y/ I        tag_t linetag=NULL_TAG;5 O1 K: ^! W: L: U$ ~  ^
5 ^# F: D6 ~8 G, o
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));. K9 q  m. N" a) W
        //creat point
5 N& @+ j( p. t        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};: Z* l, f2 J* f
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
( }! ~* E8 |6 m' [- i; f3 g        tag_t pointtag=NULL_TAG;
# h4 o# l4 p7 x- g+ q        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
# M6 u* w% U* Y# L6 f                double start[3];
  {* O8 ^4 x7 @. W" Q4 M                UF_CURVE_ask_point_data(pointtag,start);; M' R7 K( X4 y9 o( P. E
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));3 j: |8 {( r. m/ H3 f' ^
                double end[3];
1 ^0 Z5 ], a% O, x$ ?' I                UF_CURVE_ask_point_data(pointtag,end);( Y6 {7 J8 g5 c4 j
        char msg1[128];
8 a' |0 m* J+ q, I' E        char msg2[128];
1 B9 r7 h  m2 C7 z& i; X5 h* p( b        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
; E1 I% o$ ]* X        uc1601(msg1,1);
& T  v( P$ Y0 a+ F' a2 }        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
+ H% a5 u# r4 W0 ]$ y        uc1601(msg2,1);
# ?$ c$ V5 D) h7 g3 j        //mapping point from abs to wcs$ c  s& ^0 x5 }3 {1 p3 n9 W
  W7 l) ]9 [1 E1 m$ s$ P: x5 C
        UF_UI_open_listing_window();  S$ T* R* m4 o. p" x
        UF_UI_write_listing_window(msg1);3 u6 j, h) _& J5 B6 i
        UF_UI_write_listing_window(msg2);+ [, }0 M( i# }$ r! G  T* A, I- H
        4 u2 b7 a2 ^! ^, B7 |% V5 f$ h
        //close
' Q  ^+ d) z' V        UF_PART_close_all();
1 l2 f, B  Q# e; M
* I4 \9 E- m! A    /* Terminate the API environment */  L; ]0 m/ Q5 d  Q6 v" q
    UF_CALL(UF_terminate());! y) n' n8 F8 j+ Z7 `7 Z9 |
}& g9 H! K2 {6 e) D: G. U, N
0 I7 p) Y1 n5 k. w8 e
/*****************************************************************************
- x+ E. P1 }; T) Y0 C: ?**  Utilities
( Y% W4 d# ]' M' k! q*****************************************************************************/4 T% V" q8 \; _+ H$ s

; `+ |) w! R; L/* Unload Handler
! [! @) i2 x/ b7 w! C8 O" d**     This function specifies when to unload your application from Unigraphics.4 H  X  ]9 r, u! E% F; M
**     If your application registers a callback (from a MenuScript item or a
5 Q1 u; K8 o% r**     User Defined Object for example), this function MUST return
; ^* F; F; `2 H3 \4 x( H+ x0 d**     "UF_UNLOAD_UG_TERMINATE". */$ ?  o, B0 K# y% }
extern int ufusr_ask_unload( void )
- G$ h% l" [: i6 w- j% @9 @{  i8 |. O% ?0 V. Y7 T2 _* V+ A
    return( UF_UNLOAD_IMMEDIATELY );5 U& L: l; D5 A  g3 |
}
3 @# R9 `; X# N  J3 L1 ]* N6 X+ y6 p! O- F7 `' Q
; x3 d3 @0 \, R0 o
上海点团信息科技有限公司,承接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 编辑
) H5 L( Z# s2 ?7 t/ s: V: p# m" Z7 t& z! B
L:\1
4 }' u3 q. d. h: I7 L+ ]$ e
                               
登录/注册后可看大图

# v2 X7 g1 j! X3 g  u' p3 B                               
登录/注册后可看大图
" T3 \% E+ a9 E& ?; X
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了