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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
( z( y4 O9 Z# w7 x' _) d**! U+ X& q  \- `) k
** creat cly.cpp
. q$ N; [, W0 Q0 ~2 o+ _0 I7 @**
) B- t) g$ `  X& p, _** Description:8 q) E+ T! K' G  o+ O
**     Contains Unigraphics entry points for the application., x( e$ Q0 y$ N
**
! y, j1 ~7 w- r*****************************************************************************/# V$ E. C, J/ x  Y6 V- H

. ~9 C1 z9 p+ Z0 C! S% k) T/* Include files */- @7 d8 t, ?) U; j
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun ). L; M/ m- K% @  M# _% i
#   include <strstream>
& o* n7 [, U: Z/ f9 W9 [. N& b+ R3 v& \#   include <iostream>& x5 D2 u% M0 W; ~% L
    using std:strstream;
3 U2 q5 d( q2 f" {# |# a    using std::endl;    3 \" I1 u4 \2 m. ~. ?  ?; M# G
    using std::ends;! |8 `% ^! u/ U+ p+ y& L
    using std::cerr;7 @! T2 E1 n  J$ X3 p
#else
3 @) q, D0 F1 N- w#   include <strstream.h>
: \# e, D$ g+ j: _# c( G#   include <iostream.h>
& D2 d& J) }/ J; a6 U& R+ B#endif
1 l7 K0 b2 G% Y+ x4 z& ?' N. U#include <uf.h>( a% M( @: ~. J2 F$ J
#include <uf_ui.h>
! U- O* O. ]( d2 N: I& j7 W#include <uf_exit.h>5 H$ C. H( \5 g2 e
#include<uf_part.h>
1 K2 ]* d; M, G6 x. }, f5 |$ H9 e#include<uf_modl.h>
8 P5 m( ?2 z: i- I! K#include<uf_curve.h>$ j- {) i9 ~) _5 O/ Q$ ]
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
4 V. q) w9 }2 l( o5 ^' {& J  o; l+ T& u! d5 [

% y: f, n4 b. K3 @static int report_error( char *file, int line, char *call, int irc); Y- H2 W0 k; y  Z2 V
{* S$ |& ~" {9 m, Z
    if (irc)7 u8 P" a! {( \& n
    {
3 D; r" x) o. h7 [        char err[133],  h# X* ^/ x0 @
             msg[133];
4 e) l0 J  ]- Z% d1 `. W2 n+ g3 Z6 }# O
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
& h1 S# x7 l/ c4 f0 `            irc, line, file);
( r# p4 Z9 M  _7 E  Z1 ~! ]        UF_get_fail_message(irc, err);- t- E# s! y1 d2 X% |; ]" }/ `
3 Q3 A$ x. Y1 B9 T* R2 i# \
        UF_print_syslog(msg, FALSE);9 A# w2 q+ O) Z8 |% A
        UF_print_syslog(err, FALSE);
4 k5 b4 k* m% e+ K        UF_print_syslog("\n", FALSE);& l3 d% W- f! p) `+ Z! j5 p
        UF_print_syslog(call, FALSE);
, o# E( l% G! z4 N- F        UF_print_syslog(";\n", FALSE);/ C3 [1 O1 _% R4 }4 R
! s1 h& n! d4 D7 _
        if (!UF_UI_open_listing_window())
0 `- z- g" ~3 o        {9 l# L0 T: m5 C+ F
            UF_UI_write_listing_window(msg);
+ {. z  q, d' I, _            UF_UI_write_listing_window(err);
* U( x: R% ?2 c6 e            UF_UI_write_listing_window("\n");& F, z  i5 w, Z9 e$ F* s( H
            UF_UI_write_listing_window(call);% P! N$ i6 W+ z! e4 ?# n3 ^0 E! i
            UF_UI_write_listing_window(";\n");
# J. a1 u! n- p; @, y' K        }7 M9 N- S$ C. o/ a# s. {0 Q
    }
7 b+ Z% ~2 @. e
6 W; \* |' U9 v1 E  V: g7 z    return(irc);$ [" J! {' _* y, S9 a+ j
}
5 o. }; e9 F$ B4 g! p  `" m7 h4 ~6 `$ [0 i/ E* ?; A1 R9 B0 n& _6 P. B

7 c6 a. ]* F7 w% ?" V: t/*****************************************************************************6 R) |" g& D1 S7 b
**  Activation Methods- f3 A, w  Q" \/ C, w1 x0 [
*****************************************************************************/
$ O' |: O' m& u/ e/ ~7 M$ b/*  Unigraphics Startup
; e, U! Z6 ~7 A& i( S: N**      This entry point activates the application at Unigraphics startup */
8 s8 D) C/ G2 j$ Jextern DllExport void ufsta( char *param, int *returnCode, int rlen )1 N7 T! }& K/ ?/ x6 b3 y
{7 Z% J: d7 M: l; ~) v8 F
    /* Initialize the API environment */  e, E" H8 W# k7 D9 ?& Y4 I" V
    if( UF_CALL(UF_initialize()) )
3 }' X6 y- Y6 N# z$ U) i    {, j- Z# P3 C5 _: D! T
        /* Failed to initialize */3 ]+ V4 ^2 F( K
        return;
, F* V' Z+ B/ V: j+ C% z    }
' G0 ~/ i. N, {, U) n
4 `+ X' I; a( i9 k: i+ l* D. w    /* TODO: Add your application code here */% s8 z3 @. P6 D* R0 h, w
        ' i6 Z' F* b# Q3 E$ b- k. |
        //new part9 S! H# J  V  L: q& e

: b( o& \9 _4 p, D3 H        tag_t parttag=NULL_TAG;
/ [. A" F6 ?3 o" u+ A2 s; W' Q- d/ }1 Q5 @; k& S$ R
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);% L2 }3 G# K/ W- b& s

  K' o6 I2 x) l) W6 c' ~        //creat cyl4 b' F2 Z0 Z& h
: Z! _1 L1 M3 _0 @* D/ \
                double origin [ 3 ]={0,0,0};! N+ j; R# D/ b8 }/ F- K1 g- {
                char *height={"50"};7 L! x" F! M* N& f/ m5 `
                char *diam={"100"};8 S1 n( z4 c( J
                double direction1 [ 3 ] ={1,1,1};
9 R( U+ _- E, F$ {) e                double direction2 [ 3 ] ={-1,-1,-1};               
3 B& h9 O/ q8 s+ f( }- ^# f- Y                tag_t cylFeatureTag=NULL_TAG;, p. |6 X* d. j* N$ u3 I, Z
1 f% s  k: F' V: d: F% T$ \8 E: v. W
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
5 R8 W" V  T* C        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
) ^% v$ v- T' Y9 C        //creat line
) @$ {9 q# M: U, b  |6 _9 W        UF_CURVE_line_t line_coords;
2 v9 b$ T! ^4 R+ ~        line_coords.start_point[0]=-50.0;6 v3 H6 c( {& G+ v
        line_coords.start_point[1]=-50.0;, F% N  j% }2 ]8 ]4 g
        line_coords.start_point[2]=-50.0;1 z0 [1 }, m' c
        line_coords.end_point[0]=50;
) x, s0 r' g. }2 F        line_coords.end_point[1]=50;
! V: T6 s: w5 F8 R, R+ x% E        line_coords.end_point[2]=50;/ p9 s; X5 H: i4 V9 T" b
        tag_t linetag=NULL_TAG;
) s; H5 ?2 s: \! s, |/ n! K) [
0 M! P+ g$ O2 C0 F  g6 ]$ E$ U( E3 m        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
' o- W- n# j4 h8 ?& L2 W1 I1 n        //creat point, s  g) O: d! J; j5 I
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};1 y0 ?( a! k2 n) k9 q
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
) C, ^* E  O# a7 P0 F7 O; J        tag_t pointtag=NULL_TAG;
1 F. C+ R. \* _9 y; Q        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
; r4 o$ S9 ]3 `6 W                double start[3];4 B7 X$ k* \5 F, d% p
                UF_CURVE_ask_point_data(pointtag,start);
4 }& E1 u$ y; G2 u' [( c1 q" c        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
& \0 c! v8 [, D                double end[3];7 f0 K" ^* k8 g- H: Z
                UF_CURVE_ask_point_data(pointtag,end);6 \; @  E  {% K  q
        char msg1[128];
- @4 p2 N; h; ?! ?3 f  P        char msg2[128];+ I1 U/ [1 R( S& R8 l, x
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);0 s# N1 j) a' R% u
        uc1601(msg1,1);" }& W1 c" ]" B7 Y
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);7 T( {, G+ Z3 f# D8 a
        uc1601(msg2,1);
( F! {5 C4 a) ~# U  T, U        //mapping point from abs to wcs
2 q7 D) t+ L# X7 a, ^: \9 \$ \0 V( s" o
        UF_UI_open_listing_window();
! v8 L; ~, n- t+ P! y        UF_UI_write_listing_window(msg1);
! N2 x( _! r2 q) O1 [$ F$ s        UF_UI_write_listing_window(msg2);1 i+ I8 Y# g7 A7 ~
       
' I; ~$ b$ V# g- U& b- S        //close
* \5 {; m3 f3 ?' ?        UF_PART_close_all();0 e- b( s6 ~) Z# k* c# {

; \: ~" c* Z7 j& p    /* Terminate the API environment */
# G9 i; n0 N, T    UF_CALL(UF_terminate());, U- q) B( f; g2 s5 ?. L
}2 d0 }; R* y7 t2 o5 ?

  s: d0 \% t3 F6 T' s$ Y" r& O  j/*****************************************************************************$ X, u0 h( X* ~' R8 N
**  Utilities
2 L, J- x2 A" _*****************************************************************************/' j3 [, n( {0 C8 o' T; j

* i' I9 t9 ^4 X. m/* Unload Handler$ k2 N3 @  B% H9 W) J
**     This function specifies when to unload your application from Unigraphics.
; M7 o4 c, l* x3 A5 F/ Y/ E" p- e**     If your application registers a callback (from a MenuScript item or a
7 O9 j  A& A' ]: M. n) V, H" i7 y**     User Defined Object for example), this function MUST return
+ O2 A( j7 {# A' L# E' M**     "UF_UNLOAD_UG_TERMINATE". */
4 g; ~# c  U3 Nextern int ufusr_ask_unload( void )) K8 m8 v. q% m/ @
{! e# E% E  z- ^2 r# ^
    return( UF_UNLOAD_IMMEDIATELY );: P4 u/ w! b$ H2 h0 S; I; ^
}5 n* U* D5 Z# W2 U: R1 o

2 M$ Z1 }, u2 T5 B# J% c+ _
! j8 G, `( q  F/ r3 N5 q# K& X
上海点团信息科技有限公司,承接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 编辑 , e# a# p' e2 x0 b5 s
4 c2 s* L/ f; W; X+ b; y, X
L:\1

% l# Z' l' q9 ~$ K2 G. l6 ?- h) x                               
登录/注册后可看大图

9 a: ^/ I7 A; c7 t/ Z- ?5 q& C                               
登录/注册后可看大图
5 |3 I4 {1 X0 M& F! P7 Z
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了