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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************& L; k7 J  c7 [3 l( k% E
**% l# u2 ?: ^- H" q. s* j0 w: K' k
** creat cly.cpp
. S; ?  m; q# s) U+ C% \*** }! R2 l! H. x( g/ M
** Description:
6 K" [. {7 W1 h' e8 A**     Contains Unigraphics entry points for the application.  v# j! P: P( U& f1 ^
**
5 O8 [. U, q- q2 }% D*****************************************************************************/$ D8 D8 x. C) Y$ ]1 T$ _

$ [" b$ n; Z8 e# Z/* Include files */# j' S/ s% u* o2 V4 o! y& _
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
9 [! {  m/ a2 y( V. }; D#   include <strstream>
1 {% o7 a( P8 j- u2 m9 b#   include <iostream>
* _' Z# ^5 g1 r; m: f9 y; k    using std:strstream;1 O: j8 D6 ^" r6 ?* F. N' I
    using std::endl;   
, R- h8 ?3 f7 \. `: ^$ F! t& Q3 v    using std::ends;5 r5 M0 y5 b' w9 ]  k/ |
    using std::cerr;
( M9 q) ^- D& b7 [7 t* h9 P#else2 X+ `. b/ S+ `) V, H. ?
#   include <strstream.h>
8 m& |- O  r+ c( b#   include <iostream.h>( h5 b$ a0 W* |# c
#endif: L0 H9 y* e6 v0 A
#include <uf.h>8 J. W( x3 U0 H  N0 D% Q
#include <uf_ui.h>/ G" c. W, D8 D  ^$ u! Y& t
#include <uf_exit.h>
0 N: w4 i9 f0 g#include<uf_part.h>7 @3 ^: m4 k; z/ C8 x
#include<uf_modl.h>
/ S* O& K/ q8 A* N#include<uf_curve.h>5 X+ I! i0 M+ L  p1 x. L
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))  r6 d- t8 s, X0 n0 D+ E
, d$ O- y& ~9 }6 ^* |9 Q9 |- V

& r* d, T3 q, V, T: g' cstatic int report_error( char *file, int line, char *call, int irc)+ n. R% r/ r9 z8 W3 b
{
) O: v% ^, Q4 L( c" x    if (irc)
" [' o2 L3 Q8 F# N0 u    {. U, x9 [1 `- P
        char err[133],# E1 {) b: ~, E# ~
             msg[133];
0 Z4 s( \* o+ f$ H8 m
% B0 r1 i' M( R3 o4 C- B2 C        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
1 x6 O, y& T& p- g6 t/ S6 |# D            irc, line, file);
# T0 c, r/ i1 l/ N8 Z  w! O* ]: E        UF_get_fail_message(irc, err);6 E. _7 E3 e) T' p1 h4 `4 s
/ C' M% D- R- x5 [! l
        UF_print_syslog(msg, FALSE);1 v* Y& V: ?6 C% o+ \9 f
        UF_print_syslog(err, FALSE);
0 d0 a- N: N' D& N0 m% j5 K        UF_print_syslog("\n", FALSE);
& E, I: p9 R6 F        UF_print_syslog(call, FALSE);
' n4 S0 k$ J  m, f5 s" R) a5 q: {        UF_print_syslog(";\n", FALSE);5 o5 J% t) L. [6 |
! m1 i: s' P' W' Y
        if (!UF_UI_open_listing_window())
6 S$ P2 ~) ^: o# T3 G        {
. |1 l  Z6 V$ k- r( W            UF_UI_write_listing_window(msg);4 C: Z( G9 s' x1 L
            UF_UI_write_listing_window(err);
3 L3 m7 L; ^2 j            UF_UI_write_listing_window("\n");
. ]7 e' E0 k; k* u- B6 P* e$ G* O5 n            UF_UI_write_listing_window(call);
7 r: f4 P# T" @: W6 N            UF_UI_write_listing_window(";\n");; G9 a% l  q% Y/ m  _
        }6 T1 `2 [* T' A# p
    }
: Y  C: p) m7 `. T7 `5 A; v
- s9 u4 K1 k; A    return(irc);: {2 G$ ~$ E+ Z- A7 b: t- l% Q+ X
}
8 K* H/ W7 A$ _- M4 ?1 c5 l
2 o" d2 _, _. }6 Y0 ?( x9 P) A$ i
/*****************************************************************************7 F6 J2 h7 q% x2 K6 ?2 U3 `
**  Activation Methods
- N& ?, a9 [6 f& R; X# ?$ h/ Q*****************************************************************************/
0 R3 q( I  o' D, ~0 F, A/*  Unigraphics Startup
9 }% r$ t) H6 e6 z1 N; P( H, H**      This entry point activates the application at Unigraphics startup */
6 v  h9 b* Z, D0 o2 jextern DllExport void ufsta( char *param, int *returnCode, int rlen )- v5 \4 A+ J. _) g. c+ n
{
( g, A4 X0 |6 h1 F    /* Initialize the API environment */
0 l$ f7 N1 w3 |, b    if( UF_CALL(UF_initialize()) )
5 e" u3 ~% z+ D/ u9 @  Z) b    {. D% v6 u: _8 [# U3 m
        /* Failed to initialize */
- a) m& @9 e$ [  L( m        return;7 g' y+ J0 ?7 \/ `" c4 `3 I5 Y
    }
, m% k8 d) `7 Y" }  K
% ]' a7 K. ]2 ?7 x1 C- L7 k& R% K( f    /* TODO: Add your application code here */
9 ^  q6 {- x# V0 g* G4 W8 v        $ Q- E, e' ?9 w' u
        //new part
- R9 K) |3 J' C8 O$ }! N# H7 v' s& C+ j# K" ~" K0 N) L! O. }) J
        tag_t parttag=NULL_TAG;: q! a2 j# \1 Z9 v: u$ x# z

! l, W* k' m2 l9 t        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);( S' ?6 m9 c1 G+ D6 p- N% K; e# B; e
+ h  `8 C& a/ @- e6 r* `# |) l
        //creat cyl
9 B) D3 R- S) _# o  ], D2 A, ^' L+ U. Z6 ^2 e& |# C* ?0 h* L
                double origin [ 3 ]={0,0,0};
) F& L: s+ }4 a5 d1 X6 Q) G6 z& p- O                char *height={"50"};3 i7 S; v7 m! Y7 F
                char *diam={"100"};
5 F% s( C( P, O+ z& \+ o0 p% ]                double direction1 [ 3 ] ={1,1,1};% R2 ~0 S6 |0 S) {& U+ @1 |
                double direction2 [ 3 ] ={-1,-1,-1};               
8 p5 o! |/ ?1 F) Q# @6 n4 M& t                tag_t cylFeatureTag=NULL_TAG;
: F3 d8 f& x$ f1 I* A& U$ A0 N- `, I7 v0 [/ ~. Q
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));: j4 |9 ~; V( q+ \: H
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));2 x( E8 ]$ O- g( F% u- X
        //creat line
: Z4 T+ F9 X! v' z; q8 v        UF_CURVE_line_t line_coords;
. e7 c2 Y& h! L; N1 {/ B4 a8 ~        line_coords.start_point[0]=-50.0;
( x( Z% G0 S% P5 k: R, i        line_coords.start_point[1]=-50.0;
) W; I7 `- O5 _/ p/ i        line_coords.start_point[2]=-50.0;
9 ~) w) }) c. v6 K; l6 v4 J        line_coords.end_point[0]=50;
3 m! }+ A; d7 z        line_coords.end_point[1]=50;
$ r' z; D1 }0 P- T0 {" N" u7 H6 @& G        line_coords.end_point[2]=50;
9 Q% x! G9 K4 R3 x  ?" o- V        tag_t linetag=NULL_TAG;" P! U7 X# o) A7 Q
% `" e5 r+ _6 {/ ~8 }- B
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));8 b& C7 T! x5 V1 K% w6 ~+ B+ ?
        //creat point5 R& L( h+ v5 j2 T# M: E
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
: c2 u. d5 i! e) h/ e        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};; P2 i0 C( m$ [9 z3 i( y) p, k
        tag_t pointtag=NULL_TAG;
/ X" ^$ b: M# s        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));/ s9 S) W0 Z& h# |! m
                double start[3];
9 s0 V$ Q2 Y9 O9 b                UF_CURVE_ask_point_data(pointtag,start);
2 U6 V1 |& ~/ R/ ^7 T3 J        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));. T  f7 e5 R: X8 V
                double end[3];
5 h* F9 X  p9 d7 j3 t+ `# M                UF_CURVE_ask_point_data(pointtag,end);& K3 m/ F/ H: ^8 [9 ]4 j+ E
        char msg1[128];2 L6 o8 O- w6 B
        char msg2[128];. I' x1 b% d0 h
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
( N% g* Q1 I" r1 D4 _- }% Q5 G        uc1601(msg1,1);
% _- R$ i3 [8 c  y/ y  J        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);9 ^+ S9 i$ e3 p7 C& X- d$ u1 i
        uc1601(msg2,1);
8 p" d5 x. Y: J% [+ ]( h. t( M        //mapping point from abs to wcs
9 L' {! t2 X/ s7 a
, X: L9 E% B1 t3 h        UF_UI_open_listing_window();9 o& |/ m# |+ ]2 _$ P( c" ^
        UF_UI_write_listing_window(msg1);4 k8 T: L( \9 k
        UF_UI_write_listing_window(msg2);. y# i& s/ R7 @& u
       
# b/ v* S! t+ T$ A# Z! l        //close: Z4 B2 |% V/ n0 Y
        UF_PART_close_all();
* c" T% r* x% x! J& \- D2 d) q2 N: P& t: [3 C, C) t' d
    /* Terminate the API environment */
( q8 I- }7 R* g$ {    UF_CALL(UF_terminate());& \. d; c% s6 e. b; ^* C6 m
}- M0 u8 `5 \% |* t# ?( l% ~# }

# W* E0 D6 H' C2 u  z: b7 w5 R7 y/*****************************************************************************
6 x8 g. a- V, _, x9 h3 i**  Utilities
7 F/ ]8 K) |/ w8 b" f" e1 E*****************************************************************************/6 w5 x' |& b# g# i& a" s" p
0 t. n5 C$ A( D/ M) Z  C  c2 a! m- E7 U
/* Unload Handler
8 K' c: a6 V+ c* `**     This function specifies when to unload your application from Unigraphics.
% x+ Q4 _3 Y0 r3 [+ g1 e**     If your application registers a callback (from a MenuScript item or a3 e5 k# Z6 Y9 l  T0 j  w
**     User Defined Object for example), this function MUST return* ~4 s/ d5 @" q
**     "UF_UNLOAD_UG_TERMINATE". */. S* A& D/ W: }% P; F! W3 D8 n& u
extern int ufusr_ask_unload( void )! U! Z& t1 ?; V/ `" P
{" z, _4 m" q3 P9 s; W, j$ \
    return( UF_UNLOAD_IMMEDIATELY );" a/ A% X  q6 ~9 B! M4 W  N: h; l
}
: R7 Q/ |2 {( S( A% u# K$ v* X4 |
: g3 w( i( ?; W" Q4 Y8 G
上海点团信息科技有限公司,承接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 编辑   n2 @0 o2 k8 V8 P5 M4 {5 P
; y8 F* l' |- \
L:\1
' i( _" D/ ]: i  w
                               
登录/注册后可看大图
  o* f* Y1 |5 p; ]2 T
                               
登录/注册后可看大图
7 T8 v& d8 R% O" m+ ?9 y. J
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了